Skip to content
This repository was archived by the owner on Jun 22, 2022. It is now read-only.

Commit 8e45f15

Browse files
authored
Update Checker Changes
Use the GitHub api to check latest version.
2 parents 1c81614 + 302475d commit 8e45f15

File tree

3 files changed

+56
-15
lines changed

3 files changed

+56
-15
lines changed

src/main/java/io/github/codeutilities/CodeUtilities.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public class CodeUtilities implements ModInitializer {
6565
public static final String MOD_ID = "codeutilities";
6666
public static final String MOD_NAME = "CodeUtilities";
6767
public static String MOD_VERSION;
68-
public static final boolean BETA = true;
68+
public static final boolean BETA = false; // todo: we're changing how "betas" work so this will need to be changed.
6969

7070
public static final Logger LOGGER = LogManager.getLogger();
7171
public static final Random RANDOM = new Random();

src/main/java/io/github/codeutilities/mod/mixin/message/MMessageListener.java

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,21 @@
33
import com.mojang.blaze3d.systems.RenderSystem;
44
import io.github.codeutilities.CodeUtilities;
55
import io.github.codeutilities.mod.config.Config;
6-
import io.github.codeutilities.mod.events.impl.ReceiveChatMessageEvent;
76
import io.github.codeutilities.mod.events.interfaces.ChatEvents;
8-
import io.github.codeutilities.mod.features.discordrpc.DFDiscordRPC;
7+
import io.github.codeutilities.mod.features.CPU_UsageText;
98
import io.github.codeutilities.mod.features.keybinds.FlightspeedToggle;
109
import io.github.codeutilities.mod.features.social.chat.message.Message;
11-
import io.github.codeutilities.sys.player.chat.ChatUtil;
12-
import io.github.codeutilities.sys.player.chat.MessageGrabber;
13-
import io.github.codeutilities.mod.features.CPU_UsageText;
14-
import io.github.codeutilities.sys.player.DFInfo;
1510
import io.github.codeutilities.sys.networking.State;
1611
import io.github.codeutilities.sys.networking.WebUtil;
12+
import io.github.codeutilities.sys.player.DFInfo;
13+
import io.github.codeutilities.sys.player.chat.ChatUtil;
14+
import io.github.codeutilities.sys.util.VersionUtil;
1715
import net.minecraft.client.MinecraftClient;
1816
import net.minecraft.client.network.ClientPlayNetworkHandler;
1917
import net.minecraft.network.MessageType;
2018
import net.minecraft.network.packet.s2c.play.GameMessageS2CPacket;
2119
import net.minecraft.network.packet.s2c.play.TitleS2CPacket;
22-
import net.minecraft.text.ClickEvent;
23-
import net.minecraft.text.LiteralText;
24-
import net.minecraft.text.Text;
25-
import net.minecraft.text.TextColor;
20+
import net.minecraft.text.*;
2621
import net.minecraft.util.ActionResult;
2722
import net.minecraft.util.Formatting;
2823
import org.apache.logging.log4j.Level;
@@ -91,10 +86,26 @@ private void updateVersion(Text component) {
9186
minecraftClient.player.sendMessage(new LiteralText(string).styled(style -> style.withColor(TextColor.fromFormatting(Formatting.AQUA))), false);
9287
}
9388

94-
String version = WebUtil.getString("https://codeutilities.github.io/data/currentversion.txt").replaceAll("\n", "");
95-
if (!CodeUtilities.MOD_VERSION.equals(version) && !CodeUtilities.BETA) {
96-
minecraftClient.player.sendMessage(new LiteralText(String.format("A new version of CodeUtilities (%s) is available! Click here to download!", version)).styled(style ->
97-
style.withColor(TextColor.fromFormatting(Formatting.YELLOW))).styled(style -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://codeutilities.github.io/"))), false);
89+
if (!CodeUtilities.BETA) {
90+
int latestVersion = VersionUtil.getLatestVersion();
91+
int currentVersion = VersionUtil.getCurrentVersionInt();
92+
int versionsBehind = latestVersion - currentVersion;
93+
94+
if (versionsBehind > 10) {
95+
MutableText message = new LiteralText("")
96+
.append(new LiteralText(String.format("You are currently on build #%s of CodeUtilities, which is %s versions behind the latest (%s). ",
97+
currentVersion, versionsBehind, latestVersion))
98+
.styled(style -> style.withColor(Formatting.YELLOW)))
99+
.append(new LiteralText("Click here to download the latest version!")
100+
.styled(style -> {
101+
style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, "https://codeutilities.github.io"));
102+
style.withColor(Formatting.AQUA);
103+
return style;
104+
}));
105+
106+
minecraftClient.player.sendMessage(message, false);
107+
108+
}
98109
}
99110

100111
} catch (IOException ignored) {
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package io.github.codeutilities.sys.util;
2+
3+
import com.google.gson.JsonObject;
4+
import io.github.codeutilities.CodeUtilities;
5+
import io.github.codeutilities.sys.networking.WebUtil;
6+
7+
import java.io.IOException;
8+
9+
public class VersionUtil {
10+
11+
public static int getLatestVersion() {
12+
try {
13+
String webContent = WebUtil.getString("https://api.github.com/repos/CodeUtilities/CodeUtilities/releases/latest");
14+
JsonObject jsonObject = CodeUtilities.JSON_PARSER.parse(webContent).getAsJsonObject();
15+
return Integer.parseInt(jsonObject.get("name").getAsString().substring(6));
16+
} catch (IOException e) {
17+
e.printStackTrace();
18+
}
19+
return 0;
20+
}
21+
22+
public static int getCurrentVersionInt() {
23+
try {
24+
return Integer.parseInt(CodeUtilities.MOD_VERSION);
25+
}catch (NumberFormatException e) {
26+
return -1;
27+
}
28+
}
29+
30+
}

0 commit comments

Comments
 (0)