From 3a80c6f59ef8430bf8642f8a1b80d321deabe623 Mon Sep 17 00:00:00 2001 From: coolGi Date: Tue, 26 Sep 2023 22:53:12 +0930 Subject: [PATCH] Added nightly to be auto-updated --- .../wrappers/gui/updater/UpdateModScreen.java | 53 +++++++++++++------ .../fabric/mixins/client/MixinMinecraft.java | 4 +- .../forge/mixins/client/MixinMinecraft.java | 4 +- 3 files changed, 43 insertions(+), 18 deletions(-) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/UpdateModScreen.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/UpdateModScreen.java index 1b9aa8c1a..ed5235405 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/UpdateModScreen.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/UpdateModScreen.java @@ -2,8 +2,11 @@ package com.seibel.distanthorizons.common.wrappers.gui.updater; import com.mojang.blaze3d.platform.NativeImage; import com.mojang.blaze3d.vertex.PoseStack; +import com.seibel.distanthorizons.api.enums.config.EUpdateBranch; import com.seibel.distanthorizons.common.wrappers.gui.DhScreen; import com.seibel.distanthorizons.common.wrappers.gui.TexturedButtonWidget; +import com.seibel.distanthorizons.core.jar.ModGitInfo; +import com.seibel.distanthorizons.core.jar.installer.GitlabGetter; import com.seibel.distanthorizons.coreapi.ModInfo; import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.jar.JarUtils; @@ -34,12 +37,26 @@ public class UpdateModScreen extends DhScreen private Screen parent; private String newVersionID; + private String currentVer; + private String nextVer; + public UpdateModScreen(Screen parent, String newVersionID) { super(Translatable(ModInfo.ID + ".updater.title")); this.parent = parent; this.newVersionID = newVersionID; + + switch (Config.Client.Advanced.AutoUpdater.updateBranch.get()) { + case STABLE -> { + currentVer = ModInfo.VERSION; + nextVer = ModrinthGetter.releaseNames.get(this.newVersionID); + } + case NIGHTLY -> { + currentVer = ModGitInfo.Git_Main_Commit; + nextVer = this.newVersionID; + } + } } @Override @@ -81,21 +98,23 @@ public class UpdateModScreen extends DhScreen e.printStackTrace(); } - - this.addBtn(new TexturedButtonWidget( - // Where the button is on the screen - this.width / 2 - 97, this.height / 2 + 8, - // Width and height of the button - 20, 20, - // Offset - 0, 0, - // Some textuary stuff - 0, new ResourceLocation(ModInfo.ID, "textures/gui/changelog.png"), 20, 20, - // Create the button and tell it where to go - (buttonWidget) -> Objects.requireNonNull(minecraft).setScreen(new ChangelogScreen(this, this.newVersionID)), // TODO: Add a proper easter egg to pressing the logo (maybe with confetti) - // Add a title to the button - Translatable(ModInfo.ID + ".updater.title") - )); + if (Config.Client.Advanced.AutoUpdater.updateBranch.get() == EUpdateBranch.STABLE) + { + this.addBtn(new TexturedButtonWidget( + // Where the button is on the screen + this.width / 2 - 97, this.height / 2 + 8, + // Width and height of the button + 20, 20, + // Offset + 0, 0, + // Some textuary stuff + 0, new ResourceLocation(ModInfo.ID, "textures/gui/changelog.png"), 20, 20, + // Create the button and tell it where to go + (buttonWidget) -> Objects.requireNonNull(minecraft).setScreen(new ChangelogScreen(this, this.newVersionID)), // TODO: Add a proper easter egg to pressing the logo (maybe with confetti) + // Add a title to the button + Translatable(ModInfo.ID + ".updater.title") + )); + } this.addBtn( // Update @@ -137,7 +156,9 @@ public class UpdateModScreen extends DhScreen // Render the text's DhDrawCenteredString(matrices, this.font, Translatable(ModInfo.ID + ".updater.text1"), this.width / 2, this.height / 2 - 35, 0xFFFFFF); - DhDrawCenteredString(matrices, this.font, Translatable(ModInfo.ID + ".updater.text2", ModInfo.VERSION, ModrinthGetter.releaseNames.get(this.newVersionID)), this.width / 2, this.height / 2 - 20, 0x52FD52); + DhDrawCenteredString(matrices, this.font, + Translatable(ModInfo.ID + ".updater.text2", currentVer, nextVer), + this.width / 2, this.height / 2 - 20, 0x52FD52); // TODO: add the tooltips for the buttons super.render(matrices, mouseX, mouseY, delta); // Render the buttons diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java index 570c147f7..72e46737d 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java @@ -1,8 +1,10 @@ package com.seibel.distanthorizons.fabric.mixins.client; +import com.seibel.distanthorizons.api.enums.config.EUpdateBranch; import com.seibel.distanthorizons.common.wrappers.gui.updater.UpdateModScreen; import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; +import com.seibel.distanthorizons.core.jar.installer.GitlabGetter; import com.seibel.distanthorizons.core.jar.installer.ModrinthGetter; import com.seibel.distanthorizons.core.jar.updater.SelfUpdater; import com.seibel.distanthorizons.core.wrapperInterfaces.IVersionConstants; @@ -48,7 +50,7 @@ public class MixinMinecraft { instance.setScreen(new UpdateModScreen( new TitleScreen(false), // We don't want to use the vanilla title screen as it would fade the buttons - ModrinthGetter.getLatestIDForVersion(SingletonInjector.INSTANCE.get(IVersionConstants.class).getMinecraftVersion()) + (Config.Client.Advanced.AutoUpdater.updateBranch.get() == EUpdateBranch.STABLE ? ModrinthGetter.getLatestIDForVersion(SingletonInjector.INSTANCE.get(IVersionConstants.class).getMinecraftVersion()): GitlabGetter.INSTANCE.projectPipelines.get(0).get("sha")) )); } else diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinMinecraft.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinMinecraft.java index 91c270201..40c17ce04 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinMinecraft.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinMinecraft.java @@ -1,8 +1,10 @@ package com.seibel.distanthorizons.forge.mixins.client; +import com.seibel.distanthorizons.api.enums.config.EUpdateBranch; import com.seibel.distanthorizons.common.wrappers.gui.updater.UpdateModScreen; import com.seibel.distanthorizons.core.config.Config; import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector; +import com.seibel.distanthorizons.core.jar.installer.GitlabGetter; import com.seibel.distanthorizons.core.jar.installer.ModrinthGetter; import com.seibel.distanthorizons.core.jar.updater.SelfUpdater; import com.seibel.distanthorizons.core.wrapperInterfaces.IVersionConstants; @@ -48,7 +50,7 @@ public class MixinMinecraft { instance.setScreen(new UpdateModScreen( new TitleScreen(false), // We don't want to use the vanilla title screen as it would fade the buttons - ModrinthGetter.getLatestIDForVersion(SingletonInjector.INSTANCE.get(IVersionConstants.class).getMinecraftVersion()) + (Config.Client.Advanced.AutoUpdater.updateBranch.get() == EUpdateBranch.STABLE ? ModrinthGetter.getLatestIDForVersion(SingletonInjector.INSTANCE.get(IVersionConstants.class).getMinecraftVersion()): GitlabGetter.INSTANCE.projectPipelines.get(0).get("sha")) )); } else