Fix String based Action Bar to use ChatComponent to handle proper escaping

This commit is contained in:
Aikar
2016-12-29 08:29:09 -05:00
parent 04c621bb48
commit 2c5f074c1d
2 changed files with 8 additions and 18 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] MC Utils
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
index b0aba6089..81fc04ed3 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -0,0 +0,0 @@ public class Chunk {
@@ -18,7 +18,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
// CraftBukkit start
diff --git a/src/main/java/net/minecraft/server/MCUtil.java b/src/main/java/net/minecraft/server/MCUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
index 000000000..1159eea1a
--- /dev/null
+++ b/src/main/java/net/minecraft/server/MCUtil.java
@@ -0,0 +0,0 @@
@@ -37,22 +37,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+import java.util.regex.Pattern;
+
+public final class MCUtil {
+ private static final Pattern REPLACE_QUOTES = Pattern.compile("\"");
+ private static final Executor asyncExecutor = Executors.newSingleThreadExecutor(new ThreadFactoryBuilder().setNameFormat("Paper Async Task Handler Thread - %1$d").build());
+
+ private MCUtil() {}
+
+
+ /**
+ * Builds a chat componenent from a string.
+ * @param str
+ * @return
+ */
+ public static IChatBaseComponent cmpFromMessage(String str) {
+ return IChatBaseComponent.ChatSerializer.a("{\"text\":\"" + REPLACE_QUOTES.matcher(str).replaceAll("\\\"") + "\"}");
+ }
+
+ /**
+ * Ensures the target code is running on the main thread
+ * @param reason
+ * @param run
@@ -222,7 +212,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
+ }
+}
diff --git a/src/main/java/net/minecraft/server/NBTTagCompound.java b/src/main/java/net/minecraft/server/NBTTagCompound.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
index 90d18f489..2a2f53c82 100644
--- a/src/main/java/net/minecraft/server/NBTTagCompound.java
+++ b/src/main/java/net/minecraft/server/NBTTagCompound.java
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.Logger;
@@ -249,7 +239,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
public UUID a(String s) {
return new UUID(this.getLong(s + "Most"), this.getLong(s + "Least"));
diff --git a/src/main/java/net/minecraft/server/NBTTagList.java b/src/main/java/net/minecraft/server/NBTTagList.java
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
index 370203b2d..ae7498c03 100644
--- a/src/main/java/net/minecraft/server/NBTTagList.java
+++ b/src/main/java/net/minecraft/server/NBTTagList.java
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.Logger;