From 32d9c6684b21a958a6dbe1ab541992dcc99a2917 Mon Sep 17 00:00:00 2001 From: Noah van der Aa Date: Fri, 22 Sep 2023 17:08:04 +0200 Subject: [PATCH] more more more more more more more more work --- .../0734-Validate-usernames.patch} | 18 +++++++-------- ...er-animal-spawn-height-configurable.patch} | 0 ...anilla-BiomeProvider-from-WorldInfo.patch} | 10 ++++----- ...ion-for-worlds-affected-by-time-cmd.patch} | 0 ...load-to-PersistentDataContainer-has.patch} | 0 ...9-Multiple-Entries-with-Scoreboards.patch} | 6 ++--- ...740-Reset-placed-block-on-exception.patch} | 0 ...configurable-height-for-slime-spawn.patch} | 6 ++--- ...ostname-to-AsyncPlayerPreLoginEvent.patch} | 6 ++--- ...0743-Fix-xp-reward-for-baby-zombies.patch} | 4 ++-- .../0744-Kick-on-main-for-illegal-chat.patch} | 8 +++---- ...lti-Block-Change-API-Implementation.patch} | 4 ++-- .../0746-Fix-NotePlayEvent.patch} | 0 .../0747-Freeze-Tick-Lock-API.patch} | 16 +++++++------- .../0748-Dolphin-API.patch} | 0 .../0749-More-PotionEffectType-API.patch} | 9 ++++---- ...for-StructureTemplate.Pallete-cache.patch} | 0 ...command-sender-which-forwards-feedb.patch} | 4 ++-- ...-missing-structure-set-seed-configs.patch} | 2 +- .../0753-Implement-regenerateChunk.patch} | 2 +- ...lled-powdered-snow-bucket-placement.patch} | 6 ++--- ...ate-calls-to-CraftServer-getSpawnLi.patch} | 4 ++-- .../0756-Add-GameEvent-tags.patch} | 6 ++--- ...ks-fairly-for-worlds-while-waiting-.patch} | 8 +++---- .../0758-Furnace-RecipesUsed-API.patch} | 0 ...gurable-sculk-sensor-listener-range.patch} | 0 ...d-missing-block-data-mins-and-maxes.patch} | 0 ...fault-CustomSpawners-in-custom-worl.patch} | 4 ++-- ...-worldlist-before-initing-the-world.patch} | 10 ++++----- .../0763-Fix-Entity-Position-Desync.patch} | 4 ++-- .../0764-Custom-Potion-Mixes.patch} | 22 +++++++++---------- ...65-Force-close-world-loading-screen.patch} | 4 ++-- 32 files changed, 82 insertions(+), 81 deletions(-) rename patches/{unapplied/server/0756-Validate-usernames.patch => server/0734-Validate-usernames.patch} (84%) rename patches/{unapplied/server/0757-Make-water-animal-spawn-height-configurable.patch => server/0735-Make-water-animal-spawn-height-configurable.patch} (100%) rename patches/{unapplied/server/0758-Expose-vanilla-BiomeProvider-from-WorldInfo.patch => server/0736-Expose-vanilla-BiomeProvider-from-WorldInfo.patch} (95%) rename patches/{unapplied/server/0759-Add-config-option-for-worlds-affected-by-time-cmd.patch => server/0737-Add-config-option-for-worlds-affected-by-time-cmd.patch} (100%) rename patches/{unapplied/server/0760-Add-new-overload-to-PersistentDataContainer-has.patch => server/0738-Add-new-overload-to-PersistentDataContainer-has.patch} (100%) rename patches/{unapplied/server/0761-Multiple-Entries-with-Scoreboards.patch => server/0739-Multiple-Entries-with-Scoreboards.patch} (96%) rename patches/{unapplied/server/0762-Reset-placed-block-on-exception.patch => server/0740-Reset-placed-block-on-exception.patch} (100%) rename patches/{unapplied/server/0763-Add-configurable-height-for-slime-spawn.patch => server/0741-Add-configurable-height-for-slime-spawn.patch} (92%) rename patches/{unapplied/server/0764-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch => server/0742-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch} (85%) rename patches/{unapplied/server/0765-Fix-xp-reward-for-baby-zombies.patch => server/0743-Fix-xp-reward-for-baby-zombies.patch} (88%) rename patches/{unapplied/server/0766-Kick-on-main-for-illegal-chat.patch => server/0744-Kick-on-main-for-illegal-chat.patch} (86%) rename patches/{unapplied/server/0767-Multi-Block-Change-API-Implementation.patch => server/0745-Multi-Block-Change-API-Implementation.patch} (95%) rename patches/{unapplied/server/0768-Fix-NotePlayEvent.patch => server/0746-Fix-NotePlayEvent.patch} (100%) rename patches/{unapplied/server/0769-Freeze-Tick-Lock-API.patch => server/0747-Freeze-Tick-Lock-API.patch} (84%) rename patches/{unapplied/server/0770-Dolphin-API.patch => server/0748-Dolphin-API.patch} (100%) rename patches/{unapplied/server/0771-More-PotionEffectType-API.patch => server/0749-More-PotionEffectType-API.patch} (93%) rename patches/{unapplied/server/0772-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch => server/0750-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch} (100%) rename patches/{unapplied/server/0773-API-for-creating-command-sender-which-forwards-feedb.patch => server/0751-API-for-creating-command-sender-which-forwards-feedb.patch} (97%) rename patches/{unapplied/server/0774-Add-missing-structure-set-seed-configs.patch => server/0752-Add-missing-structure-set-seed-configs.patch} (99%) rename patches/{unapplied/server/0775-Implement-regenerateChunk.patch => server/0753-Implement-regenerateChunk.patch} (98%) rename patches/{unapplied/server/0776-Fix-cancelled-powdered-snow-bucket-placement.patch => server/0754-Fix-cancelled-powdered-snow-bucket-placement.patch} (93%) rename patches/{unapplied/server/0777-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch => server/0755-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch} (86%) rename patches/{unapplied/server/0778-Add-GameEvent-tags.patch => server/0756-Add-GameEvent-tags.patch} (95%) rename patches/{unapplied/server/0779-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch => server/0757-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch} (82%) rename patches/{unapplied/server/0780-Furnace-RecipesUsed-API.patch => server/0758-Furnace-RecipesUsed-API.patch} (100%) rename patches/{unapplied/server/0781-Configurable-sculk-sensor-listener-range.patch => server/0759-Configurable-sculk-sensor-listener-range.patch} (100%) rename patches/{unapplied/server/0782-Add-missing-block-data-mins-and-maxes.patch => server/0760-Add-missing-block-data-mins-and-maxes.patch} (100%) rename patches/{unapplied/server/0783-Option-to-have-default-CustomSpawners-in-custom-worl.patch => server/0761-Option-to-have-default-CustomSpawners-in-custom-worl.patch} (93%) rename patches/{unapplied/server/0784-Put-world-into-worldlist-before-initing-the-world.patch => server/0762-Put-world-into-worldlist-before-initing-the-world.patch} (78%) rename patches/{unapplied/server/0785-Fix-Entity-Position-Desync.patch => server/0763-Fix-Entity-Position-Desync.patch} (89%) rename patches/{unapplied/server/0786-Custom-Potion-Mixes.patch => server/0764-Custom-Potion-Mixes.patch} (93%) rename patches/{unapplied/server/0787-Force-close-world-loading-screen.patch => server/0765-Force-close-world-loading-screen.patch} (92%) diff --git a/patches/unapplied/server/0756-Validate-usernames.patch b/patches/server/0734-Validate-usernames.patch similarity index 84% rename from patches/unapplied/server/0756-Validate-usernames.patch rename to patches/server/0734-Validate-usernames.patch index 762960d87e..bebbeb6459 100644 --- a/patches/unapplied/server/0756-Validate-usernames.patch +++ b/patches/server/0734-Validate-usernames.patch @@ -5,19 +5,19 @@ Subject: [PATCH] Validate usernames diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index ed3af916dfa875dd0a5f1e730d20d11efd6419c6..cd4e76fe5b79c7d9e615b4886a568c74db757436 100644 +index f10647075a55630d91673ef3ccf91f9079f69d37..542cd004b9ebee8c5bfc96d6ae0dc6820dfc6692 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -60,6 +60,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -61,6 +61,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + private GameProfile authenticatedProfile; private final String serverId; - @Nullable - private ServerPlayer delayedAcceptPlayer; + private ServerPlayer player; // CraftBukkit + public boolean iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation = false; // Paper - username validation overriding public ServerLoginPacketListenerImpl(MinecraftServer server, Connection connection) { this.state = ServerLoginPacketListenerImpl.State.HELLO; -@@ -212,10 +213,38 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, - // Paper end +@@ -132,10 +133,38 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, + return this.requestedUsername != null ? this.requestedUsername + " (" + s + ")" : s; } + // Paper start - validate usernames @@ -52,14 +52,14 @@ index ed3af916dfa875dd0a5f1e730d20d11efd6419c6..cd4e76fe5b79c7d9e615b4886a568c74 + } + } + // Paper end - validate usernames + this.requestedUsername = packet.name(); GameProfile gameprofile = this.server.getSingleplayerProfile(); - if (gameprofile != null && packet.name().equalsIgnoreCase(gameprofile.getName())) { diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 64e40e3caa85bff9382a483237301a8f231d1991..d25aa54689360e89b18535da54ce2c90ab21f819 100644 +index 3542ba4c043e4d38caa191efbabfa98092228a84..2580b728ee74f69d0788aae8c4f16ecd1dcec999 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -673,7 +673,7 @@ public abstract class PlayerList { +@@ -660,7 +660,7 @@ public abstract class PlayerList { for (int i = 0; i < this.players.size(); ++i) { entityplayer = (ServerPlayer) this.players.get(i); diff --git a/patches/unapplied/server/0757-Make-water-animal-spawn-height-configurable.patch b/patches/server/0735-Make-water-animal-spawn-height-configurable.patch similarity index 100% rename from patches/unapplied/server/0757-Make-water-animal-spawn-height-configurable.patch rename to patches/server/0735-Make-water-animal-spawn-height-configurable.patch diff --git a/patches/unapplied/server/0758-Expose-vanilla-BiomeProvider-from-WorldInfo.patch b/patches/server/0736-Expose-vanilla-BiomeProvider-from-WorldInfo.patch similarity index 95% rename from patches/unapplied/server/0758-Expose-vanilla-BiomeProvider-from-WorldInfo.patch rename to patches/server/0736-Expose-vanilla-BiomeProvider-from-WorldInfo.patch index 48ab227bf3..33428db458 100644 --- a/patches/unapplied/server/0758-Expose-vanilla-BiomeProvider-from-WorldInfo.patch +++ b/patches/server/0736-Expose-vanilla-BiomeProvider-from-WorldInfo.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Expose vanilla BiomeProvider from WorldInfo diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index b54a3dcbd94582158a7119b92b02be5a4e32877c..18269a33f6eb3623fbfa6dd551426515404e8c95 100644 +index ee8d5345e8ce8e0e082d82e9e52f5918f92a242e..d9ec9577d3686cafe6f9a9e33361b8f04c5089b2 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -561,7 +561,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(iworlddataserver)); LevelStem worlddimension = (LevelStem) dimensions.get(dimensionKey); @@ -18,10 +18,10 @@ index b54a3dcbd94582158a7119b92b02be5a4e32877c..18269a33f6eb3623fbfa6dd551426515 biomeProvider = gen.getDefaultBiomeProvider(worldInfo); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 2b4167581303c79ead5628745efb7a0fa87cf405..a49a2225e18e069e4c2bf12a15d411a5a63c7313 100644 +index 8dc88ba48dbbf97c41d15cd1f01a5292b4e5a56c..86558a2080973ab2810085ee3d713285bf56e40d 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -1221,7 +1221,7 @@ public final class CraftServer implements Server { +@@ -1224,7 +1224,7 @@ public final class CraftServer implements Server { List list = ImmutableList.of(new PhantomSpawner(), new PatrolSpawner(), new CatSpawner(), new VillageSiege(), new WanderingTraderSpawner(worlddata)); LevelStem worlddimension = iregistry.get(actualDimension); @@ -31,7 +31,7 @@ index 2b4167581303c79ead5628745efb7a0fa87cf405..a49a2225e18e069e4c2bf12a15d411a5 biomeProvider = generator.getDefaultBiomeProvider(worldInfo); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index dfcf7748ef45d35538e65f655f3a892f582435ca..0159eb5302c73dd51daa11f100901acc431449c0 100644 +index 888a60457bfbfd364e91b9e3d5c9df9dc7a2c564..54809679dcc4307b91af1e97e6bf0395d6baf403 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -202,6 +202,30 @@ public class CraftWorld extends CraftRegionAccessor implements World { diff --git a/patches/unapplied/server/0759-Add-config-option-for-worlds-affected-by-time-cmd.patch b/patches/server/0737-Add-config-option-for-worlds-affected-by-time-cmd.patch similarity index 100% rename from patches/unapplied/server/0759-Add-config-option-for-worlds-affected-by-time-cmd.patch rename to patches/server/0737-Add-config-option-for-worlds-affected-by-time-cmd.patch diff --git a/patches/unapplied/server/0760-Add-new-overload-to-PersistentDataContainer-has.patch b/patches/server/0738-Add-new-overload-to-PersistentDataContainer-has.patch similarity index 100% rename from patches/unapplied/server/0760-Add-new-overload-to-PersistentDataContainer-has.patch rename to patches/server/0738-Add-new-overload-to-PersistentDataContainer-has.patch diff --git a/patches/unapplied/server/0761-Multiple-Entries-with-Scoreboards.patch b/patches/server/0739-Multiple-Entries-with-Scoreboards.patch similarity index 96% rename from patches/unapplied/server/0761-Multiple-Entries-with-Scoreboards.patch rename to patches/server/0739-Multiple-Entries-with-Scoreboards.patch index 2a4558b8f3..f5b866130a 100644 --- a/patches/unapplied/server/0761-Multiple-Entries-with-Scoreboards.patch +++ b/patches/server/0739-Multiple-Entries-with-Scoreboards.patch @@ -22,10 +22,10 @@ index ee37ec0de1ca969144824427ae42b0c81434a1b4..4ebe22ac20f1a98694cc3bec570ef5bb this.name = buf.readUtf(); this.method = buf.readByte(); diff --git a/src/main/java/net/minecraft/server/ServerScoreboard.java b/src/main/java/net/minecraft/server/ServerScoreboard.java -index 610d312b9c8f6c8d1f102e8ba2fe9fc2cc3e98c5..3a4a0727ad44322e3ba85512cd077808dab080b7 100644 +index e84332b6f031e83283c1b6e90bb82a6053ff46d7..03d13c2425170a6513ea7442a4a12fc9aa6e211d 100644 --- a/src/main/java/net/minecraft/server/ServerScoreboard.java +++ b/src/main/java/net/minecraft/server/ServerScoreboard.java -@@ -92,6 +92,25 @@ public class ServerScoreboard extends Scoreboard { +@@ -95,6 +95,25 @@ public class ServerScoreboard extends Scoreboard { } } @@ -51,7 +51,7 @@ index 610d312b9c8f6c8d1f102e8ba2fe9fc2cc3e98c5..3a4a0727ad44322e3ba85512cd077808 @Override public void removePlayerFromTeam(String playerName, PlayerTeam team) { super.removePlayerFromTeam(playerName, team); -@@ -99,6 +118,17 @@ public class ServerScoreboard extends Scoreboard { +@@ -102,6 +121,17 @@ public class ServerScoreboard extends Scoreboard { this.setDirty(); } diff --git a/patches/unapplied/server/0762-Reset-placed-block-on-exception.patch b/patches/server/0740-Reset-placed-block-on-exception.patch similarity index 100% rename from patches/unapplied/server/0762-Reset-placed-block-on-exception.patch rename to patches/server/0740-Reset-placed-block-on-exception.patch diff --git a/patches/unapplied/server/0763-Add-configurable-height-for-slime-spawn.patch b/patches/server/0741-Add-configurable-height-for-slime-spawn.patch similarity index 92% rename from patches/unapplied/server/0763-Add-configurable-height-for-slime-spawn.patch rename to patches/server/0741-Add-configurable-height-for-slime-spawn.patch index 65b8d6d80d..a9aa51d551 100644 --- a/patches/unapplied/server/0763-Add-configurable-height-for-slime-spawn.patch +++ b/patches/server/0741-Add-configurable-height-for-slime-spawn.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add configurable height for slime spawn diff --git a/src/main/java/net/minecraft/world/entity/monster/Slime.java b/src/main/java/net/minecraft/world/entity/monster/Slime.java -index b0c5324dadc0a66786ec5edb7b4796ceeaa8e0d2..5aa702d68096af180340feb65a07856301b4f258 100644 +index 21311d67565443b4ef59f8676f616237d28a8084..48a420b7455f872c351e04be3918808e51b192ed 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Slime.java +++ b/src/main/java/net/minecraft/world/entity/monster/Slime.java -@@ -322,7 +322,11 @@ public class Slime extends Mob implements Enemy { +@@ -329,7 +329,11 @@ public class Slime extends Mob implements Enemy { public static boolean checkSlimeSpawnRules(EntityType type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { if (world.getDifficulty() != Difficulty.PEACEFUL) { @@ -21,7 +21,7 @@ index b0c5324dadc0a66786ec5edb7b4796ceeaa8e0d2..5aa702d68096af180340feb65a078563 return checkMobSpawnRules(type, world, spawnReason, pos, random); } -@@ -333,7 +337,10 @@ public class Slime extends Mob implements Enemy { +@@ -340,7 +344,10 @@ public class Slime extends Mob implements Enemy { ChunkPos chunkcoordintpair = new ChunkPos(pos); boolean flag = world.getMinecraftWorld().paperConfig().entities.spawning.allChunksAreSlimeChunks || WorldgenRandom.seedSlimeChunk(chunkcoordintpair.x, chunkcoordintpair.z, ((WorldGenLevel) world).getSeed(), world.getMinecraftWorld().spigotConfig.slimeSeed).nextInt(10) == 0; // Spigot // Paper diff --git a/patches/unapplied/server/0764-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch b/patches/server/0742-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch similarity index 85% rename from patches/unapplied/server/0764-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch rename to patches/server/0742-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch index f2c95ba6c0..e74f10367f 100644 --- a/patches/unapplied/server/0764-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch +++ b/patches/server/0742-Added-getHostname-to-AsyncPlayerPreLoginEvent.patch @@ -5,13 +5,13 @@ Subject: [PATCH] Added getHostname to AsyncPlayerPreLoginEvent diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index cd4e76fe5b79c7d9e615b4886a568c74db757436..3fcd7bfdb8945b276c94a263e9da6b85ce470366 100644 +index 542cd004b9ebee8c5bfc96d6ae0dc6820dfc6692..ced150fa9160310408f57e89d115de740097eaf5 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -371,7 +371,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, +@@ -326,7 +326,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, // Paper start - com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(ServerLoginPacketListenerImpl.this.gameProfile); + com.destroystokyo.paper.profile.PlayerProfile profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitMirror(gameprofile); - AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile); // Paper - add rawAddress + AsyncPlayerPreLoginEvent asyncEvent = new AsyncPlayerPreLoginEvent(playerName, address, rawAddress, uniqueId, profile, ServerLoginPacketListenerImpl.this.connection.hostname); // Paper - add rawAddress & hostname server.getPluginManager().callEvent(asyncEvent); diff --git a/patches/unapplied/server/0765-Fix-xp-reward-for-baby-zombies.patch b/patches/server/0743-Fix-xp-reward-for-baby-zombies.patch similarity index 88% rename from patches/unapplied/server/0765-Fix-xp-reward-for-baby-zombies.patch rename to patches/server/0743-Fix-xp-reward-for-baby-zombies.patch index 399ad48f22..3d82857f71 100644 --- a/patches/unapplied/server/0765-Fix-xp-reward-for-baby-zombies.patch +++ b/patches/server/0743-Fix-xp-reward-for-baby-zombies.patch @@ -9,10 +9,10 @@ so this resets it after each call to Zombie#getExperienceReward diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index e58c3e2163be271ff2668a55098ea8f48f8636ad..3f8c1d1d3c408fc4f15c4b5680bc22c86f104a9d 100644 +index b13365fe65507ad2935797a31baa8474b018f516..1ddbba72a5fd3d225b651815a38d178941fba289 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -@@ -174,11 +174,16 @@ public class Zombie extends Monster { +@@ -175,11 +175,16 @@ public class Zombie extends Monster { @Override public int getExperienceReward() { diff --git a/patches/unapplied/server/0766-Kick-on-main-for-illegal-chat.patch b/patches/server/0744-Kick-on-main-for-illegal-chat.patch similarity index 86% rename from patches/unapplied/server/0766-Kick-on-main-for-illegal-chat.patch rename to patches/server/0744-Kick-on-main-for-illegal-chat.patch index 7dedbb83f2..f448011b0f 100644 --- a/patches/unapplied/server/0766-Kick-on-main-for-illegal-chat.patch +++ b/patches/server/0744-Kick-on-main-for-illegal-chat.patch @@ -7,10 +7,10 @@ Makes the PlayerKickEvent fire on the main thread for illegal characters or chat out-of-order errors. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 6345d9d3ade4c490e4a6266fc5ecbd5b2de8ddeb..9535d8effbc588b69df9dba9aba4b3090370ae69 100644 +index 735b47f2c452229f7d6951b5b1869ef40b14d26b..46a5cc73b1fef1cfa69e110619eedc431e1b7fa9 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2167,7 +2167,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2007,7 +2007,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl } // CraftBukkit end if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.message())) { @@ -20,7 +20,7 @@ index 6345d9d3ade4c490e4a6266fc5ecbd5b2de8ddeb..9535d8effbc588b69df9dba9aba4b309 } else { Optional optional = this.tryHandleChat(packet.message(), packet.timeStamp(), packet.lastSeenMessages()); -@@ -2201,7 +2203,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2040,7 +2042,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl @Override public void handleChatCommand(ServerboundChatCommandPacket packet) { if (ServerGamePacketListenerImpl.isChatMessageIllegal(packet.command())) { @@ -30,7 +30,7 @@ index 6345d9d3ade4c490e4a6266fc5ecbd5b2de8ddeb..9535d8effbc588b69df9dba9aba4b309 } else { Optional optional = this.tryHandleChat(packet.command(), packet.timeStamp(), packet.lastSeenMessages()); -@@ -2287,7 +2291,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2126,7 +2130,9 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl private Optional tryHandleChat(String message, Instant timestamp, LastSeenMessages.Update acknowledgment) { if (!this.updateChatOrder(timestamp)) { ServerGamePacketListenerImpl.LOGGER.warn("{} sent out-of-order chat: '{}'", this.player.getName().getString(), message); diff --git a/patches/unapplied/server/0767-Multi-Block-Change-API-Implementation.patch b/patches/server/0745-Multi-Block-Change-API-Implementation.patch similarity index 95% rename from patches/unapplied/server/0767-Multi-Block-Change-API-Implementation.patch rename to patches/server/0745-Multi-Block-Change-API-Implementation.patch index 7b40e1c881..98f7cc0ef4 100644 --- a/patches/unapplied/server/0767-Multi-Block-Change-API-Implementation.patch +++ b/patches/server/0745-Multi-Block-Change-API-Implementation.patch @@ -24,10 +24,10 @@ index f96d61bdeb556665d6e6e5023f9d77fd82204e89..e3f355c85eb7cc8c1683e3009502c10a public void write(FriendlyByteBuf buf) { buf.writeLong(this.sectionPos.asLong()); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index cda8b48a77fc23a674b9e3ef1b60649bcac294f8..166c7d1c23862b65b332ca6573a2a75c5926c9e8 100644 +index 610075864157c5db7f09b60228f22b615928cb21..91d572075ea018e4768f11115723d67b06018bf0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -889,6 +889,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -849,6 +849,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { this.getHandle().connection.send(packet); } diff --git a/patches/unapplied/server/0768-Fix-NotePlayEvent.patch b/patches/server/0746-Fix-NotePlayEvent.patch similarity index 100% rename from patches/unapplied/server/0768-Fix-NotePlayEvent.patch rename to patches/server/0746-Fix-NotePlayEvent.patch diff --git a/patches/unapplied/server/0769-Freeze-Tick-Lock-API.patch b/patches/server/0747-Freeze-Tick-Lock-API.patch similarity index 84% rename from patches/unapplied/server/0769-Freeze-Tick-Lock-API.patch rename to patches/server/0747-Freeze-Tick-Lock-API.patch index b9b01c6451..28d6759434 100644 --- a/patches/unapplied/server/0769-Freeze-Tick-Lock-API.patch +++ b/patches/server/0747-Freeze-Tick-Lock-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Freeze Tick Lock API diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index d441db38210b15c6fae5a1632f4e2372c7a04b7c..ceddbc2e0fdec358bd7776af264df33696ecbd6d 100644 +index addd14088a5fa1671345de1537fbbd9d57dd4b40..353cf7574aea63413899a4b6d5edf43cc675c1da 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -402,6 +402,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -401,6 +401,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { private org.bukkit.util.Vector origin; @javax.annotation.Nullable private UUID originWorld; @@ -16,7 +16,7 @@ index d441db38210b15c6fae5a1632f4e2372c7a04b7c..ceddbc2e0fdec358bd7776af264df336 public void setOrigin(@javax.annotation.Nonnull Location location) { this.origin = location.toVector(); -@@ -833,7 +834,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -749,7 +750,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.setRemainingFireTicks(this.remainingFireTicks - 1); } @@ -25,7 +25,7 @@ index d441db38210b15c6fae5a1632f4e2372c7a04b7c..ceddbc2e0fdec358bd7776af264df336 this.setTicksFrozen(0); this.level().levelEvent((Player) null, 1009, this.blockPosition, 1); } -@@ -2417,6 +2418,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2299,6 +2300,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { if (fromNetherPortal) { nbt.putBoolean("Paper.FromNetherPortal", true); } @@ -35,7 +35,7 @@ index d441db38210b15c6fae5a1632f4e2372c7a04b7c..ceddbc2e0fdec358bd7776af264df336 // Paper end return nbt; } catch (Throwable throwable) { -@@ -2582,6 +2586,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2464,6 +2468,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { if (spawnReason == null) { spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; } @@ -46,10 +46,10 @@ index d441db38210b15c6fae5a1632f4e2372c7a04b7c..ceddbc2e0fdec358bd7776af264df336 } catch (Throwable throwable) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index a35e59544786776391ba135f247ac1a28be3d754..50ee81007ae10f68aa40a666605203862f5e20a8 100644 +index 2a23448e756199b631355cd10b567ea1d54caa37..7b4a04193f783a077cfec47887fc6b76b3985d8d 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3417,7 +3417,7 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3446,7 +3446,7 @@ public abstract class LivingEntity extends Entity implements Attackable { this.level().getProfiler().pop(); this.level().getProfiler().push("freezing"); @@ -59,7 +59,7 @@ index a35e59544786776391ba135f247ac1a28be3d754..50ee81007ae10f68aa40a66660520386 if (this.isInPowderSnow && this.canFreeze()) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java -index d976796c6e80d8abc5c110bdefc09f63cfc4a60a..f61d3cd3cdbfe17f6818fbbb163f80ba3de50ca1 100644 +index f05d8107368e639adf60f3e5d944c65300087a3c..87c303ff576cd05291d50d5676e86ca93a13b301 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -669,6 +669,17 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { diff --git a/patches/unapplied/server/0770-Dolphin-API.patch b/patches/server/0748-Dolphin-API.patch similarity index 100% rename from patches/unapplied/server/0770-Dolphin-API.patch rename to patches/server/0748-Dolphin-API.patch diff --git a/patches/unapplied/server/0771-More-PotionEffectType-API.patch b/patches/server/0749-More-PotionEffectType-API.patch similarity index 93% rename from patches/unapplied/server/0771-More-PotionEffectType-API.patch rename to patches/server/0749-More-PotionEffectType-API.patch index 15d2f7a5ec..a24cb35b96 100644 --- a/patches/unapplied/server/0771-More-PotionEffectType-API.patch +++ b/patches/server/0749-More-PotionEffectType-API.patch @@ -5,13 +5,14 @@ Subject: [PATCH] More PotionEffectType API diff --git a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java -index 5a8c29cc117ce9478cc205f6fdbe63d227268775..3bda325cfd5d0d8dcc878cf547c9ae9e82fde240 100644 +index 8f63c21186d8daa290286676bc2478d8629c533b..b3b7a4694f599d936f365e22d6190e6180cde617 100644 --- a/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java +++ b/src/main/java/org/bukkit/craftbukkit/potion/CraftPotionEffectType.java -@@ -105,4 +105,46 @@ public class CraftPotionEffectType extends PotionEffectType { - public Color getColor() { - return Color.fromRGB(this.handle.getColor()); +@@ -128,4 +128,47 @@ public class CraftPotionEffectType extends PotionEffectType { + return CraftRegistry.getMinecraftRegistry(Registries.MOB_EFFECT) + .getOptional(CraftNamespacedKey.toMinecraft(bukkit.getKey())).orElseThrow(); } ++ + // Paper start + @Override + public org.bukkit.NamespacedKey getKey() { diff --git a/patches/unapplied/server/0772-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch b/patches/server/0750-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch similarity index 100% rename from patches/unapplied/server/0772-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch rename to patches/server/0750-Use-a-CHM-for-StructureTemplate.Pallete-cache.patch diff --git a/patches/unapplied/server/0773-API-for-creating-command-sender-which-forwards-feedb.patch b/patches/server/0751-API-for-creating-command-sender-which-forwards-feedb.patch similarity index 97% rename from patches/unapplied/server/0773-API-for-creating-command-sender-which-forwards-feedb.patch rename to patches/server/0751-API-for-creating-command-sender-which-forwards-feedb.patch index c8d5521b6c..f4403a7c24 100644 --- a/patches/unapplied/server/0773-API-for-creating-command-sender-which-forwards-feedb.patch +++ b/patches/server/0751-API-for-creating-command-sender-which-forwards-feedb.patch @@ -122,10 +122,10 @@ index 0000000000000000000000000000000000000000..e3a5f1ec376319bdfda87fa27ae217bf + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index a49a2225e18e069e4c2bf12a15d411a5a63c7313..86364d6f0792a9656d1ecb9537cf1cb2c064bca9 100644 +index 86558a2080973ab2810085ee3d713285bf56e40d..527a93067e8d134e77ca80cde554e0212c1568da 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2012,6 +2012,13 @@ public final class CraftServer implements Server { +@@ -2015,6 +2015,13 @@ public final class CraftServer implements Server { return console.console; } diff --git a/patches/unapplied/server/0774-Add-missing-structure-set-seed-configs.patch b/patches/server/0752-Add-missing-structure-set-seed-configs.patch similarity index 99% rename from patches/unapplied/server/0774-Add-missing-structure-set-seed-configs.patch rename to patches/server/0752-Add-missing-structure-set-seed-configs.patch index f299fd82ac..ac18f7bea2 100644 --- a/patches/unapplied/server/0774-Add-missing-structure-set-seed-configs.patch +++ b/patches/server/0752-Add-missing-structure-set-seed-configs.patch @@ -20,7 +20,7 @@ seeds/salts to the frequency reducer which has a similar effect. Co-authored-by: William Blake Galbreath diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java -index eee2239cd715d01c5adbf1cd79282e115f42cd2e..8bab3fcfc6aa6c0b37621474a69f15e94bda2113 100644 +index a94ddf0d9a72ce9507a146fa935197b5685a7dd1..9cdfc9e7614708934cc05146f1464c187d736aed 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java @@ -568,7 +568,7 @@ public abstract class ChunkGenerator { diff --git a/patches/unapplied/server/0775-Implement-regenerateChunk.patch b/patches/server/0753-Implement-regenerateChunk.patch similarity index 98% rename from patches/unapplied/server/0775-Implement-regenerateChunk.patch rename to patches/server/0753-Implement-regenerateChunk.patch index 781aaa93b6..d78b9ce3a8 100644 --- a/patches/unapplied/server/0775-Implement-regenerateChunk.patch +++ b/patches/server/0753-Implement-regenerateChunk.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Implement regenerateChunk Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com> diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 0159eb5302c73dd51daa11f100901acc431449c0..9c7d9ab63cd24e58a0e0e5af15fc434f8811591a 100644 +index 54809679dcc4307b91af1e97e6bf0395d6baf403..a37f411baab87fa0c13b1379e23cd0b62ed67de2 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -141,6 +141,7 @@ import org.jetbrains.annotations.NotNull; diff --git a/patches/unapplied/server/0776-Fix-cancelled-powdered-snow-bucket-placement.patch b/patches/server/0754-Fix-cancelled-powdered-snow-bucket-placement.patch similarity index 93% rename from patches/unapplied/server/0776-Fix-cancelled-powdered-snow-bucket-placement.patch rename to patches/server/0754-Fix-cancelled-powdered-snow-bucket-placement.patch index a17a9169aa..bab29517f3 100644 --- a/patches/unapplied/server/0776-Fix-cancelled-powdered-snow-bucket-placement.patch +++ b/patches/server/0754-Fix-cancelled-powdered-snow-bucket-placement.patch @@ -20,10 +20,10 @@ index e581dc10f3c805f7f8b6e4c842092609e7e1a0f8..b0204af850ee182773ad458208cccd94 } return InteractionResult.FAIL; diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index afbf619feb35751046131e7b22791e789d16427f..f62585f3112886c927f1f65f982b9db9194457e9 100644 +index d6f833583c6ae915133b055768d7fcb97680a640..710369e06f66c033dbfa551b0c00362009938e44 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -353,7 +353,7 @@ public final class ItemStack { +@@ -358,7 +358,7 @@ public final class ItemStack { int oldCount = this.getCount(); ServerLevel world = (ServerLevel) context.getLevel(); @@ -32,7 +32,7 @@ index afbf619feb35751046131e7b22791e789d16427f..f62585f3112886c927f1f65f982b9db9 world.captureBlockStates = true; // special case bonemeal if (item == Items.BONE_MEAL) { -@@ -412,7 +412,7 @@ public final class ItemStack { +@@ -417,7 +417,7 @@ public final class ItemStack { world.capturedBlockStates.clear(); if (blocks.size() > 1) { placeEvent = org.bukkit.craftbukkit.event.CraftEventFactory.callBlockMultiPlaceEvent(world, entityhuman, enumhand, blocks, blockposition.getX(), blockposition.getY(), blockposition.getZ()); diff --git a/patches/unapplied/server/0777-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch b/patches/server/0755-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch similarity index 86% rename from patches/unapplied/server/0777-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch rename to patches/server/0755-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch index 39c6f305ec..87a7a58457 100644 --- a/patches/unapplied/server/0777-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch +++ b/patches/server/0755-Add-missing-Validate-calls-to-CraftServer-getSpawnLi.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Add missing Validate calls to CraftServer#getSpawnLimit Copies appropriate checks from CraftWorld#getSpawnLimit diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 86364d6f0792a9656d1ecb9537cf1cb2c064bca9..99c1577685351477ec127e9c0758125b886a50e8 100644 +index 527a93067e8d134e77ca80cde554e0212c1568da..c4edd7e5b7b7f71dba397f2694642bbf1ed65ae9 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2189,6 +2189,8 @@ public final class CraftServer implements Server { +@@ -2192,6 +2192,8 @@ public final class CraftServer implements Server { @Override public int getSpawnLimit(SpawnCategory spawnCategory) { // Paper start diff --git a/patches/unapplied/server/0778-Add-GameEvent-tags.patch b/patches/server/0756-Add-GameEvent-tags.patch similarity index 95% rename from patches/unapplied/server/0778-Add-GameEvent-tags.patch rename to patches/server/0756-Add-GameEvent-tags.patch index f792d28cc6..e349fd44d7 100644 --- a/patches/unapplied/server/0778-Add-GameEvent-tags.patch +++ b/patches/server/0756-Add-GameEvent-tags.patch @@ -46,10 +46,10 @@ index 0000000000000000000000000000000000000000..e7d9fd2702a1ce96596580fff8f5ee4f + } +} diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 99c1577685351477ec127e9c0758125b886a50e8..815c95626a1cc4ed7e9641c37825a98fcfceaf4b 100644 +index c4edd7e5b7b7f71dba397f2694642bbf1ed65ae9..c781078f2858fdbc633f0eeaa57121b816645e90 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -@@ -2610,6 +2610,15 @@ public final class CraftServer implements Server { +@@ -2613,6 +2613,15 @@ public final class CraftServer implements Server { return (org.bukkit.Tag) new CraftEntityTag(BuiltInRegistries.ENTITY_TYPE, entityTagKey); } } @@ -65,7 +65,7 @@ index 99c1577685351477ec127e9c0758125b886a50e8..815c95626a1cc4ed7e9641c37825a98f default -> throw new IllegalArgumentException(); } -@@ -2642,6 +2651,13 @@ public final class CraftServer implements Server { +@@ -2645,6 +2654,13 @@ public final class CraftServer implements Server { net.minecraft.core.Registry> entityTags = BuiltInRegistries.ENTITY_TYPE; return entityTags.getTags().map(pair -> (org.bukkit.Tag) new CraftEntityTag(entityTags, pair.getFirst())).collect(ImmutableList.toImmutableList()); } diff --git a/patches/unapplied/server/0779-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch b/patches/server/0757-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch similarity index 82% rename from patches/unapplied/server/0779-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch rename to patches/server/0757-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch index 0e3f262db5..87f800a14d 100644 --- a/patches/unapplied/server/0779-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch +++ b/patches/server/0757-Execute-chunk-tasks-fairly-for-worlds-while-waiting-.patch @@ -9,18 +9,18 @@ This might result in chunks loading far slower in the nether, for example. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 18269a33f6eb3623fbfa6dd551426515404e8c95..42a3b0b7eee3b8eb7e833335dfdba76d185ad141 100644 +index d9ec9577d3686cafe6f9a9e33361b8f04c5089b2..da43ef3d1ec41f91d755cea834ab0dd528c66c3a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -1305,6 +1305,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop