Skip to content

Commit

Permalink
Allow setting player list name early
Browse files Browse the repository at this point in the history
  • Loading branch information
kennytv committed Apr 20, 2024
1 parent 908b814 commit 3af1346
Show file tree
Hide file tree
Showing 39 changed files with 122 additions and 113 deletions.
33 changes: 21 additions & 12 deletions patches/server/0010-Adventure.patch
Original file line number Diff line number Diff line change
Expand Up @@ -3976,10 +3976,10 @@ index 61759e8179d0f6342abf0c0294e5a024928db8d9..92e21126a9347f1ee2279ab09bb6abf2
public boolean isOp() {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a46f45fd76 100644
index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e87f36d8aa86b9ac9ccc234f7b51a4a51bff2426 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -306,14 +306,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -306,14 +306,40 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

@Override
public String getDisplayName() {
Expand All @@ -3997,6 +3997,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4
+ @Override
+ public void playerListName(net.kyori.adventure.text.Component name) {
+ getHandle().listName = name == null ? null : io.papermc.paper.adventure.PaperAdventure.asVanilla(name);
+ if (getHandle().connection == null) return; // Updates are possible before the player has fully joined
+ for (ServerPlayer player : server.getHandle().players) {
+ if (player.getBukkitEntity().canSee(this)) {
+ player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, getHandle()));
Expand All @@ -4019,7 +4020,15 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4
@Override
public String getPlayerListName() {
return this.getHandle().listName == null ? this.getName() : CraftChatMessage.fromComponent(this.getHandle().listName);
@@ -332,42 +357,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -325,6 +351,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
name = this.getName();
}
this.getHandle().listName = name.equals(this.getName()) ? null : CraftChatMessage.fromStringOrNull(name);
+ if (this.getHandle().connection == null) return; // Paper - Updates are possible before the player has fully joined
for (ServerPlayer player : (List<ServerPlayer>) this.server.getHandle().players) {
if (player.getBukkitEntity().canSee(this)) {
player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle()));
@@ -332,42 +359,42 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}

Expand Down Expand Up @@ -4071,7 +4080,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4
this.getHandle().connection.send(packet);
}

@@ -399,6 +424,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -399,6 +426,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.disconnect(message == null ? "" : message);
}

Expand All @@ -4095,7 +4104,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4
@Override
public void setCompassTarget(Location loc) {
Preconditions.checkArgument(loc != null, "Location cannot be null");
@@ -695,6 +737,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -695,6 +739,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.getHandle().connection.send(packet);
}

Expand All @@ -4120,7 +4129,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4
@Override
public void sendSignChange(Location loc, String[] lines) {
this.sendSignChange(loc, lines, DyeColor.BLACK);
@@ -718,6 +778,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -718,6 +780,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (this.getHandle().connection == null) return;

Component[] components = CraftSign.sanitizeLines(lines);
Expand All @@ -4132,7 +4141,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4
SignBlockEntity sign = new SignBlockEntity(CraftLocation.toBlockPosition(loc), Blocks.OAK_SIGN.defaultBlockState());
SignText text = sign.getFrontText();
text = text.setColor(net.minecraft.world.item.DyeColor.byId(dyeColor.getWoolData()));
@@ -727,7 +792,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -727,7 +794,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
sign.setText(text, true);

Expand All @@ -4142,7 +4151,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4
}

@Override
@@ -1735,7 +1801,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1735,7 +1803,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

@Override
public void setResourcePack(String url) {
Expand All @@ -4151,7 +4160,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4
}

@Override
@@ -1750,7 +1816,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1750,7 +1818,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

@Override
public void setResourcePack(String url, byte[] hash, boolean force) {
Expand All @@ -4160,7 +4169,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4
}

@Override
@@ -1787,6 +1853,59 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1787,6 +1855,59 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
this.handlePushResourcePack(new ClientboundResourcePackPushPacket(id, url, hashStr, force, CraftChatMessage.fromStringOrNull(prompt, true)), false);
}

Expand Down Expand Up @@ -4220,7 +4229,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4
@Override
public void removeResourcePack(UUID id) {
Preconditions.checkArgument(id != null, "Resource pack id cannot be null");
@@ -2203,6 +2322,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2203,6 +2324,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return (this.getHandle().requestedViewDistance() == 0) ? Bukkit.getViewDistance() : this.getHandle().requestedViewDistance();
}

Expand All @@ -4233,7 +4242,7 @@ index be3a8e54d64b3cc145ab09b0bc7abb3f4ee153c3..e5330d41512dc59b5f94d9cacda340a4
@Override
public int getPing() {
return this.getHandle().connection.latency();
@@ -2253,6 +2378,252 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2253,6 +2380,252 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().allowsListing();
}

Expand Down
8 changes: 4 additions & 4 deletions patches/server/0014-Timings-v2.patch
Original file line number Diff line number Diff line change
Expand Up @@ -714,7 +714,7 @@ index c8134e605e2dd58c2af1cbefc5e20e91b6414d2a..b7ffab0284b0bccd79775b8d03c8b2e0
} catch (Exception exception) {
label25:
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 4c18491a627e66297627abbded1af48b2026e610..3365d2ec8426888c16873a311226fa69840fa2f0 100644
index 00a1806720e67eb747061e0a6c2ea334dd4453ce..2be50609ccf90d3db6e572377ba63bcbad156382 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -186,7 +186,7 @@ import org.bukkit.craftbukkit.Main;
Expand Down Expand Up @@ -1244,7 +1244,7 @@ index 9ea829aafa7a874a784d02da889576c80de17d0c..13725b794e923a4de0d06edcba1adf1b
this.entityManager.saveAll();
} else {
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 93ef520b8f047870f48e908ae55590547ad88729..4be0935a36bd7b2e0d83e30b6edc43a6429dac22 100644
index c51e38bb683d239d6116075b5a613b5ef709056a..0b09b4adefdaba43949b1a83dc8f89af147924e9 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -322,7 +322,6 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Expand Down Expand Up @@ -1819,10 +1819,10 @@ index b0ffa23faf62629043dfd613315eaf9c5fcc2cfe..00000000000000000000000000000000
- }
-}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index e5330d41512dc59b5f94d9cacda340a46f45fd76..d53e15a3a70de8e2a405d3a39ff51a3551e82dbc 100644
index e87f36d8aa86b9ac9ccc234f7b51a4a51bff2426..2da161b901189c3dcf90c95a074b8c2cbf30f282 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2699,6 +2699,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2701,6 +2701,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

CraftPlayer.this.getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundSystemChatPacket(components, position == net.md_5.bungee.api.ChatMessageType.ACTION_BAR));
}
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0029-Player-affects-spawning-API.patch
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ index d156f7e3430685947d2b4c30aa867e8002ca70ad..e888cf862662ae6baa6d0de8188aa74a

public void clientTick(Level world, BlockPos pos) {
diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java
index d4fb3c62825927a2c7c71a18e0f678ef7f4dec22..72b3913d00d6f2ec01a716444debe065c48174f6 100644
index f38f62e777d88a783e1e3b7e1a48da921cc67cf4..77ae7882a08441d9a80b50492be5e48487a2fdab 100644
--- a/src/main/java/net/minecraft/world/level/EntityGetter.java
+++ b/src/main/java/net/minecraft/world/level/EntityGetter.java
@@ -74,6 +74,11 @@ public interface EntityGetter {
Expand Down Expand Up @@ -135,10 +135,10 @@ index d4fb3c62825927a2c7c71a18e0f678ef7f4dec22..72b3913d00d6f2ec01a716444debe065
for (Player player : this.players()) {
if (EntitySelector.NO_SPECTATORS.test(player) && EntitySelector.LIVING_ENTITY_STILL_ALIVE.test(player)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index d53e15a3a70de8e2a405d3a39ff51a3551e82dbc..a592ee955a823309f1936a607823ff93822cd369 100644
index 2da161b901189c3dcf90c95a074b8c2cbf30f282..e1510cb7cb1406bebed1804b8c18086425cb7d94 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2338,6 +2338,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2340,6 +2340,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().language;
}

Expand Down
4 changes: 2 additions & 2 deletions patches/server/0030-Only-refresh-abilities-if-needed.patch
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ Subject: [PATCH] Only refresh abilities if needed


diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index a592ee955a823309f1936a607823ff93822cd369..6e47cd5cc17ad7edff3d946364485bb01bf87a41 100644
index e1510cb7cb1406bebed1804b8c18086425cb7d94..4655d1c493651779c2038776e4d6fef23c7e7b43 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2010,12 +2010,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2012,12 +2012,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

@Override
public void setFlying(boolean value) {
Expand Down
4 changes: 2 additions & 2 deletions patches/server/0044-Implement-PlayerLocaleChangeEvent.patch
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,10 @@ index 68a376743e531dfe06bf6bd7b5be3e7d8e3154d8..e3e96008d69926c831e5f42b28e1e701
// CraftBukkit end
this.language = clientOptions.language();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 6e47cd5cc17ad7edff3d946364485bb01bf87a41..42b27e1b8bc317a4cd0fcc27a5d7ce2d69d33aeb 100644
index 4655d1c493651779c2038776e4d6fef23c7e7b43..245f58942b6a69a67fa7ed31121d461e27a98ae0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2336,7 +2336,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2338,7 +2338,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

@Override
public String getLocale() {
Expand Down
6 changes: 3 additions & 3 deletions patches/server/0051-Improve-Player-chat-API-handling.patch
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Co-authored-by: Jake Potrebic <[email protected]>
Co-authored-by: SoSeDiK <[email protected]>

diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index ee369964eb7f0ac0c24699b804214ce1a9632043..01d1759aefdb0a224f1e8764ec1114ef1baa6cf5 100644
index 0b09b4adefdaba43949b1a83dc8f89af147924e9..f7babb4883a45244dd07eab1e87cf5fd4df83d91 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -1930,7 +1930,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
Expand Down Expand Up @@ -53,10 +53,10 @@ index 56a63adc3c0c919594c3f2646d4cf5b86b5c6f1e..5b22714d6f5eb8318275ca0bf01597be
if (this.commandMap.dispatch(sender, commandLine)) {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 42b27e1b8bc317a4cd0fcc27a5d7ce2d69d33aeb..0391c8f663a52a006e3d7c447a529a958fb98e18 100644
index 245f58942b6a69a67fa7ed31121d461e27a98ae0..1d6176714b097d4ab74af345af319e325735c58f 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -462,7 +462,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -464,7 +464,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

if (this.getHandle().connection == null) return;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ The wanted destination was on top of the emerald block however the player ended
This only is the case if the player is teleporting between worlds.

diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 03dad5aa44d4484e9a3064279c867f009104a9b2..fc2374c9ecc7603c310761e6196c026eded788f6 100644
index 5cff1571a4eb1af6c961a265051642234bf1b121..e20cba0126b844b8655a387e4977d79a67ee63df 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1156,7 +1156,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1158,7 +1158,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
entity.connection.teleport(to);
} else {
// The respawn reason should never be used if the passed location is non null.
Expand Down
4 changes: 2 additions & 2 deletions patches/server/0063-Complete-resource-pack-API.patch
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ index c8041492b7b2a1ff67b95d9944cfccd476b3ee1d..66497960995dc30abe60d26200979a78
}

diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index fc2374c9ecc7603c310761e6196c026eded788f6..b6851bd629c4d3b9aa7efdf1112e1cf59cd63f60 100644
index e20cba0126b844b8655a387e4977d79a67ee63df..58c74ad83d17ec47e84a45d33529d88118a34599 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -195,6 +195,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
Expand All @@ -33,7 +33,7 @@ index fc2374c9ecc7603c310761e6196c026eded788f6..b6851bd629c4d3b9aa7efdf1112e1cf5

public CraftPlayer(CraftServer server, ServerPlayer entity) {
super(server, entity);
@@ -2014,6 +2015,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2016,6 +2017,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
// Paper end - adventure

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ index 13438b60bb3891e40bf0b5e942e0b2ba744121f9..8447a47e1c493001ea9f54392e02f14d

protected void internalSetAbsorptionAmount(float absorptionAmount) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index b6851bd629c4d3b9aa7efdf1112e1cf59cd63f60..b79aea8ae49a4edbb45f0824535fd38d3686e67b 100644
index 58c74ad83d17ec47e84a45d33529d88118a34599..02cabe9b5e413ce58b82061ea0347fc7a7ce6866 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -2258,6 +2258,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2260,6 +2260,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}

public void setRealHealth(double health) {
Expand Down
4 changes: 2 additions & 2 deletions patches/server/0163-Ability-to-apply-mending-to-XP-API.patch
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ public net.minecraft.world.entity.ExperienceOrb durabilityToXp(I)I
public net.minecraft.world.entity.ExperienceOrb xpToDurability(I)I

diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 901a1c98024eb81d2fa3e7ca13add63864a9c5ef..0eea0024deb19da924df584e5af58917c2f41188 100644
index 19ca1d6f6dc01ee56cb52d8d3e2c53c1549cb617..fbb1c342e51d3d64a837efe998a33632ad254b23 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1546,7 +1546,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1548,7 +1548,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}

@Override
Expand Down
Loading

0 comments on commit 3af1346

Please sign in to comment.