From 74cf9d465771b5c1e0b1e2c79fb45084990a93ab Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 6 Dec 2023 11:57:35 +0100 Subject: [PATCH] Tablist fix Signed-off-by: Lixfel --- src/de/steamwar/bungeecore/tablist/Tablist.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/de/steamwar/bungeecore/tablist/Tablist.java b/src/de/steamwar/bungeecore/tablist/Tablist.java index c529edf..6c35b1f 100644 --- a/src/de/steamwar/bungeecore/tablist/Tablist.java +++ b/src/de/steamwar/bungeecore/tablist/Tablist.java @@ -89,8 +89,8 @@ public class Tablist extends MessageToMessageDecoder { if(tabItem == null) { tablist.add(0, item); - } else if(!tabItem.getDisplayName().equals(item.getDisplayName())) { - tabItem.setDisplayName(TextComponent.fromLegacy(item.getDisplayName())); + } else if(!tabItem.getDisplayName().equals(wrapName(item.getDisplayName()))) { + tabItem.setDisplayName(wrapName(item.getDisplayName())); tabItem.setListed(true); update.add(tabItem); } @@ -126,13 +126,13 @@ public class Tablist extends MessageToMessageDecoder { TablistPart.Item item = tablist.get(i); if(!Arrays.equals(tabItem.getProperties(), item.getProperties())) { tabItem.setProperties(item.getProperties()); - tabItem.setDisplayName(TextComponent.fromLegacy(item.getDisplayName())); + tabItem.setDisplayName(wrapName(item.getDisplayName())); add.add(tabItem); if(current.size() > i) { remove.add(tabItem); } } else if(!item.getDisplayName().equals(tabItem.getDisplayName())) { - tabItem.setDisplayName(TextComponent.fromLegacy(item.getDisplayName())); + tabItem.setDisplayName(wrapName(item.getDisplayName())); update.add(tabItem); } } @@ -212,7 +212,7 @@ public class Tablist extends MessageToMessageDecoder { case ADD_PLAYER: for (PlayerListItem.Item item : list.getItems()) { item.setPing(1); - item.setDisplayName(TextComponent.fromLegacy("")); + item.setDisplayName(wrapName("")); item.setListed(false); item.setPublicKey(null); if(!player.getUniqueId().equals(item.getUuid()) && item.getGamemode() == 3) @@ -262,7 +262,7 @@ public class Tablist extends MessageToMessageDecoder { case ADD_PLAYER: for (PlayerListItem.Item item : list.getItems()) { item.setPing(1); - item.setDisplayName(TextComponent.fromLegacy("")); + item.setDisplayName(wrapName("")); item.setListed(false); item.setPublicKey(null); if(!player.getUniqueId().equals(item.getUuid()) && item.getGamemode() == 3) @@ -304,6 +304,10 @@ public class Tablist extends MessageToMessageDecoder { return player.getPendingConnection().getVersion() < ProtocolConstants.MINECRAFT_1_19_3; } + private BaseComponent wrapName(String name) { + return new TextComponent(TextComponent.fromLegacyText(name)); + } + private void sendTabPacket(List items, PlayerListItem.Action action) { //Breaks in 1.19.3 if action != UPDATE_DISPLAY_NAME, ADD_PLAYER or REMOVE_PLAYER if(!items.isEmpty()) { if(oldTab()) {