diff --git a/src/de/steamwar/bungeecore/BungeeCore.java b/src/de/steamwar/bungeecore/BungeeCore.java index 6465671..b627d99 100644 --- a/src/de/steamwar/bungeecore/BungeeCore.java +++ b/src/de/steamwar/bungeecore/BungeeCore.java @@ -116,7 +116,7 @@ public class BungeeCore extends Plugin { local = new Node.LocalNode(); if(MAIN_SERVER) { - new Node.RemoteNode("lx"); + //new Node.RemoteNode("lx"); } commands.put("/tp", null); diff --git a/src/de/steamwar/bungeecore/tablist/Tablist.java b/src/de/steamwar/bungeecore/tablist/Tablist.java index b347147..b34fbad 100644 --- a/src/de/steamwar/bungeecore/tablist/Tablist.java +++ b/src/de/steamwar/bungeecore/tablist/Tablist.java @@ -168,8 +168,7 @@ public class Tablist extends MessageToMessageDecoder { pipeline.remove("steamwar-tablist"); pipeline.addBefore(PipelineUtils.BOSS_HANDLER, "steamwar-tablist", this); - if(oldTab()) - player.unsafe().sendPacket(teamPacket); + player.unsafe().sendPacket(teamPacket); } } @@ -239,11 +238,15 @@ public class Tablist extends MessageToMessageDecoder { break; } } else if(packet instanceof PlayerListItemRemove) { + List names = new ArrayList<>(); for(UUID uuid : ((PlayerListItemRemove) packet).getUuids()) { synchronized (directTabItems) { - directTabItems.remove(uuid); + PlayerListItem.Item directItem = directTabItems.remove(uuid); + if(npcs.remove(uuid)) + names.add(directItem.getUsername()); } } + sendNpcPacket(names, true); } else if(packet instanceof PlayerListItemUpdate) { PlayerListItemUpdate list = (PlayerListItemUpdate) packet; EnumSet actions = list.getActions(); @@ -324,7 +327,7 @@ public class Tablist extends MessageToMessageDecoder { } private void sendNpcPacket(List names, boolean remove) { - if(oldTab() && !names.isEmpty()) { + if(!names.isEmpty()) { Team packet = new Team(TAB_TEAM); packet.setMode((byte) (remove ? 4 : 3)); packet.setPlayers(names.toArray(new String[0])); diff --git a/src/de/steamwar/bungeecore/util/Chat19.java b/src/de/steamwar/bungeecore/util/Chat19.java index 9205579..a543f74 100644 --- a/src/de/steamwar/bungeecore/util/Chat19.java +++ b/src/de/steamwar/bungeecore/util/Chat19.java @@ -22,6 +22,7 @@ package de.steamwar.bungeecore.util; import net.md_5.bungee.ServerConnection; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.protocol.ChatChain; +import net.md_5.bungee.protocol.ProtocolConstants; import net.md_5.bungee.protocol.SeenMessages; import net.md_5.bungee.protocol.packet.ClientChat; import net.md_5.bungee.protocol.packet.ClientCommand; @@ -33,11 +34,12 @@ public class Chat19 { private Chat19(){} public static void chat(ProxiedPlayer p, String message) { - if(p.getPendingConnection().getVersion() >= 759) { + int version = p.getPendingConnection().getVersion(); + if(version >= ProtocolConstants.MINECRAFT_1_19) { if(message.startsWith("/")) { ((ServerConnection) p.getServer()).getCh().write(new ClientCommand(message.substring(1), System.currentTimeMillis(), 0, Collections.emptyMap(), false, new ChatChain(Collections.emptyList(), null), new SeenMessages(0, new BitSet(0)))); } else { - ((ServerConnection) p.getServer()).getCh().write(new ClientChat(message, System.currentTimeMillis(), 0, null, false, new ChatChain(Collections.emptyList(), null), new SeenMessages(0, new BitSet(0)))); + ((ServerConnection) p.getServer()).getCh().write(new ClientChat(message, System.currentTimeMillis(), 0, version < ProtocolConstants.MINECRAFT_1_19_3 ? new byte[0] : null, false, new ChatChain(Collections.emptyList(), null), new SeenMessages(0, new BitSet(0)))); } } else { p.chat(message);