From 9c5824e708442db2e6ecc387f6743090a16cc40c Mon Sep 17 00:00:00 2001 From: Alexdoru <57050655+Alexdoru@users.noreply.github.com> Date: Mon, 14 Oct 2024 01:47:08 +0200 Subject: [PATCH 1/3] add open wiki and bug report button with gtnh logo in the pause menu --- .../com/dreammaster/coremod/DreamCoreMod.java | 1 + .../mixins/early/MixinGuiIngameMenu.java | 86 ++++++++++++++++++ .../dreamcraft/textures/icon/GTNH_256x256.png | Bin 0 -> 88956 bytes 3 files changed, 87 insertions(+) create mode 100644 src/main/java/com/dreammaster/mixin/mixins/early/MixinGuiIngameMenu.java create mode 100644 src/main/resources/assets/dreamcraft/textures/icon/GTNH_256x256.png diff --git a/src/main/java/com/dreammaster/coremod/DreamCoreMod.java b/src/main/java/com/dreammaster/coremod/DreamCoreMod.java index 307b53920..d4f2b251b 100644 --- a/src/main/java/com/dreammaster/coremod/DreamCoreMod.java +++ b/src/main/java/com/dreammaster/coremod/DreamCoreMod.java @@ -106,6 +106,7 @@ public String getMixinConfig() { public List getMixins(Set loadedCoreMods) { final List mixins = new ArrayList<>(); if (FMLLaunchHandler.side().isClient()) { + mixins.add("MixinGuiIngameMenu"); mixins.add("MixinMinecraft_ConfirmExit"); mixins.add("MixinMinecraft_PackIcon"); } diff --git a/src/main/java/com/dreammaster/mixin/mixins/early/MixinGuiIngameMenu.java b/src/main/java/com/dreammaster/mixin/mixins/early/MixinGuiIngameMenu.java new file mode 100644 index 000000000..a46dfaf1d --- /dev/null +++ b/src/main/java/com/dreammaster/mixin/mixins/early/MixinGuiIngameMenu.java @@ -0,0 +1,86 @@ +package com.dreammaster.mixin.mixins.early; + +import java.net.URI; + +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiIngameMenu; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.util.ResourceLocation; + +import org.lwjgl.opengl.GL11; +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.CallbackInfo; + +import com.dreammaster.main.MainRegistry; + +@Mixin(GuiIngameMenu.class) +public class MixinGuiIngameMenu extends GuiScreen { + + @Unique + private static final ResourceLocation gtnh$Logo = new ResourceLocation( + "dreamcraft", + "textures/icon/GTNH_256x256.png"); + + @Inject(method = "initGui", at = @At("RETURN")) + private void gtnh$addGTNHButtons(CallbackInfo ci) { + final int buttonWidth = 80; + this.buttonList.add( + new GuiButton( + -161518, + this.width / 2 - 100 - 10 - buttonWidth, + this.height / 4 + 24 - 16, + buttonWidth, + 20, + "Report a bug")); + this.buttonList.add( + new GuiButton( + -8998561, + this.width / 2 - 100 - 10 - buttonWidth, + this.height / 4 + 24 - 16 + 24, + buttonWidth, + 20, + "Wiki")); + // TODO add credits page + } + + @Inject(method = "drawScreen", at = @At("RETURN")) + private void gtnh$renderGTNHlogo(int mouseX, int mouseY, float partialTicks, CallbackInfo ci) { + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, 1, 0); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + this.mc.getTextureManager().bindTexture(gtnh$Logo); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + final int drawX = this.width / 2 - 100 - 10 - 80 + (80 - 64) / 2; + final int drawY = this.height / 4 + 24 - 16 - 64; + func_146110_a(drawX, drawY, 0f, 0f, 64, 64, 64f, 64f); + GL11.glPopMatrix(); + } + + @Inject(method = "actionPerformed", at = @At("RETURN")) + private void gtnh$GTNHAction(GuiButton button, CallbackInfo ci) { + if (button.id == -161518) { + gtnh$openUrl("https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues"); + } else if (button.id == -8998561) { + gtnh$openUrl("https://wiki.gtnewhorizons.com/wiki/Main_Page"); + } + } + + @Unique + private static void gtnh$openUrl(String address) { + try { + final URI uri = new URI(address); + Class oclass = Class.forName("java.awt.Desktop"); + Object object = oclass.getMethod("getDesktop", new Class[0]).invoke(null); + oclass.getMethod("browse", new Class[] { URI.class }).invoke(object, uri); + } catch (Throwable throwable) { + MainRegistry.Logger.error("Couldn't open link", throwable); + } + } + +} diff --git a/src/main/resources/assets/dreamcraft/textures/icon/GTNH_256x256.png b/src/main/resources/assets/dreamcraft/textures/icon/GTNH_256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..a9e313186bfb8f10537439ee7f2b5fa1cdc2e39f GIT binary patch literal 88956 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 F{tq0tfM5Us literal 0 HcmV?d00001 From bcfea1b82715404c37addde0f54648f4f9bba735 Mon Sep 17 00:00:00 2001 From: Alexdoru <57050655+Alexdoru@users.noreply.github.com> Date: Tue, 15 Oct 2024 18:17:46 +0200 Subject: [PATCH 2/3] add config, localize button text, use event handler instead of a mixin --- .../client/util/GTNHPauseScreen.java | 89 +++++++++++++++++++ .../com/dreammaster/config/CoreModConfig.java | 7 ++ .../com/dreammaster/coremod/DreamCoreMod.java | 1 - .../com/dreammaster/main/MainRegistry.java | 5 ++ .../mixins/early/MixinGuiIngameMenu.java | 86 ------------------ .../assets/dreamcraft/lang/en_US.lang | 5 +- 6 files changed, 105 insertions(+), 88 deletions(-) create mode 100644 src/main/java/com/dreammaster/client/util/GTNHPauseScreen.java delete mode 100644 src/main/java/com/dreammaster/mixin/mixins/early/MixinGuiIngameMenu.java diff --git a/src/main/java/com/dreammaster/client/util/GTNHPauseScreen.java b/src/main/java/com/dreammaster/client/util/GTNHPauseScreen.java new file mode 100644 index 000000000..740c0e5ba --- /dev/null +++ b/src/main/java/com/dreammaster/client/util/GTNHPauseScreen.java @@ -0,0 +1,89 @@ +package com.dreammaster.client.util; + +import java.net.URI; + +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiIngameMenu; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import net.minecraftforge.client.event.GuiScreenEvent; + +import org.lwjgl.opengl.GL11; + +import com.dreammaster.main.MainRegistry; + +import cpw.mods.fml.common.eventhandler.EventPriority; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class GTNHPauseScreen { + + private static final ResourceLocation GTNH_LOGO = new ResourceLocation( + "dreamcraft", + "textures/icon/GTNH_256x256.png"); + private static final int BUG_BUTTON_ID = -161518; + private static final int WIKI_BUTTON_ID = -8998561; + + @SuppressWarnings("unchecked") + @SubscribeEvent + public void onInitGui(GuiScreenEvent.InitGuiEvent.Post event) { + if (!(event.gui instanceof GuiIngameMenu)) return; + final int buttonWidth = 80; + event.buttonList.add( + new GuiButton( + BUG_BUTTON_ID, + event.gui.width / 2 - 100 - 10 - buttonWidth, + event.gui.height / 4 + 24 - 16, + buttonWidth, + 20, + StatCollector.translateToLocal("dreamcraft.pausemenu.bug"))); + event.buttonList.add( + new GuiButton( + WIKI_BUTTON_ID, + event.gui.width / 2 - 100 - 10 - buttonWidth, + event.gui.height / 4 + 24 - 16 + 24, + buttonWidth, + 20, + StatCollector.translateToLocal("dreamcraft.pausemenu.wiki"))); + // TODO add credits page + } + + @SubscribeEvent(priority = EventPriority.HIGHEST) + public void onDrawScreen(GuiScreenEvent.DrawScreenEvent.Post event) { + if (!(event.gui instanceof GuiIngameMenu)) return; + GL11.glPushMatrix(); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, 1, 0); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + event.gui.mc.getTextureManager().bindTexture(GTNH_LOGO); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + final int drawX = event.gui.width / 2 - 100 - 10 - 80 + (80 - 64) / 2; + final int drawY = event.gui.height / 4 + 24 - 16 - 64; + Gui.func_146110_a(drawX, drawY, 0f, 0f, 64, 64, 64f, 64f); + GL11.glPopMatrix(); + } + + @SubscribeEvent + public void onActionPerformed(GuiScreenEvent.ActionPerformedEvent.Post event) { + if (!(event.gui instanceof GuiIngameMenu)) return; + if (event.button.id == BUG_BUTTON_ID) { + gtnh$openUrl("https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues"); + } else if (event.button.id == WIKI_BUTTON_ID) { + gtnh$openUrl("https://wiki.gtnewhorizons.com/wiki/Main_Page"); + } + } + + private static void gtnh$openUrl(String address) { + try { + final URI uri = new URI(address); + Class oclass = Class.forName("java.awt.Desktop"); + Object object = oclass.getMethod("getDesktop", new Class[0]).invoke(null); + oclass.getMethod("browse", new Class[] { URI.class }).invoke(object, uri); + } catch (Throwable throwable) { + MainRegistry.Logger.error("Couldn't open link", throwable); + } + } + +} diff --git a/src/main/java/com/dreammaster/config/CoreModConfig.java b/src/main/java/com/dreammaster/config/CoreModConfig.java index 2143e3ac5..a4414826e 100644 --- a/src/main/java/com/dreammaster/config/CoreModConfig.java +++ b/src/main/java/com/dreammaster/config/CoreModConfig.java @@ -15,6 +15,7 @@ public CoreModConfig(File pConfigBaseDirectory, String pModCollectionDirectory, public boolean OreDictItems_Enabled; public static boolean ModLoginMessage_Enabled; + public boolean gtnhPauseMenuButtons; public static String ModPackVersion = Refstrings.MODPACKPACK_VERSION; public boolean ModHazardousItems_Enabled; @@ -57,6 +58,7 @@ public CoreModConfig(File pConfigBaseDirectory, String pModCollectionDirectory, @Override protected void PreInit() { ModLoginMessage_Enabled = true; + gtnhPauseMenuButtons = true; ModDebugVersionDisplay_Enabled = true; ModHazardousItems_Enabled = false; ModCustomToolTips_Enabled = false; @@ -99,6 +101,11 @@ protected void Init() { "Modules", ModLoginMessage_Enabled, "Set to true to show login message with modpack version"); + gtnhPauseMenuButtons = _mainConfig.getBoolean( + "GTNH Pause menu buttons", + "Modules", + gtnhPauseMenuButtons, + "Set to true to display GTNH buttons in the pause menu"); ModPackVersion = _mainConfig.getString("ModPackVersion", "Modules", ModPackVersion, "Version of the Modpack"); ModDebugVersionDisplay_Enabled = _mainConfig.getBoolean( "DebugVersionDisplay", diff --git a/src/main/java/com/dreammaster/coremod/DreamCoreMod.java b/src/main/java/com/dreammaster/coremod/DreamCoreMod.java index d4f2b251b..307b53920 100644 --- a/src/main/java/com/dreammaster/coremod/DreamCoreMod.java +++ b/src/main/java/com/dreammaster/coremod/DreamCoreMod.java @@ -106,7 +106,6 @@ public String getMixinConfig() { public List getMixins(Set loadedCoreMods) { final List mixins = new ArrayList<>(); if (FMLLaunchHandler.side().isClient()) { - mixins.add("MixinGuiIngameMenu"); mixins.add("MixinMinecraft_ConfirmExit"); mixins.add("MixinMinecraft_PackIcon"); } diff --git a/src/main/java/com/dreammaster/main/MainRegistry.java b/src/main/java/com/dreammaster/main/MainRegistry.java index d652fabee..88c38b678 100644 --- a/src/main/java/com/dreammaster/main/MainRegistry.java +++ b/src/main/java/com/dreammaster/main/MainRegistry.java @@ -35,6 +35,7 @@ import com.dreammaster.baubles.OvenGlove; import com.dreammaster.baubles.WitherProtectionRing; import com.dreammaster.block.BlockList; +import com.dreammaster.client.util.GTNHPauseScreen; import com.dreammaster.command.AllPurposeDebugCommand; import com.dreammaster.command.CustomDropsCommand; import com.dreammaster.command.CustomFuelsCommand; @@ -368,6 +369,10 @@ public void load(FMLInitializationEvent event) { BWGlassAdder.registerGlasses(); + if (CoreConfig.gtnhPauseMenuButtons && event.getSide().isClient()) { + MinecraftForge.EVENT_BUS.register(new GTNHPauseScreen()); + } + } public static Block _mBlockBabyChest = new BlockBabyChest(); diff --git a/src/main/java/com/dreammaster/mixin/mixins/early/MixinGuiIngameMenu.java b/src/main/java/com/dreammaster/mixin/mixins/early/MixinGuiIngameMenu.java deleted file mode 100644 index a46dfaf1d..000000000 --- a/src/main/java/com/dreammaster/mixin/mixins/early/MixinGuiIngameMenu.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.dreammaster.mixin.mixins.early; - -import java.net.URI; - -import net.minecraft.client.gui.GuiButton; -import net.minecraft.client.gui.GuiIngameMenu; -import net.minecraft.client.gui.GuiScreen; -import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.util.ResourceLocation; - -import org.lwjgl.opengl.GL11; -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.CallbackInfo; - -import com.dreammaster.main.MainRegistry; - -@Mixin(GuiIngameMenu.class) -public class MixinGuiIngameMenu extends GuiScreen { - - @Unique - private static final ResourceLocation gtnh$Logo = new ResourceLocation( - "dreamcraft", - "textures/icon/GTNH_256x256.png"); - - @Inject(method = "initGui", at = @At("RETURN")) - private void gtnh$addGTNHButtons(CallbackInfo ci) { - final int buttonWidth = 80; - this.buttonList.add( - new GuiButton( - -161518, - this.width / 2 - 100 - 10 - buttonWidth, - this.height / 4 + 24 - 16, - buttonWidth, - 20, - "Report a bug")); - this.buttonList.add( - new GuiButton( - -8998561, - this.width / 2 - 100 - 10 - buttonWidth, - this.height / 4 + 24 - 16 + 24, - buttonWidth, - 20, - "Wiki")); - // TODO add credits page - } - - @Inject(method = "drawScreen", at = @At("RETURN")) - private void gtnh$renderGTNHlogo(int mouseX, int mouseY, float partialTicks, CallbackInfo ci) { - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_ALPHA_TEST); - GL11.glEnable(GL11.GL_BLEND); - OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA, 1, 0); - GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); - this.mc.getTextureManager().bindTexture(gtnh$Logo); - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - final int drawX = this.width / 2 - 100 - 10 - 80 + (80 - 64) / 2; - final int drawY = this.height / 4 + 24 - 16 - 64; - func_146110_a(drawX, drawY, 0f, 0f, 64, 64, 64f, 64f); - GL11.glPopMatrix(); - } - - @Inject(method = "actionPerformed", at = @At("RETURN")) - private void gtnh$GTNHAction(GuiButton button, CallbackInfo ci) { - if (button.id == -161518) { - gtnh$openUrl("https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues"); - } else if (button.id == -8998561) { - gtnh$openUrl("https://wiki.gtnewhorizons.com/wiki/Main_Page"); - } - } - - @Unique - private static void gtnh$openUrl(String address) { - try { - final URI uri = new URI(address); - Class oclass = Class.forName("java.awt.Desktop"); - Object object = oclass.getMethod("getDesktop", new Class[0]).invoke(null); - oclass.getMethod("browse", new Class[] { URI.class }).invoke(object, uri); - } catch (Throwable throwable) { - MainRegistry.Logger.error("Couldn't open link", throwable); - } - } - -} diff --git a/src/main/resources/assets/dreamcraft/lang/en_US.lang b/src/main/resources/assets/dreamcraft/lang/en_US.lang index 5d4f6e3ec..a66c5719d 100644 --- a/src/main/resources/assets/dreamcraft/lang/en_US.lang +++ b/src/main/resources/assets/dreamcraft/lang/en_US.lang @@ -1748,4 +1748,7 @@ dreamcraft.welcome.click_wiki=Click to open the wiki! dreamcraft.welcome.report_bug=Please report bugs on Github : dreamcraft.welcome.click_github=Click to open the Github! dreamcraft.welcome.visitdiscord=Visit our discord at -dreamcraft.welcome.click_discord=Click to open discord! \ No newline at end of file +dreamcraft.welcome.click_discord=Click to open discord! + +dreamcraft.pausemenu.bug=Report a Bug +dreamcraft.pausemenu.wiki=Open the Wiki \ No newline at end of file From ecb7fe26d0762f95e245d098cc71d2c7013b88fd Mon Sep 17 00:00:00 2001 From: Alexdoru <57050655+Alexdoru@users.noreply.github.com> Date: Fri, 18 Oct 2024 01:45:28 +0200 Subject: [PATCH 3/3] add dep on GTNHlib to open the URLs --- dependencies.gradle | 4 +++- .../java/com/dreammaster/client/util/GTNHPauseScreen.java | 5 ++--- src/main/java/com/dreammaster/main/MainRegistry.java | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index b09e54323..be05b3296 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -1,10 +1,12 @@ // Add your dependencies here dependencies { - api("com.github.GTNewHorizons:GT5-Unofficial:5.09.50.41:dev") + api("com.github.GTNewHorizons:GT5-Unofficial:5.09.50.43:dev") api("com.github.GTNewHorizons:Yamcl:0.6.0:dev") api("com.github.GTNewHorizons:Baubles:1.0.4:dev") + implementation("com.github.GTNewHorizons:GTNHLib:0.5.15:dev") + compileOnly("com.github.GTNewHorizons:AkashicTome:1.1.7:dev") { transitive = false } compileOnly("com.github.GTNewHorizons:Avaritia:1.54:dev") { transitive = false } compileOnly("com.github.GTNewHorizons:twilightforest:2.6.34:dev") { transitive = false } diff --git a/src/main/java/com/dreammaster/client/util/GTNHPauseScreen.java b/src/main/java/com/dreammaster/client/util/GTNHPauseScreen.java index 740c0e5ba..6ba05e5e1 100644 --- a/src/main/java/com/dreammaster/client/util/GTNHPauseScreen.java +++ b/src/main/java/com/dreammaster/client/util/GTNHPauseScreen.java @@ -13,6 +13,7 @@ import org.lwjgl.opengl.GL11; import com.dreammaster.main.MainRegistry; +import com.gtnewhorizon.gtnhlib.util.FilesUtil; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -78,9 +79,7 @@ public void onActionPerformed(GuiScreenEvent.ActionPerformedEvent.Post event) { private static void gtnh$openUrl(String address) { try { final URI uri = new URI(address); - Class oclass = Class.forName("java.awt.Desktop"); - Object object = oclass.getMethod("getDesktop", new Class[0]).invoke(null); - oclass.getMethod("browse", new Class[] { URI.class }).invoke(object, uri); + FilesUtil.openUri(uri); } catch (Throwable throwable) { MainRegistry.Logger.error("Couldn't open link", throwable); } diff --git a/src/main/java/com/dreammaster/main/MainRegistry.java b/src/main/java/com/dreammaster/main/MainRegistry.java index 88c38b678..02e649ec9 100644 --- a/src/main/java/com/dreammaster/main/MainRegistry.java +++ b/src/main/java/com/dreammaster/main/MainRegistry.java @@ -113,6 +113,7 @@ name = Refstrings.NAME, version = Refstrings.VERSION, dependencies = "required-before:gregtech;" + "required-after:Forge@[10.13.2.1291,);" + + "required-after:gtnhlib@[0.5.15,);" + "required-after:YAMCore@[0.5.76,);" + "required-after:Baubles@[1.0.1.10,);" + "after:EnderIO;"