Make purpur.lang reloadable with

This commit is contained in:
William Blake Galbreath
2020-04-12 16:39:52 -05:00
parent 3630f35339
commit b6d5b8200e
17 changed files with 172 additions and 138 deletions

View File

@@ -1,13 +1,14 @@
From ac7403d39a928740071cf70a4af0293d41041326 Mon Sep 17 00:00:00 2001
From e4bd0958cd47d0622cb38e650bb52fe529f9b067 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 26 Mar 2020 13:17:09 -0500
Subject: [PATCH] Add language asset purpur.lang
---
.../net/minecraft/server/EntityPlayer.java | 1 +
.../net/minecraft/server/LocaleLanguage.java | 38 ++++++++++++++++++-
.../net/minecraft/server/LocaleLanguage.java | 48 +++++++++++++++++--
.../pl3x/purpur/command/PurpurCommand.java | 3 ++
src/main/resources/purpur.lang | 1 +
3 files changed, 38 insertions(+), 2 deletions(-)
4 files changed, 49 insertions(+), 4 deletions(-)
create mode 100644 src/main/resources/purpur.lang
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -23,10 +24,10 @@ index fb38975830..74085c0511 100644
if (!future.isSuccess() && (chatmessagetype == ChatMessageType.GAME_INFO || chatmessagetype == ChatMessageType.SYSTEM)) {
boolean flag = true;
diff --git a/src/main/java/net/minecraft/server/LocaleLanguage.java b/src/main/java/net/minecraft/server/LocaleLanguage.java
index 6012739331..17527965c7 100644
index 6012739331..75707adcd7 100644
--- a/src/main/java/net/minecraft/server/LocaleLanguage.java
+++ b/src/main/java/net/minecraft/server/LocaleLanguage.java
@@ -15,6 +15,7 @@ import java.util.Map.Entry;
@@ -15,18 +15,41 @@ import java.util.Map.Entry;
import java.util.regex.Pattern;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -34,13 +35,17 @@ index 6012739331..17527965c7 100644
public class LocaleLanguage {
@@ -25,8 +26,31 @@ public class LocaleLanguage {
private long e;
private static final Logger LOGGER = LogManager.getLogger();
private static final Pattern b = Pattern.compile("%(\\d+\\$)?[\\d\\.]*[df]");
private static final LocaleLanguage c = new LocaleLanguage();
- private final Map<String, String> d = Maps.newHashMap();
- private long e;
+ private final Map<String, String> d = Maps.newHashMap(); public Map<String, String> getStorage() { return this.d; } // Purpur - OBFHELPER
+ private long e; public long getLastUpdateTime() { return this.e; } public void setLastUpdateTime(int time) { this.e = time; } // Purpur - OBFHELPER
public LocaleLanguage() {
+ // Purpur start
+ loadFromJar("/assets/minecraft/lang/en_us.json");
+ loadFromFile("purpur.lang");
+ reload(this);
+ }
+
+ private void loadFromFile(String resource) {
@@ -67,7 +72,7 @@ index 6012739331..17527965c7 100644
Throwable throwable = null;
try {
@@ -60,7 +84,7 @@ public class LocaleLanguage {
@@ -60,7 +83,7 @@ public class LocaleLanguage {
}
} catch (JsonParseException | IOException ioexception) {
@@ -76,12 +81,19 @@ index 6012739331..17527965c7 100644
}
}
@@ -88,4 +112,14 @@ public class LocaleLanguage {
@@ -88,4 +111,21 @@ public class LocaleLanguage {
public long b() {
return this.e;
}
+
+ // Purpur start
+ public static void reload(LocaleLanguage instance) {
+ instance.setLastUpdateTime(0);
+ instance.getStorage().clear();
+ instance.loadFromJar("/assets/minecraft/lang/en_us.json");
+ instance.loadFromFile("purpur.lang");
+ }
+
+ public static ChatMessage translate(String key, Object... args) {
+ String str = getInstance().translateKey(key);
+ if (str == null) return null;
@@ -91,6 +103,26 @@ index 6012739331..17527965c7 100644
+ }
+ // Purpur end
}
diff --git a/src/main/java/net/pl3x/purpur/command/PurpurCommand.java b/src/main/java/net/pl3x/purpur/command/PurpurCommand.java
index 7d983d9a54..36260e0ec8 100644
--- a/src/main/java/net/pl3x/purpur/command/PurpurCommand.java
+++ b/src/main/java/net/pl3x/purpur/command/PurpurCommand.java
@@ -1,5 +1,6 @@
package net.pl3x.purpur.command;
+import net.minecraft.server.LocaleLanguage;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.WorldServer;
import net.pl3x.purpur.PurpurConfig;
@@ -45,6 +46,8 @@ public class PurpurCommand extends Command {
Command.broadcastCommandMessage(sender, ChatColor.RED + "Please note that this command is not supported and may cause issues.");
Command.broadcastCommandMessage(sender, ChatColor.RED + "If you encounter any issues please use the /stop command to restart your server.");
+ LocaleLanguage.reload(LocaleLanguage.getInstance());
+
MinecraftServer console = MinecraftServer.getServer();
PurpurConfig.init((File) console.options.valueOf("purpur-settings"));
for (WorldServer world : console.getWorlds()) {
diff --git a/src/main/resources/purpur.lang b/src/main/resources/purpur.lang
new file mode 100644
index 0000000000..0967ef424b