diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/HDSkins.java b/src/hdskins/java/com/voxelmodpack/hdskins/HDSkins.java index 4c3263a3..b153d714 100644 --- a/src/hdskins/java/com/voxelmodpack/hdskins/HDSkins.java +++ b/src/hdskins/java/com/voxelmodpack/hdskins/HDSkins.java @@ -7,6 +7,7 @@ import com.voxelmodpack.hdskins.gui.RenderPlayerModel; import com.voxelmodpack.hdskins.skins.SkinServer; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.IReloadableResourceManager; +import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.client.registry.RenderingRegistry; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; @@ -19,13 +20,14 @@ import java.nio.file.NoSuchFileException; import java.nio.file.Path; import java.util.List; -@Mod(modid = "hdskins", name = "HD Skins", version = "4.0.0") -@Mod.EventBusSubscriber +@Mod(modid = "hdskins", name = "HD Skins", version = "5.0.0") public class HDSkins { @Mod.EventHandler public void init(FMLPreInitializationEvent event) { + MinecraftForge.EVENT_BUS.register(this); + Path json = event.getModConfigurationDirectory().toPath().resolve("skinservers.txt"); List list = SkinServer.defaultServers; try { @@ -54,10 +56,10 @@ public class HDSkins { // GLWindow.current(); } - private static boolean fullscreen; + private boolean fullscreen; @SubscribeEvent - public static void onFullScreenToggled(TickEvent.ClientTickEvent event) { + public void onFullScreenToggled(TickEvent.ClientTickEvent event) { if (event.phase == TickEvent.Phase.START) { fullscreen = Minecraft.getMinecraft().isFullScreen(); } else if (Minecraft.getMinecraft().isFullScreen() != fullscreen) { @@ -65,4 +67,5 @@ public class HDSkins { GLWindow.refresh(Minecraft.getMinecraft().isFullScreen()); } } + } diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/gui/MainMenuListener.java b/src/hdskins/java/com/voxelmodpack/hdskins/gui/MainMenuListener.java new file mode 100644 index 00000000..637a019a --- /dev/null +++ b/src/hdskins/java/com/voxelmodpack/hdskins/gui/MainMenuListener.java @@ -0,0 +1,36 @@ +package com.voxelmodpack.hdskins.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiMainMenu; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.event.GuiScreenEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.relauncher.Side; + +@Mod.EventBusSubscriber(modid = "hdskins", value = Side.CLIENT) +public class MainMenuListener { + + private static final int SKINS = 5000; + + @SubscribeEvent + public static void openGui(GuiScreenEvent.InitGuiEvent.Post event) { + GuiScreen gui = event.getGui(); + if (gui instanceof GuiMainMenu) { + ItemStack itemStack = new ItemStack(Items.LEATHER_LEGGINGS); + Items.LEATHER_LEGGINGS.setColor(itemStack, 0x3c5dcb); + GuiButton btn = new GuiItemStackButton(SKINS, gui.width - 50, gui.height - 50, itemStack); + event.getButtonList().add(btn); + } + } + + @SubscribeEvent + public static void actionPerformed(GuiScreenEvent.ActionPerformedEvent.Post event) { + if (event.getGui() instanceof GuiMainMenu && event.getButton().id == SKINS) { + Minecraft.getMinecraft().displayGuiScreen(new GuiSkins()); + } + } +} diff --git a/src/hdskins/java/com/voxelmodpack/hdskins/mixin/MixinGuiMainMenu.java b/src/hdskins/java/com/voxelmodpack/hdskins/mixin/MixinGuiMainMenu.java deleted file mode 100644 index 9f1e26fc..00000000 --- a/src/hdskins/java/com/voxelmodpack/hdskins/mixin/MixinGuiMainMenu.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.voxelmodpack.hdskins.mixin; - -import com.voxelmodpack.hdskins.gui.GuiItemStackButton; -import com.voxelmodpack.hdskins.gui.GuiSkins; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiMainMenu; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(GuiMainMenu.class) -public class MixinGuiMainMenu extends GuiScreen { - - private static final int SKINS = 5000; - - @Inject(method = "initGui()V", at = @At("RETURN")) - private void onInit(CallbackInfo ci) { - ItemStack itemStack = new ItemStack(Items.LEATHER_LEGGINGS); - Items.LEATHER_LEGGINGS.setColor(itemStack, 0x3c5dcb); - this.buttonList.add(new GuiItemStackButton(SKINS, width - 50, height - 50, itemStack)); - } - - @Inject(method = "actionPerformed(Lnet/minecraft/client/gui/GuiButton;)V", at = @At("RETURN")) - private void onActionPerformed(GuiButton button, CallbackInfo ci) { - if (button.id == SKINS) { - this.mc.displayGuiScreen(new GuiSkins()); - } - } - -} diff --git a/src/hdskins/resources/hdskins.mixin.json b/src/hdskins/resources/hdskins.mixin.json index 130a9936..5284401d 100644 --- a/src/hdskins/resources/hdskins.mixin.json +++ b/src/hdskins/resources/hdskins.mixin.json @@ -5,7 +5,6 @@ "refmap": "hdskins.mixin.refmap.json", "mixins": [ "MixinMinecraft", - "MixinGuiMainMenu", "MixinImageBufferDownload", "MixinPlayerInfo", "MixinSkullRenderer"