aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/shedaniel/rei/update/UpdateAnnouncer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/shedaniel/rei/update/UpdateAnnouncer.java')
-rw-r--r--src/main/java/me/shedaniel/rei/update/UpdateAnnouncer.java47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/main/java/me/shedaniel/rei/update/UpdateAnnouncer.java b/src/main/java/me/shedaniel/rei/update/UpdateAnnouncer.java
new file mode 100644
index 000000000..fce623da7
--- /dev/null
+++ b/src/main/java/me/shedaniel/rei/update/UpdateAnnouncer.java
@@ -0,0 +1,47 @@
+package me.shedaniel.rei.update;
+
+import com.google.common.collect.Lists;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.resources.I18n;
+import net.minecraft.util.text.TextComponentString;
+import net.minecraft.world.World;
+
+import java.util.List;
+
+import static me.shedaniel.rei.update.UpdateChecker.*;
+
+public class UpdateAnnouncer {
+
+ private static World lastWorld = null;
+
+ public static void clientTick(Minecraft client) {
+ if (client.world != lastWorld) {
+ lastWorld = client.world;
+ if (lastWorld != null) {
+ if (checkUpdates() && isOutdated()) {
+ String currentVersionString = getCurrentVersion() == null ? "null" : getCurrentVersion().toString();
+ List<Version> versions = getVersionsHigherThan(getCurrentVersion());
+ String t[] = I18n.format("text.rei.update_outdated", currentVersionString, getLatestForGame(), getUpdatePriority(versions).name().toUpperCase()).split("\n");
+ for(String s : t)
+ client.player.sendStatusMessage(new TextComponentString(s), false);
+ getChangelog(getCurrentVersion()).forEach(s -> client.player.sendStatusMessage(new TextComponentString(s), false));
+ }
+ }
+ }
+ }
+
+ public static List<String> getChangelog(Version currentVersion) {
+ List<String> changelogs = Lists.newLinkedList();
+ JsonArray array = getElement().getChangelogs().getRift();
+ array.forEach(jsonElement -> {
+ JsonObject jsonObject = jsonElement.getAsJsonObject();
+ Version jsonVersion = new Version(jsonObject.get("version").getAsString());
+ if (jsonVersion.compareTo(currentVersion) > 0 && jsonVersion.compareTo(getLatestForGame()) <= 0)
+ changelogs.add(I18n.format("text.rei.update_changelog_line", jsonObject.get("text").getAsString()));
+ });
+ return changelogs;
+ }
+
+}