diff --git a/src/main/java/com/mattmx/nametags/OutgoingPacketListener.java b/src/main/java/com/mattmx/nametags/OutgoingPacketListener.java index b703cc4..f11fb15 100644 --- a/src/main/java/com/mattmx/nametags/OutgoingPacketListener.java +++ b/src/main/java/com/mattmx/nametags/OutgoingPacketListener.java @@ -76,22 +76,24 @@ public void onPacketSend(@NotNull PacketSendEvent event) { nameTagEntity.updateVisibility(false); } -// case PacketType.Play.Server.SET_PASSENGERS -> { -// final WrapperPlayServerSetPassengers packet = new WrapperPlayServerSetPassengers(event); -// -// final NameTagEntity nameTagEntity = plugin.getEntityManager().getNameTagEntityById(packet.getEntityId()); -// -// if (nameTagEntity == null) return; -// -// if (Arrays.stream(packet.getPassengers()).noneMatch((i) -> nameTagEntity.getPassenger().getEntityId() == i)) { -// -// // Add our entity -// int[] passengers = Arrays.copyOf(packet.getPassengers(), packet.getPassengers().length + 1); -// passengers[passengers.length - 1] = nameTagEntity.getPassenger().getEntityId(); -// -// packet.setPassengers(passengers); -// } -// } + case PacketType.Play.Server.SET_PASSENGERS -> { + final WrapperPlayServerSetPassengers packet = new WrapperPlayServerSetPassengers(event); + + final NameTagEntity nameTagEntity = plugin.getEntityManager().getNameTagEntityById(packet.getEntityId()); + + if (nameTagEntity == null) return; + + // If the packet doesn't already contain our entity + if (Arrays.stream(packet.getPassengers()).noneMatch((i) -> nameTagEntity.getPassenger().getEntityId() == i)) { + + // Add our entity + int[] passengers = Arrays.copyOf(packet.getPassengers(), packet.getPassengers().length + 1); + passengers[passengers.length - 1] = nameTagEntity.getPassenger().getEntityId(); + + packet.setPassengers(passengers); + event.markForReEncode(true); + } + } default -> { } }