package fr.username404.snowygui.mixins; import fr.username404.snowygui.ClickGui; import fr.username404.snowygui.gui.feature.ButtonImpl; import net.minecraft.client.gui.screens.TitleScreen; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(TitleScreen.class) abstract class TitleScreenMixin { @Unique private static boolean buttonsInitialized = false; @Unique private static synchronized void setButtonsInitialized() { buttonsInitialized = true; } @Inject(method = "createNormalMenuOptions", at = @At(value = "RETURN")) public void createNormalMenuOptions(int i, int j, CallbackInfoReturnable cir) { if (!buttonsInitialized) { ClickGui.INSTANCE.tick(); ButtonImpl.initButtons(); setButtonsInitialized(); } } }