From b56edbc41f652dbfdebac9387fb32f77fd2c022e Mon Sep 17 00:00:00 2001 From: MATRIX-feather Date: Mon, 30 Sep 2024 16:44:42 +0800 Subject: [PATCH] Fix not hiding player from others on join. And 1.2.6, for real --- .../xiamomc/morph/misc/playerList/PlayerListHandler.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/xiamomc/morph/misc/playerList/PlayerListHandler.java b/src/main/java/xiamomc/morph/misc/playerList/PlayerListHandler.java index 9d14cc0a..e6f1e82e 100644 --- a/src/main/java/xiamomc/morph/misc/playerList/PlayerListHandler.java +++ b/src/main/java/xiamomc/morph/misc/playerList/PlayerListHandler.java @@ -140,11 +140,17 @@ public void hideFakePlayer(UUID disguiseUUID) public void handle(Player player) { var hiddenPlayers = new ObjectArrayList<>(this.hiddenPlayers); - var changed = hiddenPlayers.removeIf(uuid -> uuid.equals(player.getUniqueId())); + var isPlayerHiddenFromOthers = hiddenPlayers.removeIf(uuid -> uuid.equals(player.getUniqueId())); var packet = new ClientboundPlayerInfoRemovePacket(hiddenPlayers); this.sendPacket(player, packet); + if (isPlayerHiddenFromOthers) + { + var hidePacket = new ClientboundPlayerInfoRemovePacket(List.of(player.getUniqueId())); + Bukkit.getOnlinePlayers().forEach(p -> this.sendPacket(p, hidePacket)); + } + this.fakePlayers.forEach((disguiseUUID, profile) -> { var infoPacket = new ClientboundPlayerInfoUpdatePacket(