Fix auto updater checking when disabled

This commit is contained in:
James Seibel
2026-06-06 19:38:55 -05:00
parent 679f871788
commit 8bd6b4837c
@@ -57,13 +57,13 @@ public class SelfUpdater
private static final DhLogger LOGGER = new DhLoggerBuilder().build(); private static final DhLogger LOGGER = new DhLoggerBuilder().build();
private static final IMinecraftClientWrapper MC_CLIENT = SingletonInjector.INSTANCE.get(IMinecraftClientWrapper.class); private static final IMinecraftClientWrapper MC_CLIENT = SingletonInjector.INSTANCE.get(IMinecraftClientWrapper.class);
private static final IVersionConstants VERSION_CONSTANTS = SingletonInjector.INSTANCE.get(IVersionConstants.class);
private static final String MC_VERSION = VERSION_CONSTANTS.getMinecraftVersion();
/** As we cannot delete(or replace) the jar while the mod is running, we just have this to delete it once the game closes */ /** As we cannot delete(or replace) the jar while the mod is running, we just have this to delete it once the game closes */
public static boolean deleteOldJarOnJvmShutdown = false; public static boolean deleteOldJarOnJvmShutdown = false;
private static String currentJarSha = "";
private static String mcVersion = SingletonInjector.INSTANCE.get(IVersionConstants.class).getMinecraftVersion();
public static File newFileLocation; public static File newFileLocation;
@@ -75,29 +75,33 @@ public class SelfUpdater
*/ */
public static boolean onStart() public static boolean onStart()
{ {
LOGGER.info("Checking for Distant Horizons update"); if (!Config.Client.Advanced.AutoUpdater.enableAutoUpdater.get())
try
{ {
currentJarSha = JarUtils.getFileChecksum(MessageDigest.getInstance("SHA"), JarUtils.jarFile); LOGGER.info("Distant Horizons auto update disabled.");
}
catch (Exception e)
{
LOGGER.error("Unable to get existing jar checksum, error: ["+e.getMessage()+"].", e);
return false; return false;
} }
boolean returnValue = false;
try try
{ {
EDhApiUpdateBranch updateBranch = EDhApiUpdateBranch.convertAutoToStableOrNightly(Config.Client.Advanced.AutoUpdater.updateBranch.get()); EDhApiUpdateBranch updateBranch = EDhApiUpdateBranch.convertAutoToStableOrNightly(Config.Client.Advanced.AutoUpdater.updateBranch.get());
returnValue = (updateBranch == EDhApiUpdateBranch.STABLE) ? onStableStart() : onNightlyStart();
LOGGER.info("Checking for Distant Horizons ["+updateBranch+"] update for MC ["+MC_VERSION+"]...");
if (updateBranch == EDhApiUpdateBranch.STABLE)
{
return onStableStart();
}
else
{
return onNightlyStart();
}
} }
catch (Exception e) // Shouldn't be needed, but just in case catch (Exception e) // Shouldn't be needed, but just in case
{ {
LOGGER.warn("Unexpected updater startup error: ["+e.getMessage()+"].", e); LOGGER.warn("Unexpected updater startup error: ["+e.getMessage()+"].", e);
return false;
} }
return returnValue;
} }
private static boolean onStableStart() private static boolean onStableStart()
{ {
@@ -108,15 +112,19 @@ public class SelfUpdater
LOGGER.warn("Unable to find any nightly build pipelines, auto update will be unavailable."); LOGGER.warn("Unable to find any nightly build pipelines, auto update will be unavailable.");
return false; return false;
} }
if (!ModrinthGetter.mcVersions.contains(mcVersion)) if (!ModrinthGetter.mcVersions.contains(MC_VERSION))
{ {
LOGGER.warn("Minecraft version ["+ mcVersion +"] is not findable on Modrinth, only findable versions are ["+ StringUtil.join(", ", ModrinthGetter.mcVersions) +"]"); LOGGER.warn("Minecraft version ["+ MC_VERSION +"] is not findable on Modrinth, only findable versions are ["+ StringUtil.join(", ", ModrinthGetter.mcVersions) +"]");
return false; return false;
} }
try try
{ {
newFileLocation = JarUtils.jarFile.getParentFile().toPath().resolve("update").resolve(ModInfo.NAME + "-" + ModrinthGetter.getLatestNameForVersion(mcVersion) + "-" + mcVersion + ".jar").toFile(); newFileLocation = JarUtils.jarFile
.getParentFile().toPath()
.resolve("update")
.resolve(ModInfo.NAME + "-" + ModrinthGetter.getLatestNameForVersion(MC_VERSION) + "-" + MC_VERSION + ".jar")
.toFile();
} }
catch (Exception e) catch (Exception e)
{ {
@@ -124,8 +132,19 @@ public class SelfUpdater
return false; return false;
} }
String currentJarSha;
try
{
currentJarSha = JarUtils.getFileChecksum(MessageDigest.getInstance("SHA"), JarUtils.jarFile);
}
catch (Exception e)
{
LOGGER.error("Unable to get existing jar checksum, error: ["+e.getMessage()+"].", e);
return false;
}
// Check the sha's of both our stuff // Check the sha's of both our stuff
if (currentJarSha.equals(ModrinthGetter.getLatestShaForVersion(mcVersion))) if (currentJarSha.equals(ModrinthGetter.getLatestShaForVersion(MC_VERSION)))
{ {
LOGGER.info("Distant Horizons already up to date."); LOGGER.info("Distant Horizons already up to date.");
return false; return false;
@@ -137,21 +156,23 @@ public class SelfUpdater
} }
LOGGER.info("New version (" + ModrinthGetter.getLatestNameForVersion(mcVersion) + ") of Distant Horizons is available"); LOGGER.info("New version (" + ModrinthGetter.getLatestNameForVersion(MC_VERSION) + ") of Distant Horizons is available");
if (Config.Client.Advanced.AutoUpdater.enableSilentUpdates.get()) if (Config.Client.Advanced.AutoUpdater.enableSilentUpdates.get())
{ {
// Auto-update mod // Auto-update mod
updateMod(mcVersion, newFileLocation); updateMod(MC_VERSION, newFileLocation);
return false; return false;
} }
else else
{ {
LOGGER.info("Download link: " + ModrinthGetter.getLatestDownloadForVersion(mcVersion)); LOGGER.info("Download link: " + ModrinthGetter.getLatestDownloadForVersion(MC_VERSION));
} }
return true; return true;
} }
private static boolean onNightlyStart() private static boolean onNightlyStart()
{ {
LOGGER.info("Checking for Distant Horizons Nightly update...");
if (GitlabGetter.INSTANCE.projectPipelines.size() == 0) if (GitlabGetter.INSTANCE.projectPipelines.size() == 0)
{ {
LOGGER.info("Unable to find any nightly build pipelines, auto update will be unavailable."); LOGGER.info("Unable to find any nightly build pipelines, auto update will be unavailable.");
@@ -171,9 +192,9 @@ public class SelfUpdater
return false; return false;
} }
if (!GitlabGetter.INSTANCE.getDownloads(pipeline.get("id")).containsKey(mcVersion)) if (!GitlabGetter.INSTANCE.getDownloads(pipeline.get("id")).containsKey(MC_VERSION))
{ {
LOGGER.warn("Minecraft version ["+ mcVersion +"] is not findable on Gitlab, findable versions are ["+ StringUtil.join(", ", GitlabGetter.INSTANCE.getDownloads(pipeline.get("id")).keySet().toArray()) +"]."); LOGGER.warn("Minecraft version ["+ MC_VERSION +"] is not findable on Gitlab, findable versions are ["+ StringUtil.join(", ", GitlabGetter.INSTANCE.getDownloads(pipeline.get("id")).keySet().toArray()) +"].");
return false; return false;
} }
@@ -200,12 +221,12 @@ public class SelfUpdater
if (Config.Client.Advanced.AutoUpdater.enableSilentUpdates.get()) if (Config.Client.Advanced.AutoUpdater.enableSilentUpdates.get())
{ {
// Auto-update mod // Auto-update mod
updateMod(mcVersion, newFileLocation); updateMod(MC_VERSION, newFileLocation);
return false; return false;
} }
else else
{ {
LOGGER.info("Download link: " + GitlabGetter.getLatestForVersion(mcVersion)); LOGGER.info("Download link: " + GitlabGetter.getLatestForVersion(MC_VERSION));
} }
return true; return true;
} }