aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches
diff options
context:
space:
mode:
authorNassim Jahnke <[email protected]>2024-12-03 22:56:26 +0100
committerNassim Jahnke <[email protected]>2024-12-03 22:56:26 +0100
commite2dd1d514ccab1912d807d362cd4bc5007ce7b8c (patch)
treebcc12d5cdaaaed31a6f830f5e902b6fc28405b33 /patches
parentb0603dab453c26d8a7bd6168e64cf655a5d6f436 (diff)
downloadPaper-e2dd1d514ccab1912d807d362cd4bc5007ce7b8c.tar.gz
Paper-e2dd1d514ccab1912d807d362cd4bc5007ce7b8c.zip
Add back post_teleport chunk ticket
Diffstat (limited to 'patches')
-rw-r--r--patches/server/0009-MC-Utils.patch24
-rw-r--r--patches/server/0010-Adventure.patch8
-rw-r--r--patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch2
-rw-r--r--patches/server/0053-Fix-spawn-location-event-changing-location.patch2
-rw-r--r--patches/server/0087-Configurable-Player-Collision.patch4
-rw-r--r--patches/server/0123-Enforce-Sync-Player-Saves.patch4
-rw-r--r--patches/server/0127-Properly-handle-async-calls-to-restart-the-server.patch4
-rw-r--r--patches/server/0144-ProfileWhitelistVerifyEvent.patch4
-rw-r--r--patches/server/0175-Player.setPlayerProfile-API.patch4
-rw-r--r--patches/server/0206-InventoryCloseEvent-Reason-API.patch2
-rw-r--r--patches/server/0225-Use-ConcurrentHashMap-in-JsonList.patch2
-rw-r--r--patches/server/0269-Replace-OfflinePlayer-getLastPlayed.patch2
-rw-r--r--patches/server/0276-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch4
-rw-r--r--patches/server/0277-Fixes-and-additions-to-the-spawn-reason-API.patch2
-rw-r--r--patches/server/0279-Add-PlayerPostRespawnEvent.patch6
-rw-r--r--patches/server/0330-Don-t-move-existing-players-to-world-spawn.patch2
-rw-r--r--patches/server/0337-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch2
-rw-r--r--patches/server/0338-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch2
-rw-r--r--patches/server/0339-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch2
-rw-r--r--patches/server/0424-Add-API-for-quit-reason.patch2
-rw-r--r--patches/server/0462-Fix-villager-boat-exploit.patch2
-rw-r--r--patches/server/0463-Add-sendOpLevel-API.patch6
-rw-r--r--patches/server/0487-fix-converting-txt-to-json-file.patch2
-rw-r--r--patches/server/0495-Drop-carried-item-when-player-has-disconnected.patch2
-rw-r--r--patches/server/0536-Add-PlayerKickEvent-causes.patch4
-rw-r--r--patches/server/0555-Fix-kick-event-leave-message-not-being-sent.patch2
-rw-r--r--patches/server/0563-Add-PlayerSetSpawnEvent.patch4
-rw-r--r--patches/server/0635-Validate-usernames.patch2
-rw-r--r--patches/server/0661-Force-close-world-loading-screen.patch2
-rw-r--r--patches/server/0680-Use-username-instead-of-display-name-in-PlayerList-g.patch4
-rw-r--r--patches/server/0710-More-Teleport-API.patch8
-rw-r--r--patches/server/0717-Collision-API.patch4
-rw-r--r--patches/server/0734-Fix-a-bunch-of-vanilla-bugs.patch2
-rw-r--r--patches/server/0767-Add-Sneaking-API-for-Entities.patch2
-rw-r--r--patches/server/0776-Use-single-player-info-update-packet-on-join.patch2
-rw-r--r--patches/server/0781-Add-Entity-Body-Yaw-API.patch4
-rw-r--r--patches/server/0830-Folia-scheduler-and-owned-region-API.patch4
-rw-r--r--patches/server/0839-API-for-updating-recipes-on-clients.patch6
-rw-r--r--patches/server/0843-API-for-an-entity-s-scoreboard-name.patch4
-rw-r--r--patches/server/0849-Add-Listing-API-for-Player.patch2
-rw-r--r--patches/server/0853-Expand-Pose-API.patch2
-rw-r--r--patches/server/0892-Fix-missing-event-call-for-entity-teleport-API.patch2
-rw-r--r--patches/server/0974-Anti-Xray.patch2
-rw-r--r--patches/server/0987-Properly-resend-entities.patch6
-rw-r--r--patches/server/1023-Improve-entity-effect-API.patch4
-rw-r--r--patches/server/1035-Moonrise-optimisation-patches.patch10
-rw-r--r--patches/server/1040-Improved-Watchdog-Support.patch2
-rw-r--r--patches/server/1046-Incremental-chunk-and-player-saving.patch4
-rw-r--r--patches/server/1054-Allow-using-old-ender-pearl-behavior.patch2
49 files changed, 103 insertions, 83 deletions
diff --git a/patches/server/0009-MC-Utils.patch b/patches/server/0009-MC-Utils.patch
index 5ce66ed29c..00db4c45d0 100644
--- a/patches/server/0009-MC-Utils.patch
+++ b/patches/server/0009-MC-Utils.patch
@@ -5530,7 +5530,7 @@ index ad2d29b106df33965090be521d4f945601965a00..261943f1f188643793a72bd239dfc5fe
protected ChunkDistanceManager(final Executor workerExecutor, final Executor mainThreadExecutor) {
super(workerExecutor, mainThreadExecutor);
diff --git a/src/main/java/net/minecraft/server/level/DistanceManager.java b/src/main/java/net/minecraft/server/level/DistanceManager.java
-index 83f9360d7c645c7bfca34627e40c86e2aa31143b..e7bca3db8c7d29fe984decddda83569ef921cc31 100644
+index 83f9360d7c645c7bfca34627e40c86e2aa31143b..6c2339d6a93172e25040c4868a3a47473a1f5336 100644
--- a/src/main/java/net/minecraft/server/level/DistanceManager.java
+++ b/src/main/java/net/minecraft/server/level/DistanceManager.java
@@ -385,7 +385,7 @@ public abstract class DistanceManager {
@@ -5538,7 +5538,7 @@ index 83f9360d7c645c7bfca34627e40c86e2aa31143b..e7bca3db8c7d29fe984decddda83569e
public void removeTicketsOnClosing() {
- ImmutableSet<TicketType<?>> immutableset = ImmutableSet.of(TicketType.UNKNOWN);
-+ ImmutableSet<TicketType<?>> immutableset = ImmutableSet.of(TicketType.UNKNOWN, TicketType.FUTURE_AWAIT); // Paper - add additional tickets to preserve
++ ImmutableSet<TicketType<?>> immutableset = ImmutableSet.of(TicketType.UNKNOWN, TicketType.POST_TELEPORT, TicketType.FUTURE_AWAIT); // Paper - add additional tickets to preserve
ObjectIterator<Entry<SortedArraySet<Ticket<?>>>> objectiterator = this.tickets.long2ObjectEntrySet().fastIterator();
while (objectiterator.hasNext()) {
@@ -5745,7 +5745,7 @@ index 97a670499f4ce50239d8c09cf10c03a7520c8753..50c255c5226d50f78ead4c0a0694ac9d
public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile, ClientInformation clientOptions) {
super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile);
diff --git a/src/main/java/net/minecraft/server/level/TicketType.java b/src/main/java/net/minecraft/server/level/TicketType.java
-index 1ab1d4054c3fc343325d60f55b6af9bdac12305a..0fdb65a1e474950a50480f4e6f99c69f8e015a50 100644
+index 1ab1d4054c3fc343325d60f55b6af9bdac12305a..4d3f7d4a8e05a8d84aa5202134eda1ce9621712e 100644
--- a/src/main/java/net/minecraft/server/level/TicketType.java
+++ b/src/main/java/net/minecraft/server/level/TicketType.java
@@ -7,6 +7,7 @@ import net.minecraft.util.Unit;
@@ -5756,6 +5756,14 @@ index 1ab1d4054c3fc343325d60f55b6af9bdac12305a..0fdb65a1e474950a50480f4e6f99c69f
private final String name;
private final Comparator<T> comparator;
+@@ -24,6 +25,7 @@ public class TicketType<T> {
+ public static final TicketType<ChunkPos> UNKNOWN = TicketType.create("unknown", Comparator.comparingLong(ChunkPos::toLong), 1);
+ public static final TicketType<Unit> PLUGIN = TicketType.create("plugin", (a, b) -> 0); // CraftBukkit
+ public static final TicketType<org.bukkit.plugin.Plugin> PLUGIN_TICKET = TicketType.create("plugin_ticket", (plugin1, plugin2) -> plugin1.getClass().getName().compareTo(plugin2.getClass().getName())); // CraftBukkit
++ public static final TicketType<Integer> POST_TELEPORT = TicketType.create("post_teleport", Integer::compare, 5); // Paper - post teleport ticket type
+
+ public static <T> TicketType<T> create(String name, Comparator<T> argumentComparator) {
+ return new TicketType<>(name, argumentComparator, 0L);
diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
index a1f4ebcd0877a6d0c41493eff5d70a408bf98e59..f1725ef766c35aa623ace58fe8bf31fc9b2bb6b3 100644
--- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java
@@ -5788,7 +5796,7 @@ index a1f4ebcd0877a6d0c41493eff5d70a408bf98e59..f1725ef766c35aa623ace58fe8bf31fc
public BlockState getBlockState(BlockPos pos) {
return this.getChunk(SectionPos.blockToSectionCoord(pos.getX()), SectionPos.blockToSectionCoord(pos.getZ())).getBlockState(pos);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index d7095aab94a9f3b9f06a033ba4d414dfae42f620..7bb87d2bdf0ead0fdca38a9685e2e15b249ec2cb 100644
+index d7095aab94a9f3b9f06a033ba4d414dfae42f620..c8957caa797a6f4c3d3fc5f0b74b7fefeb1aa2c3 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -181,6 +181,7 @@ public abstract class PlayerList {
@@ -5799,6 +5807,14 @@ index d7095aab94a9f3b9f06a033ba4d414dfae42f620..7bb87d2bdf0ead0fdca38a9685e2e15b
GameProfile gameprofile = player.getGameProfile();
GameProfileCache usercache = this.server.getProfileCache();
// Optional optional; // CraftBukkit - decompile error
+@@ -700,6 +701,7 @@ public abstract class PlayerList {
+ Vec3 vec3d = teleporttransition.position();
+
+ entityplayer1.forceSetPositionRotation(vec3d.x, vec3d.y, vec3d.z, teleporttransition.yRot(), teleporttransition.xRot());
++ worldserver.getChunkSource().addRegionTicket(net.minecraft.server.level.TicketType.POST_TELEPORT, new net.minecraft.world.level.ChunkPos(net.minecraft.util.Mth.floor(vec3d.x()) >> 4, net.minecraft.util.Mth.floor(vec3d.z()) >> 4), 1, entityplayer.getId()); // Paper - post teleport ticket type
+ // CraftBukkit end
+ if (teleporttransition.missingRespawnBlock()) {
+ entityplayer1.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F));
diff --git a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java b/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java
index ae25aec117a7272735c824a00c1ed117fa52a921..d6e942aca1bcc769c390504a4119d6619872c4d4 100644
--- a/src/main/java/net/minecraft/util/thread/BlockableEventLoop.java
diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch
index 8a0288ddb0..9058fccc26 100644
--- a/patches/server/0010-Adventure.patch
+++ b/patches/server/0010-Adventure.patch
@@ -3018,7 +3018,7 @@ index 3848cc836785829c5aa82bdb5d37d36a97f94a04..f08700abb005f487aca95c0457c09cef
@Override
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 7bb87d2bdf0ead0fdca38a9685e2e15b249ec2cb..1333daa8666fe2ec4033a2f57ba6b716fcdd5343 100644
+index c8957caa797a6f4c3d3fc5f0b74b7fefeb1aa2c3..360e9b3425451963f398efdb7da8f5821cf15779 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -274,7 +274,7 @@ public abstract class PlayerList {
@@ -3118,7 +3118,7 @@ index 7bb87d2bdf0ead0fdca38a9685e2e15b249ec2cb..1333daa8666fe2ec4033a2f57ba6b716
return null;
}
return entity;
-@@ -1091,7 +1090,7 @@ public abstract class PlayerList {
+@@ -1092,7 +1091,7 @@ public abstract class PlayerList {
public void removeAll() {
// CraftBukkit start - disconnect safely
for (ServerPlayer player : this.players) {
@@ -3127,7 +3127,7 @@ index 7bb87d2bdf0ead0fdca38a9685e2e15b249ec2cb..1333daa8666fe2ec4033a2f57ba6b716
}
// CraftBukkit end
-@@ -1132,24 +1131,43 @@ public abstract class PlayerList {
+@@ -1133,24 +1132,43 @@ public abstract class PlayerList {
}
public void broadcastChatMessage(PlayerChatMessage message, ServerPlayer sender, ChatType.Bound params) {
@@ -3174,7 +3174,7 @@ index 7bb87d2bdf0ead0fdca38a9685e2e15b249ec2cb..1333daa8666fe2ec4033a2f57ba6b716
}
if (flag1 && sender != null) {
-@@ -1158,7 +1176,7 @@ public abstract class PlayerList {
+@@ -1159,7 +1177,7 @@ public abstract class PlayerList {
}
diff --git a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch
index 2e317fd247..e6d817dd79 100644
--- a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch
+++ b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch
@@ -388,7 +388,7 @@ index 3d92c61f7781221cfdc0324d11bd0088954e4a68..84a2c6c397604279ba821286f5c3c855
if (!SwingUtilities.isEventDispatchThread()) {
SwingUtilities.invokeLater(() -> {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 1333daa8666fe2ec4033a2f57ba6b716fcdd5343..8daa027a94602d7d556cf4fbfc8fcd97caf6bd98 100644
+index 360e9b3425451963f398efdb7da8f5821cf15779..70e5ffb1502acecc93685090741ccda48473f262 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -162,8 +162,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0053-Fix-spawn-location-event-changing-location.patch b/patches/server/0053-Fix-spawn-location-event-changing-location.patch
index cc20e90b16..a9be6cb42a 100644
--- a/patches/server/0053-Fix-spawn-location-event-changing-location.patch
+++ b/patches/server/0053-Fix-spawn-location-event-changing-location.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Fix spawn location event changing location
public net.minecraft.world.entity.Entity setRot(FF)V
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 8daa027a94602d7d556cf4fbfc8fcd97caf6bd98..7782f26764ef79968b1e2f5e1f27f1162ed122de 100644
+index 70e5ffb1502acecc93685090741ccda48473f262..9a4ad6b24b8f067d43cd2f84e7b11dcabcf42209 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -234,7 +234,10 @@ public abstract class PlayerList {
diff --git a/patches/server/0087-Configurable-Player-Collision.patch b/patches/server/0087-Configurable-Player-Collision.patch
index 381fa85bb4..93036a9b2d 100644
--- a/patches/server/0087-Configurable-Player-Collision.patch
+++ b/patches/server/0087-Configurable-Player-Collision.patch
@@ -43,7 +43,7 @@ index b293c7f901b4f0c6e55bc3edaab1eddb72c1218f..d374ff51987c30a84e137dd623e0f649
if (io.papermc.paper.plugin.PluginInitializerManager.instance().pluginRemapper != null) io.papermc.paper.plugin.PluginInitializerManager.instance().pluginRemapper.pluginsEnabled(); // Paper - Remap plugins
this.server.getPluginManager().callEvent(new ServerLoadEvent(ServerLoadEvent.LoadType.STARTUP));
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 7782f26764ef79968b1e2f5e1f27f1162ed122de..005e63978a306c695e21b26498937a3b81fb2b38 100644
+index 9a4ad6b24b8f067d43cd2f84e7b11dcabcf42209..7245c5edc5677872274dc3fae91ed42943c12186 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -159,6 +159,7 @@ public abstract class PlayerList {
@@ -85,7 +85,7 @@ index 7782f26764ef79968b1e2f5e1f27f1162ed122de..005e63978a306c695e21b26498937a3b
this.save(entityplayer);
if (entityplayer.isPassenger()) {
Entity entity = entityplayer.getRootVehicle();
-@@ -1096,6 +1114,13 @@ public abstract class PlayerList {
+@@ -1097,6 +1115,13 @@ public abstract class PlayerList {
}
// CraftBukkit end
diff --git a/patches/server/0123-Enforce-Sync-Player-Saves.patch b/patches/server/0123-Enforce-Sync-Player-Saves.patch
index c0c144111c..ef2d944333 100644
--- a/patches/server/0123-Enforce-Sync-Player-Saves.patch
+++ b/patches/server/0123-Enforce-Sync-Player-Saves.patch
@@ -7,10 +7,10 @@ Saving players async is extremely dangerous. This will force it to main
the same way we handle async chunk loads.
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 005e63978a306c695e21b26498937a3b81fb2b38..6341127b5b0230da7417ab2f8c36bf963742d788 100644
+index 7245c5edc5677872274dc3fae91ed42943c12186..1670789ce8af98311a94fa4e3443df491e608032 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -997,10 +997,12 @@ public abstract class PlayerList {
+@@ -998,10 +998,12 @@ public abstract class PlayerList {
}
public void saveAll() {
diff --git a/patches/server/0127-Properly-handle-async-calls-to-restart-the-server.patch b/patches/server/0127-Properly-handle-async-calls-to-restart-the-server.patch
index e2d2362447..a86e6f8676 100644
--- a/patches/server/0127-Properly-handle-async-calls-to-restart-the-server.patch
+++ b/patches/server/0127-Properly-handle-async-calls-to-restart-the-server.patch
@@ -64,10 +64,10 @@ index 0eb856a27fefb8d7283617498a31b05f2a736192..b2396fe53d7db64f17671358880401cc
if (waitForShutdown) {
try {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 6341127b5b0230da7417ab2f8c36bf963742d788..0829f5cb4e795bc44cf04bdf1b88af6b22c9cf72 100644
+index 1670789ce8af98311a94fa4e3443df491e608032..3c8553aa49c30f09c5114ac6095416fcbaa6ccd1 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -1110,8 +1110,15 @@ public abstract class PlayerList {
+@@ -1111,8 +1111,15 @@ public abstract class PlayerList {
}
public void removeAll() {
diff --git a/patches/server/0144-ProfileWhitelistVerifyEvent.patch b/patches/server/0144-ProfileWhitelistVerifyEvent.patch
index 335095baa9..1cd6b8c630 100644
--- a/patches/server/0144-ProfileWhitelistVerifyEvent.patch
+++ b/patches/server/0144-ProfileWhitelistVerifyEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] ProfileWhitelistVerifyEvent
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 0829f5cb4e795bc44cf04bdf1b88af6b22c9cf72..f4e08c6b20ba64402b8587bde3e01eedcc9c2568 100644
+index 3c8553aa49c30f09c5114ac6095416fcbaa6ccd1..a18ddaaba02a0b62c632ad566786a4edab5f6445 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -590,9 +590,9 @@ public abstract class PlayerList {
@@ -21,7 +21,7 @@ index 0829f5cb4e795bc44cf04bdf1b88af6b22c9cf72..f4e08c6b20ba64402b8587bde3e01eed
} else if (this.getIpBans().isBanned(socketaddress) && !this.getIpBans().get(socketaddress).hasExpired()) {
IpBanListEntry ipbanentry = this.ipBans.get(socketaddress);
-@@ -961,7 +961,25 @@ public abstract class PlayerList {
+@@ -962,7 +962,25 @@ public abstract class PlayerList {
}
public boolean isWhiteListed(GameProfile profile) {
diff --git a/patches/server/0175-Player.setPlayerProfile-API.patch b/patches/server/0175-Player.setPlayerProfile-API.patch
index e555f43ee5..7cc69e7e00 100644
--- a/patches/server/0175-Player.setPlayerProfile-API.patch
+++ b/patches/server/0175-Player.setPlayerProfile-API.patch
@@ -27,10 +27,10 @@ index 4a62c1abc6f3c48bbda40325b4ce46632db3f28d..bab8c53041afb9606db55923e5466eab
playerName = gameprofile.getName();
uniqueId = gameprofile.getId();
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index f4e08c6b20ba64402b8587bde3e01eedcc9c2568..ac5607fb1ac771f16b14d71e08a8d4183a39a002 100644
+index a18ddaaba02a0b62c632ad566786a4edab5f6445..2f2d641e2148d59fe12dc1b4c627e3ddf4a756e9 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -799,10 +799,16 @@ public abstract class PlayerList {
+@@ -800,10 +800,16 @@ public abstract class PlayerList {
}
public void sendPlayerPermissionLevel(ServerPlayer player) {
diff --git a/patches/server/0206-InventoryCloseEvent-Reason-API.patch b/patches/server/0206-InventoryCloseEvent-Reason-API.patch
index a7895495df..f88c5966dd 100644
--- a/patches/server/0206-InventoryCloseEvent-Reason-API.patch
+++ b/patches/server/0206-InventoryCloseEvent-Reason-API.patch
@@ -96,7 +96,7 @@ index cbdf69371a65339294b3ffd3514bb0bf8c03ff36..405dec328cf591f533600ed9e2aa7360
this.player.doCloseContainer();
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index ac5607fb1ac771f16b14d71e08a8d4183a39a002..06338f5fa552a390db05a90b5cc796a70104ada0 100644
+index 2f2d641e2148d59fe12dc1b4c627e3ddf4a756e9..04d603befb42a55d959589c714f3fe5414ef27b0 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -468,7 +468,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0225-Use-ConcurrentHashMap-in-JsonList.patch b/patches/server/0225-Use-ConcurrentHashMap-in-JsonList.patch
index 75fd866138..e43a237eb1 100644
--- a/patches/server/0225-Use-ConcurrentHashMap-in-JsonList.patch
+++ b/patches/server/0225-Use-ConcurrentHashMap-in-JsonList.patch
@@ -23,7 +23,7 @@ Modified isEmpty to use the isEmpty() method instead of the slightly confusing s
The point of this is readability, but does have a side-benefit of a small microptimization
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 06338f5fa552a390db05a90b5cc796a70104ada0..8bb2749f751839f7dfd8fb62f676bd54ec8b1b09 100644
+index 04d603befb42a55d959589c714f3fe5414ef27b0..2fbc957212c93ee94c2c53b89afa7f22a3d55197 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -593,7 +593,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0269-Replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0269-Replace-OfflinePlayer-getLastPlayed.patch
index 6cc9f04ae6..0ec450a625 100644
--- a/patches/server/0269-Replace-OfflinePlayer-getLastPlayed.patch
+++ b/patches/server/0269-Replace-OfflinePlayer-getLastPlayed.patch
@@ -28,7 +28,7 @@ index 2db5ef211ac36d5aa7f337dd4a5c2600796d8b66..ae922d01caae4b2ed42641ae5039abe3
public boolean queueHealthUpdatePacket;
public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 8bb2749f751839f7dfd8fb62f676bd54ec8b1b09..4b2826f3319dca1f795653106d22fc6948c6a27a 100644
+index 2fbc957212c93ee94c2c53b89afa7f22a3d55197..cf2ecfb06568e0b8505b6435d1de793e1b2dc75a 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -182,6 +182,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0276-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch b/patches/server/0276-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch
index 2409c16a72..b73a0624b0 100644
--- a/patches/server/0276-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch
+++ b/patches/server/0276-Call-WhitelistToggleEvent-when-whitelist-is-toggled.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Call WhitelistToggleEvent when whitelist is toggled
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 4b2826f3319dca1f795653106d22fc6948c6a27a..97b48186a48ca037645d4a5ae84e3a95fd413a33 100644
+index cf2ecfb06568e0b8505b6435d1de793e1b2dc75a..9f645b32269e3251da7e8d69ee29d1264759a79e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -1095,6 +1095,7 @@ public abstract class PlayerList {
+@@ -1096,6 +1096,7 @@ public abstract class PlayerList {
}
public void setUsingWhiteList(boolean whitelistEnabled) {
diff --git a/patches/server/0277-Fixes-and-additions-to-the-spawn-reason-API.patch b/patches/server/0277-Fixes-and-additions-to-the-spawn-reason-API.patch
index 206d4526b3..d51b78c7fb 100644
--- a/patches/server/0277-Fixes-and-additions-to-the-spawn-reason-API.patch
+++ b/patches/server/0277-Fixes-and-additions-to-the-spawn-reason-API.patch
@@ -51,7 +51,7 @@ index 71352f1b86c594ea2edf5d1735410054d909291a..49d4feda5b352bd135aadf3c4677d236
if (entity == null) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 97b48186a48ca037645d4a5ae84e3a95fd413a33..a04cfa09d9f8594a7ad3120855efe1641abb7a47 100644
+index 9f645b32269e3251da7e8d69ee29d1264759a79e..51e6169530b775b9f325c7c14e37b97a00d5b2cf 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -223,6 +223,11 @@ public abstract class PlayerList {
diff --git a/patches/server/0279-Add-PlayerPostRespawnEvent.patch b/patches/server/0279-Add-PlayerPostRespawnEvent.patch
index a2ffa8e647..e7b73e0c98 100644
--- a/patches/server/0279-Add-PlayerPostRespawnEvent.patch
+++ b/patches/server/0279-Add-PlayerPostRespawnEvent.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerPostRespawnEvent
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index a04cfa09d9f8594a7ad3120855efe1641abb7a47..2f48182fea64a82857cbb93dc94f7019ac55215a 100644
+index 51e6169530b775b9f325c7c14e37b97a00d5b2cf..768754f11d72921e1206e7bd029c94fae650ae82 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -704,6 +704,10 @@ public abstract class PlayerList {
@@ -37,7 +37,7 @@ index a04cfa09d9f8594a7ad3120855efe1641abb7a47..2f48182fea64a82857cbb93dc94f7019
return entityplayer;
}
// Spigot End
-@@ -763,6 +772,11 @@ public abstract class PlayerList {
+@@ -764,6 +773,11 @@ public abstract class PlayerList {
if (iblockdata.is(Blocks.RESPAWN_ANCHOR)) {
entityplayer1.connection.send(new ClientboundSoundPacket(SoundEvents.RESPAWN_ANCHOR_DEPLETE, SoundSource.BLOCKS, (double) blockposition.getX(), (double) blockposition.getY(), (double) blockposition.getZ(), 1.0F, 1.0F, worldserver.getRandom().nextLong()));
}
@@ -49,7 +49,7 @@ index a04cfa09d9f8594a7ad3120855efe1641abb7a47..2f48182fea64a82857cbb93dc94f7019
}
// Added from changeDimension
this.sendAllPlayerInfo(entityplayer); // Update health, etc...
-@@ -784,6 +798,13 @@ public abstract class PlayerList {
+@@ -785,6 +799,13 @@ public abstract class PlayerList {
if (entityplayer.connection.isDisconnected()) {
this.save(entityplayer);
}
diff --git a/patches/server/0330-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0330-Don-t-move-existing-players-to-world-spawn.patch
index 918a46fbf7..099054c278 100644
--- a/patches/server/0330-Don-t-move-existing-players-to-world-spawn.patch
+++ b/patches/server/0330-Don-t-move-existing-players-to-world-spawn.patch
@@ -35,7 +35,7 @@ index 957266d14ce2b9b99f7c97289458fc837e4d665a..21f7b26bbf2b3e231032b7a09fa6e82f
this.gameMode.setLevel((ServerLevel) world);
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 2f48182fea64a82857cbb93dc94f7019ac55215a..e137278f9dc02eefaaf7071a3219436a94cfcfac 100644
+index 768754f11d72921e1206e7bd029c94fae650ae82..d238dbd78fd18da46c703351cccc70c0b07622db 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -226,6 +226,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0337-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/patches/server/0337-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch
index fac3a9bc22..0db5556d5a 100644
--- a/patches/server/0337-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch
+++ b/patches/server/0337-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch
@@ -7,7 +7,7 @@ Subject: [PATCH] Don't crash if player is attempted to be removed from
I suspect it deals with teleporting as it uses players current x/y/z
diff --git a/src/main/java/net/minecraft/server/level/DistanceManager.java b/src/main/java/net/minecraft/server/level/DistanceManager.java
-index e7bca3db8c7d29fe984decddda83569ef921cc31..c24644d5a77d87ae6c139f9598feafea308f2158 100644
+index 6c2339d6a93172e25040c4868a3a47473a1f5336..f7c2c03749d6be25bf33afd61e1da120770b3432 100644
--- a/src/main/java/net/minecraft/server/level/DistanceManager.java
+++ b/src/main/java/net/minecraft/server/level/DistanceManager.java
@@ -281,8 +281,8 @@ public abstract class DistanceManager {
diff --git a/patches/server/0338-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch b/patches/server/0338-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch
index 4e4817d0f1..42ec9120c0 100644
--- a/patches/server/0338-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch
+++ b/patches/server/0338-Fire-PlayerJoinEvent-when-Player-is-actually-ready.patch
@@ -55,7 +55,7 @@ index d00d43697d7fc5b7fa162fd4e773f21fb5594087..07b1bc1a06ac1fec83ba76a73b3cc1bd
// CraftBukkit end
public boolean isRealPlayer; // Paper
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index e137278f9dc02eefaaf7071a3219436a94cfcfac..ac5725230b04bc1a333863e251fe86580f909ea9 100644
+index d238dbd78fd18da46c703351cccc70c0b07622db..8239b9e2e1f5aa4f961aa40513f308f2fe44e7ef 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -299,6 +299,13 @@ public abstract class PlayerList {
diff --git a/patches/server/0339-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0339-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch
index 938cb46bbe..fcb4074808 100644
--- a/patches/server/0339-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch
+++ b/patches/server/0339-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch
@@ -10,7 +10,7 @@ Co-authored-by: Wyatt Childers <[email protected]>
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index ac5725230b04bc1a333863e251fe86580f909ea9..54de4e701adea123c0fdfb5787e951699305bb81 100644
+index 8239b9e2e1f5aa4f961aa40513f308f2fe44e7ef..f11bea4618757ac8060098ab7a7a2642ff0a1ae4 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -197,6 +197,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0424-Add-API-for-quit-reason.patch b/patches/server/0424-Add-API-for-quit-reason.patch
index 858ecc745a..ef6e4a94d3 100644
--- a/patches/server/0424-Add-API-for-quit-reason.patch
+++ b/patches/server/0424-Add-API-for-quit-reason.patch
@@ -52,7 +52,7 @@ index 9a8b08d4b70b8890961e4af7ce6e870aa1c7c810..f8ae8c8eff73e4e87eb34d0f2635517f
this.connection.disconnect(disconnectiondetails);
}));
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 54de4e701adea123c0fdfb5787e951699305bb81..8566e28d18a5b1221ba4e5d55e7788f80f956296 100644
+index f11bea4618757ac8060098ab7a7a2642ff0a1ae4..e734798640cc016d54c56b7870a1a653353ff709 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -519,7 +519,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0462-Fix-villager-boat-exploit.patch b/patches/server/0462-Fix-villager-boat-exploit.patch
index f5548b98cc..8a06e563da 100644
--- a/patches/server/0462-Fix-villager-boat-exploit.patch
+++ b/patches/server/0462-Fix-villager-boat-exploit.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix villager boat exploit
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 8566e28d18a5b1221ba4e5d55e7788f80f956296..fbe10666c4ec6caa95aa38a6f99ccca700e9a4d2 100644
+index e734798640cc016d54c56b7870a1a653353ff709..4a86a15b009412208247edd7bb8e4655f92da5d1 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -544,6 +544,14 @@ public abstract class PlayerList {
diff --git a/patches/server/0463-Add-sendOpLevel-API.patch b/patches/server/0463-Add-sendOpLevel-API.patch
index 44d11dcef6..df8490e384 100644
--- a/patches/server/0463-Add-sendOpLevel-API.patch
+++ b/patches/server/0463-Add-sendOpLevel-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add sendOpLevel API
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index fbe10666c4ec6caa95aa38a6f99ccca700e9a4d2..061bba184c8bc2569ce1d413435ec1360fa14007 100644
+index 4a86a15b009412208247edd7bb8e4655f92da5d1..f023959eee56d8d37cf0a76cb7352c0045cd2ea0 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -1025,6 +1025,11 @@ public abstract class PlayerList {
+@@ -1026,6 +1026,11 @@ public abstract class PlayerList {
}
private void sendPlayerPermissionLevel(ServerPlayer player, int permissionLevel) {
@@ -20,7 +20,7 @@ index fbe10666c4ec6caa95aa38a6f99ccca700e9a4d2..061bba184c8bc2569ce1d413435ec136
if (player.connection != null) {
byte b0;
-@@ -1039,8 +1044,10 @@ public abstract class PlayerList {
+@@ -1040,8 +1045,10 @@ public abstract class PlayerList {
player.connection.send(new ClientboundEntityEventPacket(player, b0));
}
diff --git a/patches/server/0487-fix-converting-txt-to-json-file.patch b/patches/server/0487-fix-converting-txt-to-json-file.patch
index 7f63558c05..b71e73914b 100644
--- a/patches/server/0487-fix-converting-txt-to-json-file.patch
+++ b/patches/server/0487-fix-converting-txt-to-json-file.patch
@@ -48,7 +48,7 @@ index 9a3e73a5c206b78dfcf6f41a47b614342e52acc8..9d05e998d6df1069c2de69478a1f9688
if (!OldUsersConverter.serverReadyAfterUserconversion(this)) {
return false;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 061bba184c8bc2569ce1d413435ec1360fa14007..e80e6e402ae286358b7f26073329b2e10604153b 100644
+index f023959eee56d8d37cf0a76cb7352c0045cd2ea0..f6861901455fd9e4defb611f4475cfaca653ac30 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -179,6 +179,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0495-Drop-carried-item-when-player-has-disconnected.patch b/patches/server/0495-Drop-carried-item-when-player-has-disconnected.patch
index 42055a9f10..588c687302 100644
--- a/patches/server/0495-Drop-carried-item-when-player-has-disconnected.patch
+++ b/patches/server/0495-Drop-carried-item-when-player-has-disconnected.patch
@@ -7,7 +7,7 @@ Fixes disappearance of held items, when a player gets disconnected and PlayerDro
Closes #5036
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index e80e6e402ae286358b7f26073329b2e10604153b..6ddcc928a49630e3a0f7f40cca496642419efa2c 100644
+index f6861901455fd9e4defb611f4475cfaca653ac30..ee6a3e8a8827468d787f5aa116d9876ae7654352 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -537,6 +537,14 @@ public abstract class PlayerList {
diff --git a/patches/server/0536-Add-PlayerKickEvent-causes.patch b/patches/server/0536-Add-PlayerKickEvent-causes.patch
index 4fc5c8660e..3cf5bd7d58 100644
--- a/patches/server/0536-Add-PlayerKickEvent-causes.patch
+++ b/patches/server/0536-Add-PlayerKickEvent-causes.patch
@@ -434,7 +434,7 @@ index 9d5723cdfdbf6257a71e57842aea9ba317fc049a..1e4b288f20153ce0c91fabf164c5c832
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 6ddcc928a49630e3a0f7f40cca496642419efa2c..26ba0cec3a8492d91df894a69cc1fc8076eeda0d 100644
+index ee6a3e8a8827468d787f5aa116d9876ae7654352..0dbbf067bab9f2ceb5994a1d9a411e2c1824ad16 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -632,7 +632,7 @@ public abstract class PlayerList {
@@ -446,7 +446,7 @@ index 6ddcc928a49630e3a0f7f40cca496642419efa2c..26ba0cec3a8492d91df894a69cc1fc80
}
// Instead of kicking then returning, we need to store the kick reason
-@@ -1236,7 +1236,7 @@ public abstract class PlayerList {
+@@ -1237,7 +1237,7 @@ public abstract class PlayerList {
// Paper end
// CraftBukkit start - disconnect safely
for (ServerPlayer player : this.players) {
diff --git a/patches/server/0555-Fix-kick-event-leave-message-not-being-sent.patch b/patches/server/0555-Fix-kick-event-leave-message-not-being-sent.patch
index f4726eea73..d221b29c44 100644
--- a/patches/server/0555-Fix-kick-event-leave-message-not-being-sent.patch
+++ b/patches/server/0555-Fix-kick-event-leave-message-not-being-sent.patch
@@ -101,7 +101,7 @@ index 176bf8692e19abe0a24df3be28431b438f465613..fee3bcc109f77b2caaffe95c6bc18145
this.server.getPlayerList().broadcastSystemMessage(PaperAdventure.asVanilla(quitMessage), false);
// Paper end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 26ba0cec3a8492d91df894a69cc1fc8076eeda0d..85bd61bd45690c5532f56d8f11b81f7a11f3e284 100644
+index 0dbbf067bab9f2ceb5994a1d9a411e2c1824ad16..5b6d2080a1e8f8fbc7334071011415b9cb9b4621 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -510,6 +510,11 @@ public abstract class PlayerList {
diff --git a/patches/server/0563-Add-PlayerSetSpawnEvent.patch b/patches/server/0563-Add-PlayerSetSpawnEvent.patch
index c4df15cc88..bd56b41cb9 100644
--- a/patches/server/0563-Add-PlayerSetSpawnEvent.patch
+++ b/patches/server/0563-Add-PlayerSetSpawnEvent.patch
@@ -154,10 +154,10 @@ index 4c18d13fdc2221342adb390a6b68be871036c87c..f2cc608d2cf040be2912b604f0d6cab2
public SectionPos getLastSectionPos() {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 85bd61bd45690c5532f56d8f11b81f7a11f3e284..05d2f3c26d10169f6cf43bcb6c48db5d27b5cbac 100644
+index 5b6d2080a1e8f8fbc7334071011415b9cb9b4621..9419b073ac2d64d5dad4cefbcb90b4a928ef1dc2 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -802,7 +802,7 @@ public abstract class PlayerList {
+@@ -803,7 +803,7 @@ public abstract class PlayerList {
// CraftBukkit end
if (teleporttransition.missingRespawnBlock()) {
entityplayer1.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.NO_RESPAWN_BLOCK_AVAILABLE, 0.0F));
diff --git a/patches/server/0635-Validate-usernames.patch b/patches/server/0635-Validate-usernames.patch
index e8287bc641..62c4153948 100644
--- a/patches/server/0635-Validate-usernames.patch
+++ b/patches/server/0635-Validate-usernames.patch
@@ -32,7 +32,7 @@ index 1e4b288f20153ce0c91fabf164c5c8320c90ba7d..cb5dd77892283a1aaec45434fb99bb7f
GameProfile gameprofile = this.server.getSingleplayerProfile();
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 05d2f3c26d10169f6cf43bcb6c48db5d27b5cbac..3a0e0196f5bfa554b23fff9ff1a18a189b36452e 100644
+index 9419b073ac2d64d5dad4cefbcb90b4a928ef1dc2..5c18d08db9f65431a3d4f696691f16b29628fb84 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -627,7 +627,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0661-Force-close-world-loading-screen.patch b/patches/server/0661-Force-close-world-loading-screen.patch
index 820a46bebe..f609c7e093 100644
--- a/patches/server/0661-Force-close-world-loading-screen.patch
+++ b/patches/server/0661-Force-close-world-loading-screen.patch
@@ -10,7 +10,7 @@ so we do not need that. The client only needs the chunk it is currently in to
be loaded to close the loading screen, so we just send an empty one.
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 3a0e0196f5bfa554b23fff9ff1a18a189b36452e..c8bb797a322220647d5839cc5d20b3ac7c01b8ba 100644
+index 5c18d08db9f65431a3d4f696691f16b29628fb84..34a9e57e4fa5318ec25f1308ae1156705d688d5f 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -406,6 +406,16 @@ public abstract class PlayerList {
diff --git a/patches/server/0680-Use-username-instead-of-display-name-in-PlayerList-g.patch b/patches/server/0680-Use-username-instead-of-display-name-in-PlayerList-g.patch
index 5407679d61..7ba2f534fa 100644
--- a/patches/server/0680-Use-username-instead-of-display-name-in-PlayerList-g.patch
+++ b/patches/server/0680-Use-username-instead-of-display-name-in-PlayerList-g.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Use username instead of display name in
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index c8bb797a322220647d5839cc5d20b3ac7c01b8ba..1456945e8d6e82c59bf09150bfe24bd1ae14a8c3 100644
+index 34a9e57e4fa5318ec25f1308ae1156705d688d5f..91a3b9866e02414d2d71aa53ef1fb5fdecd8cd89 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -1352,7 +1352,7 @@ public abstract class PlayerList {
+@@ -1353,7 +1353,7 @@ public abstract class PlayerList {
// CraftBukkit start
public ServerStatsCounter getPlayerStats(ServerPlayer entityhuman) {
ServerStatsCounter serverstatisticmanager = entityhuman.getStats();
diff --git a/patches/server/0710-More-Teleport-API.patch b/patches/server/0710-More-Teleport-API.patch
index 567bd06573..8aa4c173f9 100644
--- a/patches/server/0710-More-Teleport-API.patch
+++ b/patches/server/0710-More-Teleport-API.patch
@@ -30,7 +30,7 @@ index 864ab4d3de50ee9ce9ff2b0538aa46df43985a84..90eedcb1013226cd4dbbbaf4ff9332a8
positionmoverotation = new PositionMoveRotation(CraftLocation.toVec3D(to), Vec3.ZERO, to.getYaw(), to.getPitch());
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 10fb64df10820974d11f142c102a11a5bd0f317c..2335a3501399ea37d2fab2e5267712d7d174041b 100644
+index 10fb64df10820974d11f142c102a11a5bd0f317c..ea62e2725152008e87961cedd837fa0d03787d03 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -222,15 +222,36 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -72,7 +72,7 @@ index 10fb64df10820974d11f142c102a11a5bd0f317c..2335a3501399ea37d2fab2e5267712d7
// Let the server handle cross world teleports
if (location.getWorld() != null && !location.getWorld().equals(this.getWorld())) {
-@@ -971,6 +992,35 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -971,6 +992,39 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return CraftEntity.perm;
}
@@ -89,6 +89,10 @@ index 10fb64df10820974d11f142c102a11a5bd0f317c..2335a3501399ea37d2fab2e5267712d7
+ world.loadChunksForMoveAsync(getHandle().getBoundingBoxAt(locationClone.getX(), locationClone.getY(), locationClone.getZ()),
+ this instanceof CraftPlayer ? ca.spottedleaf.concurrentutil.util.Priority.HIGHER : ca.spottedleaf.concurrentutil.util.Priority.NORMAL, (list) -> {
+ net.minecraft.server.MinecraftServer.getServer().scheduleOnMain(() -> {
++ final net.minecraft.server.level.ServerChunkCache chunkCache = world.getChunkSource();
++ for (final net.minecraft.world.level.chunk.ChunkAccess chunk : list) {
++ chunkCache.addTicketAtLevel(net.minecraft.server.level.TicketType.POST_TELEPORT, chunk.getPos(), 33, CraftEntity.this.getEntityId());
++ }
+ try {
+ ret.complete(CraftEntity.this.teleport(locationClone, cause, teleportFlags) ? Boolean.TRUE : Boolean.FALSE);
+ } catch (Throwable throwable) {
diff --git a/patches/server/0717-Collision-API.patch b/patches/server/0717-Collision-API.patch
index 3274a0da24..04a7bbffba 100644
--- a/patches/server/0717-Collision-API.patch
+++ b/patches/server/0717-Collision-API.patch
@@ -22,10 +22,10 @@ index a7748f4b7c5a1630937c702b3fd5fded93793d64..a93a879117ee1eb06842242aa03f757a
// Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 2335a3501399ea37d2fab2e5267712d7d174041b..87edb57f843bd726e87403efa10e4287aa52e660 100644
+index ea62e2725152008e87961cedd837fa0d03787d03..1edccd83ecc498ebc07c3c6ca019eeb28c897973 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1185,4 +1185,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1189,4 +1189,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return this.getHandle().noPhysics;
}
// Paper end - missing entity api
diff --git a/patches/server/0734-Fix-a-bunch-of-vanilla-bugs.patch b/patches/server/0734-Fix-a-bunch-of-vanilla-bugs.patch
index 1d7ed8d61c..d1bf68f023 100644
--- a/patches/server/0734-Fix-a-bunch-of-vanilla-bugs.patch
+++ b/patches/server/0734-Fix-a-bunch-of-vanilla-bugs.patch
@@ -128,7 +128,7 @@ index aeaf2d4f7a0ad0621c210cd479c610104ec7a83b..c078b3bc75e52456f458c7febc51ea6f
MutableComponent ichatmutablecomponent1 = Component.translatable("build.tooHigh", i).withStyle(ChatFormatting.RED);
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 1456945e8d6e82c59bf09150bfe24bd1ae14a8c3..4b8636c2107e6a16c26f259e0dbdbc40a1268e06 100644
+index 91a3b9866e02414d2d71aa53ef1fb5fdecd8cd89..23929b165ff4ca153617c54d022ae43ef5fa258c 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -260,7 +260,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0767-Add-Sneaking-API-for-Entities.patch b/patches/server/0767-Add-Sneaking-API-for-Entities.patch
index b2f14ced80..a4f307c126 100644
--- a/patches/server/0767-Add-Sneaking-API-for-Entities.patch
+++ b/patches/server/0767-Add-Sneaking-API-for-Entities.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Add Sneaking API for Entities
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 87edb57f843bd726e87403efa10e4287aa52e660..087bf6f78457308488d52db04cac32d3a9dec4a8 100644
+index 1edccd83ecc498ebc07c3c6ca019eeb28c897973..0e65361b6a7371086f1ee471603209a1a347e3de 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -870,6 +870,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0776-Use-single-player-info-update-packet-on-join.patch b/patches/server/0776-Use-single-player-info-update-packet-on-join.patch
index e3f807e9e0..3bef6e1531 100644
--- a/patches/server/0776-Use-single-player-info-update-packet-on-join.patch
+++ b/patches/server/0776-Use-single-player-info-update-packet-on-join.patch
@@ -18,7 +18,7 @@ index 0c7fa826ee3f7a0851b49487484eb2ca39d9fcd7..2cd5ddcd99e77b6e28469a84d6b171b0
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 4b8636c2107e6a16c26f259e0dbdbc40a1268e06..7da3e315de67f3273997ce9160995183a3a1ce71 100644
+index 23929b165ff4ca153617c54d022ae43ef5fa258c..28ca991e89fc0c651220c65cb939f9ebb12d9c93 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -364,6 +364,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0781-Add-Entity-Body-Yaw-API.patch b/patches/server/0781-Add-Entity-Body-Yaw-API.patch
index 2a54a79069..e46f48b4ac 100644
--- a/patches/server/0781-Add-Entity-Body-Yaw-API.patch
+++ b/patches/server/0781-Add-Entity-Body-Yaw-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add Entity Body Yaw API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 087bf6f78457308488d52db04cac32d3a9dec4a8..38f8831306a0f9e623de27d1ff9ef26698859636 100644
+index 0e65361b6a7371086f1ee471603209a1a347e3de..f1992713a9e61a9e3cd719d4676f4c3f2917435d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1175,6 +1175,33 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1179,6 +1179,33 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
// Paper end - entity powdered snow API
diff --git a/patches/server/0830-Folia-scheduler-and-owned-region-API.patch b/patches/server/0830-Folia-scheduler-and-owned-region-API.patch
index 4b9bab8c95..cf424af53f 100644
--- a/patches/server/0830-Folia-scheduler-and-owned-region-API.patch
+++ b/patches/server/0830-Folia-scheduler-and-owned-region-API.patch
@@ -1173,7 +1173,7 @@ index 0c44f59445e9cd5d2767cbabe874e137b2420a2d..4555f7f59d15a1f84c0cf76f77a6685f
gameprofilerfiller.push("commandFunctions");
this.getFunctions().tick();
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 7da3e315de67f3273997ce9160995183a3a1ce71..3a6e918e9db6397b6f1cff531041655298ce087d 100644
+index 28ca991e89fc0c651220c65cb939f9ebb12d9c93..8b54fab09699dec0cb0fb6063accb04e48a36b6e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -597,6 +597,7 @@ public abstract class PlayerList {
@@ -1342,7 +1342,7 @@ index 5c907eca23d936ba3095f2d81256775edaa737da..4c4fa7bbafb075beb0d9c1ef21e3ba2d
ConfigurationSerialization.registerClass(CraftOfflinePlayer.class);
ConfigurationSerialization.registerClass(CraftPlayerProfile.class);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 38f8831306a0f9e623de27d1ff9ef26698859636..f3788ae79abfb1dd82a5c638d9b7850c7006b658 100644
+index f1992713a9e61a9e3cd719d4676f4c3f2917435d..d078f21456ce3fb68d4a08614aa912f08728f85b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -71,6 +71,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0839-API-for-updating-recipes-on-clients.patch b/patches/server/0839-API-for-updating-recipes-on-clients.patch
index b9405f1a8f..77a9a4fe09 100644
--- a/patches/server/0839-API-for-updating-recipes-on-clients.patch
+++ b/patches/server/0839-API-for-updating-recipes-on-clients.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] API for updating recipes on clients
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 3a6e918e9db6397b6f1cff531041655298ce087d..efc12d629b71ba1da664d9ecfd4575bee9b45dc3 100644
+index 8b54fab09699dec0cb0fb6063accb04e48a36b6e..bd097ae6edfc0ad810d41ed8bbc7fab34d255610 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -1448,6 +1448,13 @@ public abstract class PlayerList {
+@@ -1449,6 +1449,13 @@ public abstract class PlayerList {
}
public void reloadResources() {
@@ -22,7 +22,7 @@ index 3a6e918e9db6397b6f1cff531041655298ce087d..efc12d629b71ba1da664d9ecfd4575be
// CraftBukkit start
/*Iterator iterator = this.advancements.values().iterator();
-@@ -1463,9 +1470,13 @@ public abstract class PlayerList {
+@@ -1464,9 +1471,13 @@ public abstract class PlayerList {
}
// CraftBukkit end
diff --git a/patches/server/0843-API-for-an-entity-s-scoreboard-name.patch b/patches/server/0843-API-for-an-entity-s-scoreboard-name.patch
index fcbfdfdf4c..4fed66f489 100644
--- a/patches/server/0843-API-for-an-entity-s-scoreboard-name.patch
+++ b/patches/server/0843-API-for-an-entity-s-scoreboard-name.patch
@@ -7,10 +7,10 @@ Was obtainable through different methods, but you had to use different
methods depending on the implementation of Entity you were working with.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index f3788ae79abfb1dd82a5c638d9b7850c7006b658..56a3c69bb37b90b7af6590027a80d20f4812bef4 100644
+index d078f21456ce3fb68d4a08614aa912f08728f85b..0278cd156e3a82df4289f483967512dad63a0644 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1255,4 +1255,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1259,4 +1259,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return !this.getHandle().level().noCollision(this.getHandle(), aabb);
}
// Paper end - Collision API
diff --git a/patches/server/0849-Add-Listing-API-for-Player.patch b/patches/server/0849-Add-Listing-API-for-Player.patch
index f3d2578ca6..b23b4a4362 100644
--- a/patches/server/0849-Add-Listing-API-for-Player.patch
+++ b/patches/server/0849-Add-Listing-API-for-Player.patch
@@ -85,7 +85,7 @@ index 6bfb83434a184e6fdba932f692281f0303ada65f..e2541a3886504b143f858a4e75ac4746
static class EntryBuilder {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index efc12d629b71ba1da664d9ecfd4575bee9b45dc3..9067100a82a8c405cec0a19e53b3b245daa3bd75 100644
+index bd097ae6edfc0ad810d41ed8bbc7fab34d255610..f0e6e9478e42cd867237aec990fb1f739d46214e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -362,14 +362,22 @@ public abstract class PlayerList {
diff --git a/patches/server/0853-Expand-Pose-API.patch b/patches/server/0853-Expand-Pose-API.patch
index 39335a84ab..81b59bbf22 100644
--- a/patches/server/0853-Expand-Pose-API.patch
+++ b/patches/server/0853-Expand-Pose-API.patch
@@ -25,7 +25,7 @@ index c7292ddae2a2cb11434a6962706bc2a8dd5d2cdc..aa317a143e2c38a0385a83651a784034
if (pose == this.getPose()) {
return;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 56a3c69bb37b90b7af6590027a80d20f4812bef4..27c8850f874040ba00fa4c226ca0662261451826 100644
+index 0278cd156e3a82df4289f483967512dad63a0644..4c3029a6e4b50afc945797ab23e8c67acba70345 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -895,6 +895,20 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0892-Fix-missing-event-call-for-entity-teleport-API.patch b/patches/server/0892-Fix-missing-event-call-for-entity-teleport-API.patch
index aeff852db4..5eaf062157 100644
--- a/patches/server/0892-Fix-missing-event-call-for-entity-teleport-API.patch
+++ b/patches/server/0892-Fix-missing-event-call-for-entity-teleport-API.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix missing event call for entity teleport API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 27c8850f874040ba00fa4c226ca0662261451826..71dfa030136492bfb03bfedc4f0d36eef5d67856 100644
+index 4c3029a6e4b50afc945797ab23e8c67acba70345..2298b3203ce6bf8aca9f819fe27ab5ef6594dbed 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -259,6 +259,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/0974-Anti-Xray.patch b/patches/server/0974-Anti-Xray.patch
index b2a183f821..b111b27754 100644
--- a/patches/server/0974-Anti-Xray.patch
+++ b/patches/server/0974-Anti-Xray.patch
@@ -1158,7 +1158,7 @@ index cdd66e6ce96e2613afe7f06ca8da3cfaa6704b2d..dafa2cf7d3c49fc5bdcd68d2a9528127
if (io.papermc.paper.event.packet.PlayerChunkLoadEvent.getHandlerList().getRegisteredListeners().length > 0) {
new io.papermc.paper.event.packet.PlayerChunkLoadEvent(new org.bukkit.craftbukkit.CraftChunk(chunk), handler.getPlayer().getBukkitEntity()).callEvent();
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 9067100a82a8c405cec0a19e53b3b245daa3bd75..3e03d65ac4ef267de67684d24c6f9c303b1a0bf0 100644
+index f0e6e9478e42cd867237aec990fb1f739d46214e..0a328ec362c3c21b5b8634f8fba844b143a24509 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -426,7 +426,7 @@ public abstract class PlayerList {
diff --git a/patches/server/0987-Properly-resend-entities.patch b/patches/server/0987-Properly-resend-entities.patch
index 851bda3edc..3dcf6d2466 100644
--- a/patches/server/0987-Properly-resend-entities.patch
+++ b/patches/server/0987-Properly-resend-entities.patch
@@ -104,7 +104,7 @@ index bef4687218c4ee7a7c03a7027fb92fcad403c37c..43cf3510750ca3a1be8c61afaa94b0f8
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 3e03d65ac4ef267de67684d24c6f9c303b1a0bf0..c7429a386df96a4b03c4c840ca9bd5b37d58ffc3 100644
+index 0a328ec362c3c21b5b8634f8fba844b143a24509..2d4baf17b1994647fd91083850363a36aa4ca76a 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -396,7 +396,7 @@ public abstract class PlayerList {
@@ -116,7 +116,7 @@ index 3e03d65ac4ef267de67684d24c6f9c303b1a0bf0..c7429a386df96a4b03c4c840ca9bd5b3
this.sendLevelInfo(player, worldserver1);
-@@ -906,12 +906,17 @@ public abstract class PlayerList {
+@@ -907,12 +907,17 @@ public abstract class PlayerList {
}
public void sendActiveEffects(LivingEntity entity, ServerGamePacketListenerImpl networkHandler) {
@@ -284,7 +284,7 @@ index 04760d8ba7c560bd9d11191c666715ae8c3e4bff..021169d709964b1bb65e49bf3fcf3119
}
// CraftBukkit end
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 71dfa030136492bfb03bfedc4f0d36eef5d67856..53ee324f353e65e1b504efeb1d0a3876b0e63991 100644
+index 2298b3203ce6bf8aca9f819fe27ab5ef6594dbed..628dd0d2ba78a36a2d64e4ece9bc395d38f833ca 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1008,7 +1008,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
diff --git a/patches/server/1023-Improve-entity-effect-API.patch b/patches/server/1023-Improve-entity-effect-API.patch
index 99eac03a09..47cfcf093b 100644
--- a/patches/server/1023-Improve-entity-effect-API.patch
+++ b/patches/server/1023-Improve-entity-effect-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Improve entity effect API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 53ee324f353e65e1b504efeb1d0a3876b0e63991..8059c105195bd31f3f3ee680d4a34d6feedcbc04 100644
+index 628dd0d2ba78a36a2d64e4ece9bc395d38f833ca..b25b10c24a379097233e61bcc10add841b6a7115 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1291,4 +1291,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1295,4 +1295,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return this.getHandle().getScoreboardName();
}
// Paper end - entity scoreboard name
diff --git a/patches/server/1035-Moonrise-optimisation-patches.patch b/patches/server/1035-Moonrise-optimisation-patches.patch
index fbd8128c1b..43178f114f 100644
--- a/patches/server/1035-Moonrise-optimisation-patches.patch
+++ b/patches/server/1035-Moonrise-optimisation-patches.patch
@@ -25174,7 +25174,7 @@ index e9b585387f6cbc454e7b16feb36a256e733c5488..67cfc3236a39008cfcf3acffefafda1a
public void updatePlayers(List<ServerPlayer> players) {
diff --git a/src/main/java/net/minecraft/server/level/DistanceManager.java b/src/main/java/net/minecraft/server/level/DistanceManager.java
-index c24644d5a77d87ae6c139f9598feafea308f2158..746f61661e22d22f2acbbe54a5933e57fbca45b2 100644
+index f7c2c03749d6be25bf33afd61e1da120770b3432..746f61661e22d22f2acbbe54a5933e57fbca45b2 100644
--- a/src/main/java/net/minecraft/server/level/DistanceManager.java
+++ b/src/main/java/net/minecraft/server/level/DistanceManager.java
@@ -34,58 +34,57 @@ import net.minecraft.world.level.ChunkPos;
@@ -25576,7 +25576,7 @@ index c24644d5a77d87ae6c139f9598feafea308f2158..746f61661e22d22f2acbbe54a5933e57
}
public void removeTicketsOnClosing() {
-- ImmutableSet<TicketType<?>> immutableset = ImmutableSet.of(TicketType.UNKNOWN, TicketType.FUTURE_AWAIT); // Paper - add additional tickets to preserve
+- ImmutableSet<TicketType<?>> immutableset = ImmutableSet.of(TicketType.UNKNOWN, TicketType.POST_TELEPORT, TicketType.FUTURE_AWAIT); // Paper - add additional tickets to preserve
- ObjectIterator<Entry<SortedArraySet<Ticket<?>>>> objectiterator = this.tickets.long2ObjectEntrySet().fastIterator();
-
- while (objectiterator.hasNext()) {
@@ -27756,10 +27756,10 @@ index b7d29389a357f142237cecd75f8ca91cf1eb6b5b..e4b0dc3121101d54394a0c3a413dabf8
this.generatingStep = generationStep;
this.cache = chunks;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index c7429a386df96a4b03c4c840ca9bd5b37d58ffc3..12f04abd8a4577f6746629ef4ff7e4536a4243a7 100644
+index 2d4baf17b1994647fd91083850363a36aa4ca76a..6444d7d4523a0de7a03ad0db6c326901c1ac0117 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
-@@ -1419,7 +1419,7 @@ public abstract class PlayerList {
+@@ -1420,7 +1420,7 @@ public abstract class PlayerList {
public void setViewDistance(int viewDistance) {
this.viewDistance = viewDistance;
@@ -27768,7 +27768,7 @@ index c7429a386df96a4b03c4c840ca9bd5b37d58ffc3..12f04abd8a4577f6746629ef4ff7e453
Iterator iterator = this.server.getAllLevels().iterator();
while (iterator.hasNext()) {
-@@ -1434,7 +1434,7 @@ public abstract class PlayerList {
+@@ -1435,7 +1435,7 @@ public abstract class PlayerList {
public void setSimulationDistance(int simulationDistance) {
this.simulationDistance = simulationDistance;
diff --git a/patches/server/1040-Improved-Watchdog-Support.patch b/patches/server/1040-Improved-Watchdog-Support.patch
index b12e1355b1..660214ab2c 100644
--- a/patches/server/1040-Improved-Watchdog-Support.patch
+++ b/patches/server/1040-Improved-Watchdog-Support.patch
@@ -304,7 +304,7 @@ index bf2bae3166df06be240dbbeecce16a24c85897a9..c06863578c5d654706d93e73059d89c1
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 12f04abd8a4577f6746629ef4ff7e4536a4243a7..d8217fa7ef475e23d216fa6ff6d08f598d39293b 100644
+index 6444d7d4523a0de7a03ad0db6c326901c1ac0117..50866208ca1b9c63bfa40e5799693a846ab002f9 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -553,7 +553,7 @@ public abstract class PlayerList {
diff --git a/patches/server/1046-Incremental-chunk-and-player-saving.patch b/patches/server/1046-Incremental-chunk-and-player-saving.patch
index 9b5d8793db..bd5d7d4f02 100644
--- a/patches/server/1046-Incremental-chunk-and-player-saving.patch
+++ b/patches/server/1046-Incremental-chunk-and-player-saving.patch
@@ -98,7 +98,7 @@ index 9b61fb06875c8070dba30ee541f85b4eed589681..c7c637fcaf02bf5a0861c9ffaca2b473
private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10;
private static final int FLY_STAT_RECORDING_SPEED = 25;
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index d8217fa7ef475e23d216fa6ff6d08f598d39293b..1b8bda718e4fb633e43ea01c40ca4c8e14e35fe4 100644
+index 50866208ca1b9c63bfa40e5799693a846ab002f9..d67c0c9cbbbe92b988f64e19e0e89414c9eb7921 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -518,6 +518,7 @@ public abstract class PlayerList {
@@ -109,7 +109,7 @@ index d8217fa7ef475e23d216fa6ff6d08f598d39293b..1b8bda718e4fb633e43ea01c40ca4c8e
this.playerIo.save(player);
ServerStatsCounter serverstatisticmanager = (ServerStatsCounter) player.getStats(); // CraftBukkit
-@@ -1151,9 +1152,21 @@ public abstract class PlayerList {
+@@ -1152,9 +1153,21 @@ public abstract class PlayerList {
}
public void saveAll() {
diff --git a/patches/server/1054-Allow-using-old-ender-pearl-behavior.patch b/patches/server/1054-Allow-using-old-ender-pearl-behavior.patch
index c417ad2b78..a55e614f56 100644
--- a/patches/server/1054-Allow-using-old-ender-pearl-behavior.patch
+++ b/patches/server/1054-Allow-using-old-ender-pearl-behavior.patch
@@ -30,7 +30,7 @@ index a2cd4385fca0cf2ec164d06be2732755506c0249..8aff5b7dd14b835788348b22b1fec4d3
}
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
-index 1b8bda718e4fb633e43ea01c40ca4c8e14e35fe4..d7e24ac52fc95b9cf5399638bb8d1f1520097163 100644
+index d67c0c9cbbbe92b988f64e19e0e89414c9eb7921..9b71655a425356132afb786eff623f558e1e3498 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -602,7 +602,13 @@ public abstract class PlayerList {