aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/eu/olli/cowmoonication/util/VersionChecker.java
diff options
context:
space:
mode:
authorCow <cow@volloeko.de>2020-07-05 05:42:45 +0200
committerCow <cow@volloeko.de>2020-07-05 05:42:45 +0200
commit1b446698398c648b38311975a6cfd54859ea5cfe (patch)
tree521ecc4ce9ad968281094eb8c5453dca606931e3 /src/main/java/eu/olli/cowmoonication/util/VersionChecker.java
parentedaca1fd41a612c71c526ceb20b89c5dec2d81b3 (diff)
downloadCowlection-1b446698398c648b38311975a6cfd54859ea5cfe.tar.gz
Cowlection-1b446698398c648b38311975a6cfd54859ea5cfe.tar.bz2
Cowlection-1b446698398c648b38311975a6cfd54859ea5cfe.zip
Renamed mod to Cowlection
Bumped version to 1.8.9-0.7.0
Diffstat (limited to 'src/main/java/eu/olli/cowmoonication/util/VersionChecker.java')
-rw-r--r--src/main/java/eu/olli/cowmoonication/util/VersionChecker.java140
1 files changed, 0 insertions, 140 deletions
diff --git a/src/main/java/eu/olli/cowmoonication/util/VersionChecker.java b/src/main/java/eu/olli/cowmoonication/util/VersionChecker.java
deleted file mode 100644
index 902d1e0..0000000
--- a/src/main/java/eu/olli/cowmoonication/util/VersionChecker.java
+++ /dev/null
@@ -1,140 +0,0 @@
-package eu.olli.cowmoonication.util;
-
-import eu.olli.cowmoonication.Cowmoonication;
-import eu.olli.cowmoonication.config.MooConfig;
-import net.minecraft.client.Minecraft;
-import net.minecraft.event.ClickEvent;
-import net.minecraft.event.HoverEvent;
-import net.minecraft.util.ChatComponentText;
-import net.minecraft.util.ChatStyle;
-import net.minecraft.util.EnumChatFormatting;
-import net.minecraft.util.IChatComponent;
-import net.minecraftforge.common.ForgeModContainer;
-import net.minecraftforge.common.ForgeVersion;
-import net.minecraftforge.fml.common.Loader;
-
-import java.util.concurrent.TimeUnit;
-
-/**
- * @see ForgeVersion
- */
-public class VersionChecker {
- /**
- * Cooldown between to update checks in minutes
- */
- private static final int CHECK_COOLDOWN = 15;
- private static final String CHANGELOG_URL = Cowmoonication.GITURL + "blob/master/CHANGELOG.md";
- private final Cowmoonication main;
- private long lastCheck;
- private String newVersion;
- private String downloadUrl;
-
- public VersionChecker(Cowmoonication main) {
- this.main = main;
- this.lastCheck = Minecraft.getSystemTime();
- newVersion = "[newVersion]";
- downloadUrl = Cowmoonication.GITURL + "releases";
- }
-
- public boolean runUpdateCheck(boolean isCommandTriggered) {
- if (isCommandTriggered || (!ForgeModContainer.disableVersionCheck && MooConfig.doUpdateCheck)) {
- Runnable handleResults = () -> main.getVersionChecker().handleVersionStatus(isCommandTriggered);
-
- long now = Minecraft.getSystemTime();
-
- // only re-run if last check was >CHECK_COOLDOWN minutes ago
- if (getNextCheck() < 0) { // next allowed check is "in the past", so we're good to go
- lastCheck = now;
- ForgeVersion.startVersionCheck();
-
- // check status after 5 seconds - hopefully that's enough to check
- new TickDelay(handleResults, 5 * 20);
- return true;
- } else {
- new TickDelay(handleResults, 1);
- }
- }
- return false;
- }
-
- public void handleVersionStatus(boolean isCommandTriggered) {
- ForgeVersion.CheckResult versionResult = ForgeVersion.getResult(Loader.instance().activeModContainer());
- if (versionResult.target != null) {
- newVersion = versionResult.target.toString();
- downloadUrl = Cowmoonication.GITURL + "releases/download/v" + newVersion + "/" + Cowmoonication.MODNAME.replace(" ", "") + "-" + newVersion + ".jar";
- }
-
- IChatComponent statusMsg = null;
-
- if (isCommandTriggered) {
- if (versionResult.status == ForgeVersion.Status.UP_TO_DATE) {
- // up to date
- statusMsg = new ChatComponentText("\u2714 You're running the latest version (" + Cowmoonication.VERSION + ").").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GREEN));
- } else if (versionResult.status == ForgeVersion.Status.PENDING) {
- // pending
- statusMsg = new ChatComponentText("\u279C " + "Version check either failed or is still running.").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW))
- .appendSibling(new ChatComponentText("\n \u278A Check for results again in a few seconds with " + EnumChatFormatting.GOLD + "/moo version").setChatStyle(new ChatStyle()
- .setColor(EnumChatFormatting.YELLOW)
- .setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/moo version"))
- .setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ChatComponentText(EnumChatFormatting.YELLOW + "Run " + EnumChatFormatting.GOLD + "/moo version")))))
- .appendSibling(new ChatComponentText("\n \u278B Re-run update check with " + EnumChatFormatting.GOLD + "/moo update").setChatStyle(new ChatStyle()
- .setColor(EnumChatFormatting.YELLOW)
- .setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/moo update"))
- .setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ChatComponentText(EnumChatFormatting.YELLOW + "Run " + EnumChatFormatting.GOLD + "/moo update")))));
- } else if (versionResult.status == ForgeVersion.Status.FAILED) {
- // check failed
- statusMsg = new ChatComponentText("\u2716 Version check failed for an unknown reason. Check again in a few seconds with ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))
- .appendSibling(new ChatComponentText("/moo update").setChatStyle(new ChatStyle()
- .setColor(EnumChatFormatting.GOLD)
- .setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/moo update"))
- .setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ChatComponentText(EnumChatFormatting.YELLOW + "Run " + EnumChatFormatting.GOLD + "/moo update")))));
- }
- }
- if (versionResult.status == ForgeVersion.Status.OUTDATED || versionResult.status == ForgeVersion.Status.BETA_OUTDATED) {
- // outdated
- IChatComponent spacer = new ChatComponentText(" ").setChatStyle(new ChatStyle().setParentStyle(null));
-
- IChatComponent text = new ChatComponentText("\u279C New version of " + EnumChatFormatting.DARK_GREEN + Cowmoonication.MODNAME + " " + EnumChatFormatting.GREEN + "available (" + Cowmoonication.VERSION + " \u27A1 " + newVersion + ")\n").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GREEN));
-
- IChatComponent download = new ChatComponentText("[Download]").setChatStyle(new ChatStyle()
- .setColor(EnumChatFormatting.DARK_GREEN).setBold(true)
- .setChatClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, downloadUrl))
- .setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ChatComponentText(EnumChatFormatting.YELLOW + "Download the latest version of " + Cowmoonication.MODNAME))));
-
- IChatComponent changelog = new ChatComponentText("[Changelog]").setChatStyle(new ChatStyle()
- .setColor(EnumChatFormatting.DARK_AQUA).setBold(true)
- .setChatClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, CHANGELOG_URL))
- .setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ChatComponentText(EnumChatFormatting.YELLOW + "View changelog"))));
-
- IChatComponent updateInstructions = new ChatComponentText("[Update instructions]").setChatStyle(new ChatStyle()
- .setColor(EnumChatFormatting.GOLD).setBold(true)
- .setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/moo updateHelp"))
- .setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ChatComponentText(EnumChatFormatting.YELLOW + "Run " + EnumChatFormatting.GOLD + "/moo updateHelp"))));
-
- IChatComponent openModsDirectory = new ChatComponentText("\n[Open Mods directory]").setChatStyle(new ChatStyle()
- .setColor(EnumChatFormatting.GREEN).setBold(true)
- .setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/moo directory"))
- .setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ChatComponentText(EnumChatFormatting.YELLOW + "Open mods directory with command " + EnumChatFormatting.GOLD + "/moo directory\n\u279C Click to open mods directory"))));
-
- statusMsg = text.appendSibling(download).appendSibling(spacer).appendSibling(changelog).appendSibling(spacer).appendSibling(updateInstructions).appendSibling(spacer).appendSibling(openModsDirectory);
- }
-
- if (statusMsg != null) {
- main.getChatHelper().sendMessage(statusMsg);
- }
- }
-
- public long getNextCheck() {
- long cooldown = TimeUnit.MINUTES.toMillis(CHECK_COOLDOWN);
- long systemTime = Minecraft.getSystemTime();
- return cooldown - (systemTime - lastCheck);
- }
-
- public String getNewVersion() {
- return newVersion;
- }
-
- public String getDownloadUrl() {
- return downloadUrl;
- }
-}