Do not send blank chat components to players

This commit is contained in:
William Blake Galbreath
2020-04-12 13:44:16 -05:00
parent 35b84461ed
commit 3630f35339
2 changed files with 36 additions and 11 deletions

View File

@@ -1,19 +1,40 @@
From 6820d1aa5606b069c1ac73102b9bf2ee6a17ad91 Mon Sep 17 00:00:00 2001
From ac7403d39a928740071cf70a4af0293d41041326 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/LocaleLanguage.java | 33 +++++++++++++++++--
.../net/minecraft/server/EntityPlayer.java | 1 +
.../net/minecraft/server/LocaleLanguage.java | 38 ++++++++++++++++++-
src/main/resources/purpur.lang | 1 +
2 files changed, 32 insertions(+), 2 deletions(-)
3 files changed, 38 insertions(+), 2 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
index fb38975830..74085c0511 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1561,6 +1561,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
}
public void a(IChatBaseComponent ichatbasecomponent, ChatMessageType chatmessagetype) {
+ if (ichatbasecomponent == null) return; // Purpur
this.playerConnection.a((Packet) (new PacketPlayOutChat(ichatbasecomponent, chatmessagetype)), (future) -> {
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..01f1ffa2d4 100644
index 6012739331..17527965c7 100644
--- a/src/main/java/net/minecraft/server/LocaleLanguage.java
+++ b/src/main/java/net/minecraft/server/LocaleLanguage.java
@@ -25,8 +25,31 @@ public class LocaleLanguage {
@@ -15,6 +15,7 @@ import java.util.Map.Entry;
import java.util.regex.Pattern;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.bukkit.ChatColor;
public class LocaleLanguage {
@@ -25,8 +26,31 @@ public class LocaleLanguage {
private long e;
public LocaleLanguage() {
@@ -46,7 +67,7 @@ index 6012739331..01f1ffa2d4 100644
Throwable throwable = null;
try {
@@ -60,7 +83,7 @@ public class LocaleLanguage {
@@ -60,7 +84,7 @@ public class LocaleLanguage {
}
} catch (JsonParseException | IOException ioexception) {
@@ -55,14 +76,18 @@ index 6012739331..01f1ffa2d4 100644
}
}
@@ -88,4 +111,10 @@ public class LocaleLanguage {
@@ -88,4 +112,14 @@ public class LocaleLanguage {
public long b() {
return this.e;
}
+
+ // Purpur start
+ public static ChatMessage translate(String key, Object... args) {
+ return new ChatMessage(org.bukkit.ChatColor.translateAlternateColorCodes('&', getInstance().translateKey(key)), args);
+ String str = getInstance().translateKey(key);
+ if (str == null) return null;
+ str = ChatColor.translateAlternateColorCodes('&', str);
+ if (str.isEmpty()) return null;
+ return new ChatMessage(str, args);
+ }
+ // Purpur end
}

View File

@@ -1,4 +1,4 @@
From 13f3c9bd39aba9a4baa9f93e4020e4378a42de1c Mon Sep 17 00:00:00 2001
From 7398c439e6806f120c852ef757f91ca13849fe68 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 8 Aug 2019 15:29:15 -0500
Subject: [PATCH] Implement AFK API
@@ -50,10 +50,10 @@ index f372c13d8b..d69854b5c1 100644
super(EntityTypes.PLAYER, world);
this.bV = ItemStack.a;
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 24460ab531..d94ca2acf0 100644
index ff92843a14..4b38c89419 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -1623,8 +1623,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1624,8 +1624,51 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
public void resetIdleTimer() {
this.cj = SystemUtils.getMonotonicMillis();