@@ -5,7 +5,7 @@ Subject: [PATCH] Add Listing API for Player
55
66
77diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java
8- index 6bfb83434a184e6fdba932f692281f0303ada65f..e2541a3886504b143f858a4e75ac4746d4d39e28 100644
8+ index 6bfb83434a184e6fdba932f692281f0303ada65f..91e71d282855c472bf81ff97ae830e5321f69e66 100644
99--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java
1010+++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundPlayerInfoUpdatePacket.java
1111@@ -38,6 +38,17 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet<ClientGamePacke
@@ -26,13 +26,22 @@ index 6bfb83434a184e6fdba932f692281f0303ada65f..e2541a3886504b143f858a4e75ac4746
2626
2727 public static ClientboundPlayerInfoUpdatePacket createPlayerInitializing(Collection<ServerPlayer> players) {
2828 EnumSet<ClientboundPlayerInfoUpdatePacket.Action> enumSet = EnumSet.of(
29- @@ -53,6 +64,28 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet<ClientGamePacke
29+ @@ -53,6 +64,46 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet<ClientGamePacke
3030 return new ClientboundPlayerInfoUpdatePacket(enumSet, players);
3131 }
3232
3333+ // Paper start - Add Listing API for Player
3434+ public static ClientboundPlayerInfoUpdatePacket createPlayerInitializing(Collection<ServerPlayer> players, ServerPlayer forPlayer) {
35- + final EnumSet<ClientboundPlayerInfoUpdatePacket.Action> enumSet = EnumSet.of(ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER, ClientboundPlayerInfoUpdatePacket.Action.INITIALIZE_CHAT, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LISTED, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LATENCY, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME);
35+ + final EnumSet<ClientboundPlayerInfoUpdatePacket.Action> enumSet = EnumSet.of(
36+ + ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER,
37+ + ClientboundPlayerInfoUpdatePacket.Action.INITIALIZE_CHAT,
38+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE,
39+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LISTED,
40+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LATENCY,
41+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME,
42+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_HAT,
43+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LIST_ORDER
44+ + );
3645+ final List<ClientboundPlayerInfoUpdatePacket.Entry> entries = new java.util.ArrayList<>(players.size());
3746+ final org.bukkit.craftbukkit.entity.CraftPlayer bukkitEntity = forPlayer.getBukkitEntity();
3847+ for (final ServerPlayer player : players) {
@@ -42,7 +51,16 @@ index 6bfb83434a184e6fdba932f692281f0303ada65f..e2541a3886504b143f858a4e75ac4746
4251+ }
4352+
4453+ public static ClientboundPlayerInfoUpdatePacket createSinglePlayerInitializing(ServerPlayer player, boolean listed) {
45- + final EnumSet<ClientboundPlayerInfoUpdatePacket.Action> enumSet = EnumSet.of(ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER, ClientboundPlayerInfoUpdatePacket.Action.INITIALIZE_CHAT, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LISTED, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LATENCY, ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME);
54+ + final EnumSet<ClientboundPlayerInfoUpdatePacket.Action> enumSet = EnumSet.of(
55+ + ClientboundPlayerInfoUpdatePacket.Action.ADD_PLAYER,
56+ + ClientboundPlayerInfoUpdatePacket.Action.INITIALIZE_CHAT,
57+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_GAME_MODE,
58+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LISTED,
59+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LATENCY,
60+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME,
61+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_HAT,
62+ + ClientboundPlayerInfoUpdatePacket.Action.UPDATE_LIST_ORDER
63+ + );
4664+ final List<ClientboundPlayerInfoUpdatePacket.Entry> entries = List.of(new Entry(player, listed));
4765+ return new ClientboundPlayerInfoUpdatePacket(enumSet, entries);
4866+ }
@@ -55,7 +73,7 @@ index 6bfb83434a184e6fdba932f692281f0303ada65f..e2541a3886504b143f858a4e75ac4746
5573 private ClientboundPlayerInfoUpdatePacket(RegistryFriendlyByteBuf buf) {
5674 this.actions = buf.readEnumSet(ClientboundPlayerInfoUpdatePacket.Action.class);
5775 this.entries = buf.readList(buf2 -> {
58- @@ -165,10 +198 ,15 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet<ClientGamePacke
76+ @@ -165,10 +216 ,15 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet<ClientGamePacke
5977 @Nullable RemoteChatSession.Data chatSession
6078 ) {
6179 Entry(ServerPlayer player) {
@@ -72,7 +90,7 @@ index 6bfb83434a184e6fdba932f692281f0303ada65f..e2541a3886504b143f858a4e75ac4746
7290 player.connection.latency(),
7391 player.gameMode.getGameModeForPlayer(),
7492 player.getTabListDisplayName(),
75- @@ -177,6 +215 ,11 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet<ClientGamePacke
93+ @@ -177,6 +233 ,11 @@ public class ClientboundPlayerInfoUpdatePacket implements Packet<ClientGamePacke
7694 Optionull.map(player.getChatSession(), RemoteChatSession::asData)
7795 );
7896 }
0 commit comments