diff --git a/gradle.properties b/gradle.properties index 57fb3c2b7..84f1f5673 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ group = org.purpurmc.purpur version = 1.19.4-R0.1-SNAPSHOT -paperCommit = ad6c14c62ea4756c6a5a7f9752131a3b90a5cd96 +paperCommit = e811927394ffbccd7f63cde0d9063b3a2fe6bb98 org.gradle.caching = true org.gradle.parallel = true diff --git a/patches/api/0005-Purpur-client-support.patch b/patches/api/0005-Purpur-client-support.patch index e605c4e0a..fc1be098f 100644 --- a/patches/api/0005-Purpur-client-support.patch +++ b/patches/api/0005-Purpur-client-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Purpur client support diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index b5fd857896b3afcfa69cce55cbc2696dd625f805..7ff5d4554be858e6bad5440b8847e3f21523f796 100644 +index ee446bfb3e6c4b1d4428c00d6406bf9455c68ad5..5bc1964f691e451b1d0348e186d5c582fe25768d 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3000,4 +3000,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3035,4 +3035,13 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Override Spigot spigot(); // Spigot end diff --git a/patches/api/0007-Ridables.patch b/patches/api/0007-Ridables.patch index f1dd30919..e1836a6a4 100644 --- a/patches/api/0007-Ridables.patch +++ b/patches/api/0007-Ridables.patch @@ -22,10 +22,10 @@ index 998f629852e1103767e005405d1f39c2251ecd28..49cba8a3226e4e2f2b11f3171c29e975 * @deprecated removed in 1.16 */ diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 365350d38b2eee00d22bad09ab95c6054f11d536..1087d6fa472878a6648310543746c78eae08a22c 100644 +index a2a423d4e4c2702ba5967223cab0432dd7d04732..c6ece3f3a6a12998dab7f3c69a2af78bd22fdd48 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -953,4 +953,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -954,4 +954,35 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent */ boolean wouldCollideUsing(@NotNull BoundingBox boundingBox); // Paper End - Collision API diff --git a/patches/api/0008-Allow-inventory-resizing.patch b/patches/api/0008-Allow-inventory-resizing.patch index 2ac065e23..64ada1cd6 100644 --- a/patches/api/0008-Allow-inventory-resizing.patch +++ b/patches/api/0008-Allow-inventory-resizing.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow inventory resizing diff --git a/src/main/java/org/bukkit/event/inventory/InventoryType.java b/src/main/java/org/bukkit/event/inventory/InventoryType.java -index 94f127fd6ba69ca48d03acbc9886ee499e9be4f3..1f958facfed766c401144b840e4369154c71d3c2 100644 +index a8e631315f2da68895a258cf0ba9875bc88fc48c..d5648ec745e3530aecf18c3e1f3185a5f63f3d11 100644 --- a/src/main/java/org/bukkit/event/inventory/InventoryType.java +++ b/src/main/java/org/bukkit/event/inventory/InventoryType.java -@@ -152,7 +152,7 @@ public enum InventoryType { +@@ -155,7 +155,7 @@ public enum InventoryType { SMITHING_NEW(4, "Upgrade Gear"), ; diff --git a/patches/api/0010-AFK-API.patch b/patches/api/0010-AFK-API.patch index 747a2aeb6..8d06981c6 100644 --- a/patches/api/0010-AFK-API.patch +++ b/patches/api/0010-AFK-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] AFK API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 7ff5d4554be858e6bad5440b8847e3f21523f796..04b31e42865469f9760db061607a803787fbadf3 100644 +index 5bc1964f691e451b1d0348e186d5c582fe25768d..57f9068a8622a298bfcbfd99668ad12774c7a8b2 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3008,5 +3008,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3043,5 +3043,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @return True if Player uses Purpur Client */ public boolean usesPurpurClient(); diff --git a/patches/api/0017-Player-invulnerabilities.patch b/patches/api/0017-Player-invulnerabilities.patch index 48a02ed0d..c781ad543 100644 --- a/patches/api/0017-Player-invulnerabilities.patch +++ b/patches/api/0017-Player-invulnerabilities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Player invulnerabilities diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 04b31e42865469f9760db061607a803787fbadf3..819aa1f1e2c2c32510973e6fc9d8561366230851 100644 +index 57f9068a8622a298bfcbfd99668ad12774c7a8b2..c332e7f967e5ce6c2b7b046ab539c2e483d85014 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3027,5 +3027,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3062,5 +3062,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Reset the idle timer back to 0 */ void resetIdleTimer(); diff --git a/patches/api/0019-ItemStack-convenience-methods.patch b/patches/api/0019-ItemStack-convenience-methods.patch index ecceed3e1..4e8535be5 100644 --- a/patches/api/0019-ItemStack-convenience-methods.patch +++ b/patches/api/0019-ItemStack-convenience-methods.patch @@ -5,10 +5,10 @@ Subject: [PATCH] ItemStack convenience methods diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java -index 3c5e90f039f0d2991be442168703526405e18e3d..df992c41d736ee4e89773c2621d261d6afcb2148 100644 +index adb2416887cc3b544ec36c552bdf7105328c24a5..d334c963e16590c68ecd9d1d27434c7af6f7e21c 100644 --- a/src/main/java/org/bukkit/Material.java +++ b/src/main/java/org/bukkit/Material.java -@@ -11066,4 +11066,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla +@@ -11156,4 +11156,40 @@ public enum Material implements Keyed, Translatable, net.kyori.adventure.transla public String getItemTranslationKey() { return Bukkit.getUnsafe().getItemTranslationKey(this); } @@ -50,7 +50,7 @@ index 3c5e90f039f0d2991be442168703526405e18e3d..df992c41d736ee4e89773c2621d261d6 + // Purpur end } diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java -index cd487177f6e391e114c394cd736796e20e0e8982..e5f129b7bbf4257e6be056af71c4e26a01ffd658 100644 +index d15a74c38576c49df61cfab02c70fc5d8c0dd5f7..64055402076b62d32ba947830d935b79bae12d95 100644 --- a/src/main/java/org/bukkit/inventory/ItemStack.java +++ b/src/main/java/org/bukkit/inventory/ItemStack.java @@ -17,6 +17,18 @@ import org.bukkit.inventory.meta.ItemMeta; diff --git a/patches/api/0032-API-for-any-mob-to-burn-daylight.patch b/patches/api/0032-API-for-any-mob-to-burn-daylight.patch index 3c9a782f9..73f8eee11 100644 --- a/patches/api/0032-API-for-any-mob-to-burn-daylight.patch +++ b/patches/api/0032-API-for-any-mob-to-burn-daylight.patch @@ -6,10 +6,10 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 3bc677486e699e168891663a5904875036c29fca..ddaa8eac7d32895e235e435db6d78b06a28cec97 100644 +index c6ece3f3a6a12998dab7f3c69a2af78bd22fdd48..ba60930ecd67159018717100b0c73252888b3abc 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -983,5 +983,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -984,5 +984,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return True if ridable in water */ boolean isRidableInWater(); diff --git a/patches/api/0043-Add-local-difficulty-api.patch b/patches/api/0043-Add-local-difficulty-api.patch index 93f62cf20..5051c2ae9 100644 --- a/patches/api/0043-Add-local-difficulty-api.patch +++ b/patches/api/0043-Add-local-difficulty-api.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index 6716a1185e733f3ddf56b295f3153938f57d4229..b19264c7584441422b85c7a68d857f2bd314f140 100644 +index 0b8776355f724927ada826735d5e73f3fb6897d5..e040e4012832cd992811e1270f3459921f48476b 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -4007,6 +4007,16 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4018,6 +4018,16 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient @Nullable public DragonBattle getEnderDragonBattle(); diff --git a/patches/api/0046-Debug-Marker-API.patch b/patches/api/0046-Debug-Marker-API.patch index 6a1e75421..2ff80f56a 100644 --- a/patches/api/0046-Debug-Marker-API.patch +++ b/patches/api/0046-Debug-Marker-API.patch @@ -179,10 +179,10 @@ index b2184f33f8b34ae484357742690e205accaa635f..730caafaf9629664ba125f3884559da7 // Purpur end } diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java -index b19264c7584441422b85c7a68d857f2bd314f140..ad00e30379df52575bf2697ccb32abb176ecd47a 100644 +index e040e4012832cd992811e1270f3459921f48476b..cf8b93aa5787e96f54e2ffe2a0f157b0e53e2c5c 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java -@@ -4015,6 +4015,76 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient +@@ -4026,6 +4026,76 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient * @return The local difficulty */ public float getLocalDifficultyAt(@NotNull Location location); @@ -260,10 +260,10 @@ index b19264c7584441422b85c7a68d857f2bd314f140..ad00e30379df52575bf2697ccb32abb1 /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 424774d4b27d963cbd346026cb391b994f9c8c64..a5ba90c55cb22d92cdf3148570658cb653bcb022 100644 +index c332e7f967e5ce6c2b7b046ab539c2e483d85014..6bf3ae6af4f38d3fd023628ddbee896cd6f72751 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3048,5 +3048,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3083,5 +3083,75 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param invulnerableTicks Invulnerable ticks remaining */ void setSpawnInvulnerableTicks(int invulnerableTicks); diff --git a/patches/api/0047-Add-death-screen-API.patch b/patches/api/0047-Add-death-screen-API.patch index c61c821af..318d91da1 100644 --- a/patches/api/0047-Add-death-screen-API.patch +++ b/patches/api/0047-Add-death-screen-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add death screen API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 12b659d13ce336cca52dd704caa7c20366cfe6d9..08b5f448e92add21f9f9797d9cea3ac60581dff5 100644 +index 6bf3ae6af4f38d3fd023628ddbee896cd6f72751..43cef54d355c8a1b6a8cd6be89a6a805e9f88566 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3118,5 +3118,21 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3153,5 +3153,21 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * Clears all debug block highlights */ void clearBlockHighlights(); diff --git a/patches/api/0051-Fire-Immunity-API.patch b/patches/api/0051-Fire-Immunity-API.patch index d7e8c34b2..b7a097385 100644 --- a/patches/api/0051-Fire-Immunity-API.patch +++ b/patches/api/0051-Fire-Immunity-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Fire Immunity API diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java -index 4fb8bf49edbc49f7238932eb661816152cbd05dc..47f644b9cb615e2feeacb810898cf567f1cf04fc 100644 +index ba60930ecd67159018717100b0c73252888b3abc..cc78ce7de88a9a404ed20d5bc61b98d3107f29b3 100644 --- a/src/main/java/org/bukkit/entity/Entity.java +++ b/src/main/java/org/bukkit/entity/Entity.java -@@ -990,5 +990,18 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent +@@ -991,5 +991,18 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent * @return True if in daylight */ boolean isInDaylight(); diff --git a/patches/server/0001-Pufferfish-Server-Changes.patch b/patches/server/0001-Pufferfish-Server-Changes.patch index 0a9df1178..01c0394be 100644 --- a/patches/server/0001-Pufferfish-Server-Changes.patch +++ b/patches/server/0001-Pufferfish-Server-Changes.patch @@ -1678,7 +1678,7 @@ index b7fd8e70413c38923d0719aff803449e392383ac..d5cb594f0b17ec9dc1a19cdb99bba553 this.wasOnGround = this.entity.isOnGround(); this.teleportDelay = 0; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 536bedfe50288ef18468c71d41a6f0f82619f72d..88a6198ea5b0fd33f90737d9515c349791ca81b4 100644 +index 3bb63a652aca3c23f5f1bbf9cb70fce6540f2e33..dda5e77f7d9fb2340d50997c0a17bc7f5e2bb961 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -709,6 +709,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1743,10 +1743,10 @@ index 536bedfe50288ef18468c71d41a6f0f82619f72d..88a6198ea5b0fd33f90737d9515c3497 this.getRandomBlockPosition(j, 0, k, 15, blockposition); int normalY = chunk.getHeight(Heightmap.Types.MOTION_BLOCKING, blockposition.getX() & 15, blockposition.getZ() & 15) + 1; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 177aac1ab10189bb5a52217e86ba5c8a535b4197..b357953dedc2af39673ad4ef78fed14d5e7235bb 100644 +index 9c5754ac3b00d3f0cb80ec83a2beefadee6d0a14..cc7187c597337665d3cf3c3de4b53e3105b9e4c3 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1214,6 +1214,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1215,6 +1215,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleEditBook(ServerboundEditBookPacket packet) { @@ -1754,7 +1754,7 @@ index 177aac1ab10189bb5a52217e86ba5c8a535b4197..b357953dedc2af39673ad4ef78fed14d // Paper start if (!this.cserver.isPrimaryThread()) { List pageList = packet.getPages(); -@@ -2355,6 +2356,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2356,6 +2357,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } private boolean updateChatOrder(Instant timestamp) { @@ -2082,7 +2082,7 @@ index ceacc0d383e2ee674783d3c0a7df0a951595faca..8af0918d3a62de58a4b2af55022c812b private String descriptionId; @Nullable diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index dcfb71b5a53df789e366fea2080921d677549a2e..791f672b30f2a4d3b329e2ce0f4fb9c2ca627b01 100644 +index 95a27d28f73039693ca64601954af62028413634..f3d96caa83ef4a8083b78e3265282d4723e37d28 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -141,7 +141,6 @@ import org.bukkit.event.entity.EntityTeleportEvent; @@ -3158,7 +3158,7 @@ index 79b01e32f89defb6b78f4764600d33d4945af592..6d62cc8fb347ccafd51df05896e61699 } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 206dc04086a218b510930739a6c573f2653ab0fa..e7e2b0fc88c9320449bcd0e0929269c2508886e4 100644 +index d190bad5d287766ed4165ed827d9901a9d878687..13594b96cc8f451723c3598ef302ccee8e01bcac 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -88,6 +88,18 @@ public class LevelChunk extends ChunkAccess { @@ -3180,14 +3180,15 @@ index 206dc04086a218b510930739a6c573f2653ab0fa..e7e2b0fc88c9320449bcd0e0929269c2 public LevelChunk(Level world, ChunkPos pos) { this(world, pos, UpgradeData.EMPTY, new LevelChunkTicks<>(), new LevelChunkTicks<>(), 0L, (LevelChunkSection[]) null, (LevelChunk.PostLoadProcessor) null, (BlendingData) null); } -@@ -118,6 +130,7 @@ public class LevelChunk extends ChunkAccess { +@@ -116,6 +128,8 @@ public class LevelChunk extends ChunkAccess { + this.postLoad = entityLoader; + this.blockTicks = blockTickScheduler; this.fluidTicks = fluidTickScheduler; - // CraftBukkit start - this.bukkitChunk = new org.bukkit.craftbukkit.CraftChunk(this); ++ + this.lightningTick = this.level.getThreadUnsafeRandom().nextInt(100000) << 1; // Pufferfish - initialize lightning tick } - public org.bukkit.Chunk bukkitChunk; + // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java index 1b80a91fa36c59a31b57ef7ef4a68eacbb0f17f5..b5e118456af6421ae3f85cb8232dc97a8b2d46b7 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java @@ -3430,7 +3431,7 @@ index ebe65474a4a05ff1637d7f37ebcfe690af59def5..42142c512b12e5b269c19f1e821c50e7 @Nullable diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 4cd95134811fd65465681d159b2f30cf77455830..7672fe8e6d08370327bb7ad5fa5ac3292c49e3c4 100644 +index 0ba8446065def1b120fd73241de5bc14d60d3b82..58eaa1142bb0568bef439bba76903309914d3ae1 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -256,7 +256,7 @@ import javax.annotation.Nullable; // Paper diff --git a/patches/server/0002-Fix-pufferfish-issues.patch b/patches/server/0002-Fix-pufferfish-issues.patch index f78d16ff3..d40cf4f86 100644 --- a/patches/server/0002-Fix-pufferfish-issues.patch +++ b/patches/server/0002-Fix-pufferfish-issues.patch @@ -27,7 +27,7 @@ index 6e441a1a28ba72a8b1cc09fe5fca71b3c70627d4..5c691db595ee412b77f729e90172bc4f "This can improve performance by a few percent, but has minor gameplay implications."); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 88a6198ea5b0fd33f90737d9515c349791ca81b4..c1cf3e09d12adf90554fc10553a2b461c52dbfd6 100644 +index dda5e77f7d9fb2340d50997c0a17bc7f5e2bb961..a6da001a03760a6ae5d842d8aaeb8fc435883b1f 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -807,7 +807,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -53,15 +53,15 @@ index 6aec1983a0236d6aa0507a2b3ad1c08b3330f0fc..66cc44d9f14b01f6c8e53b0f990866ac // Pufferfish start - ensure these get inlined private final int minBuildHeight, minSection, height, maxBuildHeight, maxSection; diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index e7e2b0fc88c9320449bcd0e0929269c2508886e4..b5e361d2170d2741ef990ec342f32ccde0c05750 100644 +index 13594b96cc8f451723c3598ef302ccee8e01bcac..96394bc930a8dab04cd7f5b6e0e9d457b11f58e3 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -130,7 +130,7 @@ public class LevelChunk extends ChunkAccess { +@@ -129,7 +129,7 @@ public class LevelChunk extends ChunkAccess { + this.blockTicks = blockTickScheduler; this.fluidTicks = fluidTickScheduler; - // CraftBukkit start - this.bukkitChunk = new org.bukkit.craftbukkit.CraftChunk(this); + - this.lightningTick = this.level.getThreadUnsafeRandom().nextInt(100000) << 1; // Pufferfish - initialize lightning tick + this.lightningTick = java.util.concurrent.ThreadLocalRandom.current().nextInt(100000) << 1; // Pufferfish - initialize lightning tick // Purpur - any random will do } - public org.bukkit.Chunk bukkitChunk; + // CraftBukkit start diff --git a/patches/server/0003-Rebrand.patch b/patches/server/0003-Rebrand.patch index 81d1eb339..cb3264009 100644 --- a/patches/server/0003-Rebrand.patch +++ b/patches/server/0003-Rebrand.patch @@ -197,7 +197,7 @@ index a29d92b3f2658b63545b25092bb3a1fea46ca36b..0f6d1c56efbab0f9b84f09f7dc27eb70 public SystemReport fillSystemReport(SystemReport details) { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java -index 7672fe8e6d08370327bb7ad5fa5ac3292c49e3c4..b31f59ecb41fc3a63b1f4ef1a9e267ad1f100175 100644 +index 58eaa1142bb0568bef439bba76903309914d3ae1..094d608815f2a3b6ff25a5ca7872acf0e88c572c 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -256,7 +256,7 @@ import javax.annotation.Nullable; // Paper @@ -237,10 +237,10 @@ index 4e56018b64d11f76c8da43fd8f85c6de72204e36..9607675e6c5bff2183c4420d11fc63ee @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index aec588b41f19b2147a4e7267bafa417fbcf7abc0..699669aa34cb1476cb5b48719db4b01fe708a7b2 100644 +index d43859f8aa7beed82dd3a146bb1086982cd0cda7..b548f06bc0569f0f1ee5edaa07806c3017d5399a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -883,7 +883,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -884,7 +884,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { return EntityCategory.WATER; } diff --git a/patches/server/0005-Purpur-client-support.patch b/patches/server/0005-Purpur-client-support.patch index ae2a304cc..d486ffaaf 100644 --- a/patches/server/0005-Purpur-client-support.patch +++ b/patches/server/0005-Purpur-client-support.patch @@ -17,10 +17,10 @@ index 1d4d02f26391ac55c7631817f09d05e2769b0d29..b1c0f5743dfe87e359dbd3a451367aa8 public ServerPlayer(MinecraftServer server, ServerLevel world, GameProfile profile) { super(world, world.getSharedSpawnPos(), world.getSharedSpawnAngle(), profile); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b357953dedc2af39673ad4ef78fed14d5e7235bb..ed6631d2b104542465d28683cd4fd3222016e5bb 100644 +index cc7187c597337665d3cf3c3de4b53e3105b9e4c3..59071de0e66876ae15defe1bd636846e22453979 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3534,6 +3534,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3535,6 +3535,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private static final ResourceLocation CUSTOM_UNREGISTER = new ResourceLocation("unregister"); private static final ResourceLocation MINECRAFT_BRAND = new ResourceLocation("brand"); // Paper - Brand support @@ -28,7 +28,7 @@ index b357953dedc2af39673ad4ef78fed14d5e7235bb..ed6631d2b104542465d28683cd4fd322 @Override public void handleCustomPayload(ServerboundCustomPayloadPacket packet) { -@@ -3558,6 +3559,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3559,6 +3560,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t unregister custom payload", ex); this.disconnect("Invalid payload UNREGISTER!", org.bukkit.event.player.PlayerKickEvent.Cause.INVALID_PAYLOAD); // Paper - kick event cause } @@ -43,10 +43,10 @@ index b357953dedc2af39673ad4ef78fed14d5e7235bb..ed6631d2b104542465d28683cd4fd322 try { byte[] data = new byte[packet.data.readableBytes()]; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8dbba0e1fe1baa3fa7f3d69c8f28e87e39a2d7a5..1ebb96da67c874d3194c314237e1d8c05b5323e4 100644 +index ca22b7de2dd05a0bdcdcd3bffb9ec991d196abde..7015d95a53dc55ab4ccd15fa2b98716bbb460dae 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3167,4 +3167,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3189,4 +3189,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.spigot; } // Spigot end diff --git a/patches/server/0007-Component-related-conveniences.patch b/patches/server/0007-Component-related-conveniences.patch index 2f2b2531e..b7c61b130 100644 --- a/patches/server/0007-Component-related-conveniences.patch +++ b/patches/server/0007-Component-related-conveniences.patch @@ -36,10 +36,10 @@ index b1c0f5743dfe87e359dbd3a451367aa8a66e57f0..01e52ea23d5481c2df79d2c899b4febf public void displayClientMessage(Component message, boolean overlay) { this.sendSystemMessage(message, overlay); diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index a1096ea424c0724af93a2dc65512ee71f4a0bf72..81a6b5e6315d61408f926fd702feadc3034dfa96 100644 +index 4d837c1530a3031a4c2a5a39d87bd013d60e14a6..9feded7fee7a759f7607c54c2277c6403a0af65f 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1026,6 +1026,20 @@ public abstract class PlayerList { +@@ -1027,6 +1027,20 @@ public abstract class PlayerList { } // CraftBukkit end @@ -81,7 +81,7 @@ index 93a1e990b0a6caae4143c2f9d09bfb368fa1d6db..615611fe372d6edaef56db058bbf2cf7 return this.type().msgId(); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 548133e399b5abc4aa83045af87c135a3455b722..9608b00d957bbd0158a22f61949e9029340be9c9 100644 +index e25be74ef0a88541884ad62a4b84219400d5a142..2f3d8291a262496065d010e304d96e6dbd729ffa 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -3914,6 +3914,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { diff --git a/patches/server/0008-Ridables.patch b/patches/server/0008-Ridables.patch index b8cbbe8db..c3bf75b22 100644 --- a/patches/server/0008-Ridables.patch +++ b/patches/server/0008-Ridables.patch @@ -22,7 +22,7 @@ index b37e0ff164a894d2033fb94bbbc2f630a0e66bcd..ac335ec4f70830c7687ac4e0aa2a6cba super(x, y, z); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 5440cd26b9d6cc3988ced96490539d9a794c3a6b..a6e6dff37efd7b54a3f17c22ba4b45436bc8884d 100644 +index 0f6d1c56efbab0f9b84f09f7dc27eb705f4006a9..7f37231b33d6cfbd3d10c6c5d0b3e0b96ba0ceb3 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1529,6 +1529,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop { return worldserver + " " + worldserver.dimension().location(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index c7c31a901a0bf55cb557de83d1fe1688159c5b69..2f6a7a03bee6a79a45bd281394e721e17156fcf1 100644 +index a6da001a03760a6ae5d842d8aaeb8fc435883b1f..3d641a5721b90230c79dca9e43ccc6fa21f24946 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -220,6 +220,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -66,10 +66,10 @@ index 01e52ea23d5481c2df79d2c899b4febf3f4a8948..d59e49a4958ebfb2ce0b9ca127b5a98f public void doTick() { diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ed6631d2b104542465d28683cd4fd3222016e5bb..34072d4d438ca90d921d4af7f4be99f5ee58bc51 100644 +index 59071de0e66876ae15defe1bd636846e22453979..b125779217ef3adcc865c50ac9c5f5cfd747db50 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2801,6 +2801,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2802,6 +2802,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic ServerGamePacketListenerImpl.this.cserver.getPluginManager().callEvent(event); @@ -79,7 +79,7 @@ index ed6631d2b104542465d28683cd4fd3222016e5bb..34072d4d438ca90d921d4af7f4be99f5 if ((entity instanceof Bucketable && entity instanceof LivingEntity && origItem != null && origItem.asItem() == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelected() == null || ServerGamePacketListenerImpl.this.player.getInventory().getSelected().getItem() != origItem)) { entity.getEntityData().resendPossiblyDesyncedEntity(player); // Paper - The entire mob gets deleted, so resend it. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 9608b00d957bbd0158a22f61949e9029340be9c9..1abefe370ac307beecd69ee6f5f9d46c9f414fb6 100644 +index 2f3d8291a262496065d010e304d96e6dbd729ffa..3113fb54ac88692d1bde8e539d9a7bb10fa2140a 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -361,7 +361,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -191,7 +191,7 @@ index c1e9b40a4a0f9cdc650caa88b5ea132e06ee2496..7b1ca8fd2908b8a02ec2cd1966a31e06 protected ParticleOptions getInkParticle() { return ParticleTypes.GLOW_SQUID_INK; diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 791f672b30f2a4d3b329e2ce0f4fb9c2ca627b01..223371a33f1c22874d9cc7b8655fef4c61ee5cb4 100644 +index f3d96caa83ef4a8083b78e3265282d4723e37d28..9b430f8624ba6326f54ca6e18a49f97cc9221b10 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -216,9 +216,9 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -3668,10 +3668,10 @@ index 41004c28edb748e12c4f868aa07b4672891197c1..6971cb46087aabcda66cd04c494a8228 protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) { return 10.440001F; diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java -index 6e0f4f15e49afb989874468b2a459178aef552f5..ba03f3e524b9ba8e8767b9e3133e96782b5d4267 100644 +index cf7e9c1db229f9e2cc05ce3046540db1d4fc4ec4..bf269b310e5b9554f36cf1d1188e20d3b195cb60 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java -@@ -67,14 +67,35 @@ public class Guardian extends Monster { +@@ -69,15 +69,36 @@ public class Guardian extends Monster { this.xpReward = 10; this.setPathfindingMalus(BlockPathTypes.WATER, 0.0F); this.moveControl = new Guardian.GuardianMoveControl(this); @@ -3701,21 +3701,22 @@ index 6e0f4f15e49afb989874468b2a459178aef552f5..ba03f3e524b9ba8e8767b9e3133e9678 + @Override protected void registerGoals() { - MoveTowardsRestrictionGoal moveTowardsRestrictionGoal = new MoveTowardsRestrictionGoal(this, 1.0D); + MoveTowardsRestrictionGoal pathfindergoalmovetowardsrestriction = new MoveTowardsRestrictionGoal(this, 1.0D); + this.randomStrollGoal = new RandomStrollGoal(this, 1.0D, 80); + this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - this.goalSelector.addGoal(4, new Guardian.GuardianAttackGoal(this)); - this.goalSelector.addGoal(5, moveTowardsRestrictionGoal); + this.goalSelector.addGoal(4, this.guardianAttackGoal = new Guardian.GuardianAttackGoal(this)); // CraftBukkit - assign field + this.goalSelector.addGoal(5, pathfindergoalmovetowardsrestriction); this.goalSelector.addGoal(7, this.randomStrollGoal); -@@ -83,6 +104,7 @@ public class Guardian extends Monster { +@@ -86,6 +107,7 @@ public class Guardian extends Monster { this.goalSelector.addGoal(9, new RandomLookAroundGoal(this)); this.randomStrollGoal.setFlags(EnumSet.of(Goal.Flag.MOVE, Goal.Flag.LOOK)); - moveTowardsRestrictionGoal.setFlags(EnumSet.of(Goal.Flag.MOVE, Goal.Flag.LOOK)); + pathfindergoalmovetowardsrestriction.setFlags(EnumSet.of(Goal.Flag.MOVE, Goal.Flag.LOOK)); + this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, LivingEntity.class, 10, true, false, new Guardian.GuardianAttackSelector(this))); } -@@ -341,7 +363,7 @@ public class Guardian extends Monster { +@@ -351,7 +373,7 @@ public class Guardian extends Monster { @Override public void travel(Vec3 movementInput) { if (this.isControlledByLocalInstance() && this.isInWater()) { @@ -3724,16 +3725,16 @@ index 6e0f4f15e49afb989874468b2a459178aef552f5..ba03f3e524b9ba8e8767b9e3133e9678 this.move(MoverType.SELF, this.getDeltaMovement()); this.setDeltaMovement(this.getDeltaMovement().scale(0.9D)); if (!this.isMoving() && this.getTarget() == null) { -@@ -448,7 +470,7 @@ public class Guardian extends Monster { - } +@@ -363,7 +385,7 @@ public class Guardian extends Monster { + } -- static class GuardianMoveControl extends MoveControl { -+ static class GuardianMoveControl extends org.purpurmc.purpur.controller.WaterMoveControllerWASD { // Purpur +- private static class GuardianMoveControl extends MoveControl { ++ private static class GuardianMoveControl extends org.purpurmc.purpur.controller.WaterMoveControllerWASD { // Purpur + private final Guardian guardian; - public GuardianMoveControl(Guardian guardian) { -@@ -456,8 +478,17 @@ public class Guardian extends Monster { +@@ -372,8 +394,17 @@ public class Guardian extends Monster { this.guardian = guardian; } @@ -3750,17 +3751,17 @@ index 6e0f4f15e49afb989874468b2a459178aef552f5..ba03f3e524b9ba8e8767b9e3133e9678 + @Override + public void vanillaTick() { // Purpur if (this.operation == MoveControl.Operation.MOVE_TO && !this.guardian.getNavigation().isDone()) { - Vec3 vec3 = new Vec3(this.wantedX - this.guardian.getX(), this.wantedY - this.guardian.getY(), this.wantedZ - this.guardian.getZ()); - double d = vec3.length(); -@@ -467,7 +498,7 @@ public class Guardian extends Monster { - float h = (float)(Mth.atan2(vec3.z, vec3.x) * (double)(180F / (float)Math.PI)) - 90.0F; - this.guardian.setYRot(this.rotlerp(this.guardian.getYRot(), h, 90.0F)); + Vec3 vec3d = new Vec3(this.wantedX - this.guardian.getX(), this.wantedY - this.guardian.getY(), this.wantedZ - this.guardian.getZ()); + double d0 = vec3d.length(); +@@ -384,7 +415,7 @@ public class Guardian extends Monster { + + this.guardian.setYRot(this.rotlerp(this.guardian.getYRot(), f, 90.0F)); this.guardian.yBodyRot = this.guardian.getYRot(); -- float i = (float)(this.speedModifier * this.guardian.getAttributeValue(Attributes.MOVEMENT_SPEED)); -+ float i = (float)(this.getSpeedModifier() * this.guardian.getAttributeValue(Attributes.MOVEMENT_SPEED)); // Purpur - float j = Mth.lerp(0.125F, this.guardian.getSpeed(), i); - this.guardian.setSpeed(j); - double k = Math.sin((double)(this.guardian.tickCount + this.guardian.getId()) * 0.5D) * 0.05D; +- float f1 = (float) (this.speedModifier * this.guardian.getAttributeValue(Attributes.MOVEMENT_SPEED)); ++ float f1 = (float) (this.getSpeedModifier() * this.guardian.getAttributeValue(Attributes.MOVEMENT_SPEED)); // Purpur + float f2 = Mth.lerp(0.125F, this.guardian.getSpeed(), f1); + + this.guardian.setSpeed(f2); diff --git a/src/main/java/net/minecraft/world/entity/monster/Husk.java b/src/main/java/net/minecraft/world/entity/monster/Husk.java index 4996347c6dde85a2dc9aa37fdf495160093fac64..1e2bc8b2c90599134d513e9062a2fb81c7c046b1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Husk.java @@ -5152,10 +5153,10 @@ index 57a0dbb23a32123d30c3b3572f4d129be9d97847..fa6938626c64ed17a2f56739d5801494 + // Purpur end } diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index cdb8ec04f4a19ec3dbedbd5b17a7d1f3afaa238e..16261aa799c34d7134f4c1489e2ab0a5db7992f0 100644 +index 819c9c020f4d5a1373f68850134960d24b8fc308..a60948f4085232082f205ad4f0f627a28342bd36 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -544,6 +544,15 @@ public class CraftEventFactory { +@@ -561,6 +561,15 @@ public class CraftEventFactory { // Paper end craftServer.getPluginManager().callEvent(event); @@ -5171,7 +5172,7 @@ index cdb8ec04f4a19ec3dbedbd5b17a7d1f3afaa238e..16261aa799c34d7134f4c1489e2ab0a5 return event; } -@@ -981,6 +990,7 @@ public class CraftEventFactory { +@@ -998,6 +1007,7 @@ public class CraftEventFactory { damageCause = DamageCause.ENTITY_EXPLOSION; } event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), entity.getBukkitEntity(), damageCause, modifiers, modifierFunctions, source.isCritical()); // Paper - add critical damage API @@ -5179,7 +5180,7 @@ index cdb8ec04f4a19ec3dbedbd5b17a7d1f3afaa238e..16261aa799c34d7134f4c1489e2ab0a5 } event.setCancelled(cancelled); -@@ -1090,6 +1100,7 @@ public class CraftEventFactory { +@@ -1107,6 +1117,7 @@ public class CraftEventFactory { } else { entity.lastDamageCancelled = true; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled } @@ -5187,7 +5188,7 @@ index cdb8ec04f4a19ec3dbedbd5b17a7d1f3afaa238e..16261aa799c34d7134f4c1489e2ab0a5 return event; } -@@ -1149,6 +1160,7 @@ public class CraftEventFactory { +@@ -1166,6 +1177,7 @@ public class CraftEventFactory { EntityDamageEvent event; if (damager != null) { event = new EntityDamageByEntityEvent(damager.getBukkitEntity(), damagee.getBukkitEntity(), cause, modifiers, modifierFunctions, critical); // Paper - add critical damage API diff --git a/patches/server/0009-Configurable-entity-base-attributes.patch b/patches/server/0009-Configurable-entity-base-attributes.patch index 120dfca1d..c9008bfd1 100644 --- a/patches/server/0009-Configurable-entity-base-attributes.patch +++ b/patches/server/0009-Configurable-entity-base-attributes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index f216a136c693a202d1e07f8760ab493e51a4738e..a0f63263a2439df93757309a6d9f6394abf81073 100644 +index 3113fb54ac88692d1bde8e539d9a7bb10fa2140a..8c158da219c3ee91942ae93454317cfe87641f0d 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -155,7 +155,7 @@ import org.bukkit.plugin.PluginManager; @@ -34,7 +34,7 @@ index 7b1ca8fd2908b8a02ec2cd1966a31e06eaa2dd1f..b86329a18dc83073462049da975dd71b @Override diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 223371a33f1c22874d9cc7b8655fef4c61ee5cb4..d8b8547f5561baa5f39d6b5f251a484033483757 100644 +index 9b430f8624ba6326f54ca6e18a49f97cc9221b10..cc2369f208546bf8c346c30d5c3ccd535e09f09f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -285,6 +285,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -743,7 +743,7 @@ index b6e2e7398413296449e8f132a2a6296da231f4d4..e818bd705b03aa1fedfd981ec44c9b82 public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java -index 473b801645a62c89ed680f993761dcb64f73bc01..30ff9967aa19a9e77bdf7d32e494276b1b72ab72 100644 +index ea0f568819994da042ba3182a66cc6ea2c4287bd..f27c71fbcebce21b0cde8375a476a0d19b6c2ae4 100644 --- a/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/src/main/java/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -96,6 +96,11 @@ public class Sniffer extends Animal { @@ -967,10 +967,10 @@ index 6971cb46087aabcda66cd04c494a822886104b04..2019896dee313bcc982686fc665d1cb3 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java -index ba03f3e524b9ba8e8767b9e3133e96782b5d4267..4292174f1f6c77374aecf74f1ed81929ed5c9249 100644 +index bf269b310e5b9554f36cf1d1188e20d3b195cb60..426da497c322baeb4b9bc9414565f2c334960577 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java -@@ -89,6 +89,11 @@ public class Guardian extends Monster { +@@ -91,6 +91,11 @@ public class Guardian extends Monster { public boolean isControllable() { return level.purpurConfig.guardianControllable; } diff --git a/patches/server/0010-Barrels-and-enderchests-6-rows.patch b/patches/server/0010-Barrels-and-enderchests-6-rows.patch index d32da0ab7..e89932555 100644 --- a/patches/server/0010-Barrels-and-enderchests-6-rows.patch +++ b/patches/server/0010-Barrels-and-enderchests-6-rows.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Barrels and enderchests 6 rows diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 81a6b5e6315d61408f926fd702feadc3034dfa96..3af2e1eabfa3e49f2aad676fe1516f749f289285 100644 +index 9feded7fee7a759f7607c54c2277c6403a0af65f..cb211e2aad3cc300099b724b7fa78cc4f24aee7c 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1151,6 +1151,27 @@ public abstract class PlayerList { +@@ -1152,6 +1152,27 @@ public abstract class PlayerList { player.getBukkitEntity().recalculatePermissions(); // CraftBukkit this.server.getCommands().sendCommands(player); } // Paper diff --git a/patches/server/0012-AFK-API.patch b/patches/server/0012-AFK-API.patch index 6608ad476..1f1c12e10 100644 --- a/patches/server/0012-AFK-API.patch +++ b/patches/server/0012-AFK-API.patch @@ -73,10 +73,10 @@ index d59e49a4958ebfb2ce0b9ca127b5a98fc5d88804..71905201cd42094fa3f545f29ada0f7e return this.stats; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 34072d4d438ca90d921d4af7f4be99f5ee58bc51..951dfa2b71695d2cf3dd3c14a9f7c9165e5c5a4d 100644 +index b125779217ef3adcc865c50ac9c5f5cfd747db50..febae4d31eb82945765fa7606515a570d3f111ce 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -338,6 +338,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -339,6 +339,20 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private boolean justTeleported = false; private boolean hasMoved; // Spigot @@ -97,7 +97,7 @@ index 34072d4d438ca90d921d4af7f4be99f5ee58bc51..951dfa2b71695d2cf3dd3c14a9f7c916 public CraftPlayer getCraftPlayer() { return (this.player == null) ? null : (CraftPlayer) this.player.getBukkitEntity(); } -@@ -431,6 +445,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -432,6 +446,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } if (this.player.getLastActionTime() > 0L && this.server.getPlayerIdleTimeout() > 0 && Util.getMillis() - this.player.getLastActionTime() > (long) (this.server.getPlayerIdleTimeout() * 1000 * 60) && !this.player.wonGame) { // Paper - Prevent AFK kick while watching end credits. @@ -110,7 +110,7 @@ index 34072d4d438ca90d921d4af7f4be99f5ee58bc51..951dfa2b71695d2cf3dd3c14a9f7c916 this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854 this.disconnect(Component.translatable("multiplayer.disconnect.idling"), org.bukkit.event.player.PlayerKickEvent.Cause.IDLING); // Paper - kick event cause } -@@ -742,6 +762,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -743,6 +763,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -119,7 +119,7 @@ index 34072d4d438ca90d921d4af7f4be99f5ee58bc51..951dfa2b71695d2cf3dd3c14a9f7c916 // Skip the first time we do this if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); -@@ -1546,7 +1568,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1547,7 +1569,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (!this.player.isChangingDimension() && d11 > org.spigotmc.SpigotConfig.movedWronglyThreshold && !this.player.isSleeping() && !this.player.gameMode.isCreative() && this.player.gameMode.getGameModeForPlayer() != GameType.SPECTATOR) { // Spigot flag2 = true; // Paper - diff on change, this should be moved wrongly @@ -128,7 +128,7 @@ index 34072d4d438ca90d921d4af7f4be99f5ee58bc51..951dfa2b71695d2cf3dd3c14a9f7c916 } this.player.absMoveTo(d0, d1, d2, f, f1); -@@ -1597,6 +1619,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1598,6 +1620,8 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.lastYaw = to.getYaw(); this.lastPitch = to.getPitch(); @@ -218,10 +218,10 @@ index 3b959f42d958bf0f426853aee56753d6c455fcdb..d17abb283ea818244df0379d6b57fc63 if (range < 0.0D || d < range * range) { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1ebb96da67c874d3194c314237e1d8c05b5323e4..354ee1f6e56413e270ec1a94c156b849e9e8e2a7 100644 +index 7015d95a53dc55ab4ccd15fa2b98716bbb460dae..ee6d2faa7ca9d6bc43b08192ecbcebb36e679df1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -528,10 +528,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -530,10 +530,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setPlayerListName(String name) { @@ -238,7 +238,7 @@ index 1ebb96da67c874d3194c314237e1d8c05b5323e4..354ee1f6e56413e270ec1a94c156b849 for (ServerPlayer player : (List) server.getHandle().players) { if (player.getBukkitEntity().canSee(this)) { player.connection.send(new ClientboundPlayerInfoUpdatePacket(ClientboundPlayerInfoUpdatePacket.Action.UPDATE_DISPLAY_NAME, this.getHandle())); -@@ -3173,5 +3178,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3195,5 +3200,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public boolean usesPurpurClient() { return getHandle().purpurClient; } diff --git a/patches/server/0015-LivingEntity-safeFallDistance.patch b/patches/server/0015-LivingEntity-safeFallDistance.patch index 1356b4e7e..4a9801d43 100644 --- a/patches/server/0015-LivingEntity-safeFallDistance.patch +++ b/patches/server/0015-LivingEntity-safeFallDistance.patch @@ -5,7 +5,7 @@ Subject: [PATCH] LivingEntity safeFallDistance diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d8b8547f5561baa5f39d6b5f251a484033483757..cf7ac9f5e18921723b0a8cfd0ed8a829d73e1fd4 100644 +index cc2369f208546bf8c346c30d5c3ccd535e09f09f..ad1591644a429b33c042e84a0114fe36bbcc6ec4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -251,6 +251,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -62,10 +62,10 @@ index 2019896dee313bcc982686fc665d1cb3e2d40503..2050230df7949e21f2158d2be5be8854 // Purpur start diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 699669aa34cb1476cb5b48719db4b01fe708a7b2..cbaf3438c9f9e1d42467501127da7fa48e0598d9 100644 +index b548f06bc0569f0f1ee5edaa07806c3017d5399a..6dfb577d1b6451d5a6c9231ad57e4aef7976edfc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1070,4 +1070,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1071,4 +1071,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { getHandle().knockback(strength, directionX, directionZ); }; // Paper end diff --git a/patches/server/0018-Player-invulnerabilities.patch b/patches/server/0018-Player-invulnerabilities.patch index 90a9666f1..a0d0c88bf 100644 --- a/patches/server/0018-Player-invulnerabilities.patch +++ b/patches/server/0018-Player-invulnerabilities.patch @@ -82,10 +82,10 @@ index 71905201cd42094fa3f545f29ada0f7ebcd7c21d..f5c5ed6cfb963ad2b5612fd7623d5e0f public Scoreboard getScoreboard() { return this.getBukkitEntity().getScoreboard().getHandle(); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 951dfa2b71695d2cf3dd3c14a9f7c9165e5c5a4d..470f44cd4627ab48573a22714ccd088bd318dbd0 100644 +index febae4d31eb82945765fa7606515a570d3f111ce..e7eec6e22f8ba5a5a7042cd82ece1fe0ec58b348 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2090,12 +2090,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2091,12 +2091,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleResourcePackResponse(ServerboundResourcePackPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); @@ -108,10 +108,10 @@ index 951dfa2b71695d2cf3dd3c14a9f7c9165e5c5a4d..470f44cd4627ab48573a22714ccd088b this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit // 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 6bd992fd206673cc1c9150f25f27715d261f31d0..4e808684dc7fef577718f63d5ca303e838ea6195 100644 +index cb211e2aad3cc300099b724b7fa78cc4f24aee7c..4142e454d10e6ea3996e1ae372fcb1405829e52b 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -966,6 +966,8 @@ public abstract class PlayerList { +@@ -967,6 +967,8 @@ public abstract class PlayerList { } // Paper end @@ -121,10 +121,10 @@ index 6bd992fd206673cc1c9150f25f27715d261f31d0..4e808684dc7fef577718f63d5ca303e8 return entityplayer1; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 354ee1f6e56413e270ec1a94c156b849e9e8e2a7..78c9113885052ce04cbc6481d777e9177dab09d6 100644 +index ee6d2faa7ca9d6bc43b08192ecbcebb36e679df1..8164cb0e40057c05fafdfe036a64ce4da2b9bbbd 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -3193,5 +3193,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -3215,5 +3215,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void resetIdleTimer() { getHandle().resetLastActionTime(); } diff --git a/patches/server/0020-Alternative-Keepalive-Handling.patch b/patches/server/0020-Alternative-Keepalive-Handling.patch index 716ca617e..5b9d01f84 100644 --- a/patches/server/0020-Alternative-Keepalive-Handling.patch +++ b/patches/server/0020-Alternative-Keepalive-Handling.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Alternative Keepalive Handling diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 470f44cd4627ab48573a22714ccd088bd318dbd0..427041d523ccabcf585994638903df571e7adefe 100644 +index e7eec6e22f8ba5a5a7042cd82ece1fe0ec58b348..112d830b024bd67297d24c030e7f02450be5eecf 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -261,6 +261,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -262,6 +262,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private long keepAliveTime = Util.getMillis(); private boolean keepAlivePending; private long keepAliveChallenge; @@ -16,7 +16,7 @@ index 470f44cd4627ab48573a22714ccd088bd318dbd0..427041d523ccabcf585994638903df57 // CraftBukkit start - multithreaded fields private final AtomicInteger chatSpamTickCount = new AtomicInteger(); private final java.util.concurrent.atomic.AtomicInteger tabSpamLimiter = new java.util.concurrent.atomic.AtomicInteger(); // Paper - configurable tab spam limits -@@ -413,6 +414,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -414,6 +415,21 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic long currentTime = Util.getMillis(); long elapsedTime = currentTime - this.keepAliveTime; @@ -38,7 +38,7 @@ index 470f44cd4627ab48573a22714ccd088bd318dbd0..427041d523ccabcf585994638903df57 if (this.keepAlivePending) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info -@@ -3519,6 +3535,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3520,6 +3536,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handleKeepAlive(ServerboundKeepAlivePacket packet) { diff --git a/patches/server/0048-Add-permission-for-F3-N-debug.patch b/patches/server/0048-Add-permission-for-F3-N-debug.patch index db53d3404..b9c83eca3 100644 --- a/patches/server/0048-Add-permission-for-F3-N-debug.patch +++ b/patches/server/0048-Add-permission-for-F3-N-debug.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add permission for F3+N debug diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f50689f9a9e74856725f92817892c1af0edf340d..f3a629d28506fc90e19db79fec1dc0ba67190835 100644 +index 4142e454d10e6ea3996e1ae372fcb1405829e52b..2069633c7fc3af7cef94e92ff03da6c9198c4524 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1145,6 +1145,7 @@ public abstract class PlayerList { +@@ -1146,6 +1146,7 @@ public abstract class PlayerList { } else { b0 = (byte) (24 + permissionLevel); } diff --git a/patches/server/0061-Mending-mends-most-damages-equipment-first.patch b/patches/server/0061-Mending-mends-most-damages-equipment-first.patch index ad257fc07..04c1932c7 100644 --- a/patches/server/0061-Mending-mends-most-damages-equipment-first.patch +++ b/patches/server/0061-Mending-mends-most-damages-equipment-first.patch @@ -18,10 +18,10 @@ index 2d3994de8e40eedc78c27ea842b6265b1c5ea822..7043f15f84d6c847bf376025c8e2150b if (entry != null) { ItemStack itemstack = (ItemStack) entry.getValue(); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 3bfef8ed7dd73f603aef06172f362bb0ed0a5c83..ea5baa4d99028feb94ccc3ce988257e56263b3c6 100644 +index a7533d18fe6148d7bfd3106b9cdcb6fa3347cf7c..be0585ce01d851105699e02e6b35e486f0c13a88 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -553,6 +553,16 @@ public final class ItemStack { +@@ -566,6 +566,16 @@ public final class ItemStack { return this.isDamageableItem() && this.getDamageValue() > 0; } diff --git a/patches/server/0063-Implement-elytra-settings.patch b/patches/server/0063-Implement-elytra-settings.patch index 3962394b6..f14bbdd7c 100644 --- a/patches/server/0063-Implement-elytra-settings.patch +++ b/patches/server/0063-Implement-elytra-settings.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Implement elytra settings diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 3949c313203f60c9dc288a510f43e1fbc55cc535..063ba101f751deecfbd7708b767e952fc4a273a3 100644 +index f55f39536356224438b52b2201ec7f66680865c8..a8ace2c448ddae71e8e64f232c75d541aa531f3f 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -3477,7 +3477,16 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -54,10 +54,10 @@ index 82b0bda3e35ec2157a477e1a17b2b46baadc97d9..0fc45b1048a1c4e0dc2bd1ae0437eecb itemStack.shrink(1); } else ((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity().updateInventory(); diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index ea5baa4d99028feb94ccc3ce988257e56263b3c6..cdadba82f91c599aef557b808ad4184506a6f632 100644 +index be0585ce01d851105699e02e6b35e486f0c13a88..6d3d68faba89cf388d52d9a526a3d14ab9e21a22 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -582,7 +582,7 @@ public final class ItemStack { +@@ -595,7 +595,7 @@ public final class ItemStack { int j; if (amount > 0) { @@ -66,7 +66,7 @@ index ea5baa4d99028feb94ccc3ce988257e56263b3c6..cdadba82f91c599aef557b808ad41845 int k = 0; for (int l = 0; j > 0 && l < amount; ++l) { -@@ -637,6 +637,12 @@ public final class ItemStack { +@@ -650,6 +650,12 @@ public final class ItemStack { if (this.hurt(amount, entity.getRandom(), entity /*instanceof ServerPlayer ? (ServerPlayer) entity : null*/)) { // Paper - pass LivingEntity for EntityItemDamageEvent breakCallback.accept(entity); Item item = this.getItem(); diff --git a/patches/server/0074-Allow-color-codes-in-books.patch b/patches/server/0074-Allow-color-codes-in-books.patch index fef99b0ed..774bd1600 100644 --- a/patches/server/0074-Allow-color-codes-in-books.patch +++ b/patches/server/0074-Allow-color-codes-in-books.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow color codes in books diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 427041d523ccabcf585994638903df571e7adefe..5ce2eebcd883bf18e59444c988a3d2ee4b3321ca 100644 +index 112d830b024bd67297d24c030e7f02450be5eecf..9ec106d3e550eba93ca154094a3b51aa42732d88 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1340,13 +1340,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1341,13 +1341,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic itemstack1.setTag(nbttagcompound.copy()); } @@ -28,7 +28,7 @@ index 427041d523ccabcf585994638903df571e7adefe..5ce2eebcd883bf18e59444c988a3d2ee this.updateBookPages(pages, (s) -> { return Component.Serializer.toJson(Component.literal(s)); -@@ -1358,10 +1361,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1359,10 +1362,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic private void updateBookPages(List list, UnaryOperator unaryoperator, ItemStack itemstack, int slot, ItemStack handItem) { // CraftBukkit ListTag nbttaglist = new ListTag(); @@ -44,7 +44,7 @@ index 427041d523ccabcf585994638903df571e7adefe..5ce2eebcd883bf18e59444c988a3d2ee Objects.requireNonNull(nbttaglist); stream.forEach(nbttaglist::add); -@@ -1371,11 +1377,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1372,11 +1378,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic for (int j = list.size(); i < j; ++i) { FilteredText filteredtext = (FilteredText) list.get(i); @@ -58,7 +58,7 @@ index 427041d523ccabcf585994638903df571e7adefe..5ce2eebcd883bf18e59444c988a3d2ee } } -@@ -1388,6 +1394,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1389,6 +1395,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.getInventory().setItem(slot, CraftEventFactory.handleEditBookEvent(player, slot, handItem, itemstack)); // CraftBukkit // Paper - Don't ignore result (see other callsite for handleEditBookEvent) } diff --git a/patches/server/0075-Entity-lifespan.patch b/patches/server/0075-Entity-lifespan.patch index 72123df52..97c82c51e 100644 --- a/patches/server/0075-Entity-lifespan.patch +++ b/patches/server/0075-Entity-lifespan.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity lifespan diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 5ce2eebcd883bf18e59444c988a3d2ee4b3321ca..f78fe22022d9b2718613ed8822b51449061fcdaa 100644 +index 9ec106d3e550eba93ca154094a3b51aa42732d88..2cc00ca01f40e1509d82bfb18ddc8c17ab816e2e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2853,6 +2853,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2854,6 +2854,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic AABB axisalignedbb = entity.getBoundingBox(); if (axisalignedbb.distanceToSqr(this.player.getEyePosition()) < ServerGamePacketListenerImpl.MAX_INTERACTION_DISTANCE) { @@ -95,7 +95,7 @@ index 89981efcb852fed1ca79f8b239aa1f044d713c6d..183261a031a2a0b6b95dbb983236cee3 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index f3e0e2096ffbc6d2577bf1ffa34930855cd94102..bf122a8219ed6259f7f1face69fbf246a1fcdc4d 100644 +index 482c145bb6d24de52c31bfa44d95f36428cabb7d..a144a767cc7f7ba6c7e7d342ef9c9e3f84a9f20e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -127,6 +127,11 @@ public class PurpurWorldConfig { diff --git a/patches/server/0076-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch b/patches/server/0076-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch index 8dc7c949e..f158aa387 100644 --- a/patches/server/0076-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch +++ b/patches/server/0076-Add-option-to-teleport-to-spawn-if-outside-world-bor.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to teleport to spawn if outside world border diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 48118c5121e2a2f728d2121e5206c9aa71448145..8b113b7ac096e6237577685a4f1961a757a5b7fa 100644 +index 48118c5121e2a2f728d2121e5206c9aa71448145..81f9b830df5cec8c5748027b09fe97a5a47bb1c7 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -2655,4 +2655,26 @@ public class ServerPlayer extends Player { @@ -28,15 +28,15 @@ index 48118c5121e2a2f728d2121e5206c9aa71448145..8b113b7ac096e6237577685a4f1961a7 + + ServerLevel toLevel = ((CraftWorld) to.getWorld()).getHandle(); + if (this.level == toLevel) { -+ this.connection.internalTeleport(to.getX(), to.getY(), to.getZ(), to.getYaw(), to.getPitch(), java.util.EnumSet.noneOf(net.minecraft.network.protocol.game.ClientboundPlayerPositionPacket.RelativeArgument.class), true); ++ this.connection.internalTeleport(to.getX(), to.getY(), to.getZ(), to.getYaw(), to.getPitch(), java.util.EnumSet.noneOf(net.minecraft.world.entity.RelativeMovement.class)); + } else { -+ this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig().environment.disableTeleportationSuffocationCheck); ++ this.server.getPlayerList().respawn(this, toLevel, true, to, !toLevel.paperConfig().environment.disableTeleportationSuffocationCheck, org.bukkit.event.player.PlayerRespawnEvent.RespawnReason.DEATH); + } + } + // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 063ba101f751deecfbd7708b767e952fc4a273a3..e41d27f486c5efa1269822c177bc2f1214d27b58 100644 +index a8ace2c448ddae71e8e64f232c75d541aa531f3f..587a88a0c4954cba28fbdb31228ec81f2ba59b82 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -410,6 +410,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -48,7 +48,7 @@ index 063ba101f751deecfbd7708b767e952fc4a273a3..e41d27f486c5efa1269822c177bc2f12 } } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index bf122a8219ed6259f7f1face69fbf246a1fcdc4d..2cbab8dc920fff0d1573072b791f39debd61a710 100644 +index a144a767cc7f7ba6c7e7d342ef9c9e3f84a9f20e..8a0d0406440a43683641dcd6e43f75da5db9c734 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -246,6 +246,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0091-LivingEntity-broadcastItemBreak.patch b/patches/server/0091-LivingEntity-broadcastItemBreak.patch index 188781e70..ec24f4afd 100644 --- a/patches/server/0091-LivingEntity-broadcastItemBreak.patch +++ b/patches/server/0091-LivingEntity-broadcastItemBreak.patch @@ -5,10 +5,10 @@ Subject: [PATCH] LivingEntity#broadcastItemBreak diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index cbaf3438c9f9e1d42467501127da7fa48e0598d9..11dda012e34ba3767afbb5ab292a4943f15c9684 100644 +index 6dfb577d1b6451d5a6c9231ad57e4aef7976edfc..6216b4590f40b6d5f904d57b50076fb8f64fd7a9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1081,5 +1081,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1082,5 +1082,11 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { public void setSafeFallDistance(float safeFallDistance) { getHandle().safeFallDistance = safeFallDistance; } diff --git a/patches/server/0121-Implement-TPSBar.patch b/patches/server/0121-Implement-TPSBar.patch index 1bc531c33..3a7cdde23 100644 --- a/patches/server/0121-Implement-TPSBar.patch +++ b/patches/server/0121-Implement-TPSBar.patch @@ -17,7 +17,7 @@ index 277fb799d898ca726205519b1516861901be33c5..144e83bac0d8885c48d97d7fbb4b712d if (environment.includeIntegrated) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 371de53f342e6dba7da54a6d60c1907f06fa9191..40a52c16e4e9da8c846ff69e9d22066ff134caea 100644 +index 52487bc86a28a2f2c1c677b07c9fec77685f2af0..de9e19d9979ad6981fcda881d22b18a613c4138d 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1026,6 +1026,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop this.disconnect("Book too large!", org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION)); // Paper - kick event cause return; } -@@ -1287,6 +1289,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1288,6 +1290,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (byteTotal > byteAllowed) { ServerGamePacketListenerImpl.LOGGER.warn(this.player.getScoreboardName() + " tried to send too large of a book. Book Size: " + byteTotal + " - Allowed: "+ byteAllowed + " - Pages: " + pageList.size()); diff --git a/patches/server/0128-Add-EntityTeleportHinderedEvent.patch b/patches/server/0128-Add-EntityTeleportHinderedEvent.patch index 0e7b25ed9..01f32081e 100644 --- a/patches/server/0128-Add-EntityTeleportHinderedEvent.patch +++ b/patches/server/0128-Add-EntityTeleportHinderedEvent.patch @@ -89,10 +89,10 @@ index fa6938626c64ed17a2f56739d5801494ea6f3be1..df33bd0c97faa3c7eb4ab6cbe7286f6a } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6ad913ee78570db794fd2953cc1320905fa557de..37865836db462b365c1fd5cb43f610295b80cf84 100644 +index 8164cb0e40057c05fafdfe036a64ce4da2b9bbbd..9960e185a77c5084dae4d92bb83d5fa2d742b48d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -1344,6 +1344,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -1365,6 +1365,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } if (entity.isVehicle() && !ignorePassengers) { // Paper - Teleport API @@ -104,7 +104,7 @@ index 6ad913ee78570db794fd2953cc1320905fa557de..37865836db462b365c1fd5cb43f61029 } diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 7b8eaac637ec1db255bb63d8b73d86c267642035..81428fd4d0de768eed12711eb1859989fa28b6e2 100644 +index a5eb4756b750196847899b52cd390e8d1cbcbeeb..8ef0190cbfc88cd74ea43cd5669b4dd1350a5df4 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -119,6 +119,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0132-Toggle-for-water-sensitive-mob-damage.patch b/patches/server/0132-Toggle-for-water-sensitive-mob-damage.patch index d058e0956..1d2485a10 100644 --- a/patches/server/0132-Toggle-for-water-sensitive-mob-damage.patch +++ b/patches/server/0132-Toggle-for-water-sensitive-mob-damage.patch @@ -759,10 +759,10 @@ index 14b393c8b70a1aa950df9dcaef648a90469bde65..cdc431608384b04b480a9cfdc603a28a @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java -index 4292174f1f6c77374aecf74f1ed81929ed5c9249..52d4a0975b1fec03fdd51b8fad8127a79e216be0 100644 +index 426da497c322baeb4b9bc9414565f2c334960577..85a075b8224feed2daaa9978d3a1d23f1334ce6f 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java -@@ -94,6 +94,11 @@ public class Guardian extends Monster { +@@ -96,6 +96,11 @@ public class Guardian extends Monster { public void initAttributes() { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.guardianMaxHealth); } @@ -1197,7 +1197,7 @@ index 559bad9524a00a5357973f30d54b0f1a3ed6dadb..4e321a9f08c8798cee04789a7356893d @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index a329762e693829a7d80390163f6d8b960cc825d9..31939ae8142fb6b795c4da362cd6ce24045db8f3 100644 +index 52049de384f22443f9ee106552cf8dc6c56e9a38..c615f1a81cdc1c3846f5c8652a9a5d095e9b5db9 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -579,11 +579,13 @@ public class PurpurWorldConfig { diff --git a/patches/server/0136-Dont-run-with-scissors.patch b/patches/server/0136-Dont-run-with-scissors.patch index ab27eba39..b326833c5 100644 --- a/patches/server/0136-Dont-run-with-scissors.patch +++ b/patches/server/0136-Dont-run-with-scissors.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Dont run with scissors! diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 9871c168cb9ac20127aa5bb61b5d46ffec1af753..ef10fa567b1f9d1b23f5679c65798511c2e53b37 100644 +index 52232316039ad0ac81b83802afb05a0541a761b3..d97b35d9ca448c8ef0b20a31b873022dd08085f5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1695,6 +1695,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1696,6 +1696,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.resetFallDistance(); } @@ -22,7 +22,7 @@ index 9871c168cb9ac20127aa5bb61b5d46ffec1af753..ef10fa567b1f9d1b23f5679c65798511 this.player.checkMovementStatistics(this.player.getX() - d3, this.player.getY() - d4, this.player.getZ() - d5); this.lastGoodX = this.player.getX(); this.lastGoodY = this.player.getY(); -@@ -1728,6 +1735,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -1729,6 +1736,12 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } // Paper end - optimise out extra getCubes @@ -61,7 +61,7 @@ index 5b0625955e2a65f689c8a128d73170bc1f0c8025..c8097ec7887ac8e689b6843d9ff7744d public static String serverModName = "Purpur"; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 09582ba26c93e260a1eb4aad5e71f059a7457cc2..940a5436d9ceec72a103ede707afd1cd2e0a71d0 100644 +index 1e0566329eccba7cb50ba183dc13032afc5c40a0..6d20f1788cd7ce776a984ad57a6efaeead8cd490 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -199,6 +199,10 @@ public class PurpurWorldConfig { diff --git a/patches/server/0156-Config-to-allow-for-unsafe-enchants.patch b/patches/server/0156-Config-to-allow-for-unsafe-enchants.patch index a389d738d..8e77c6e88 100644 --- a/patches/server/0156-Config-to-allow-for-unsafe-enchants.patch +++ b/patches/server/0156-Config-to-allow-for-unsafe-enchants.patch @@ -70,10 +70,10 @@ index 2281dba58d32b6314a7abcdb103c03c7056c24e9..37c79c0e13e6d7b6b03ebdf57bebf124 ((ServerPlayer) player).connection.send(new ClientboundContainerSetDataPacket(containerId, 0, cost.get())); } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index cdadba82f91c599aef557b808ad4184506a6f632..94c4a410651564e2103454b26fd0e1f4e430cc74 100644 +index 6d3d68faba89cf388d52d9a526a3d14ab9e21a22..71acec715d65737d0b13392b5b42b607937c2d15 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -1183,6 +1183,12 @@ public final class ItemStack { +@@ -1196,6 +1196,12 @@ public final class ItemStack { return this.tag != null && this.tag.contains("Enchantments", 9) ? !this.tag.getList("Enchantments", 10).isEmpty() : false; } diff --git a/patches/server/0179-API-for-any-mob-to-burn-daylight.patch b/patches/server/0179-API-for-any-mob-to-burn-daylight.patch index 712efb2a4..0a39e725a 100644 --- a/patches/server/0179-API-for-any-mob-to-burn-daylight.patch +++ b/patches/server/0179-API-for-any-mob-to-burn-daylight.patch @@ -6,7 +6,7 @@ Subject: [PATCH] API for any mob to burn daylight Co-authored by: Encode42 diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 41ee6c53e7b8e55587cbdfe114555d0d09c07bbd..179ec9c6ec26b4bf497005a33e0d47aca051282e 100644 +index 65ba54c6144612df47820d2c3a88ddb4bd4b3f0a..5b0377d9731936953b977a113e2bfe27ed1f74fa 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -4805,5 +4805,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -31,7 +31,7 @@ index 41ee6c53e7b8e55587cbdfe114555d0d09c07bbd..179ec9c6ec26b4bf497005a33e0d47ac // Purpur end } diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d07e2077756d322823ddb11ad1adc1ca610a8ad2..e3055bba8b8bed8044e9a8b2b5c83f02d3f2fbc2 100644 +index cc95e5bdc2bfa9d53da329a0ec4dd5373e4b150e..c6e08bdfe1123ce5080c2cd91320702dab6bf84c 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -261,6 +261,7 @@ public abstract class LivingEntity extends Entity implements Attackable { @@ -367,10 +367,10 @@ index df33bd0c97faa3c7eb4ab6cbe7286f6a9aaa37d6..0db19dfbec593b9fd6f22970960fbe96 /* * Order is *EXTREMELY* important -- keep it right! =D diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 11dda012e34ba3767afbb5ab292a4943f15c9684..6e997e109b14b0815c40a4c6bf891918559bfaba 100644 +index 6216b4590f40b6d5f904d57b50076fb8f64fd7a9..697cc3adf3c07241136d555cbb618b528906efaf 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -1087,5 +1087,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -1088,5 +1088,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { if (slot == null) return; getHandle().broadcastBreakEvent(org.bukkit.craftbukkit.CraftEquipmentSlot.getNMS(slot)); } diff --git a/patches/server/0186-Allow-player-join-full-server-by-permission.patch b/patches/server/0186-Allow-player-join-full-server-by-permission.patch index a93f218c7..08a8ea13b 100644 --- a/patches/server/0186-Allow-player-join-full-server-by-permission.patch +++ b/patches/server/0186-Allow-player-join-full-server-by-permission.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Allow player join full server by permission diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index 531c7005165cfa959cc4b0a98509bdf833eb13a7..71d3a4c16e80bf16d8c5841a04c532c1f69c0c0b 100644 +index 25be7c9e59666f27161d8f08129019764a70a512..4840b2adebeaf7927a043861d5b2cdf5c9b2cf0a 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -731,7 +731,7 @@ public abstract class PlayerList { +@@ -732,7 +732,7 @@ public abstract class PlayerList { event.disallow(PlayerLoginEvent.Result.KICK_BANNED, PaperAdventure.asAdventure(ichatmutablecomponent)); // Paper - Adventure } else { // return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null; diff --git a/patches/server/0195-Store-placer-on-Block-when-placed.patch b/patches/server/0195-Store-placer-on-Block-when-placed.patch index 55e95a17d..0aa6a9496 100644 --- a/patches/server/0195-Store-placer-on-Block-when-placed.patch +++ b/patches/server/0195-Store-placer-on-Block-when-placed.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Store placer on Block when placed diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index a4d5f08da2a2082d2e2c56fa3e8e825a6ba5707c..6dcddac2bce3d3689f580906288e2e6f1d679da4 100644 +index 71acec715d65737d0b13392b5b42b607937c2d15..d5c667a9ca5562c2df38e191748f081ef9ffbd68 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -415,6 +415,7 @@ public final class ItemStack { +@@ -417,6 +417,7 @@ public final class ItemStack { world.preventPoiUpdated = true; // CraftBukkit - SPIGOT-5710 for (BlockState blockstate : blocks) { blockstate.update(true, false); @@ -16,7 +16,7 @@ index a4d5f08da2a2082d2e2c56fa3e8e825a6ba5707c..6dcddac2bce3d3689f580906288e2e6f } world.preventPoiUpdated = false; -@@ -444,6 +445,7 @@ public final class ItemStack { +@@ -446,6 +447,7 @@ public final class ItemStack { if (!(block.getBlock() instanceof BaseEntityBlock)) { // Containers get placed automatically block.getBlock().onPlace(block, world, newblockposition, oldBlock, true, itemactioncontext); // Paper - pass itemactioncontext } diff --git a/patches/server/0215-Extended-OfflinePlayer-API.patch b/patches/server/0215-Extended-OfflinePlayer-API.patch index 36beb9bda..b043d4197 100644 --- a/patches/server/0215-Extended-OfflinePlayer-API.patch +++ b/patches/server/0215-Extended-OfflinePlayer-API.patch @@ -223,10 +223,10 @@ index 714afc98b5150907b45a00060be4e41582333204..312a6d90c0a09570aef24c205dc2ff27 + // Purpur end - OfflinePlayer API } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 2844755e15620c6c58421240b723cf2ce9ecfe7f..e2ab9dab3584763a1b4c73da33d0208cd9a88270 100644 +index 9960e185a77c5084dae4d92bb83d5fa2d742b48d..3485b10b9c4550fb0ce431a46cfa99b64eb7a4f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -@@ -2384,6 +2384,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { +@@ -2406,6 +2406,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.getHandle().getAbilities().walkingSpeed * 2f; } diff --git a/patches/server/0219-Shift-right-click-to-use-exp-for-mending.patch b/patches/server/0219-Shift-right-click-to-use-exp-for-mending.patch index 2c8297dab..4b0f2d5c5 100644 --- a/patches/server/0219-Shift-right-click-to-use-exp-for-mending.patch +++ b/patches/server/0219-Shift-right-click-to-use-exp-for-mending.patch @@ -36,10 +36,10 @@ index 6b186a49957e97a60bb245912211d58eb7b84c0d..75f29f6dddf50ccf7ef43ecfa602ccad + // Purpur end } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ef10fa567b1f9d1b23f5679c65798511c2e53b37..ce2872a137b06cb2e4bd4b8d8fff06f720260e10 100644 +index d97b35d9ca448c8ef0b20a31b873022dd08085f5..b78a64b8086559cfb0da6de1640b59a1e5c50345 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2085,6 +2085,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2086,6 +2086,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic boolean cancelled; if (movingobjectposition == null || movingobjectposition.getType() != HitResult.Type.BLOCK) { @@ -48,7 +48,7 @@ index ef10fa567b1f9d1b23f5679c65798511c2e53b37..ce2872a137b06cb2e4bd4b8d8fff06f7 cancelled = event.useItemInHand() == Event.Result.DENY; } else { diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 168d05a2be759d37c07ba3cb10b87d67f25e3c34..7fefc3388ec02a218e87c16db1834288aee45185 100644 +index 983ce2c38f27be08cb9a95305ff465222c8d307a..19108c36e9ceeb28c74f7b87547d5ad6ea267f2e 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -415,6 +415,7 @@ public class PurpurWorldConfig { diff --git a/patches/server/0230-Signs-allow-color-codes.patch b/patches/server/0230-Signs-allow-color-codes.patch index d0e4533c2..7712af29d 100644 --- a/patches/server/0230-Signs-allow-color-codes.patch +++ b/patches/server/0230-Signs-allow-color-codes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Signs allow color codes diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 44562c3ae8d0776b8834587b1d3fb628c97a7138..de504623d3b7aff451edbc9b87249c99efbcbed4 100644 +index e79f0c9832927ba9b03c68669c5bb0fb5586d37a..15a5ad23531848dce7c6b0be9eefefb70e150608 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java @@ -1527,6 +1527,7 @@ public class ServerPlayer extends Player { @@ -17,10 +17,10 @@ index 44562c3ae8d0776b8834587b1d3fb628c97a7138..de504623d3b7aff451edbc9b87249c99 this.connection.send(new ClientboundBlockUpdatePacket(this.level, sign.getBlockPos())); this.connection.send(new ClientboundOpenSignEditorPacket(sign.getBlockPos())); diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ce2872a137b06cb2e4bd4b8d8fff06f720260e10..b8c2cbf0abbb81769c3887794656132a9f597b0b 100644 +index b78a64b8086559cfb0da6de1640b59a1e5c50345..3f648eae9049c69a0f58d3adb5a85b03bf94ba8d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -3543,11 +3543,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -3544,11 +3544,17 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic for (int i = 0; i < signText.size(); ++i) { FilteredText filteredtext = (FilteredText) signText.get(i); @@ -70,7 +70,7 @@ index 4da4edae517a0efec6e03a719ec47b700509dab1..9e760a8e8244b15daaf0abdfc5f8a51d public CompoundTag getUpdateTag() { return this.saveWithoutMetadata(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index c1329dfa8ba8bdfd1f8a14fa288b85645361f2b1..ad69d1a9be21e0a00c01eecd796ca9019a501fe2 100644 +index c304ce978e7468ce6e5005468d6075616f2a7ae3..94670e18d27875a5fca3b76ee0ebb329cfb59bd1 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -953,8 +953,10 @@ public class PurpurWorldConfig { diff --git a/patches/server/0232-Mobs-always-drop-experience.patch b/patches/server/0232-Mobs-always-drop-experience.patch index 93fbc03d7..bf199c1f9 100644 --- a/patches/server/0232-Mobs-always-drop-experience.patch +++ b/patches/server/0232-Mobs-always-drop-experience.patch @@ -725,10 +725,10 @@ index cdc431608384b04b480a9cfdc603a28a178e3dd2..4e5b9f772ba587b4e108add3758dffa6 @Override diff --git a/src/main/java/net/minecraft/world/entity/monster/Guardian.java b/src/main/java/net/minecraft/world/entity/monster/Guardian.java -index 52d4a0975b1fec03fdd51b8fad8127a79e216be0..73e973e10f767d0efe0e0410d97c6892c4ea35d8 100644 +index 85a075b8224feed2daaa9978d3a1d23f1334ce6f..f10304b38e904528907cb36c342acf9d49935edd 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Guardian.java +++ b/src/main/java/net/minecraft/world/entity/monster/Guardian.java -@@ -99,6 +99,11 @@ public class Guardian extends Monster { +@@ -101,6 +101,11 @@ public class Guardian extends Monster { public boolean isSensitiveToWater() { return this.level.purpurConfig.guardianTakeDamageFromWater; } @@ -1157,7 +1157,7 @@ index 6af1d1b3b40d91fd3e0ac269d0e4a60a104be7b8..fef9fd3e50bba3d0fffa3d61b60f3bb8 @Override diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 417eade17d21c6fc2f0da5bb192bcb2e1e3a778a..502ead7161022974ee10fc3e3282bd0ba63fc3ad 100644 +index 94670e18d27875a5fca3b76ee0ebb329cfb59bd1..68569fffd660552388dd58b2dbc8b1932f068263 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -1019,12 +1019,14 @@ public class PurpurWorldConfig { diff --git a/patches/server/0233-Potion-NamespacedKey.patch b/patches/server/0233-Potion-NamespacedKey.patch index e0c4b35fc..541284a39 100644 --- a/patches/server/0233-Potion-NamespacedKey.patch +++ b/patches/server/0233-Potion-NamespacedKey.patch @@ -160,19 +160,19 @@ index 14fab63346d56c72cd7534a04760efd10eef4295..745e792482f61c571e2efbd4200dd1bd @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 6e997e109b14b0815c40a4c6bf891918559bfaba..d7261e00c993eb96014373001b158c3525b43ec3 100644 +index 697cc3adf3c07241136d555cbb618b528906efaf..69dbcc299cde87de76ff5c254842e6b89f55d86b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -@@ -455,7 +455,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { - +@@ -456,7 +456,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @Override public boolean addPotionEffect(PotionEffect effect, boolean force) { + org.spigotmc.AsyncCatcher.catchOp("effect add"); // Paper - this.getHandle().addEffect(new MobEffectInstance(MobEffect.byId(effect.getType().getId()), effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.hasIcon()), EntityPotionEffectEvent.Cause.PLUGIN); // Paper - Don't ignore icon + this.getHandle().addEffect(new MobEffectInstance(MobEffect.byId(effect.getType().getId()), effect.getDuration(), effect.getAmplifier(), effect.isAmbient(), effect.hasParticles(), effect.hasIcon(), effect.getKey()), EntityPotionEffectEvent.Cause.PLUGIN); // Purpur - add key // Paper - Don't ignore icon return true; } -@@ -476,7 +476,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -477,7 +477,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @Override public PotionEffect getPotionEffect(PotionEffectType type) { MobEffectInstance handle = this.getHandle().getEffect(MobEffect.byId(type.getId())); @@ -181,7 +181,7 @@ index 6e997e109b14b0815c40a4c6bf891918559bfaba..d7261e00c993eb96014373001b158c35 } @Override -@@ -488,7 +488,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { +@@ -489,7 +489,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { public Collection getActivePotionEffects() { List effects = new ArrayList(); for (MobEffectInstance handle : this.getHandle().activeEffects.values()) { diff --git a/patches/server/0258-Add-toggle-for-enchant-level-clamping.patch b/patches/server/0258-Add-toggle-for-enchant-level-clamping.patch index 071b1a3a3..545979a55 100644 --- a/patches/server/0258-Add-toggle-for-enchant-level-clamping.patch +++ b/patches/server/0258-Add-toggle-for-enchant-level-clamping.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add toggle for enchant level clamping diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 4881a62cb4735b76c304e9290a7341dca98f22bc..cc75080762e117b799a804cd7e8a3e223611e574 100644 +index d5c667a9ca5562c2df38e191748f081ef9ffbd68..c318f0b6d956c19d16b13c1aa99beda704d52027 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -1177,7 +1177,7 @@ public final class ItemStack { +@@ -1190,7 +1190,7 @@ public final class ItemStack { ListTag nbttaglist = this.tag.getList("Enchantments", 10); diff --git a/patches/server/0267-Option-to-disable-kick-for-out-of-order-chat.patch b/patches/server/0267-Option-to-disable-kick-for-out-of-order-chat.patch index a79d7149a..3d8a79280 100644 --- a/patches/server/0267-Option-to-disable-kick-for-out-of-order-chat.patch +++ b/patches/server/0267-Option-to-disable-kick-for-out-of-order-chat.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Option to disable kick for out of order chat diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index b8c2cbf0abbb81769c3887794656132a9f597b0b..ea3bfb5f639d5d3357111c82a974a8de1e9e178f 100644 +index 3f648eae9049c69a0f58d3adb5a85b03bf94ba8d..9d6f74d52acaebe79244c9c12e991139eb43427d 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2444,7 +2444,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2445,7 +2445,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic do { instant1 = (Instant) this.lastChatTimeStamp.get(); if (timestamp.isBefore(instant1)) { diff --git a/patches/server/0270-Add-local-difficulty-api.patch b/patches/server/0270-Add-local-difficulty-api.patch index fd5bceae8..5811146fa 100644 --- a/patches/server/0270-Add-local-difficulty-api.patch +++ b/patches/server/0270-Add-local-difficulty-api.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add local difficulty api diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -index 5e9055fdf411029ea2fed91acd6b981f79156418..24b390702d6abc256aee4a282cca64a654b95bd8 100644 +index 86ffc869b57410fd4993c0fd0ae000da2e2c070c..ada46470d5b774d44b16a6f22fffeae631576690 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java -@@ -2253,6 +2253,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { +@@ -2263,6 +2263,12 @@ public class CraftWorld extends CraftRegionAccessor implements World { return (this.getHandle().dragonFight() == null) ? null : new CraftDragonBattle(this.getHandle().dragonFight()); } diff --git a/patches/server/0273-PaperPR-Fix-exact-choice-recipe-book-clicks.patch b/patches/server/0273-PaperPR-Fix-exact-choice-recipe-book-clicks.patch index 6d1aedf12..46b4d4c1c 100644 --- a/patches/server/0273-PaperPR-Fix-exact-choice-recipe-book-clicks.patch +++ b/patches/server/0273-PaperPR-Fix-exact-choice-recipe-book-clicks.patch @@ -85,10 +85,10 @@ index 574ebb3a2fcd0e4e426a8a7ee88d722ed3b9c3f5..842b921799111789b37a34b76644c921 } diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java -index 4a5e5da67f00870e05893f541cd1716dbee78c83..234d992206f34febc7aff24b78cb3e526254e35f 100644 +index c318f0b6d956c19d16b13c1aa99beda704d52027..45d864679816cb39420e079d37220a967e9d71d1 100644 --- a/src/main/java/net/minecraft/world/item/ItemStack.java +++ b/src/main/java/net/minecraft/world/item/ItemStack.java -@@ -109,6 +109,7 @@ import org.bukkit.event.world.StructureGrowEvent; +@@ -111,6 +111,7 @@ import org.bukkit.event.world.StructureGrowEvent; public final class ItemStack { diff --git a/patches/server/0276-Remove-Timings.patch b/patches/server/0276-Remove-Timings.patch index 9923054ae..c78395908 100644 --- a/patches/server/0276-Remove-Timings.patch +++ b/patches/server/0276-Remove-Timings.patch @@ -450,7 +450,7 @@ index c6f5d6756fa0e068a462d9c0ded12e0771abba37..2c23321c826d929981df51f2cc60cdcd // Paper end - use set of chunks requiring updates, rather than iterating every single one loaded // Paper start - controlled flush for entity tracker packets diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index b58c07f454fa0b6911f344899c414983fda4b115..f9844f801c8ad1cb153a6b45ced2351548d7db07 100644 +index 3bf150a5f9ce1d497bf80174b80eca82c5fe06b5..2b82da383452b290ae99197c743e9a6ee5497713 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -687,7 +687,7 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -629,10 +629,10 @@ index b58c07f454fa0b6911f344899c414983fda4b115..f9844f801c8ad1cb153a6b45ced23515 } else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ea3bfb5f639d5d3357111c82a974a8de1e9e178f..43a5eb13728bee99cdf87947d98c042689d1af53 100644 +index 9d6f74d52acaebe79244c9c12e991139eb43427d..399cdbd7d4b7903edff051fb16e2522e921cd325 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -2581,7 +2581,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2582,7 +2582,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } } // Paper End @@ -641,7 +641,7 @@ index ea3bfb5f639d5d3357111c82a974a8de1e9e178f..43a5eb13728bee99cdf87947d98c0426 if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s); -@@ -2591,7 +2591,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2592,7 +2592,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.cserver.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -650,7 +650,7 @@ index ea3bfb5f639d5d3357111c82a974a8de1e9e178f..43a5eb13728bee99cdf87947d98c0426 return; } -@@ -2604,7 +2604,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic +@@ -2605,7 +2605,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic java.util.logging.Logger.getLogger(ServerGamePacketListenerImpl.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); return; } finally { @@ -660,10 +660,10 @@ index ea3bfb5f639d5d3357111c82a974a8de1e9e178f..43a5eb13728bee99cdf87947d98c0426 } // 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 71d3a4c16e80bf16d8c5841a04c532c1f69c0c0b..b04e905534baf35e50d9d09921581e04edd19fc5 100644 +index 4840b2adebeaf7927a043861d5b2cdf5c9b2cf0a..33d4c1af86382cc3343d5db42283b27f69f52374 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -1239,7 +1239,7 @@ public abstract class PlayerList { +@@ -1240,7 +1240,7 @@ public abstract class PlayerList { public void saveAll(int interval) { io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main @@ -672,7 +672,7 @@ index 71d3a4c16e80bf16d8c5841a04c532c1f69c0c0b..b04e905534baf35e50d9d09921581e04 int numSaved = 0; long now = MinecraftServer.currentTick; for (int i = 0; i < this.players.size(); ++i) { -@@ -1250,7 +1250,7 @@ public abstract class PlayerList { +@@ -1251,7 +1251,7 @@ public abstract class PlayerList { } // Paper end } @@ -785,10 +785,10 @@ index 6180679d922ea61d05d452971ec2d506a724d3c3..54467e5ab4a4629f88fe48bd4b7f0db8 } diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index b5e361d2170d2741ef990ec342f32ccde0c05750..3922a639a91b12c419ce566f6cf84f5466c2e0e3 100644 +index 96394bc930a8dab04cd7f5b6e0e9d457b11f58e3..4b71677a145918854cfc6aff40f0bc71933864f7 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -@@ -930,7 +930,7 @@ public class LevelChunk extends ChunkAccess { +@@ -925,7 +925,7 @@ public class LevelChunk extends ChunkAccess { this.chunkHolder.getEntityChunk().callEntitiesLoadEvent(); // Paper - rewrite chunk system if (this.needsDecoration) { @@ -797,16 +797,16 @@ index b5e361d2170d2741ef990ec342f32ccde0c05750..3922a639a91b12c419ce566f6cf84f54 this.needsDecoration = false; java.util.Random random = new java.util.Random(); random.setSeed(this.level.getSeed()); -@@ -950,7 +950,7 @@ public class LevelChunk extends ChunkAccess { +@@ -945,7 +945,7 @@ public class LevelChunk extends ChunkAccess { } } - server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(this.bukkitChunk)); + server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(bukkitChunk)); - } // Paper + //} // Paper // Purpur } } } -@@ -1322,7 +1322,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1318,7 +1318,7 @@ public class LevelChunk extends ChunkAccess { ProfilerFiller gameprofilerfiller = LevelChunk.this.level.getProfiler(); gameprofilerfiller.push(this::getType); @@ -815,7 +815,7 @@ index b5e361d2170d2741ef990ec342f32ccde0c05750..3922a639a91b12c419ce566f6cf84f54 BlockState iblockdata = LevelChunk.this.getBlockState(blockposition); if (this.blockEntity.getType().isValid(iblockdata)) { -@@ -1344,7 +1344,7 @@ public class LevelChunk extends ChunkAccess { +@@ -1340,7 +1340,7 @@ public class LevelChunk extends ChunkAccess { // Paper end // Spigot start } finally { diff --git a/patches/server/0277-Remove-Mojang-Profiler.patch b/patches/server/0277-Remove-Mojang-Profiler.patch index 7c212c3c3..3e9498e3f 100644 --- a/patches/server/0277-Remove-Mojang-Profiler.patch +++ b/patches/server/0277-Remove-Mojang-Profiler.patch @@ -39,7 +39,7 @@ index 314ab6183e31b4bac6a40c1f8007d48e9cab1760..6b05907bfec377e72a8858534d001bda return b0; diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 123c7f9730a999ea5ea11de817fa61cc455e6962..ee0a1f4be8a30f90e4c64deb31c06a78690aa09e 100644 +index 68552716b7ed7f93cb84b1951af85344dc2e83b0..2bd58d13d4c48fdddee56e2b417b68fe15072386 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -343,13 +343,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop