From f251c90472948b7271e790b2646556755e63cb57 Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sat, 1 Mar 2025 09:13:47 -0600 Subject: [PATCH] Fix crashing on MC 1.20.1 and older when updates aren't found --- .../fabric/mixins/client/MixinMinecraft.java | 20 +++++++++++++------ .../forge/mixins/client/MixinMinecraft.java | 19 +++++++++++++----- .../mixins/client/MixinMinecraft.java | 3 +-- 3 files changed, 29 insertions(+), 13 deletions(-) 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 174b970d7..815fa8ec3 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 @@ -76,10 +76,19 @@ public abstract class MixinMinecraft if (SelfUpdater.onStart() || DEBUG_ALWAYS_SHOW_UPDATER) { - instance.setScreen(new UpdateModScreen( - new TitleScreen(false), // We don't want to use the vanilla title screen as it would fade the buttons - (Config.Client.Advanced.AutoUpdater.updateBranch.get() == EDhApiUpdateBranch.STABLE ? ModrinthGetter.getLatestIDForVersion(SingletonInjector.INSTANCE.get(IVersionConstants.class).getMinecraftVersion()): GitlabGetter.INSTANCE.projectPipelines.get(0).get("sha")) - )); + try + { + instance.setScreen(new UpdateModScreen( + new TitleScreen(false), // We don't want to use the vanilla title screen as it would fade the buttons + (Config.Client.Advanced.AutoUpdater.updateBranch.get() == EDhApiUpdateBranch.STABLE ? ModrinthGetter.getLatestIDForVersion(SingletonInjector.INSTANCE.get(IVersionConstants.class).getMinecraftVersion()): GitlabGetter.INSTANCE.projectPipelines.get(0).get("sha")) + )); + } + catch (Exception e) + { + // info instead of error since this can be ignored and probably just means + // there isn't a new DH version available + LOGGER.info("Unable to show DH update screen, reason: ["+e.getMessage()+"]."); + } } else { @@ -124,14 +133,13 @@ public abstract class MixinMinecraft { try { - Minecraft.getInstance().setScreen(new UpdateModScreen( // TODO: Change to runnable, instead of tittle screen new TitleScreen(false), // We don't want to use the vanilla title screen as it would fade the buttons versionId )); } - catch (IllegalArgumentException e) + catch (Exception e) { // info instead of error since this can be ignored and probably just means // there isn't a new DH version available 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 ed16faadc..f479194d3 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 @@ -57,10 +57,19 @@ public class MixinMinecraft if (SelfUpdater.onStart()) { - instance.setScreen(new UpdateModScreen( - new TitleScreen(false), // We don't want to use the vanilla title screen as it would fade the buttons - (Config.Client.Advanced.AutoUpdater.updateBranch.get() == EDhApiUpdateBranch.STABLE ? ModrinthGetter.getLatestIDForVersion(SingletonInjector.INSTANCE.get(IVersionConstants.class).getMinecraftVersion()): GitlabGetter.INSTANCE.projectPipelines.get(0).get("sha")) - )); + try + { + instance.setScreen(new UpdateModScreen( + new TitleScreen(false), // We don't want to use the vanilla title screen as it would fade the buttons + (Config.Client.Advanced.AutoUpdater.updateBranch.get() == EDhApiUpdateBranch.STABLE ? ModrinthGetter.getLatestIDForVersion(SingletonInjector.INSTANCE.get(IVersionConstants.class).getMinecraftVersion()): GitlabGetter.INSTANCE.projectPipelines.get(0).get("sha")) + )); + } + catch (Exception e) + { + // info instead of error since this can be ignored and probably just means + // there isn't a new DH version available + LOGGER.info("Unable to show DH update screen, reason: ["+e.getMessage()+"]."); + } } else { @@ -108,7 +117,7 @@ public class MixinMinecraft versionId )); } - catch (IllegalArgumentException e) + catch (Exception e) { // info instead of error since this can be ignored and probably just means // there isn't a new DH version available diff --git a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinMinecraft.java b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinMinecraft.java index bde4eb7d8..3c4487039 100644 --- a/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinMinecraft.java +++ b/neoforge/src/main/java/com/seibel/distanthorizons/neoforge/mixins/client/MixinMinecraft.java @@ -76,14 +76,13 @@ public class MixinMinecraft { try { - Minecraft.getInstance().setScreen(new UpdateModScreen( // TODO: Change to runnable, instead of tittle screen new TitleScreen(false), // We don't want to use the vanilla title screen as it would fade the buttons versionId )); } - catch (IllegalArgumentException e) + catch (Exception e) { // info instead of error since this can be ignored and probably just means // there isn't a new DH version available