1717 */
1818package com .viaversion .fabric .mc1219 ;
1919
20- import com .viaversion .fabric .mc1219 .gui .DebugEntryViaFabric ;
2120import com .viaversion .fabric .mc1219 .gui .ViaConfigScreen ;
22- import com .viaversion .fabric .mc1219 .mixin .debug .client .MixinDebugScreenEntriesAccessor ;
2321import net .fabricmc .api .ClientModInitializer ;
2422import net .fabricmc .fabric .api .client .screen .v1 .ScreenEvents ;
2523import net .fabricmc .fabric .api .client .screen .v1 .Screens ;
2624import net .minecraft .client .Minecraft ;
25+ import net .minecraft .client .gui .components .AbstractWidget ;
2726import net .minecraft .client .gui .components .Button ;
2827import net .minecraft .client .gui .components .ImageButton ;
2928import net .minecraft .client .gui .components .WidgetSprites ;
3029import net .minecraft .client .gui .screens .multiplayer .JoinMultiplayerScreen ;
3130import net .minecraft .network .chat .Component ;
3231import net .minecraft .resources .ResourceLocation ;
32+ import java .util .List ;
3333
3434public class ViaFabricClient implements ClientModInitializer {
35- public static final ResourceLocation DEBUG_ENTRY = MixinDebugScreenEntriesAccessor .register ("viafabric" , new DebugEntryViaFabric ());
36-
3735 private Button enableClientSideViaVersion ;
3836
3937 @ Override
@@ -44,18 +42,27 @@ public void onInitializeClient() {
4442 private void registerGui () {
4543 try {
4644 ScreenEvents .AFTER_INIT .register ((client , screen , scaledWidth , scaledHeight ) -> {
47- if (!(screen instanceof JoinMultiplayerScreen )) return ;
45+ if (!(screen instanceof JoinMultiplayerScreen )) {
46+ return ;
47+ }
48+
4849 if (enableClientSideViaVersion == null ) {
4950 enableClientSideViaVersion = new ImageButton (-1 , 10 ,
5051 40 , 20 , // Size
5152 new WidgetSprites (ResourceLocation .fromNamespaceAndPath ("viafabric" , "widget_unfocused" ), ResourceLocation .fromNamespaceAndPath ("viafabric" , "widget_focused" )),
5253 it -> Minecraft .getInstance ().setScreen (new ViaConfigScreen (screen )),
5354 Component .translatable ("gui.via_button" ));
54- Screens .getButtons (screen ).add (enableClientSideViaVersion );
5555 }
56+
5657 enableClientSideViaVersion .setX (scaledWidth / 2 + 113 );
58+ if (ViaFabric .config .isHideButton ()) {
59+ enableClientSideViaVersion .visible = false ;
60+ }
5761
58- if (ViaFabric .config .isHideButton ()) enableClientSideViaVersion .visible = false ;
62+ List <AbstractWidget > buttons = Screens .getButtons (screen );
63+ if (!buttons .contains (enableClientSideViaVersion )) {
64+ buttons .add (enableClientSideViaVersion );
65+ }
5966 });
6067 } catch (NoClassDefFoundError ignored ) {
6168 ViaFabric .JLOGGER .info ("Couldn't register screen handler as Fabric Screen isn't installed" );
0 commit comments