diff options
Diffstat (limited to 'patches')
-rw-r--r-- | patches/server/0343-Guard-against-serializing-mismatching-chunk-coordina.patch (renamed from patches/unapplied/server/0343-Guard-against-serializing-mismatching-chunk-coordina.patch) | 0 | ||||
-rw-r--r-- | patches/server/0344-Optimise-IEntityAccess-getPlayerByUUID.patch (renamed from patches/unapplied/server/0344-Optimise-IEntityAccess-getPlayerByUUID.patch) | 4 | ||||
-rw-r--r-- | patches/server/0345-Fix-items-not-falling-correctly.patch (renamed from patches/unapplied/server/0345-Fix-items-not-falling-correctly.patch) | 4 | ||||
-rw-r--r-- | patches/server/0346-Lag-compensate-eating.patch (renamed from patches/unapplied/server/0346-Lag-compensate-eating.patch) | 12 | ||||
-rw-r--r-- | patches/server/0347-Optimize-call-to-getFluid-for-explosions.patch (renamed from patches/unapplied/server/0347-Optimize-call-to-getFluid-for-explosions.patch) | 0 | ||||
-rw-r--r-- | patches/server/0348-Fix-last-firework-in-stack-not-having-effects-when-d.patch (renamed from patches/unapplied/server/0348-Fix-last-firework-in-stack-not-having-effects-when-d.patch) | 0 | ||||
-rw-r--r-- | patches/server/0349-Add-effect-to-block-break-naturally.patch (renamed from patches/unapplied/server/0349-Add-effect-to-block-break-naturally.patch) | 0 | ||||
-rw-r--r-- | patches/server/0350-Entity-Activation-Range-2.0.patch (renamed from patches/unapplied/server/0350-Entity-Activation-Range-2.0.patch) | 14 | ||||
-rw-r--r-- | patches/server/0351-Increase-Light-Queue-Size.patch (renamed from patches/unapplied/server/0351-Increase-Light-Queue-Size.patch) | 4 | ||||
-rw-r--r-- | patches/server/0352-Fix-Light-Command.patch (renamed from patches/unapplied/server/0352-Fix-Light-Command.patch) | 6 | ||||
-rw-r--r-- | patches/server/0353-Anti-Xray.patch (renamed from patches/unapplied/server/0353-Anti-Xray.patch) | 68 | ||||
-rw-r--r-- | patches/server/0354-Implement-alternative-item-despawn-rate.patch (renamed from patches/unapplied/server/0354-Implement-alternative-item-despawn-rate.patch) | 12 | ||||
-rw-r--r-- | patches/server/0355-Tracking-Range-Improvements.patch (renamed from patches/unapplied/server/0355-Tracking-Range-Improvements.patch) | 4 | ||||
-rw-r--r-- | patches/server/0356-Fix-items-vanishing-through-end-portal.patch (renamed from patches/unapplied/server/0356-Fix-items-vanishing-through-end-portal.patch) | 4 | ||||
-rw-r--r-- | patches/server/0357-implement-optional-per-player-mob-spawns.patch (renamed from patches/unapplied/server/0357-implement-optional-per-player-mob-spawns.patch) | 16 | ||||
-rw-r--r-- | patches/server/0358-Avoid-hopper-searches-if-there-are-no-items.patch (renamed from patches/unapplied/server/0358-Avoid-hopper-searches-if-there-are-no-items.patch) | 0 | ||||
-rw-r--r-- | patches/server/0359-Bees-get-gravity-in-void.-Fixes-MC-167279.patch (renamed from patches/unapplied/server/0359-Bees-get-gravity-in-void.-Fixes-MC-167279.patch) | 0 | ||||
-rw-r--r-- | patches/server/0360-Optimise-getChunkAt-calls-for-loaded-chunks.patch (renamed from patches/unapplied/server/0360-Optimise-getChunkAt-calls-for-loaded-chunks.patch) | 0 | ||||
-rw-r--r-- | patches/server/0361-Add-debug-for-sync-chunk-loads.patch (renamed from patches/unapplied/server/0361-Add-debug-for-sync-chunk-loads.patch) | 4 | ||||
-rw-r--r-- | patches/server/0362-Remove-garbage-Java-version-check.patch (renamed from patches/unapplied/server/0362-Remove-garbage-Java-version-check.patch) | 0 | ||||
-rw-r--r-- | patches/server/0363-Add-ThrownEggHatchEvent.patch (renamed from patches/unapplied/server/0363-Add-ThrownEggHatchEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0364-Entity-Jump-API.patch (renamed from patches/unapplied/server/0364-Entity-Jump-API.patch) | 4 | ||||
-rw-r--r-- | patches/server/0365-Add-option-to-nerf-pigmen-from-nether-portals.patch (renamed from patches/unapplied/server/0365-Add-option-to-nerf-pigmen-from-nether-portals.patch) | 6 | ||||
-rw-r--r-- | patches/server/0366-Make-the-GUI-graph-fancier.patch (renamed from patches/unapplied/server/0366-Make-the-GUI-graph-fancier.patch) | 0 | ||||
-rw-r--r-- | patches/server/0367-add-hand-to-BlockMultiPlaceEvent.patch (renamed from patches/unapplied/server/0367-add-hand-to-BlockMultiPlaceEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0368-Validate-tripwire-hook-placement-before-update.patch (renamed from patches/unapplied/server/0368-Validate-tripwire-hook-placement-before-update.patch) | 0 | ||||
-rw-r--r-- | patches/server/0369-Add-option-to-allow-iron-golems-to-spawn-in-air.patch (renamed from patches/unapplied/server/0369-Add-option-to-allow-iron-golems-to-spawn-in-air.patch) | 0 | ||||
-rw-r--r-- | patches/server/0370-Configurable-chance-of-villager-zombie-infection.patch (renamed from patches/unapplied/server/0370-Configurable-chance-of-villager-zombie-infection.patch) | 0 | ||||
-rw-r--r-- | patches/server/0371-Optimise-Chunk-getFluid.patch (renamed from patches/unapplied/server/0371-Optimise-Chunk-getFluid.patch) | 0 | ||||
-rw-r--r-- | patches/server/0372-Set-spigots-verbose-world-setting-to-false-by-def.patch (renamed from patches/unapplied/server/0372-Set-spigots-verbose-world-setting-to-false-by-def.patch) | 0 | ||||
-rw-r--r-- | patches/server/0373-Add-tick-times-API-and-mspt-command.patch (renamed from patches/unapplied/server/0373-Add-tick-times-API-and-mspt-command.patch) | 6 | ||||
-rw-r--r-- | patches/server/0374-Expose-MinecraftServer-isRunning.patch (renamed from patches/unapplied/server/0374-Expose-MinecraftServer-isRunning.patch) | 0 | ||||
-rw-r--r-- | patches/server/0375-Add-Raw-Byte-ItemStack-Serialization.patch (renamed from patches/unapplied/server/0375-Add-Raw-Byte-ItemStack-Serialization.patch) | 2 | ||||
-rw-r--r-- | patches/server/0376-Pillager-patrol-spawn-settings-and-per-player-option.patch (renamed from patches/unapplied/server/0376-Pillager-patrol-spawn-settings-and-per-player-option.patch) | 4 | ||||
-rw-r--r-- | patches/server/0377-Remote-Connections-shouldn-t-hold-up-shutdown.patch (renamed from patches/unapplied/server/0377-Remote-Connections-shouldn-t-hold-up-shutdown.patch) | 2 | ||||
-rw-r--r-- | patches/server/0378-Do-not-allow-bees-to-load-chunks-for-beehives.patch (renamed from patches/unapplied/server/0378-Do-not-allow-bees-to-load-chunks-for-beehives.patch) | 0 | ||||
-rw-r--r-- | patches/server/0379-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch (renamed from patches/unapplied/server/0379-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch) | 10 | ||||
-rw-r--r-- | patches/server/0380-Don-t-tick-dead-players.patch (renamed from patches/unapplied/server/0380-Don-t-tick-dead-players.patch) | 4 | ||||
-rw-r--r-- | patches/server/0381-Dead-Player-s-shouldn-t-be-able-to-move.patch (renamed from patches/unapplied/server/0381-Dead-Player-s-shouldn-t-be-able-to-move.patch) | 4 | ||||
-rw-r--r-- | patches/server/0382-Optimize-Collision-to-not-load-chunks.patch (renamed from patches/unapplied/server/0382-Optimize-Collision-to-not-load-chunks.patch) | 6 | ||||
-rw-r--r-- | patches/server/0383-Don-t-move-existing-players-to-world-spawn.patch (renamed from patches/unapplied/server/0383-Don-t-move-existing-players-to-world-spawn.patch) | 10 | ||||
-rw-r--r-- | patches/server/0384-Optimize-GoalSelector-Goal.Flag-Set-operations.patch (renamed from patches/unapplied/server/0384-Optimize-GoalSelector-Goal.Flag-Set-operations.patch) | 0 | ||||
-rw-r--r-- | patches/server/0385-Improved-Watchdog-Support.patch (renamed from patches/unapplied/server/0385-Improved-Watchdog-Support.patch) | 32 | ||||
-rw-r--r-- | patches/server/0386-Optimize-Pathfinding.patch (renamed from patches/unapplied/server/0386-Optimize-Pathfinding.patch) | 0 | ||||
-rw-r--r-- | patches/server/0387-Reduce-Either-Optional-allocation.patch (renamed from patches/unapplied/server/0387-Reduce-Either-Optional-allocation.patch) | 0 | ||||
-rw-r--r-- | patches/server/0388-Reduce-memory-footprint-of-NBTTagCompound.patch (renamed from patches/unapplied/server/0388-Reduce-memory-footprint-of-NBTTagCompound.patch) | 0 | ||||
-rw-r--r-- | patches/server/0389-Prevent-opening-inventories-when-frozen.patch (renamed from patches/unapplied/server/0389-Prevent-opening-inventories-when-frozen.patch) | 6 | ||||
-rw-r--r-- | patches/server/0390-Optimise-ArraySetSorted-removeIf.patch (renamed from patches/unapplied/server/0390-Optimise-ArraySetSorted-removeIf.patch) | 0 | ||||
-rw-r--r-- | patches/server/0391-Don-t-run-entity-collision-code-if-not-needed.patch (renamed from patches/unapplied/server/0391-Don-t-run-entity-collision-code-if-not-needed.patch) | 4 | ||||
-rw-r--r-- | patches/server/0392-Implement-Player-Client-Options-API.patch (renamed from patches/unapplied/server/0392-Implement-Player-Client-Options-API.patch) | 6 | ||||
-rw-r--r-- | patches/server/0393-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch (renamed from patches/unapplied/server/0393-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch) | 0 | ||||
-rw-r--r-- | patches/server/0394-Fix-Chunk-Post-Processing-deadlock-risk.patch (renamed from patches/unapplied/server/0394-Fix-Chunk-Post-Processing-deadlock-risk.patch) | 6 | ||||
-rw-r--r-- | patches/server/0395-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch (renamed from patches/unapplied/server/0395-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch) | 20 | ||||
-rw-r--r-- | patches/server/0396-Load-Chunks-for-Login-Asynchronously.patch (renamed from patches/unapplied/server/0396-Load-Chunks-for-Login-Asynchronously.patch) | 46 | ||||
-rw-r--r-- | patches/server/0397-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch (renamed from patches/unapplied/server/0397-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch) | 4 | ||||
-rw-r--r-- | patches/server/0398-Add-PlayerAttackEntityCooldownResetEvent.patch (renamed from patches/unapplied/server/0398-Add-PlayerAttackEntityCooldownResetEvent.patch) | 2 | ||||
-rw-r--r-- | patches/server/0399-Don-t-fire-BlockFade-on-worldgen-threads.patch (renamed from patches/unapplied/server/0399-Don-t-fire-BlockFade-on-worldgen-threads.patch) | 0 | ||||
-rw-r--r-- | patches/server/0400-Add-phantom-creative-and-insomniac-controls.patch (renamed from patches/unapplied/server/0400-Add-phantom-creative-and-insomniac-controls.patch) | 0 | ||||
-rw-r--r-- | patches/server/0401-Fix-numerous-item-duplication-issues-and-teleport-is.patch (renamed from patches/unapplied/server/0401-Fix-numerous-item-duplication-issues-and-teleport-is.patch) | 14 | ||||
-rw-r--r-- | patches/server/0402-Villager-Restocks-API.patch (renamed from patches/unapplied/server/0402-Villager-Restocks-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0403-Validate-PickItem-Packet-and-kick-for-invalid.patch (renamed from patches/unapplied/server/0403-Validate-PickItem-Packet-and-kick-for-invalid.patch) | 4 | ||||
-rw-r--r-- | patches/server/0404-Expose-game-version.patch (renamed from patches/unapplied/server/0404-Expose-game-version.patch) | 0 | ||||
-rw-r--r-- | patches/server/0405-Optimize-Voxel-Shape-Merging.patch (renamed from patches/unapplied/server/0405-Optimize-Voxel-Shape-Merging.patch) | 0 | ||||
-rw-r--r-- | patches/server/0406-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch (renamed from patches/unapplied/server/0406-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch) | 0 | ||||
-rw-r--r-- | patches/server/0407-misc-debugging-dumps.patch (renamed from patches/unapplied/server/0407-misc-debugging-dumps.patch) | 12 | ||||
-rw-r--r-- | patches/server/0408-Prevent-teleporting-dead-entities.patch (renamed from patches/unapplied/server/0408-Prevent-teleporting-dead-entities.patch) | 4 | ||||
-rw-r--r-- | patches/server/0409-Deobfuscate-stacktraces-in-log-messages-crash-report.patch (renamed from patches/unapplied/server/0409-Deobfuscate-stacktraces-in-log-messages-crash-report.patch) | 29 | ||||
-rw-r--r-- | patches/server/0410-Implement-Mob-Goal-API.patch (renamed from patches/unapplied/server/0410-Implement-Mob-Goal-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0411-Add-villager-reputation-API.patch (renamed from patches/unapplied/server/0411-Add-villager-reputation-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0412-Option-for-maximum-exp-value-when-merging-orbs.patch (renamed from patches/unapplied/server/0412-Option-for-maximum-exp-value-when-merging-orbs.patch) | 0 | ||||
-rw-r--r-- | patches/server/0413-ExperienceOrbMergeEvent.patch (renamed from patches/unapplied/server/0413-ExperienceOrbMergeEvent.patch) | 0 | ||||
-rw-r--r-- | patches/server/0414-Fix-PotionEffect-ignores-icon-flag.patch (renamed from patches/unapplied/server/0414-Fix-PotionEffect-ignores-icon-flag.patch) | 0 | ||||
-rw-r--r-- | patches/server/0415-Optimize-brigadier-child-sorting-performance.patch (renamed from patches/unapplied/server/0415-Optimize-brigadier-child-sorting-performance.patch) | 0 | ||||
-rw-r--r-- | patches/server/0416-Potential-bed-API.patch (renamed from patches/unapplied/server/0416-Potential-bed-API.patch) | 0 | ||||
-rw-r--r-- | patches/server/0417-Wait-for-Async-Tasks-during-shutdown.patch (renamed from patches/unapplied/server/0417-Wait-for-Async-Tasks-during-shutdown.patch) | 4 | ||||
-rw-r--r-- | patches/server/0418-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch (renamed from patches/unapplied/server/0418-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch) | 0 | ||||
-rw-r--r-- | patches/server/0419-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch (renamed from patches/unapplied/server/0419-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch) | 10 | ||||
-rw-r--r-- | patches/server/0420-Reduce-MutableInt-allocations-from-light-engine.patch (renamed from patches/unapplied/server/0420-Reduce-MutableInt-allocations-from-light-engine.patch) | 6 | ||||
-rw-r--r-- | patches/server/0421-Reduce-allocation-of-Vec3D-by-entity-tracker.patch (renamed from patches/unapplied/server/0421-Reduce-allocation-of-Vec3D-by-entity-tracker.patch) | 4 | ||||
-rw-r--r-- | patches/server/0422-Ensure-safe-gateway-teleport.patch (renamed from patches/unapplied/server/0422-Ensure-safe-gateway-teleport.patch) | 0 | ||||
-rw-r--r-- | patches/server/0423-Add-option-for-console-having-all-permissions.patch (renamed from patches/unapplied/server/0423-Add-option-for-console-having-all-permissions.patch) | 0 | ||||
-rw-r--r-- | patches/server/0424-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch (renamed from patches/unapplied/server/0424-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch) | 20 | ||||
-rw-r--r-- | patches/server/0425-Use-distance-map-to-optimise-entity-tracker.patch (renamed from patches/unapplied/server/0425-Use-distance-map-to-optimise-entity-tracker.patch) | 24 | ||||
-rw-r--r-- | patches/server/0426-Optimize-ServerLevels-chunk-level-checking-methods.patch (renamed from patches/unapplied/server/0426-Optimize-ServerLevels-chunk-level-checking-methods.patch) | 4 | ||||
-rw-r--r-- | patches/server/0427-Delay-Chunk-Unloads-based-on-Player-Movement.patch (renamed from patches/unapplied/server/0427-Delay-Chunk-Unloads-based-on-Player-Movement.patch) | 0 | ||||
-rw-r--r-- | patches/server/0428-Fix-villager-trading-demand-MC-163962.patch (renamed from patches/unapplied/server/0428-Fix-villager-trading-demand-MC-163962.patch) | 0 | ||||
-rw-r--r-- | patches/server/0429-Maps-shouldn-t-load-chunks.patch (renamed from patches/unapplied/server/0429-Maps-shouldn-t-load-chunks.patch) | 0 | ||||
-rw-r--r-- | patches/server/0430-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch (renamed from patches/unapplied/server/0430-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch) | 0 | ||||
-rw-r--r-- | patches/server/0431-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch (renamed from patches/unapplied/server/0431-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch) | 0 | ||||
-rw-r--r-- | patches/server/0432-Fix-piston-physics-inconsistency-MC-188840.patch (renamed from patches/unapplied/server/0432-Fix-piston-physics-inconsistency-MC-188840.patch) | 0 | ||||
-rw-r--r-- | patches/server/0433-Fix-sand-duping.patch (renamed from patches/unapplied/server/0433-Fix-sand-duping.patch) | 0 | ||||
-rw-r--r-- | patches/server/0434-Fix-missing-chunks-due-to-integer-overflow.patch (renamed from patches/unapplied/server/0434-Fix-missing-chunks-due-to-integer-overflow.patch) | 14 | ||||
-rw-r--r-- | patches/server/0435-Prevent-position-desync-in-playerconnection-causing-.patch (renamed from patches/unapplied/server/0435-Prevent-position-desync-in-playerconnection-causing-.patch) | 4 | ||||
-rw-r--r-- | patches/server/0436-Inventory-getHolder-method-without-block-snapshot.patch (renamed from patches/unapplied/server/0436-Inventory-getHolder-method-without-block-snapshot.patch) | 0 | ||||
-rw-r--r-- | patches/server/0437-Improve-Arrow-API.patch (renamed from patches/unapplied/server/0437-Improve-Arrow-API.patch) | 0 |
95 files changed, 234 insertions, 255 deletions
diff --git a/patches/unapplied/server/0343-Guard-against-serializing-mismatching-chunk-coordina.patch b/patches/server/0343-Guard-against-serializing-mismatching-chunk-coordina.patch index bc391d7a2a..bc391d7a2a 100644 --- a/patches/unapplied/server/0343-Guard-against-serializing-mismatching-chunk-coordina.patch +++ b/patches/server/0343-Guard-against-serializing-mismatching-chunk-coordina.patch diff --git a/patches/unapplied/server/0344-Optimise-IEntityAccess-getPlayerByUUID.patch b/patches/server/0344-Optimise-IEntityAccess-getPlayerByUUID.patch index b4a66435dc..7ee9512d04 100644 --- a/patches/unapplied/server/0344-Optimise-IEntityAccess-getPlayerByUUID.patch +++ b/patches/server/0344-Optimise-IEntityAccess-getPlayerByUUID.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Optimise IEntityAccess#getPlayerByUUID Use the world entity map instead of iterating over all players diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index aa77a3dbbcb77fb6f3ad070b83426042dd284aa0..9993b6a8f40896166c2f86befa7222c6e714da81 100644 +index 7667c185178cf8cc15dd9c9b70402b1279e226a7..0cb83e84f8287bfaf170e78ed4cbce0ad00e3897 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -391,6 +391,14 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -392,6 +392,14 @@ public class ServerLevel extends Level implements WorldGenLevel { public final com.destroystokyo.paper.io.chunk.ChunkTaskManager asyncChunkTaskManager; // Paper end diff --git a/patches/unapplied/server/0345-Fix-items-not-falling-correctly.patch b/patches/server/0345-Fix-items-not-falling-correctly.patch index 72f9d60111..96b422d772 100644 --- a/patches/unapplied/server/0345-Fix-items-not-falling-correctly.patch +++ b/patches/server/0345-Fix-items-not-falling-correctly.patch @@ -15,10 +15,10 @@ This patch resolves the conflict by offsetting checking Spigot's entity activation range check from an item's move method. diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index 23506fd3a98c240606a00e29624012ae3bbab21a..a0de239a8497c906c2329131b14587637b0fdfcf 100644 +index 95dc82a0a9bd8a3fa9c704696e7b3dc48bf4d6a0..ebcf58fe51d1fd0cb8a0f5a84cdd349f29c9442e 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -@@ -144,7 +144,7 @@ public class ItemEntity extends Entity { +@@ -142,7 +142,7 @@ public class ItemEntity extends Entity { } } diff --git a/patches/unapplied/server/0346-Lag-compensate-eating.patch b/patches/server/0346-Lag-compensate-eating.patch index 696b8217eb..5e5385d34c 100644 --- a/patches/unapplied/server/0346-Lag-compensate-eating.patch +++ b/patches/server/0346-Lag-compensate-eating.patch @@ -7,10 +7,10 @@ When the server is lagging, players will wait longer when eating. Change to also use a time check instead if it passes. diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 90f6fcb6c0a53133ecf7d9adbd5e526e29be3fa2..dc885d9a20205bfa3b77e315ebe17287a6c3d4bf 100644 +index 590b8af46f8e060aa568dde50025b4f4c6bb162e..383a892a5c34ec5e8f7d102f5a9bec11ae193c0e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3539,6 +3539,11 @@ public abstract class LivingEntity extends Entity { +@@ -3542,6 +3542,11 @@ public abstract class LivingEntity extends Entity { return ((Byte) this.entityData.get(LivingEntity.DATA_LIVING_ENTITY_FLAGS) & 2) > 0 ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND; } @@ -22,7 +22,7 @@ index 90f6fcb6c0a53133ecf7d9adbd5e526e29be3fa2..dc885d9a20205bfa3b77e315ebe17287 private void updatingUsingItem() { if (this.isUsingItem()) { if (ItemStack.isSameIgnoreDurability(this.getItemInHand(this.getUsedItemHand()), this.useItem)) { -@@ -3556,8 +3561,12 @@ public abstract class LivingEntity extends Entity { +@@ -3559,8 +3564,12 @@ public abstract class LivingEntity extends Entity { if (this.shouldTriggerItemUseEffects()) { this.triggerItemUseEffects(stack, 5); } @@ -37,7 +37,7 @@ index 90f6fcb6c0a53133ecf7d9adbd5e526e29be3fa2..dc885d9a20205bfa3b77e315ebe17287 this.completeUsingItem(); } -@@ -3605,7 +3614,10 @@ public abstract class LivingEntity extends Entity { +@@ -3608,7 +3617,10 @@ public abstract class LivingEntity extends Entity { if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper use override flag this.useItem = itemstack; @@ -49,7 +49,7 @@ index 90f6fcb6c0a53133ecf7d9adbd5e526e29be3fa2..dc885d9a20205bfa3b77e315ebe17287 if (!this.level.isClientSide) { this.setLivingEntityFlag(1, true); this.setLivingEntityFlag(2, hand == InteractionHand.OFF_HAND); -@@ -3630,7 +3642,10 @@ public abstract class LivingEntity extends Entity { +@@ -3633,7 +3645,10 @@ public abstract class LivingEntity extends Entity { } } else if (!this.isUsingItem() && !this.useItem.isEmpty()) { this.useItem = ItemStack.EMPTY; @@ -61,7 +61,7 @@ index 90f6fcb6c0a53133ecf7d9adbd5e526e29be3fa2..dc885d9a20205bfa3b77e315ebe17287 } } -@@ -3763,7 +3778,10 @@ public abstract class LivingEntity extends Entity { +@@ -3766,7 +3781,10 @@ public abstract class LivingEntity extends Entity { } this.useItem = ItemStack.EMPTY; diff --git a/patches/unapplied/server/0347-Optimize-call-to-getFluid-for-explosions.patch b/patches/server/0347-Optimize-call-to-getFluid-for-explosions.patch index 952f1fc45d..952f1fc45d 100644 --- a/patches/unapplied/server/0347-Optimize-call-to-getFluid-for-explosions.patch +++ b/patches/server/0347-Optimize-call-to-getFluid-for-explosions.patch diff --git a/patches/unapplied/server/0348-Fix-last-firework-in-stack-not-having-effects-when-d.patch b/patches/server/0348-Fix-last-firework-in-stack-not-having-effects-when-d.patch index 448854642c..448854642c 100644 --- a/patches/unapplied/server/0348-Fix-last-firework-in-stack-not-having-effects-when-d.patch +++ b/patches/server/0348-Fix-last-firework-in-stack-not-having-effects-when-d.patch diff --git a/patches/unapplied/server/0349-Add-effect-to-block-break-naturally.patch b/patches/server/0349-Add-effect-to-block-break-naturally.patch index b911824bb1..b911824bb1 100644 --- a/patches/unapplied/server/0349-Add-effect-to-block-break-naturally.patch +++ b/patches/server/0349-Add-effect-to-block-break-naturally.patch diff --git a/patches/unapplied/server/0350-Entity-Activation-Range-2.0.patch b/patches/server/0350-Entity-Activation-Range-2.0.patch index ed8b616a30..0db0537bd0 100644 --- a/patches/unapplied/server/0350-Entity-Activation-Range-2.0.patch +++ b/patches/server/0350-Entity-Activation-Range-2.0.patch @@ -14,7 +14,7 @@ Adds flying monsters to control ghast and phantoms Adds villagers as separate config diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 9993b6a8f40896166c2f86befa7222c6e714da81..ff902ae5a96616bb70897d9326fc65a3261b07d9 100644 +index 0cb83e84f8287bfaf170e78ed4cbce0ad00e3897..0013fdf7dd4074a9684eb4b93ea2735185c7ac1c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -2,7 +2,6 @@ package net.minecraft.server.level; @@ -25,7 +25,7 @@ index 9993b6a8f40896166c2f86befa7222c6e714da81..ff902ae5a96616bb70897d9326fc65a3 import com.google.common.collect.Lists; import com.mojang.datafixers.DataFixer; import com.mojang.datafixers.util.Pair; -@@ -990,17 +989,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -991,17 +990,17 @@ public class ServerLevel extends Level implements WorldGenLevel { ++TimingHistory.entityTicks; // Paper - timings // Spigot start co.aikar.timings.Timing timer; // Paper @@ -47,7 +47,7 @@ index 9993b6a8f40896166c2f86befa7222c6e714da81..ff902ae5a96616bb70897d9326fc65a3 try { // Paper end - timings entity.setOldPosAndRot(); -@@ -1011,9 +1010,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1012,9 +1011,13 @@ public class ServerLevel extends Level implements WorldGenLevel { return Registry.ENTITY_TYPE.getKey(entity.getType()).toString(); }); gameprofilerfiller.incrementCounter("tickNonPassenger"); @@ -61,7 +61,7 @@ index 9993b6a8f40896166c2f86befa7222c6e714da81..ff902ae5a96616bb70897d9326fc65a3 Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1021,13 +1024,18 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1022,13 +1025,18 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(entity, entity1); } @@ -81,7 +81,7 @@ index 9993b6a8f40896166c2f86befa7222c6e714da81..ff902ae5a96616bb70897d9326fc65a3 passenger.setOldPosAndRot(); ++passenger.tickCount; ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -1036,8 +1044,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1037,8 +1045,17 @@ public class ServerLevel extends Level implements WorldGenLevel { return Registry.ENTITY_TYPE.getKey(passenger.getType()).toString(); }); gameprofilerfiller.incrementCounter("tickPassenger"); @@ -99,7 +99,7 @@ index 9993b6a8f40896166c2f86befa7222c6e714da81..ff902ae5a96616bb70897d9326fc65a3 gameprofilerfiller.pop(); Iterator iterator = passenger.getPassengers().iterator(); -@@ -1047,6 +1064,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1048,6 +1065,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(passenger, entity2); } @@ -108,7 +108,7 @@ index 9993b6a8f40896166c2f86befa7222c6e714da81..ff902ae5a96616bb70897d9326fc65a3 } else { passenger.stopRiding(); diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 1ac0e8996ece6bd7be521a9a45fb8c398838b94e..79026ea84a6efca425b351467651332d2d3b9fdd 100644 +index 5f613eac047703b6f1521fcd2d802e381d5f42d5..a9f1b5fe81bef3e948d128598407d23c723fc075 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -384,6 +384,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { diff --git a/patches/unapplied/server/0351-Increase-Light-Queue-Size.patch b/patches/server/0351-Increase-Light-Queue-Size.patch index df199500d9..e60d563086 100644 --- a/patches/unapplied/server/0351-Increase-Light-Queue-Size.patch +++ b/patches/server/0351-Increase-Light-Queue-Size.patch @@ -14,10 +14,10 @@ light engine on shutdown... The queue size only puts a cap on max loss, doesn't solve that problem. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index a4bfec79fa93b45084adbf502d5900bc420300ab..51b33848d9a3af3a9b9dfe482f9f8d9150c57b82 100644 +index 8be6de893f1df78afc0e2c023e548a50ff7c2629..b04c5433a1e2cdfe69c5b5cbe77b867ebd55c126 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -778,7 +778,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -780,7 +780,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.executeModerately(); // CraftBukkit end if (worldserver.getWorld().getKeepSpawnInMemory()) worldloadlistener.stop(); // Paper diff --git a/patches/unapplied/server/0352-Fix-Light-Command.patch b/patches/server/0352-Fix-Light-Command.patch index e7baf69516..9ddd1af8d2 100644 --- a/patches/unapplied/server/0352-Fix-Light-Command.patch +++ b/patches/server/0352-Fix-Light-Command.patch @@ -154,10 +154,10 @@ index 0000000000000000000000000000000000000000..190df802cb24aa360f6cf4d291e38b4b + } +} diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 375f66bf1617e255b3465b736076a65e080eb36e..d95db45e21861eb9f1623c44dd797429ae158760 100644 +index eae2472f6dfd166cb457953ab396f85ca8c3f0f9..8ab5fd86e626958646935e460b603c875b8a841b 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -141,6 +141,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -138,6 +138,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider private final ChunkTaskPriorityQueueSorter queueSorter; private final ProcessorHandle<ChunkTaskPriorityQueueSorter.Message<Runnable>> worldgenMailbox; public final ProcessorHandle<ChunkTaskPriorityQueueSorter.Message<Runnable>> mainThreadMailbox; @@ -170,7 +170,7 @@ index 375f66bf1617e255b3465b736076a65e080eb36e..d95db45e21861eb9f1623c44dd797429 public final ChunkProgressListener progressListener; private final ChunkStatusUpdateListener chunkStatusListener; public final ChunkMap.ChunkDistanceManager distanceManager; -@@ -264,11 +270,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -261,11 +267,12 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.progressListener = worldGenerationProgressListener; this.chunkStatusListener = chunkStatusChangeListener; diff --git a/patches/unapplied/server/0353-Anti-Xray.patch b/patches/server/0353-Anti-Xray.patch index a89586783f..ed8587ea53 100644 --- a/patches/unapplied/server/0353-Anti-Xray.patch +++ b/patches/server/0353-Anti-Xray.patch @@ -1044,10 +1044,10 @@ index 7825d6f0fdcfda6212cff8033ec55fb7db236154..000853110c7a89f2d0403a7a2737025a public ClientboundLevelChunkWithLightPacket(FriendlyByteBuf buf) { diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index d95db45e21861eb9f1623c44dd797429ae158760..f15ad47696574d7668374729de44286258a36f3b 100644 +index 8ab5fd86e626958646935e460b603c875b8a841b..993a74bb16116622dc968f1f240fed1c377de5fa 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -997,7 +997,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -994,7 +994,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider completablefuture1.thenAcceptAsync((either) -> { either.ifLeft((chunk) -> { this.tickingGenerated.getAndIncrement(); @@ -1056,7 +1056,7 @@ index d95db45e21861eb9f1623c44dd797429ae158760..f15ad47696574d7668374729de442862 this.getPlayers(chunkcoordintpair, false).forEach((entityplayer) -> { this.playerLoadedChunk(entityplayer, mutableobject, chunk); -@@ -1176,7 +1176,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1173,7 +1173,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider while (objectiterator.hasNext()) { ChunkHolder playerchunk = (ChunkHolder) objectiterator.next(); ChunkPos chunkcoordintpair = playerchunk.getPos(); @@ -1065,7 +1065,7 @@ index d95db45e21861eb9f1623c44dd797429ae158760..f15ad47696574d7668374729de442862 this.getPlayers(chunkcoordintpair, false).forEach((entityplayer) -> { SectionPos sectionposition = entityplayer.getLastSectionPos(); -@@ -1190,7 +1190,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1187,7 +1187,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } @@ -1074,7 +1074,7 @@ index d95db45e21861eb9f1623c44dd797429ae158760..f15ad47696574d7668374729de442862 if (player.level == this.level) { if (newWithinViewDistance && !oldWithinViewDistance) { ChunkHolder playerchunk = this.getVisibleChunkIfPresent(pos.toLong()); -@@ -1727,12 +1727,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1724,12 +1724,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } @@ -1097,10 +1097,10 @@ index d95db45e21861eb9f1623c44dd797429ae158760..f15ad47696574d7668374729de442862 List<Entity> list = Lists.newArrayList(); List<Entity> list1 = Lists.newArrayList(); diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index ff902ae5a96616bb70897d9326fc65a3261b07d9..57abbcd9d59ea29e2feb238ee342f28a66122006 100644 +index 0013fdf7dd4074a9684eb4b93ea2735185c7ac1c..fb7954d4d4dbd35bf771b362f241294d79cf9933 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -402,7 +402,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -403,7 +403,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public ServerLevel(MinecraftServer minecraftserver, Executor executor, LevelStorageSource.LevelStorageAccess convertable_conversionsession, PrimaryLevelData iworlddataserver, ResourceKey<Level> resourcekey, LevelStem worlddimension, ChunkProgressListener worldloadlistener, boolean flag, long i, List<CustomSpawner> list, boolean flag1, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider) { // Holder holder = worlddimension.typeHolder(); // CraftBukkit - decompile error // Objects.requireNonNull(minecraftserver); // CraftBukkit - decompile error @@ -1169,7 +1169,7 @@ index 4c1d34bd274d8e2a4003a286536652367da9488a..8e5e773fffcb17d20328903d1b1fc9d9 if (iblockdata1 == null) { // CraftBukkit start - remove blockstate if failed (or the same) diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java -index 0d815a39d50bb8c06f81e3386764db6a00d84985..8dd9879d52ba9bd816fcfa5413ef3bfc25d562c7 100644 +index 6cec5cda20531aadf8e2148908a70f8b573d7d82..dc164608bfb2fb18a1adf83fa10bac4028dcac0a 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkAccess.java @@ -99,17 +99,19 @@ public abstract class ChunkAccess implements BlockGetter, BiomeManager.NoiseBiom @@ -1247,7 +1247,7 @@ index ae37e97e52557b48f129cc02eeea395378a48444..785fbcf9bafcdec1c5be213de3d85126 public int getSerializedSize() { diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java -index 1152bf7f7a7784457c778b215db91b9e02066fba..c36de77b3124a519b3f324c5a187337884fe9e28 100644 +index 78e20871e4bd8d92c4475f797a55733c68f6aeb4..34d8fbb441def2e89415729a2f39b9a32eec95c7 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainer.java @@ -29,6 +29,7 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer @@ -1258,30 +1258,22 @@ index 1152bf7f7a7784457c778b215db91b9e02066fba..c36de77b3124a519b3f324c5a1873378 private volatile PalettedContainer.Data<T> data; private final PalettedContainer.Strategy strategy; private final ThreadingDetector threadingDetector = new ThreadingDetector("PalettedContainer"); -@@ -41,14 +42,19 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer +@@ -41,7 +42,13 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer this.threadingDetector.checkAndUnlock(); } -- public static <T> Codec<PalettedContainer<T>> codecRW(IdMap<T> idMap, Codec<T> codec, PalettedContainer.Strategy strategy, T object) { -- PalettedContainerRO.Unpacker<T, PalettedContainer<T>> unpacker = PalettedContainer::unpack; +- public static <T> Codec<PalettedContainer<T>> codecRW(IdMap<T> idList, Codec<T> entryCodec, PalettedContainer.Strategy paletteProvider, T defaultValue) { + // Paper start - Anti-Xray - Add preset values -+ @Deprecated @io.papermc.paper.annotation.DoNotUse public static <T> Codec<PalettedContainer<T>> codecRW(IdMap<T> idMap, Codec<T> codec, PalettedContainer.Strategy strategy, T object) { return PalettedContainer.codecRW(idMap, codec, strategy, object, null); } -+ public static <T> Codec<PalettedContainer<T>> codecRW(IdMap<T> idMap, Codec<T> codec, PalettedContainer.Strategy strategy, T object, T @org.jetbrains.annotations.Nullable [] presetValues) { ++ @Deprecated @io.papermc.paper.annotation.DoNotUse public static <T> Codec<PalettedContainer<T>> codecRW(IdMap<T> idList, Codec<T> entryCodec, PalettedContainer.Strategy paletteProvider, T defaultValue) {return codecRW(idList, entryCodec, paletteProvider, defaultValue, null);} ++ public static <T> Codec<PalettedContainer<T>> codecRW(IdMap<T> idList, Codec<T> entryCodec, PalettedContainer.Strategy paletteProvider, T defaultValue, T @org.jetbrains.annotations.Nullable [] presetValues) { + PalettedContainerRO.Unpacker<T, PalettedContainer<T>> unpacker = (idMapx, strategyx, packedData) -> { + return unpack(idMapx, strategyx, packedData, object, presetValues); + }; + // Paper end - return codec(idMap, codec, strategy, object, unpacker); + PalettedContainerRO.Unpacker<T, PalettedContainer<T>> unpacker = PalettedContainer::unpack; + return codec(idList, entryCodec, paletteProvider, defaultValue, unpacker); } - - public static <T> Codec<PalettedContainerRO<T>> codecRO(IdMap<T> idMap, Codec<T> codec, PalettedContainer.Strategy strategy, T object) { - PalettedContainerRO.Unpacker<T, PalettedContainerRO<T>> unpacker = (idMapx, strategyx, packedData) -> { -- return unpack(idMapx, strategyx, packedData).map((palettedContainer) -> { -+ return unpack(idMapx, strategyx, packedData, object, null).map((palettedContainer) -> { // Paper - Anti-Xray - Add preset values - return palettedContainer; - }); - }; -@@ -65,19 +71,52 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer +@@ -65,19 +72,52 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer }); } @@ -1337,7 +1329,7 @@ index 1152bf7f7a7784457c778b215db91b9e02066fba..c36de77b3124a519b3f324c5a1873378 this.strategy = paletteProvider; this.registry = idList; this.data = this.createOrReuseData((PalettedContainer.Data<T>)null, 0); -@@ -92,11 +131,33 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer +@@ -92,11 +132,33 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer @Override public int onResize(int newBits, T object) { PalettedContainer.Data<T> data = this.data; @@ -1372,7 +1364,7 @@ index 1152bf7f7a7784457c778b215db91b9e02066fba..c36de77b3124a519b3f324c5a1873378 public T getAndSet(int x, int y, int z, T value) { this.acquire(); -@@ -166,25 +227,36 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer +@@ -166,25 +228,36 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer data.palette.read(buf); buf.readLongArray(data.storage.getRaw()); this.data = data; @@ -1407,21 +1399,21 @@ index 1152bf7f7a7784457c778b215db91b9e02066fba..c36de77b3124a519b3f324c5a1873378 } -- private static <T> DataResult<PalettedContainer<T>> unpack(IdMap<T> idMap, PalettedContainer.Strategy strategy, PalettedContainerRO.PackedData<T> packedData) { -+ private static <T> DataResult<PalettedContainer<T>> unpack(IdMap<T> idMap, PalettedContainer.Strategy strategy, PalettedContainerRO.PackedData<T> packedData, T defaultValue, T @org.jetbrains.annotations.Nullable [] presetValues) { // Paper - Anti-Xray - Add preset values - List<T> list = packedData.paletteEntries(); - int i = strategy.size(); - int j = strategy.calculateBitsForSerialization(idMap, list.size()); -@@ -220,7 +292,7 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer +- private static <T> DataResult<PalettedContainer<T>> unpack(IdMap<T> idList, PalettedContainer.Strategy paletteProvider, PalettedContainerRO.PackedData<T> serialized) { ++ private static <T> DataResult<PalettedContainer<T>> unpack(IdMap<T> idList, PalettedContainer.Strategy paletteProvider, PalettedContainerRO.PackedData<T> serialized, T defaultValue, T @org.jetbrains.annotations.Nullable [] presetValues) { // Paper - Anti-Xray - Add preset values + List<T> list = serialized.paletteEntries(); + int i = paletteProvider.size(); + int j = paletteProvider.calculateBitsForSerialization(idList, list.size()); +@@ -220,7 +293,7 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer } } -- return DataResult.success(new PalettedContainer<>(idMap, strategy, configuration, bitStorage, list)); -+ return DataResult.success(new PalettedContainer<>(idMap, strategy, configuration, bitStorage, list, defaultValue, presetValues)); // Paper - Anti-Xray - Add preset values +- return DataResult.success(new PalettedContainer<>(idList, paletteProvider, configuration, bitStorage, list)); ++ return DataResult.success(new PalettedContainer<>(idList, paletteProvider, configuration, bitStorage, list, defaultValue, presetValues)); // Paper - Anti-Xray - Add preset values } @Override -@@ -280,12 +352,12 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer +@@ -280,12 +353,12 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer } public PalettedContainer<T> copy() { @@ -1436,7 +1428,7 @@ index 1152bf7f7a7784457c778b215db91b9e02066fba..c36de77b3124a519b3f324c5a1873378 } @Override -@@ -329,9 +401,20 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer +@@ -329,9 +402,20 @@ public class PalettedContainer<T> implements PaletteResize<T>, PalettedContainer return 1 + this.palette.getSerializedSize() + FriendlyByteBuf.getVarIntSize(this.storage.getSize()) + this.storage.getRaw().length * 8; } @@ -1459,12 +1451,12 @@ index 1152bf7f7a7784457c778b215db91b9e02066fba..c36de77b3124a519b3f324c5a1873378 } diff --git a/src/main/java/net/minecraft/world/level/chunk/PalettedContainerRO.java b/src/main/java/net/minecraft/world/level/chunk/PalettedContainerRO.java -index e1c7a5909be7b8bf1156fc62b3965f3562c729e6..e561a45c5115c3c3930999b2a10108bc4fab99af 100644 +index 9a2bf744abd8916d492e901be889223591bac3fd..a27fce0f1af9776a713bf1b5277869ed5d3e0c8e 100644 --- a/src/main/java/net/minecraft/world/level/chunk/PalettedContainerRO.java +++ b/src/main/java/net/minecraft/world/level/chunk/PalettedContainerRO.java @@ -14,7 +14,10 @@ public interface PalettedContainerRO<T> { - void getAll(Consumer<T> consumer); + void getAll(Consumer<T> action); - void write(FriendlyByteBuf buf); + // Paper start - Anti-Xray - Add chunk packet info diff --git a/patches/unapplied/server/0354-Implement-alternative-item-despawn-rate.patch b/patches/server/0354-Implement-alternative-item-despawn-rate.patch index f1d44765bf..db8d53f699 100644 --- a/patches/unapplied/server/0354-Implement-alternative-item-despawn-rate.patch +++ b/patches/server/0354-Implement-alternative-item-despawn-rate.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Implement alternative item-despawn-rate Co-authored-by: Noah van der Aa <[email protected]> diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java -index a0de239a8497c906c2329131b14587637b0fdfcf..b491186d66609046016370e56b96e2c09e7d3a32 100644 +index ebcf58fe51d1fd0cb8a0f5a84cdd349f29c9442e..7e293167e73238f42fc213ee29d89aa775cf9e60 100644 --- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java +++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java @@ -54,6 +54,7 @@ public class ItemEntity extends Entity { @@ -17,7 +17,7 @@ index a0de239a8497c906c2329131b14587637b0fdfcf..b491186d66609046016370e56b96e2c0 public ItemEntity(EntityType<? extends ItemEntity> type, Level world) { super(type, world); -@@ -184,7 +185,7 @@ public class ItemEntity extends Entity { +@@ -182,7 +183,7 @@ public class ItemEntity extends Entity { } } @@ -26,7 +26,7 @@ index a0de239a8497c906c2329131b14587637b0fdfcf..b491186d66609046016370e56b96e2c0 // CraftBukkit start - fire ItemDespawnEvent if (org.bukkit.craftbukkit.event.CraftEventFactory.callItemDespawnEvent(this).isCancelled()) { this.age = 0; -@@ -208,7 +209,7 @@ public class ItemEntity extends Entity { +@@ -206,7 +207,7 @@ public class ItemEntity extends Entity { this.lastTick = MinecraftServer.currentTick; // CraftBukkit end @@ -35,7 +35,7 @@ index a0de239a8497c906c2329131b14587637b0fdfcf..b491186d66609046016370e56b96e2c0 // CraftBukkit start - fire ItemDespawnEvent if (org.bukkit.craftbukkit.event.CraftEventFactory.callItemDespawnEvent(this).isCancelled()) { this.age = 0; -@@ -259,7 +260,7 @@ public class ItemEntity extends Entity { +@@ -257,7 +258,7 @@ public class ItemEntity extends Entity { private boolean isMergable() { ItemStack itemstack = this.getItem(); @@ -44,7 +44,7 @@ index a0de239a8497c906c2329131b14587637b0fdfcf..b491186d66609046016370e56b96e2c0 } private void tryToMerge(ItemEntity other) { -@@ -503,6 +504,7 @@ public class ItemEntity extends Entity { +@@ -501,6 +502,7 @@ public class ItemEntity extends Entity { com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit this.getEntityData().set(ItemEntity.DATA_ITEM, stack); this.getEntityData().markDirty(ItemEntity.DATA_ITEM); // CraftBukkit - SPIGOT-4591, must mark dirty @@ -52,7 +52,7 @@ index a0de239a8497c906c2329131b14587637b0fdfcf..b491186d66609046016370e56b96e2c0 } @Override -@@ -566,7 +568,7 @@ public class ItemEntity extends Entity { +@@ -564,7 +566,7 @@ public class ItemEntity extends Entity { public void makeFakeItem() { this.setNeverPickUp(); diff --git a/patches/unapplied/server/0355-Tracking-Range-Improvements.patch b/patches/server/0355-Tracking-Range-Improvements.patch index 84ad9dcefd..035cfe82f8 100644 --- a/patches/unapplied/server/0355-Tracking-Range-Improvements.patch +++ b/patches/server/0355-Tracking-Range-Improvements.patch @@ -8,10 +8,10 @@ Sets tracking range of watermobs to animals instead of misc and simplifies code Also ignores Enderdragon, defaulting it to Mojang's setting diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index f15ad47696574d7668374729de44286258a36f3b..a80d4620eadd78fcaa0786680766cee196c35f8d 100644 +index 993a74bb16116622dc968f1f240fed1c377de5fa..1a06d0f8eedc4ef1e9a860c873aeff746669bfce 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1915,6 +1915,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1912,6 +1912,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider while (iterator.hasNext()) { Entity entity = (Entity) iterator.next(); int j = entity.getType().clientTrackingRange() * 16; diff --git a/patches/unapplied/server/0356-Fix-items-vanishing-through-end-portal.patch b/patches/server/0356-Fix-items-vanishing-through-end-portal.patch index e9979d4382..a972dd7ef4 100644 --- a/patches/unapplied/server/0356-Fix-items-vanishing-through-end-portal.patch +++ b/patches/server/0356-Fix-items-vanishing-through-end-portal.patch @@ -13,10 +13,10 @@ Quickly loading the exact world spawn chunk before searching the heightmap resolves the issue without having to load all spawn chunks. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 79026ea84a6efca425b351467651332d2d3b9fdd..22ea44067f742008e82114155867cecb841a67b3 100644 +index a9f1b5fe81bef3e948d128598407d23c723fc075..8576fbaedf3076e8b492c499d4176b1116e7ef56 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3112,6 +3112,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3109,6 +3109,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { if (flag1) { blockposition1 = ServerLevel.END_SPAWN_POINT; } else { diff --git a/patches/unapplied/server/0357-implement-optional-per-player-mob-spawns.patch b/patches/server/0357-implement-optional-per-player-mob-spawns.patch index 3f76b68451..2bc510b602 100644 --- a/patches/unapplied/server/0357-implement-optional-per-player-mob-spawns.patch +++ b/patches/server/0357-implement-optional-per-player-mob-spawns.patch @@ -252,10 +252,10 @@ index 0000000000000000000000000000000000000000..11de56afaf059b00fa5bec293516bcdc + } +} diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index a80d4620eadd78fcaa0786680766cee196c35f8d..e22a472bef6cc5b6b892379160aaea876084e8c8 100644 +index 1a06d0f8eedc4ef1e9a860c873aeff746669bfce..f20b93c6372e36016b21591d3cd63c5d7a47721e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -159,6 +159,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -156,6 +156,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider private final Long2LongMap chunkSaveCooldowns; private final Queue<Runnable> unloadQueue; int viewDistance; @@ -263,7 +263,7 @@ index a80d4620eadd78fcaa0786680766cee196c35f8d..e22a472bef6cc5b6b892379160aaea87 // CraftBukkit start - recursion-safe executor for Chunk loadCallback() and unloadCallback() public final CallbackExecutor callbackExecutor = new CallbackExecutor(); -@@ -188,16 +189,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -185,16 +186,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider int chunkX = MCUtil.getChunkCoordinate(player.getX()); int chunkZ = MCUtil.getChunkCoordinate(player.getZ()); // Note: players need to be explicitly added to distance maps before they can be updated @@ -295,7 +295,7 @@ index a80d4620eadd78fcaa0786680766cee196c35f8d..e22a472bef6cc5b6b892379160aaea87 } // Paper end // Paper start -@@ -285,6 +301,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -282,6 +298,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.dataRegionManager = new io.papermc.paper.chunk.SingleThreadChunkRegionManager(this.level, 2, (1.0 / 3.0), 1, 6, "Data", DataRegionData::new, DataRegionSectionData::new); this.regionManagers.add(this.dataRegionManager); // Paper end @@ -303,7 +303,7 @@ index a80d4620eadd78fcaa0786680766cee196c35f8d..e22a472bef6cc5b6b892379160aaea87 } protected ChunkGenerator generator() { -@@ -306,6 +323,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -303,6 +320,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); } @@ -377,10 +377,10 @@ index d66ec02b09bb7ae46aae8e55f00626139f074ae3..de5b80fce9757517e51f2ef55340e884 this.lastSpawnState = spawnercreature_d; diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 3ba550d0de4b88379331cf56fe114f7c7e0ea558..8421ecaec9a475163860966fea28ec66943b6f86 100644 +index 628ef18b5043504f206c6b60b7805892870e5736..75bcab623004159f36a5a976c7b6f69873a108dd 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -234,6 +234,11 @@ public class ServerPlayer extends Player { +@@ -235,6 +235,11 @@ public class ServerPlayer extends Player { public boolean queueHealthUpdatePacket = false; public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket; // Paper end @@ -392,7 +392,7 @@ index 3ba550d0de4b88379331cf56fe114f7c7e0ea558..8421ecaec9a475163860966fea28ec66 // CraftBukkit start public String displayName; -@@ -324,6 +329,7 @@ public class ServerPlayer extends Player { +@@ -325,6 +330,7 @@ public class ServerPlayer extends Player { this.adventure$displayName = net.kyori.adventure.text.Component.text(this.getScoreboardName()); // Paper this.bukkitPickUpLoot = true; this.maxHealthCache = this.getMaxHealth(); diff --git a/patches/unapplied/server/0358-Avoid-hopper-searches-if-there-are-no-items.patch b/patches/server/0358-Avoid-hopper-searches-if-there-are-no-items.patch index 58fd30373e..58fd30373e 100644 --- a/patches/unapplied/server/0358-Avoid-hopper-searches-if-there-are-no-items.patch +++ b/patches/server/0358-Avoid-hopper-searches-if-there-are-no-items.patch diff --git a/patches/unapplied/server/0359-Bees-get-gravity-in-void.-Fixes-MC-167279.patch b/patches/server/0359-Bees-get-gravity-in-void.-Fixes-MC-167279.patch index 2b398af935..2b398af935 100644 --- a/patches/unapplied/server/0359-Bees-get-gravity-in-void.-Fixes-MC-167279.patch +++ b/patches/server/0359-Bees-get-gravity-in-void.-Fixes-MC-167279.patch diff --git a/patches/unapplied/server/0360-Optimise-getChunkAt-calls-for-loaded-chunks.patch b/patches/server/0360-Optimise-getChunkAt-calls-for-loaded-chunks.patch index 3831aba372..3831aba372 100644 --- a/patches/unapplied/server/0360-Optimise-getChunkAt-calls-for-loaded-chunks.patch +++ b/patches/server/0360-Optimise-getChunkAt-calls-for-loaded-chunks.patch diff --git a/patches/unapplied/server/0361-Add-debug-for-sync-chunk-loads.patch b/patches/server/0361-Add-debug-for-sync-chunk-loads.patch index 8c29b00d34..1ea33e7ff0 100644 --- a/patches/unapplied/server/0361-Add-debug-for-sync-chunk-loads.patch +++ b/patches/server/0361-Add-debug-for-sync-chunk-loads.patch @@ -310,10 +310,10 @@ index c12c03b9e79f264ee593373f8a72ed37c0ae8514..509b2ee115584ce80717cc12a7ab548d chunkproviderserver_b.managedBlock(completablefuture::isDone); com.destroystokyo.paper.io.chunk.ChunkTaskManager.popChunkWait(); // Paper - async chunk debug diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 57abbcd9d59ea29e2feb238ee342f28a66122006..2531592ba605b15f16d7438829de51de65d7305c 100644 +index fb7954d4d4dbd35bf771b362f241294d79cf9933..8724396e7b2bb58b22c4f3262855f9f523dd6635 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -389,6 +389,12 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -390,6 +390,12 @@ public class ServerLevel extends Level implements WorldGenLevel { }; public final com.destroystokyo.paper.io.chunk.ChunkTaskManager asyncChunkTaskManager; // Paper end diff --git a/patches/unapplied/server/0362-Remove-garbage-Java-version-check.patch b/patches/server/0362-Remove-garbage-Java-version-check.patch index d13eb8982a..d13eb8982a 100644 --- a/patches/unapplied/server/0362-Remove-garbage-Java-version-check.patch +++ b/patches/server/0362-Remove-garbage-Java-version-check.patch diff --git a/patches/unapplied/server/0363-Add-ThrownEggHatchEvent.patch b/patches/server/0363-Add-ThrownEggHatchEvent.patch index c026427598..c026427598 100644 --- a/patches/unapplied/server/0363-Add-ThrownEggHatchEvent.patch +++ b/patches/server/0363-Add-ThrownEggHatchEvent.patch diff --git a/patches/unapplied/server/0364-Entity-Jump-API.patch b/patches/server/0364-Entity-Jump-API.patch index 477b71d8ab..13b50ec3de 100644 --- a/patches/unapplied/server/0364-Entity-Jump-API.patch +++ b/patches/server/0364-Entity-Jump-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Entity Jump API diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index dc885d9a20205bfa3b77e315ebe17287a6c3d4bf..34509a40933eb48ad1fc745fa4ee7709cdd15b92 100644 +index 383a892a5c34ec5e8f7d102f5a9bec11ae193c0e..878dd05e0a67a2c6bf48eab7f2d58bbfaf53d2d7 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3215,8 +3215,10 @@ public abstract class LivingEntity extends Entity { +@@ -3218,8 +3218,10 @@ public abstract class LivingEntity extends Entity { } else if (this.isInLava() && (!this.onGround || d7 > d8)) { this.jumpInLiquid(FluidTags.LAVA); } else if ((this.onGround || flag && d7 <= d8) && this.noJumpDelay == 0) { diff --git a/patches/unapplied/server/0365-Add-option-to-nerf-pigmen-from-nether-portals.patch b/patches/server/0365-Add-option-to-nerf-pigmen-from-nether-portals.patch index 13eddf2311..e1e7b38b6d 100644 --- a/patches/unapplied/server/0365-Add-option-to-nerf-pigmen-from-nether-portals.patch +++ b/patches/server/0365-Add-option-to-nerf-pigmen-from-nether-portals.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add option to nerf pigmen from nether portals diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 22ea44067f742008e82114155867cecb841a67b3..a2bc22baf3de2fa41e093347ae36845329498290 100644 +index 8576fbaedf3076e8b492c499d4176b1116e7ef56..8bdaee1054f64fa5a0f4058ac3dc7d3626138ac4 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -386,6 +386,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -16,7 +16,7 @@ index 22ea44067f742008e82114155867cecb841a67b3..a2bc22baf3de2fa41e093347ae368453 protected int numCollisions = 0; // Paper public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one @javax.annotation.Nullable -@@ -1983,6 +1984,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -1978,6 +1979,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { if (spawnedViaMobSpawner) { nbt.putBoolean("Paper.FromMobSpawner", true); } @@ -26,7 +26,7 @@ index 22ea44067f742008e82114155867cecb841a67b3..a2bc22baf3de2fa41e093347ae368453 // Paper end return nbt; } catch (Throwable throwable) { -@@ -2122,6 +2126,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2119,6 +2123,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } spawnedViaMobSpawner = nbt.getBoolean("Paper.FromMobSpawner"); // Restore entity's from mob spawner status diff --git a/patches/unapplied/server/0366-Make-the-GUI-graph-fancier.patch b/patches/server/0366-Make-the-GUI-graph-fancier.patch index b97ce20f84..b97ce20f84 100644 --- a/patches/unapplied/server/0366-Make-the-GUI-graph-fancier.patch +++ b/patches/server/0366-Make-the-GUI-graph-fancier.patch diff --git a/patches/unapplied/server/0367-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0367-add-hand-to-BlockMultiPlaceEvent.patch index 486014f2be..486014f2be 100644 --- a/patches/unapplied/server/0367-add-hand-to-BlockMultiPlaceEvent.patch +++ b/patches/server/0367-add-hand-to-BlockMultiPlaceEvent.patch diff --git a/patches/unapplied/server/0368-Validate-tripwire-hook-placement-before-update.patch b/patches/server/0368-Validate-tripwire-hook-placement-before-update.patch index fd8a74807c..fd8a74807c 100644 --- a/patches/unapplied/server/0368-Validate-tripwire-hook-placement-before-update.patch +++ b/patches/server/0368-Validate-tripwire-hook-placement-before-update.patch diff --git a/patches/unapplied/server/0369-Add-option-to-allow-iron-golems-to-spawn-in-air.patch b/patches/server/0369-Add-option-to-allow-iron-golems-to-spawn-in-air.patch index f058d157d0..f058d157d0 100644 --- a/patches/unapplied/server/0369-Add-option-to-allow-iron-golems-to-spawn-in-air.patch +++ b/patches/server/0369-Add-option-to-allow-iron-golems-to-spawn-in-air.patch diff --git a/patches/unapplied/server/0370-Configurable-chance-of-villager-zombie-infection.patch b/patches/server/0370-Configurable-chance-of-villager-zombie-infection.patch index ce51b7964c..ce51b7964c 100644 --- a/patches/unapplied/server/0370-Configurable-chance-of-villager-zombie-infection.patch +++ b/patches/server/0370-Configurable-chance-of-villager-zombie-infection.patch diff --git a/patches/unapplied/server/0371-Optimise-Chunk-getFluid.patch b/patches/server/0371-Optimise-Chunk-getFluid.patch index 14f1eb470a..14f1eb470a 100644 --- a/patches/unapplied/server/0371-Optimise-Chunk-getFluid.patch +++ b/patches/server/0371-Optimise-Chunk-getFluid.patch diff --git a/patches/unapplied/server/0372-Set-spigots-verbose-world-setting-to-false-by-def.patch b/patches/server/0372-Set-spigots-verbose-world-setting-to-false-by-def.patch index 45ea278818..45ea278818 100644 --- a/patches/unapplied/server/0372-Set-spigots-verbose-world-setting-to-false-by-def.patch +++ b/patches/server/0372-Set-spigots-verbose-world-setting-to-false-by-def.patch diff --git a/patches/unapplied/server/0373-Add-tick-times-API-and-mspt-command.patch b/patches/server/0373-Add-tick-times-API-and-mspt-command.patch index 4f37b7ad9d..812faa072a 100644 --- a/patches/unapplied/server/0373-Add-tick-times-API-and-mspt-command.patch +++ b/patches/server/0373-Add-tick-times-API-and-mspt-command.patch @@ -125,10 +125,10 @@ index 6a00f3d38da8107825ab1d405f337fd077b09f72..d31b5ed47cffc61c90c926a0cd2005b7 public static void registerCommands(final MinecraftServer server) { diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 51b33848d9a3af3a9b9dfe482f9f8d9150c57b82..003d49ad608815171a0d183305509ec3590aedd4 100644 +index b04c5433a1e2cdfe69c5b5cbe77b867ebd55c126..d8166025ddd229c065e8c4c3082549f1716c0384 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -235,6 +235,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -237,6 +237,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa @Nullable private net.kyori.adventure.text.Component cachedMotd; // Paper private int playerIdleTimeout; public final long[] tickTimes; @@ -153,7 +153,7 @@ index 51b33848d9a3af3a9b9dfe482f9f8d9150c57b82..003d49ad608815171a0d183305509ec3 this.frameTimer.logFrameDuration(i1 - i); this.profiler.pop(); org.spigotmc.WatchdogThread.tick(); // Spigot -@@ -2505,4 +2516,30 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -2529,4 +2540,30 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa public static record ServerResourcePackInfo(String url, String hash, boolean isRequired, @Nullable Component prompt) { } diff --git a/patches/unapplied/server/0374-Expose-MinecraftServer-isRunning.patch b/patches/server/0374-Expose-MinecraftServer-isRunning.patch index 88f87452ce..88f87452ce 100644 --- a/patches/unapplied/server/0374-Expose-MinecraftServer-isRunning.patch +++ b/patches/server/0374-Expose-MinecraftServer-isRunning.patch diff --git a/patches/unapplied/server/0375-Add-Raw-Byte-ItemStack-Serialization.patch b/patches/server/0375-Add-Raw-Byte-ItemStack-Serialization.patch index 0bda60667b..3584d5c109 100644 --- a/patches/unapplied/server/0375-Add-Raw-Byte-ItemStack-Serialization.patch +++ b/patches/server/0375-Add-Raw-Byte-ItemStack-Serialization.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add Raw Byte ItemStack Serialization Serializes using NBT which is safer for server data migrations than bukkits format. diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java -index d4e5b0d8fbd885a84ae854f2dcced0423a42b4f9..7d9a91b2afb6890a160c2cd1e1cf3f0fb6a10d92 100644 +index bd8f051496aae64d317ae0cff9f21662f016c62b..61668447c4314562109e31bd5ca48da181e98529 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java +++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java @@ -431,6 +431,53 @@ public final class CraftMagicNumbers implements UnsafeValues { diff --git a/patches/unapplied/server/0376-Pillager-patrol-spawn-settings-and-per-player-option.patch b/patches/server/0376-Pillager-patrol-spawn-settings-and-per-player-option.patch index 27dfc389b9..6ff547ccc3 100644 --- a/patches/unapplied/server/0376-Pillager-patrol-spawn-settings-and-per-player-option.patch +++ b/patches/server/0376-Pillager-patrol-spawn-settings-and-per-player-option.patch @@ -10,10 +10,10 @@ When not per player it will use the Vanilla mechanic of one delay per world and the world age for the start day. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8421ecaec9a475163860966fea28ec66943b6f86..d777fa8dd3529faf14bf82d023e00e9a118b45e5 100644 +index 75bcab623004159f36a5a976c7b6f69873a108dd..1c97da7c291c985bf53c88d569077edce1a2d662 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -230,6 +230,7 @@ public class ServerPlayer extends Player { +@@ -231,6 +231,7 @@ public class ServerPlayer extends Player { public boolean wonGame; private int containerUpdateDelay; // Paper public long loginTime; // Paper diff --git a/patches/unapplied/server/0377-Remote-Connections-shouldn-t-hold-up-shutdown.patch b/patches/server/0377-Remote-Connections-shouldn-t-hold-up-shutdown.patch index 7b7f683bff..74098cbac5 100644 --- a/patches/unapplied/server/0377-Remote-Connections-shouldn-t-hold-up-shutdown.patch +++ b/patches/server/0377-Remote-Connections-shouldn-t-hold-up-shutdown.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Remote Connections shouldn't hold up shutdown Bugs in the connection logic appears to leave stale connections even, preventing shutdown diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index 0537678f802158ec182d48df94794b59820ffc7b..f33f38c3c8c277d208b00b64e1d0fa7bb5eda7ec 100644 +index 115685012743e775ca3fa031e8a91b6cd2874236..637846c2dda1cf27c194ca4f16da454a62dc3f4b 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -397,11 +397,11 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface diff --git a/patches/unapplied/server/0378-Do-not-allow-bees-to-load-chunks-for-beehives.patch b/patches/server/0378-Do-not-allow-bees-to-load-chunks-for-beehives.patch index aa61dfee66..aa61dfee66 100644 --- a/patches/unapplied/server/0378-Do-not-allow-bees-to-load-chunks-for-beehives.patch +++ b/patches/server/0378-Do-not-allow-bees-to-load-chunks-for-beehives.patch diff --git a/patches/unapplied/server/0379-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch b/patches/server/0379-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch index dd68224f72..a96e57c792 100644 --- a/patches/unapplied/server/0379-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch +++ b/patches/server/0379-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch @@ -7,10 +7,10 @@ Suspected case would be around the technique used in .stopRiding Stack will identify any causer of this and warn instead of crashing. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index e22a472bef6cc5b6b892379160aaea876084e8c8..07e397061420556b9f44314f0c459f5cdd30aad3 100644 +index f20b93c6372e36016b21591d3cd63c5d7a47721e..dab266e62f837e0efe57c0c4ae33b84c553c969c 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1648,6 +1648,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1645,6 +1645,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void addEntity(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity track"); // Spigot @@ -26,10 +26,10 @@ index e22a472bef6cc5b6b892379160aaea876084e8c8..07e397061420556b9f44314f0c459f5c EntityType<?> entitytypes = entity.getType(); int i = entitytypes.clientTrackingRange() * 16; diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 2531592ba605b15f16d7438829de51de65d7305c..cf0976f7352919197a322fb4f7f8e20c24509db5 100644 +index 8724396e7b2bb58b22c4f3262855f9f523dd6635..e531c2ed2432b0184878cc3fcfe0bc91a551977c 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2291,7 +2291,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2292,7 +2292,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public void onTrackingStart(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot @@ -38,7 +38,7 @@ index 2531592ba605b15f16d7438829de51de65d7305c..cf0976f7352919197a322fb4f7f8e20c if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -2325,6 +2325,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2326,6 +2326,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::add); entity.valid = true; // CraftBukkit diff --git a/patches/unapplied/server/0380-Don-t-tick-dead-players.patch b/patches/server/0380-Don-t-tick-dead-players.patch index 14174b88fa..a727a4a80a 100644 --- a/patches/unapplied/server/0380-Don-t-tick-dead-players.patch +++ b/patches/server/0380-Don-t-tick-dead-players.patch @@ -7,10 +7,10 @@ Causes sync chunk loads and who knows what all else. This is safe because Spectators are skipped in unloaded chunks too in vanilla. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index d777fa8dd3529faf14bf82d023e00e9a118b45e5..6469472fedd9f28a3d609714ddf7255824a7f72a 100644 +index 1c97da7c291c985bf53c88d569077edce1a2d662..2b2810ee58eea7b703cb46690752f02c49cc0376 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -651,7 +651,7 @@ public class ServerPlayer extends Player { +@@ -652,7 +652,7 @@ public class ServerPlayer extends Player { public void doTick() { try { diff --git a/patches/unapplied/server/0381-Dead-Player-s-shouldn-t-be-able-to-move.patch b/patches/server/0381-Dead-Player-s-shouldn-t-be-able-to-move.patch index 3f94fb7fbe..83aebd18e6 100644 --- a/patches/unapplied/server/0381-Dead-Player-s-shouldn-t-be-able-to-move.patch +++ b/patches/server/0381-Dead-Player-s-shouldn-t-be-able-to-move.patch @@ -7,10 +7,10 @@ This fixes a lot of game state issues where packets were delayed for processing due to 1.15's new queue but processed while dead. diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java -index 6b7aea148b7a979201dd51bf842a552644fd0a63..f1a1a251256646d0d3a457f1fc8af20ae085f5ef 100644 +index d308c671ec1c4440777bccf1609ceca6670b98a8..0960e5ecc25fad3eb46a871c2749dd176b812460 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1171,7 +1171,7 @@ public abstract class Player extends LivingEntity { +@@ -1172,7 +1172,7 @@ public abstract class Player extends LivingEntity { @Override protected boolean isImmobile() { diff --git a/patches/unapplied/server/0382-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0382-Optimize-Collision-to-not-load-chunks.patch index 4711964eb4..7682d105ce 100644 --- a/patches/unapplied/server/0382-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/0382-Optimize-Collision-to-not-load-chunks.patch @@ -14,10 +14,10 @@ movement will load only the chunk the player enters anyways and avoids loading massive amounts of surrounding chunks due to large AABB lookups. diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index f14d4bfd5ac03eeffefcf98e1077d915fd3fa2cb..d8b34055aff358cb2c236199da1e22d84213ea1e 100644 +index be1bdcc99b3f2cc1103bce4ecdc5077bec6a1e85..f1bbfb0acbe79304b2e1c10221bc31b162e63959 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -795,6 +795,7 @@ public abstract class PlayerList { +@@ -799,6 +799,7 @@ public abstract class PlayerList { entityplayer1.forceSetPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); // CraftBukkit end @@ -26,7 +26,7 @@ index f14d4bfd5ac03eeffefcf98e1077d915fd3fa2cb..d8b34055aff358cb2c236199da1e22d8 entityplayer1.setPos(entityplayer1.getX(), entityplayer1.getY() + 1.0D, entityplayer1.getZ()); } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index a2bc22baf3de2fa41e093347ae36845329498290..6f1ff17fd75163ee7905a2e37f176813293652af 100644 +index 8bdaee1054f64fa5a0f4058ac3dc7d3626138ac4..ccfb7dfe2327cd2e187ad7909342fc137fa126db 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -236,6 +236,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { diff --git a/patches/unapplied/server/0383-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0383-Don-t-move-existing-players-to-world-spawn.patch index c005c89083..0d813d1921 100644 --- a/patches/unapplied/server/0383-Don-t-move-existing-players-to-world-spawn.patch +++ b/patches/server/0383-Don-t-move-existing-players-to-world-spawn.patch @@ -10,10 +10,10 @@ larger than the keep loaded range. By skipping this, we avoid potential for a large spike on server start. diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6469472fedd9f28a3d609714ddf7255824a7f72a..6546991000cb40d1299497f21717d470d4ee7efb 100644 +index 2b2810ee58eea7b703cb46690752f02c49cc0376..104d8dd2941da8153fdeb799c48f884c33e3e585 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -321,7 +321,7 @@ public class ServerPlayer extends Player { +@@ -322,7 +322,7 @@ public class ServerPlayer extends Player { this.stats = server.getPlayerList().getPlayerStats(this); this.advancements = server.getPlayerList().getPlayerAdvancements(this); this.maxUpStep = 1.0F; @@ -22,7 +22,7 @@ index 6469472fedd9f28a3d609714ddf7255824a7f72a..6546991000cb40d1299497f21717d470 this.cachedSingleHashSet = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper -@@ -539,7 +539,7 @@ public class ServerPlayer extends Player { +@@ -540,7 +540,7 @@ public class ServerPlayer extends Player { position = Vec3.atCenterOf(((ServerLevel) world).getSharedSpawnPos()); } this.level = world; @@ -32,10 +32,10 @@ index 6469472fedd9f28a3d609714ddf7255824a7f72a..6546991000cb40d1299497f21717d470 this.gameMode.setLevel((ServerLevel) world); } diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d8b34055aff358cb2c236199da1e22d84213ea1e..d6b8796ed7eca4ba2af979fb5c2cbff4b92ae329 100644 +index f1bbfb0acbe79304b2e1c10221bc31b162e63959..ca89bb5bf4de85ca22b004c91f2c7501bb133c55 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -214,6 +214,8 @@ public abstract class PlayerList { +@@ -215,6 +215,8 @@ public abstract class PlayerList { worldserver1 = worldserver; } diff --git a/patches/unapplied/server/0384-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/0384-Optimize-GoalSelector-Goal.Flag-Set-operations.patch index cf8d69b485..cf8d69b485 100644 --- a/patches/unapplied/server/0384-Optimize-GoalSelector-Goal.Flag-Set-operations.patch +++ b/patches/server/0384-Optimize-GoalSelector-Goal.Flag-Set-operations.patch diff --git a/patches/unapplied/server/0385-Improved-Watchdog-Support.patch b/patches/server/0385-Improved-Watchdog-Support.patch index 60ccbe7318..480c89b906 100644 --- a/patches/unapplied/server/0385-Improved-Watchdog-Support.patch +++ b/patches/server/0385-Improved-Watchdog-Support.patch @@ -59,10 +59,10 @@ index 5a19e30a9b7e65a70f68a429b8ca741f788a303b..7b1843e16745ca8db2244e17490d2914 // Many servers tend to restart at a fixed time at xx:00 which causes an uneven distribution of requests on the // bStats backend. To circumvent this problem, we introduce some randomness into the initial and second delay. diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java -index 8cc4cb2163a93b9491550fe6d0f5d980fb216920..4dd14d73a37b32288a64fbd67ee22c435b6e6d57 100644 +index 336795dff742b7c6957fbd3476aff31d25a5e659..30a58229aa6dac5039511d0c0df5f2912ea7de9f 100644 --- a/src/main/java/net/minecraft/CrashReport.java +++ b/src/main/java/net/minecraft/CrashReport.java -@@ -228,6 +228,7 @@ public class CrashReport { +@@ -230,6 +230,7 @@ public class CrashReport { } public static CrashReport forThrowable(Throwable cause, String title) { @@ -71,10 +71,10 @@ index 8cc4cb2163a93b9491550fe6d0f5d980fb216920..4dd14d73a37b32288a64fbd67ee22c43 cause = cause.getCause(); } diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 003d49ad608815171a0d183305509ec3590aedd4..fe3faf1e8a102cd63c1976cf63403bbd1e8e2a90 100644 +index d8166025ddd229c065e8c4c3082549f1716c0384..e25451056b6eedde2c5ffc281918ca13967e0a67 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -282,7 +282,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -284,7 +284,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa public java.util.Queue<Runnable> processQueue = new java.util.concurrent.ConcurrentLinkedQueue<Runnable>(); public int autosavePeriod; public Commands vanillaCommandDispatcher; @@ -83,7 +83,7 @@ index 003d49ad608815171a0d183305509ec3590aedd4..fe3faf1e8a102cd63c1976cf63403bbd // CraftBukkit end // Spigot start public static final int TPS = 20; -@@ -293,6 +293,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -295,6 +295,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa public final io.papermc.paper.configuration.PaperConfigurations paperConfigurations; public static long currentTickLong = 0L; // Paper @@ -93,7 +93,7 @@ index 003d49ad608815171a0d183305509ec3590aedd4..fe3faf1e8a102cd63c1976cf63403bbd public static <S extends MinecraftServer> S spin(Function<Thread, S> serverFactory) { AtomicReference<S> atomicreference = new AtomicReference(); Thread thread = new Thread(() -> { -@@ -865,6 +868,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -867,6 +870,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // CraftBukkit start private boolean hasStopped = false; @@ -101,7 +101,7 @@ index 003d49ad608815171a0d183305509ec3590aedd4..fe3faf1e8a102cd63c1976cf63403bbd private final Object stopLock = new Object(); public final boolean hasStopped() { synchronized (this.stopLock) { -@@ -879,6 +883,19 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -881,6 +885,19 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa if (this.hasStopped) return; this.hasStopped = true; } @@ -121,7 +121,7 @@ index 003d49ad608815171a0d183305509ec3590aedd4..fe3faf1e8a102cd63c1976cf63403bbd // CraftBukkit end if (this.metricsRecorder.isRecording()) { this.cancelRecordingMetrics(); -@@ -963,7 +980,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -965,7 +982,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.getProfileCache().save(false); // Paper } // Spigot end @@ -140,7 +140,7 @@ index 003d49ad608815171a0d183305509ec3590aedd4..fe3faf1e8a102cd63c1976cf63403bbd } public String getLocalIp() { -@@ -1056,6 +1084,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1058,6 +1086,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa protected void runServer() { try { @@ -148,7 +148,7 @@ index 003d49ad608815171a0d183305509ec3590aedd4..fe3faf1e8a102cd63c1976cf63403bbd if (!this.initServer()) { throw new IllegalStateException("Failed to initialize server"); } -@@ -1067,6 +1096,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1070,6 +1099,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa this.updateStatusIcon(this.status); // Spigot start @@ -167,7 +167,7 @@ index 003d49ad608815171a0d183305509ec3590aedd4..fe3faf1e8a102cd63c1976cf63403bbd org.spigotmc.WatchdogThread.hasStarted = true; // Paper Arrays.fill( recentTps, 20 ); long start = System.nanoTime(), curTime, tickSection = start; // Paper - Further improve server tick loop -@@ -1121,6 +1162,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1124,6 +1165,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa JvmProfiler.INSTANCE.onServerTick(this.averageTickTime); } } catch (Throwable throwable) { @@ -237,7 +237,7 @@ index 003d49ad608815171a0d183305509ec3590aedd4..fe3faf1e8a102cd63c1976cf63403bbd this.functionManager.replaceLibrary(this.resources.managers.getFunctionLibrary()); this.structureTemplateManager.onResourceManagerReload(this.resources.resourceManager); diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index f33f38c3c8c277d208b00b64e1d0fa7bb5eda7ec..e585cdd8a598df2b04c265d5568f8ba868018178 100644 +index 637846c2dda1cf27c194ca4f16da454a62dc3f4b..648bc209938364a387c3f81dcd073db398e9f864 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -274,7 +274,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -269,10 +269,10 @@ index f33f38c3c8c277d208b00b64e1d0fa7bb5eda7ec..e585cdd8a598df2b04c265d5568f8ba8 } diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 07e397061420556b9f44314f0c459f5cdd30aad3..3afadbd25cb002966869db6e07cd26cf6d52646b 100644 +index dab266e62f837e0efe57c0c4ae33b84c553c969c..48fc5d6ca854de036013586be634b3e05e2c52bc 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -592,6 +592,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -589,6 +589,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider MutableBoolean mutableboolean = new MutableBoolean(); do { @@ -281,10 +281,10 @@ index 07e397061420556b9f44314f0c459f5cdd30aad3..3afadbd25cb002966869db6e07cd26cf list.stream().map((playerchunk) -> { CompletableFuture completablefuture; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index d6b8796ed7eca4ba2af979fb5c2cbff4b92ae329..3459a7b74be03de8cf29ea1f54b7d54de2838911 100644 +index ca89bb5bf4de85ca22b004c91f2c7501bb133c55..73d22c0f5f2998050de8a231677639c60f535229 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -516,7 +516,7 @@ public abstract class PlayerList { +@@ -520,7 +520,7 @@ public abstract class PlayerList { this.cserver.getPluginManager().callEvent(playerQuitEvent); entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); diff --git a/patches/unapplied/server/0386-Optimize-Pathfinding.patch b/patches/server/0386-Optimize-Pathfinding.patch index 061629eb03..061629eb03 100644 --- a/patches/unapplied/server/0386-Optimize-Pathfinding.patch +++ b/patches/server/0386-Optimize-Pathfinding.patch diff --git a/patches/unapplied/server/0387-Reduce-Either-Optional-allocation.patch b/patches/server/0387-Reduce-Either-Optional-allocation.patch index 0f4641263b..0f4641263b 100644 --- a/patches/unapplied/server/0387-Reduce-Either-Optional-allocation.patch +++ b/patches/server/0387-Reduce-Either-Optional-allocation.patch diff --git a/patches/unapplied/server/0388-Reduce-memory-footprint-of-NBTTagCompound.patch b/patches/server/0388-Reduce-memory-footprint-of-NBTTagCompound.patch index 740fcbecab..740fcbecab 100644 --- a/patches/unapplied/server/0388-Reduce-memory-footprint-of-NBTTagCompound.patch +++ b/patches/server/0388-Reduce-memory-footprint-of-NBTTagCompound.patch diff --git a/patches/unapplied/server/0389-Prevent-opening-inventories-when-frozen.patch b/patches/server/0389-Prevent-opening-inventories-when-frozen.patch index f1d4031ffc..0d1a9b5a4f 100644 --- a/patches/unapplied/server/0389-Prevent-opening-inventories-when-frozen.patch +++ b/patches/server/0389-Prevent-opening-inventories-when-frozen.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent opening inventories when frozen diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6546991000cb40d1299497f21717d470d4ee7efb..a39ee6af70cdd027dd5e7ddf7ed16393a2b08aab 100644 +index 104d8dd2941da8153fdeb799c48f884c33e3e585..0b173c66aaab86ca33eb32ac912543ebcb7c380d 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -620,7 +620,7 @@ public class ServerPlayer extends Player { +@@ -621,7 +621,7 @@ public class ServerPlayer extends Player { containerUpdateDelay = level.paperConfig().tickRates.containerUpdate; } // Paper end @@ -17,7 +17,7 @@ index 6546991000cb40d1299497f21717d470d4ee7efb..a39ee6af70cdd027dd5e7ddf7ed16393 this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper this.containerMenu = this.inventoryMenu; } -@@ -1493,7 +1493,7 @@ public class ServerPlayer extends Player { +@@ -1491,7 +1491,7 @@ public class ServerPlayer extends Player { } else { // CraftBukkit start this.containerMenu = container; diff --git a/patches/unapplied/server/0390-Optimise-ArraySetSorted-removeIf.patch b/patches/server/0390-Optimise-ArraySetSorted-removeIf.patch index 1aa31112c4..1aa31112c4 100644 --- a/patches/unapplied/server/0390-Optimise-ArraySetSorted-removeIf.patch +++ b/patches/server/0390-Optimise-ArraySetSorted-removeIf.patch diff --git a/patches/unapplied/server/0391-Don-t-run-entity-collision-code-if-not-needed.patch b/patches/server/0391-Don-t-run-entity-collision-code-if-not-needed.patch index 692a677c55..17bc39fe8d 100644 --- a/patches/unapplied/server/0391-Don-t-run-entity-collision-code-if-not-needed.patch +++ b/patches/server/0391-Don-t-run-entity-collision-code-if-not-needed.patch @@ -7,10 +7,10 @@ Will not run if max entity craming is disabled and the max collisions per entity is less than or equal to 0 diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 34509a40933eb48ad1fc745fa4ee7709cdd15b92..f9ec497b3212a2c2d87edc4350d8479c6c20abbd 100644 +index 878dd05e0a67a2c6bf48eab7f2d58bbfaf53d2d7..b3b3b163fb1a506fb048dba173517eeeaf2f8007 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3312,10 +3312,16 @@ public abstract class LivingEntity extends Entity { +@@ -3315,10 +3315,16 @@ public abstract class LivingEntity extends Entity { protected void serverAiStep() {} protected void pushEntities() { diff --git a/patches/unapplied/server/0392-Implement-Player-Client-Options-API.patch b/patches/server/0392-Implement-Player-Client-Options-API.patch index 3a3a1b2015..b5d5a0ca99 100644 --- a/patches/unapplied/server/0392-Implement-Player-Client-Options-API.patch +++ b/patches/server/0392-Implement-Player-Client-Options-API.patch @@ -85,10 +85,10 @@ index 0000000000000000000000000000000000000000..b6f4400df3d8ec7e06a996de54f8cabb + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index a39ee6af70cdd027dd5e7ddf7ed16393a2b08aab..6550e7a3e3d0f8cf86b9f6d8d3435ed9fb597a86 100644 +index 0b173c66aaab86ca33eb32ac912543ebcb7c380d..db8400c7ca9aad9aeee192427661c76778bf9e47 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -1857,6 +1857,7 @@ public class ServerPlayer extends Player { +@@ -1850,6 +1850,7 @@ public class ServerPlayer extends Player { public String locale = null; // CraftBukkit - add, lowercase // Paper - default to null public java.util.Locale adventure$locale = java.util.Locale.US; // Paper public void updateOptions(ServerboundClientInformationPacket packet) { @@ -97,7 +97,7 @@ index a39ee6af70cdd027dd5e7ddf7ed16393a2b08aab..6550e7a3e3d0f8cf86b9f6d8d3435ed9 if (getMainArm() != packet.mainHand()) { PlayerChangedMainHandEvent event = new PlayerChangedMainHandEvent(this.getBukkitEntity(), getMainArm() == HumanoidArm.LEFT ? MainHand.LEFT : MainHand.RIGHT); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 226bfb38b8b1c3463e5527c831d22875cfc051ba..daea1ca1d3288b6c3b0cf2e58fe35cb5e4069698 100644 +index c8b9c55c2d927ed5f9a0597822ceef95842abe5e..14dc5a18bffc4d8a7d3e786142a3fd853aaeeac4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -574,6 +574,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/unapplied/server/0393-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch b/patches/server/0393-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch index fe3a5aca21..fe3a5aca21 100644 --- a/patches/unapplied/server/0393-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch +++ b/patches/server/0393-Don-t-crash-if-player-is-attempted-to-be-removed-fro.patch diff --git a/patches/unapplied/server/0394-Fix-Chunk-Post-Processing-deadlock-risk.patch b/patches/server/0394-Fix-Chunk-Post-Processing-deadlock-risk.patch index 70a84a37da..d0b17eef56 100644 --- a/patches/unapplied/server/0394-Fix-Chunk-Post-Processing-deadlock-risk.patch +++ b/patches/server/0394-Fix-Chunk-Post-Processing-deadlock-risk.patch @@ -25,10 +25,10 @@ This successfully fixed a reoccurring and highly reproducible crash for heightmaps. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 3afadbd25cb002966869db6e07cd26cf6d52646b..71d76ce0d873c665597a7d28f6caea5bf059e796 100644 +index 48fc5d6ca854de036013586be634b3e05e2c52bc..0fdf33bfab3191dbb582bc401f6f0b62aadacb4e 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -182,6 +182,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -179,6 +179,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }; // CraftBukkit end @@ -36,7 +36,7 @@ index 3afadbd25cb002966869db6e07cd26cf6d52646b..71d76ce0d873c665597a7d28f6caea5b // Paper start - distance maps private final com.destroystokyo.paper.util.misc.PooledLinkedHashSets<ServerPlayer> pooledLinkedPlayerHashSets = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets<>(); -@@ -1026,16 +1027,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1023,16 +1024,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); CompletableFuture<Either<LevelChunk, ChunkHolder.ChunkLoadingFailure>> completablefuture1 = completablefuture.thenApplyAsync((either) -> { return either.mapLeft((list) -> { diff --git a/patches/unapplied/server/0395-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch b/patches/server/0395-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch index 9b49d32f90..0ac56f4dbd 100644 --- a/patches/unapplied/server/0395-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch +++ b/patches/server/0395-Fix-Longstanding-Broken-behavior-of-PlayerJoinEvent.patch @@ -28,10 +28,10 @@ receives a deterministic result, and should no longer require 1 tick delays anymore. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 71d76ce0d873c665597a7d28f6caea5bf059e796..ee64657a838b9b661b8accc997b6d149d21bce56 100644 +index 0fdf33bfab3191dbb582bc401f6f0b62aadacb4e..5187988a22b55ac783147afe455a139662b67f7d 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1656,6 +1656,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1653,6 +1653,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider .printStackTrace(); return; } @@ -40,10 +40,10 @@ index 71d76ce0d873c665597a7d28f6caea5bf059e796..ee64657a838b9b661b8accc997b6d149 if (!(entity instanceof EnderDragonPart)) { EntityType<?> entitytypes = entity.getType(); diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 6550e7a3e3d0f8cf86b9f6d8d3435ed9fb597a86..ee6281551ccf57e1785f1e36f52bdfe2cd60cff2 100644 +index db8400c7ca9aad9aeee192427661c76778bf9e47..3a40d6fe9edbd997dc9a6b8ac009c3f621ecfe51 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -253,6 +253,7 @@ public class ServerPlayer extends Player { +@@ -254,6 +254,7 @@ public class ServerPlayer extends Player { public double maxHealthCache; public boolean joining = true; public boolean sentListPacket = false; @@ -52,10 +52,10 @@ index 6550e7a3e3d0f8cf86b9f6d8d3435ed9fb597a86..ee6281551ccf57e1785f1e36f52bdfe2 public String kickLeaveMessage = null; // SPIGOT-3034: Forward leave message to PlayerQuitEvent // 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 3459a7b74be03de8cf29ea1f54b7d54de2838911..ac0bae0f7ce766a67cf2dc2c5c35f244e5a08837 100644 +index 73d22c0f5f2998050de8a231677639c60f535229..b33a7cf936fec6c1c4d39f6c156d3e6fefa3e795 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -280,6 +280,12 @@ public abstract class PlayerList { +@@ -281,6 +281,12 @@ public abstract class PlayerList { this.playersByUUID.put(player.getUUID(), player); // this.broadcastAll(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[]{entityplayer})); // CraftBukkit - replaced with loop below @@ -68,7 +68,7 @@ index 3459a7b74be03de8cf29ea1f54b7d54de2838911..ac0bae0f7ce766a67cf2dc2c5c35f244 // CraftBukkit start CraftPlayer bukkitPlayer = player.getBukkitEntity(); -@@ -318,6 +324,8 @@ public abstract class PlayerList { +@@ -322,6 +328,8 @@ public abstract class PlayerList { player.connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.ADD_PLAYER, new ServerPlayer[]{entityplayer1})); } player.sentListPacket = true; @@ -77,7 +77,7 @@ index 3459a7b74be03de8cf29ea1f54b7d54de2838911..ac0bae0f7ce766a67cf2dc2c5c35f244 // CraftBukkit end player.connection.send(new ClientboundSetEntityDataPacket(player.getId(), player.getEntityData(), true)); // CraftBukkit - BungeeCord#2321, send complete data to self on spawn -@@ -343,6 +351,11 @@ public abstract class PlayerList { +@@ -347,6 +355,11 @@ public abstract class PlayerList { playerconnection.send(new ClientboundUpdateMobEffectPacket(player.getId(), mobeffect)); } @@ -89,7 +89,7 @@ index 3459a7b74be03de8cf29ea1f54b7d54de2838911..ac0bae0f7ce766a67cf2dc2c5c35f244 if (nbttagcompound != null && nbttagcompound.contains("RootVehicle", 10)) { CompoundTag nbttagcompound1 = nbttagcompound.getCompound("RootVehicle"); // CraftBukkit start -@@ -391,6 +404,10 @@ public abstract class PlayerList { +@@ -395,6 +408,10 @@ public abstract class PlayerList { } } @@ -100,7 +100,7 @@ index 3459a7b74be03de8cf29ea1f54b7d54de2838911..ac0bae0f7ce766a67cf2dc2c5c35f244 player.initInventoryMenu(); // CraftBukkit - Moved from above, added world // Paper start - Add to collideRule team if needed -@@ -400,6 +417,7 @@ public abstract class PlayerList { +@@ -404,6 +421,7 @@ public abstract class PlayerList { scoreboard.addPlayerToTeam(player.getScoreboardName(), collideRuleTeam); } // Paper end diff --git a/patches/unapplied/server/0396-Load-Chunks-for-Login-Asynchronously.patch b/patches/server/0396-Load-Chunks-for-Login-Asynchronously.patch index d0e288f45b..0b7a6787fd 100644 --- a/patches/unapplied/server/0396-Load-Chunks-for-Login-Asynchronously.patch +++ b/patches/server/0396-Load-Chunks-for-Login-Asynchronously.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Load Chunks for Login Asynchronously diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index ee6281551ccf57e1785f1e36f52bdfe2cd60cff2..e7210672073de654a8cf1670642a2f2035dec635 100644 +index 3a40d6fe9edbd997dc9a6b8ac009c3f621ecfe51..8dc31f65126db6b2527d4106a885cb9b6dbc7a75 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -181,6 +181,7 @@ public class ServerPlayer extends Player { +@@ -182,6 +182,7 @@ public class ServerPlayer extends Player { private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_XZ = 32; private static final int NEUTRAL_MOB_DEATH_NOTIFICATION_RADII_Y = 10; public ServerGamePacketListenerImpl connection; @@ -16,7 +16,7 @@ index ee6281551ccf57e1785f1e36f52bdfe2cd60cff2..e7210672073de654a8cf1670642a2f20 public final MinecraftServer server; public final ServerPlayerGameMode gameMode; private final PlayerAdvancements advancements; -@@ -254,6 +255,7 @@ public class ServerPlayer extends Player { +@@ -255,6 +256,7 @@ public class ServerPlayer extends Player { public boolean joining = true; public boolean sentListPacket = false; public boolean supressTrackerForLogin = false; // Paper @@ -37,20 +37,20 @@ index be677d437d17b74c6188ce1bd5fc6fdc228fd92f..78fbb4c3e52e900956ae0811aaf934c8 public static final TicketType<ChunkPos> UNKNOWN = TicketType.create("unknown", Comparator.comparingLong(ChunkPos::toLong), 1); public static final TicketType<Unit> PLUGIN = TicketType.create("plugin", (a, b) -> 0); // CraftBukkit diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 7b78a7f5e4257f929fd870913e27b6090fa882ce..21126008755c79990205359226a27546f08ec044 100644 +index 97dc7785b50873ee132825bced24cdf2d8217a60..bb870abae77d8fbf107bc9596637d4fac204c501 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -238,6 +238,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser - private static final int NO_BLOCK_UPDATES_TO_ACK = -1; +@@ -251,6 +251,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic + private static final int PENDING_MESSAGE_DISCONNECT_THRESHOLD = 4096; public final Connection connection; private final MinecraftServer server; + public Runnable playerJoinReady; // Paper public ServerPlayer player; private int tickCount; private int ackBlockChangesUpTo = -1; -@@ -315,6 +316,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser - // CraftBukkit end +@@ -343,6 +344,15 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic + @Override public void tick() { + // Paper start - login async + Runnable playerJoinReady = this.playerJoinReady; @@ -64,7 +64,7 @@ index 7b78a7f5e4257f929fd870913e27b6090fa882ce..21126008755c79990205359226a27546 if (this.ackBlockChangesUpTo > -1) { this.send(new ClientboundBlockChangedAckPacket(this.ackBlockChangesUpTo)); this.ackBlockChangesUpTo = -1; -@@ -361,7 +371,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -389,7 +399,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.lastVehicle = null; this.clientVehicleIsFloating = false; this.aboveGroundVehicleTickCount = 0; @@ -74,10 +74,10 @@ index 7b78a7f5e4257f929fd870913e27b6090fa882ce..21126008755c79990205359226a27546 this.server.getProfiler().push("keepAlive"); // Paper Start - give clients a longer time to respond to pings as per pre 1.12.2 timings diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index 8b5eddce4845619603ccfeec158d97cb86568e0d..ec2825b6d276b6200c4bec5580d012f1eaed722e 100644 +index c501e41ed7dd41a51cb87d4cf7ac62d694601156..31a506e78264f354394afc37fb7ebb3d0c7d6ebd 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -93,7 +93,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener +@@ -95,7 +95,7 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se } // Paper end } else if (this.state == ServerLoginPacketListenerImpl.State.DELAY_ACCEPT) { @@ -86,7 +86,7 @@ index 8b5eddce4845619603ccfeec158d97cb86568e0d..ec2825b6d276b6200c4bec5580d012f1 if (entityplayer == null) { this.state = ServerLoginPacketListenerImpl.State.READY_TO_ACCEPT; -@@ -192,7 +192,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener +@@ -204,7 +204,7 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se } this.connection.send(new ClientboundGameProfilePacket(this.gameProfile)); @@ -96,10 +96,10 @@ index 8b5eddce4845619603ccfeec158d97cb86568e0d..ec2825b6d276b6200c4bec5580d012f1 try { ServerPlayer entityplayer1 = this.server.getPlayerList().getPlayerForLogin(this.gameProfile, s); // CraftBukkit - add player reference diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java -index ac0bae0f7ce766a67cf2dc2c5c35f244e5a08837..4b9e030016bef762c01ace5181ade7d1480b8702 100644 +index b33a7cf936fec6c1c4d39f6c156d3e6fefa3e795..c9f0aa145b3f05b42b134654a841e88d6c39c3d1 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -138,6 +138,7 @@ public abstract class PlayerList { +@@ -139,6 +139,7 @@ public abstract class PlayerList { private final IpBanList ipBans; private final ServerOpList ops; private final UserWhiteList whitelist; @@ -107,7 +107,7 @@ index ac0bae0f7ce766a67cf2dc2c5c35f244e5a08837..4b9e030016bef762c01ace5181ade7d1 // CraftBukkit start // private final Map<UUID, ServerStatisticManager> stats; // private final Map<UUID, AdvancementDataPlayer> advancements; -@@ -177,6 +178,11 @@ public abstract class PlayerList { +@@ -178,6 +179,11 @@ public abstract class PlayerList { } public void placeNewPlayer(Connection connection, ServerPlayer player) { @@ -119,7 +119,7 @@ index ac0bae0f7ce766a67cf2dc2c5c35f244e5a08837..4b9e030016bef762c01ace5181ade7d1 player.loginTime = System.currentTimeMillis(); // Paper GameProfile gameprofile = player.getGameProfile(); GameProfileCache usercache = this.server.getProfileCache(); -@@ -190,7 +196,7 @@ public abstract class PlayerList { +@@ -191,7 +197,7 @@ public abstract class PlayerList { if (nbttagcompound != null && nbttagcompound.contains("bukkit")) { CompoundTag bukkit = nbttagcompound.getCompound("bukkit"); s = bukkit.contains("lastKnownName", 8) ? bukkit.getString("lastKnownName") : s; @@ -128,7 +128,7 @@ index ac0bae0f7ce766a67cf2dc2c5c35f244e5a08837..4b9e030016bef762c01ace5181ade7d1 // CraftBukkit end if (nbttagcompound != null) { -@@ -217,11 +223,15 @@ public abstract class PlayerList { +@@ -218,11 +224,15 @@ public abstract class PlayerList { if (nbttagcompound == null) player.fudgeSpawnLocation(worldserver1); // Paper - only move to spawn on first login, otherwise, stay where you are.... player.setLevel(worldserver1); @@ -145,7 +145,7 @@ index ac0bae0f7ce766a67cf2dc2c5c35f244e5a08837..4b9e030016bef762c01ace5181ade7d1 // Spigot start - spawn location event Player spawnPlayer = player.getBukkitEntity(); -@@ -263,6 +273,52 @@ public abstract class PlayerList { +@@ -264,6 +274,52 @@ public abstract class PlayerList { player.getRecipeBook().sendInitialRecipeBook(player); this.updateEntireScoreboard(worldserver1.getScoreboard(), player); this.server.invalidateStatus(); @@ -198,7 +198,7 @@ index ac0bae0f7ce766a67cf2dc2c5c35f244e5a08837..4b9e030016bef762c01ace5181ade7d1 MutableComponent ichatmutablecomponent; if (player.getGameProfile().getName().equalsIgnoreCase(s)) { -@@ -504,6 +560,7 @@ public abstract class PlayerList { +@@ -508,6 +564,7 @@ public abstract class PlayerList { protected void save(ServerPlayer player) { if (!player.getBukkitEntity().isPersistent()) return; // CraftBukkit @@ -206,7 +206,7 @@ index ac0bae0f7ce766a67cf2dc2c5c35f244e5a08837..4b9e030016bef762c01ace5181ade7d1 this.playerIo.save(player); ServerStatsCounter serverstatisticmanager = (ServerStatsCounter) player.getStats(); // CraftBukkit -@@ -531,7 +588,7 @@ public abstract class PlayerList { +@@ -535,7 +592,7 @@ public abstract class PlayerList { } PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(entityplayer.getBukkitEntity(), net.kyori.adventure.text.Component.translatable("multiplayer.player.left", net.kyori.adventure.text.format.NamedTextColor.YELLOW, io.papermc.paper.configuration.GlobalConfiguration.get().messages.useDisplayNameInQuitMessage ? entityplayer.getBukkitEntity().displayName() : net.kyori.adventure.text.Component.text(entityplayer.getScoreboardName()))); @@ -215,7 +215,7 @@ index ac0bae0f7ce766a67cf2dc2c5c35f244e5a08837..4b9e030016bef762c01ace5181ade7d1 entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); if (server.isSameThread()) entityplayer.doTick(); // SPIGOT-924 // Paper - don't tick during emergency shutdowns (Watchdog) -@@ -576,6 +633,13 @@ public abstract class PlayerList { +@@ -580,6 +637,13 @@ public abstract class PlayerList { // this.advancements.remove(uuid); // CraftBukkit end } @@ -229,7 +229,7 @@ index ac0bae0f7ce766a67cf2dc2c5c35f244e5a08837..4b9e030016bef762c01ace5181ade7d1 // CraftBukkit start // this.broadcastAll(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.REMOVE_PLAYER, new EntityPlayer[]{entityplayer})); -@@ -593,7 +657,7 @@ public abstract class PlayerList { +@@ -597,7 +661,7 @@ public abstract class PlayerList { this.cserver.getScoreboardManager().removePlayer(entityplayer.getBukkitEntity()); // CraftBukkit end @@ -238,7 +238,7 @@ index ac0bae0f7ce766a67cf2dc2c5c35f244e5a08837..4b9e030016bef762c01ace5181ade7d1 } // CraftBukkit start - Whole method, SocketAddress to LoginListener, added hostname to signature, return EntityPlayer -@@ -612,6 +676,13 @@ public abstract class PlayerList { +@@ -616,6 +680,13 @@ public abstract class PlayerList { list.add(entityplayer); } } diff --git a/patches/unapplied/server/0397-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch b/patches/server/0397-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch index d0e02df90c..70e92d4754 100644 --- a/patches/unapplied/server/0397-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch +++ b/patches/server/0397-Move-player-to-spawn-point-if-spawn-in-unloaded-worl.patch @@ -7,10 +7,10 @@ The code following this has better support for null worlds to move them back to the world spawn. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 6f1ff17fd75163ee7905a2e37f176813293652af..c7f70ca9e4b19476b368f3c4133a36e7f310519b 100644 +index ccfb7dfe2327cd2e187ad7909342fc137fa126db..15c551347badbd0177d57c2b7d3500006eb7e0f7 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2099,9 +2099,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2096,9 +2096,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { bworld = server.getWorld(worldName); } diff --git a/patches/unapplied/server/0398-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0398-Add-PlayerAttackEntityCooldownResetEvent.patch index 984cebcdfd..98d462b590 100644 --- a/patches/unapplied/server/0398-Add-PlayerAttackEntityCooldownResetEvent.patch +++ b/patches/server/0398-Add-PlayerAttackEntityCooldownResetEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerAttackEntityCooldownResetEvent diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index f9ec497b3212a2c2d87edc4350d8479c6c20abbd..d6dc08d5501cc8b09cec3da107506760a99f5f81 100644 +index b3b3b163fb1a506fb048dba173517eeeaf2f8007..1eb53dd9c0ddef725e96aa7d5f6e335fb48eec9e 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -2090,7 +2090,16 @@ public abstract class LivingEntity extends Entity { diff --git a/patches/unapplied/server/0399-Don-t-fire-BlockFade-on-worldgen-threads.patch b/patches/server/0399-Don-t-fire-BlockFade-on-worldgen-threads.patch index b9aecc5313..b9aecc5313 100644 --- a/patches/unapplied/server/0399-Don-t-fire-BlockFade-on-worldgen-threads.patch +++ b/patches/server/0399-Don-t-fire-BlockFade-on-worldgen-threads.patch diff --git a/patches/unapplied/server/0400-Add-phantom-creative-and-insomniac-controls.patch b/patches/server/0400-Add-phantom-creative-and-insomniac-controls.patch index 3b9eaafdbf..3b9eaafdbf 100644 --- a/patches/unapplied/server/0400-Add-phantom-creative-and-insomniac-controls.patch +++ b/patches/server/0400-Add-phantom-creative-and-insomniac-controls.patch diff --git a/patches/unapplied/server/0401-Fix-numerous-item-duplication-issues-and-teleport-is.patch b/patches/server/0401-Fix-numerous-item-duplication-issues-and-teleport-is.patch index 1b3e64ae0e..ffa011ceed 100644 --- a/patches/unapplied/server/0401-Fix-numerous-item-duplication-issues-and-teleport-is.patch +++ b/patches/server/0401-Fix-numerous-item-duplication-issues-and-teleport-is.patch @@ -16,10 +16,10 @@ So even if something NEW comes up, it would be impossible to drop the same item twice because the source was destroyed. diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index c7f70ca9e4b19476b368f3c4133a36e7f310519b..7d6507ef6b50e62c2d5e02483337124390f7bf59 100644 +index 15c551347badbd0177d57c2b7d3500006eb7e0f7..70978ba28cec4dd3e64bf380c0669b3bcf4a640b 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -2229,11 +2229,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2226,11 +2226,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } else { // CraftBukkit start - Capture drops for death event if (this instanceof net.minecraft.world.entity.LivingEntity && !((net.minecraft.world.entity.LivingEntity) this).forceDrops) { @@ -34,7 +34,7 @@ index c7f70ca9e4b19476b368f3c4133a36e7f310519b..7d6507ef6b50e62c2d5e024833371243 entityitem.setDefaultPickUpDelay(); // CraftBukkit start -@@ -2997,6 +2998,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2994,6 +2995,12 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @Nullable public Entity teleportTo(ServerLevel worldserver, PositionImpl location) { // CraftBukkit end @@ -47,7 +47,7 @@ index c7f70ca9e4b19476b368f3c4133a36e7f310519b..7d6507ef6b50e62c2d5e024833371243 if (this.level instanceof ServerLevel && !this.isRemoved()) { this.level.getProfiler().push("changeDimension"); // CraftBukkit start -@@ -3023,6 +3030,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3020,6 +3027,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // CraftBukkit end this.level.getProfiler().popPush("reloading"); @@ -59,7 +59,7 @@ index c7f70ca9e4b19476b368f3c4133a36e7f310519b..7d6507ef6b50e62c2d5e024833371243 Entity entity = this.getType().create(worldserver); if (entity != null) { -@@ -3036,10 +3048,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3033,10 +3045,6 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { // CraftBukkit start - Forward the CraftEntity to the new entity this.getBukkitEntity().setHandle(entity); entity.bukkitEntity = this.getBukkitEntity(); @@ -70,7 +70,7 @@ index c7f70ca9e4b19476b368f3c4133a36e7f310519b..7d6507ef6b50e62c2d5e024833371243 // CraftBukkit end } -@@ -3160,7 +3168,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3157,7 +3165,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } public boolean canChangeDimensions() { @@ -80,7 +80,7 @@ index c7f70ca9e4b19476b368f3c4133a36e7f310519b..7d6507ef6b50e62c2d5e024833371243 public float getBlockExplosionResistance(Explosion explosion, BlockGetter world, BlockPos pos, BlockState blockState, FluidState fluidState, float max) { diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index d6dc08d5501cc8b09cec3da107506760a99f5f81..cf691b94b478dc058af706e1f2d13b51df231779 100644 +index 1eb53dd9c0ddef725e96aa7d5f6e335fb48eec9e..4a2a8566c9d68f21a98774fcecac0f4fa43d88c4 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1643,9 +1643,9 @@ public abstract class LivingEntity extends Entity { diff --git a/patches/unapplied/server/0402-Villager-Restocks-API.patch b/patches/server/0402-Villager-Restocks-API.patch index d4af2305a8..d4af2305a8 100644 --- a/patches/unapplied/server/0402-Villager-Restocks-API.patch +++ b/patches/server/0402-Villager-Restocks-API.patch diff --git a/patches/unapplied/server/0403-Validate-PickItem-Packet-and-kick-for-invalid.patch b/patches/server/0403-Validate-PickItem-Packet-and-kick-for-invalid.patch index 945b68b7ae..7a5ea4882c 100644 --- a/patches/unapplied/server/0403-Validate-PickItem-Packet-and-kick-for-invalid.patch +++ b/patches/server/0403-Validate-PickItem-Packet-and-kick-for-invalid.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Validate PickItem Packet and kick for invalid diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 21126008755c79990205359226a27546f08ec044..de7d5711885bdba0222513e0a4818a1f23306bf0 100644 +index bb870abae77d8fbf107bc9596637d4fac204c501..569a8b6889e7085e3e408ebd47a71e8b5af8ca5e 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -918,7 +918,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -960,7 +960,14 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic @Override public void handlePickItem(ServerboundPickItemPacket packet) { PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); diff --git a/patches/unapplied/server/0404-Expose-game-version.patch b/patches/server/0404-Expose-game-version.patch index 566af6eac3..566af6eac3 100644 --- a/patches/unapplied/server/0404-Expose-game-version.patch +++ b/patches/server/0404-Expose-game-version.patch diff --git a/patches/unapplied/server/0405-Optimize-Voxel-Shape-Merging.patch b/patches/server/0405-Optimize-Voxel-Shape-Merging.patch index 7bfe849396..7bfe849396 100644 --- a/patches/unapplied/server/0405-Optimize-Voxel-Shape-Merging.patch +++ b/patches/server/0405-Optimize-Voxel-Shape-Merging.patch diff --git a/patches/unapplied/server/0406-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch b/patches/server/0406-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch index 51d1a58f90..51d1a58f90 100644 --- a/patches/unapplied/server/0406-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch +++ b/patches/server/0406-Set-cap-on-JDK-per-thread-native-byte-buffer-cache.patch diff --git a/patches/unapplied/server/0407-misc-debugging-dumps.patch b/patches/server/0407-misc-debugging-dumps.patch index 7ae3dc55da..159e6cfb11 100644 --- a/patches/unapplied/server/0407-misc-debugging-dumps.patch +++ b/patches/server/0407-misc-debugging-dumps.patch @@ -29,10 +29,10 @@ index 0000000000000000000000000000000000000000..2d5494d2813b773e60ddba6790b750a9 + } +} diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index fe3faf1e8a102cd63c1976cf63403bbd1e8e2a90..3de332f5b08a6f7651437f8f5579632de6d3ef77 100644 +index e25451056b6eedde2c5ffc281918ca13967e0a67..af2d703fe3cb74ced502ca89c5bf6ca1f47474bb 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -869,6 +869,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -871,6 +871,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // CraftBukkit start private boolean hasStopped = false; public volatile boolean hasFullyShutdown = false; // Paper @@ -40,7 +40,7 @@ index fe3faf1e8a102cd63c1976cf63403bbd1e8e2a90..3de332f5b08a6f7651437f8f5579632d private final Object stopLock = new Object(); public final boolean hasStopped() { synchronized (this.stopLock) { -@@ -883,6 +884,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -885,6 +886,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa if (this.hasStopped) return; this.hasStopped = true; } @@ -48,7 +48,7 @@ index fe3faf1e8a102cd63c1976cf63403bbd1e8e2a90..3de332f5b08a6f7651437f8f5579632d // Paper start - kill main thread, and kill it hard shutdownThread = Thread.currentThread(); org.spigotmc.WatchdogThread.doStop(); // Paper -@@ -1012,6 +1014,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -1014,6 +1016,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa } public void safeShutdown(boolean flag, boolean isRestarting) { this.isRestarting = isRestarting; @@ -58,10 +58,10 @@ index fe3faf1e8a102cd63c1976cf63403bbd1e8e2a90..3de332f5b08a6f7651437f8f5579632d this.running = false; if (flag) { diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -index ec2825b6d276b6200c4bec5580d012f1eaed722e..e51c03e05c4407ad3a51e573a5e79b003f86d9f1 100644 +index 31a506e78264f354394afc37fb7ebb3d0c7d6ebd..40b27dbdc15e07a6a9d63d41babe5ed0245c0e0b 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java -@@ -206,6 +206,11 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener +@@ -218,6 +218,11 @@ public class ServerLoginPacketListenerImpl implements TickablePacketListener, Se } catch (Exception exception) { ServerLoginPacketListenerImpl.LOGGER.error("Couldn't place player in world", exception); MutableComponent ichatmutablecomponent = Component.translatable("multiplayer.disconnect.invalid_player_data"); diff --git a/patches/unapplied/server/0408-Prevent-teleporting-dead-entities.patch b/patches/server/0408-Prevent-teleporting-dead-entities.patch index 64c8586b7f..3f9ce709e9 100644 --- a/patches/unapplied/server/0408-Prevent-teleporting-dead-entities.patch +++ b/patches/server/0408-Prevent-teleporting-dead-entities.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Prevent teleporting dead entities diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index de7d5711885bdba0222513e0a4818a1f23306bf0..ea83ac86eb392652c55c5a4a774481d631b76dd1 100644 +index 569a8b6889e7085e3e408ebd47a71e8b5af8ca5e..408c2071ea8f99721bc13cf4da27a17e64bc9e8a 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1559,6 +1559,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1625,6 +1625,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic } public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<ClientboundPlayerPositionPacket.RelativeArgument> set, boolean flag) { diff --git a/patches/unapplied/server/0409-Deobfuscate-stacktraces-in-log-messages-crash-report.patch b/patches/server/0409-Deobfuscate-stacktraces-in-log-messages-crash-report.patch index 981e5c6969..14331bc03f 100644 --- a/patches/unapplied/server/0409-Deobfuscate-stacktraces-in-log-messages-crash-report.patch +++ b/patches/server/0409-Deobfuscate-stacktraces-in-log-messages-crash-report.patch @@ -478,10 +478,10 @@ index 2d5494d2813b773e60ddba6790b750a9a08f21f8..7695bf44503f161523ea612ef8a884ae } } diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java -index 4dd14d73a37b32288a64fbd67ee22c435b6e6d57..1a859fef0848cf23a672012e9764965ae1c07ec5 100644 +index 30a58229aa6dac5039511d0c0df5f2912ea7de9f..abe37c7c3c6f5ab73afd738ec78f06d7e4d2ed96 100644 --- a/src/main/java/net/minecraft/CrashReport.java +++ b/src/main/java/net/minecraft/CrashReport.java -@@ -30,6 +30,7 @@ public class CrashReport { +@@ -32,6 +32,7 @@ public class CrashReport { private final SystemReport systemReport = new SystemReport(); public CrashReport(String message, Throwable cause) { @@ -490,7 +490,7 @@ index 4dd14d73a37b32288a64fbd67ee22c435b6e6d57..1a859fef0848cf23a672012e9764965a this.exception = cause; this.systemReport.setDetail("CraftBukkit Information", new org.bukkit.craftbukkit.CraftCrashReport()); // CraftBukkit diff --git a/src/main/java/net/minecraft/CrashReportCategory.java b/src/main/java/net/minecraft/CrashReportCategory.java -index 3941e14d1c3e6e688e28904948039c8b2200de5f..a4fda4a3bae9ce600e778b44cd3ef432a8b65667 100644 +index f114d5dab86aa2cdd59c78406c9d82f9caededca..99fa9f1952ee7ed79b223ff210a658e4b119b3e4 100644 --- a/src/main/java/net/minecraft/CrashReportCategory.java +++ b/src/main/java/net/minecraft/CrashReportCategory.java @@ -104,6 +104,7 @@ public class CrashReportCategory { @@ -502,10 +502,10 @@ index 3941e14d1c3e6e688e28904948039c8b2200de5f..a4fda4a3bae9ce600e778b44cd3ef432 } } diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java -index 97166c362a5468e3f7e2fcfd5e318dc519bfbf6c..ed4587248fada36c4c206be1fa36fef42fc969e2 100644 +index a18e2146c4398b45ae50623fc6800a78718f4c81..c06cb0f0e300c4d00b3aeed12772c38e8379cb0c 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java -@@ -66,13 +66,13 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> { +@@ -62,13 +62,13 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> { }); public static final AttributeKey<ConnectionProtocol> ATTRIBUTE_PROTOCOL = AttributeKey.valueOf("protocol"); public static final LazyLoadedValue<NioEventLoopGroup> NETWORK_WORKER_GROUP = new LazyLoadedValue<>(() -> { @@ -522,21 +522,8 @@ index 97166c362a5468e3f7e2fcfd5e318dc519bfbf6c..ed4587248fada36c4c206be1fa36fef4 }); private final PacketFlow receiving; private final Queue<Connection.PacketHolder> queue = Queues.newConcurrentLinkedQueue(); -diff --git a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java -index 72932b13d71f71896f07810c8850eb45749ae2e6..5c92aa1cc1a7e7fd0b7a06ae9b21e734fab71c74 100644 ---- a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java -+++ b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java -@@ -41,7 +41,7 @@ public class ServerboundChatPacket implements Packet<ServerGamePacketListener> { - - // Spigot Start - private static final java.util.concurrent.ExecutorService executors = java.util.concurrent.Executors.newCachedThreadPool( -- new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon( true ).setNameFormat( "Async Chat Thread - #%d" ).build() ); -+ new com.google.common.util.concurrent.ThreadFactoryBuilder().setDaemon( true ).setNameFormat( "Async Chat Thread - #%d" ).setUncaughtExceptionHandler(new net.minecraft.DefaultUncaughtExceptionHandlerWithName(net.minecraft.server.MinecraftServer.LOGGER)).build() ); // Paper - public void handle(final ServerGamePacketListener listener) { - if ( !this.message.startsWith("/") ) - { diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java -index e585cdd8a598df2b04c265d5568f8ba868018178..a44a9b4b3c78395cdd1d859407a880cb54386d86 100644 +index 648bc209938364a387c3f81dcd073db398e9f864..e42df2956e2d852a5a4c8fdeda395a3efd32c44c 100644 --- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java @@ -200,6 +200,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface @@ -548,10 +535,10 @@ index e585cdd8a598df2b04c265d5568f8ba868018178..a44a9b4b3c78395cdd1d859407a880cb paperConfigurations.initializeWorldDefaultsConfiguration(); org.spigotmc.WatchdogThread.doStart(org.spigotmc.SpigotConfig.timeoutTime, org.spigotmc.SpigotConfig.restartOnCrash); diff --git a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -index 78808e6239070121d36b6c377202d76e8fb3fa32..72fbc58f7d003b7af3c35e5fc504010307c7086b 100644 +index a24ef433d0c9d06b86fd612978cfd6d877036791..1b38326c9a709536dc4cccf9af93aede98a1a782 100644 --- a/src/main/java/net/minecraft/server/network/ServerConnectionListener.java +++ b/src/main/java/net/minecraft/server/network/ServerConnectionListener.java -@@ -53,10 +53,10 @@ public class ServerConnectionListener { +@@ -54,10 +54,10 @@ public class ServerConnectionListener { private static final Logger LOGGER = LogUtils.getLogger(); public static final LazyLoadedValue<NioEventLoopGroup> SERVER_EVENT_GROUP = new LazyLoadedValue<>(() -> { diff --git a/patches/unapplied/server/0410-Implement-Mob-Goal-API.patch b/patches/server/0410-Implement-Mob-Goal-API.patch index e0089a0954..e0089a0954 100644 --- a/patches/unapplied/server/0410-Implement-Mob-Goal-API.patch +++ b/patches/server/0410-Implement-Mob-Goal-API.patch diff --git a/patches/unapplied/server/0411-Add-villager-reputation-API.patch b/patches/server/0411-Add-villager-reputation-API.patch index 4c38780334..4c38780334 100644 --- a/patches/unapplied/server/0411-Add-villager-reputation-API.patch +++ b/patches/server/0411-Add-villager-reputation-API.patch diff --git a/patches/unapplied/server/0412-Option-for-maximum-exp-value-when-merging-orbs.patch b/patches/server/0412-Option-for-maximum-exp-value-when-merging-orbs.patch index 4239e066f4..4239e066f4 100644 --- a/patches/unapplied/server/0412-Option-for-maximum-exp-value-when-merging-orbs.patch +++ b/patches/server/0412-Option-for-maximum-exp-value-when-merging-orbs.patch diff --git a/patches/unapplied/server/0413-ExperienceOrbMergeEvent.patch b/patches/server/0413-ExperienceOrbMergeEvent.patch index 1ff06b6779..1ff06b6779 100644 --- a/patches/unapplied/server/0413-ExperienceOrbMergeEvent.patch +++ b/patches/server/0413-ExperienceOrbMergeEvent.patch diff --git a/patches/unapplied/server/0414-Fix-PotionEffect-ignores-icon-flag.patch b/patches/server/0414-Fix-PotionEffect-ignores-icon-flag.patch index e542865e62..e542865e62 100644 --- a/patches/unapplied/server/0414-Fix-PotionEffect-ignores-icon-flag.patch +++ b/patches/server/0414-Fix-PotionEffect-ignores-icon-flag.patch diff --git a/patches/unapplied/server/0415-Optimize-brigadier-child-sorting-performance.patch b/patches/server/0415-Optimize-brigadier-child-sorting-performance.patch index 2d398241d6..2d398241d6 100644 --- a/patches/unapplied/server/0415-Optimize-brigadier-child-sorting-performance.patch +++ b/patches/server/0415-Optimize-brigadier-child-sorting-performance.patch diff --git a/patches/unapplied/server/0416-Potential-bed-API.patch b/patches/server/0416-Potential-bed-API.patch index d63e2bb9ee..d63e2bb9ee 100644 --- a/patches/unapplied/server/0416-Potential-bed-API.patch +++ b/patches/server/0416-Potential-bed-API.patch diff --git a/patches/unapplied/server/0417-Wait-for-Async-Tasks-during-shutdown.patch b/patches/server/0417-Wait-for-Async-Tasks-during-shutdown.patch index 545bdda31c..dea6993d32 100644 --- a/patches/unapplied/server/0417-Wait-for-Async-Tasks-during-shutdown.patch +++ b/patches/server/0417-Wait-for-Async-Tasks-during-shutdown.patch @@ -10,10 +10,10 @@ Adds a 5 second grace period for any async tasks to finish and warns if any are still running after that delay just as reload does. diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 3de332f5b08a6f7651437f8f5579632de6d3ef77..1774d6011ea165a36576f283de6531eed873ee4c 100644 +index af2d703fe3cb74ced502ca89c5bf6ca1f47474bb..8e74c4b6b5186663537be304cfe462bb462e92f9 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -908,6 +908,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa +@@ -910,6 +910,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa // CraftBukkit start if (this.server != null) { this.server.disablePlugins(); diff --git a/patches/unapplied/server/0418-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch b/patches/server/0418-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch index 94dbb79f58..94dbb79f58 100644 --- a/patches/unapplied/server/0418-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch +++ b/patches/server/0418-Ensure-EntityRaider-respects-game-and-entity-rules-f.patch diff --git a/patches/unapplied/server/0419-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch b/patches/server/0419-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch index 983a2332ce..f775181ba8 100644 --- a/patches/unapplied/server/0419-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch +++ b/patches/server/0419-Protect-Bedrock-and-End-Portal-Frames-from-being-des.patch @@ -49,7 +49,7 @@ index c488e069a19d4bf082c94032571fcc77c0bada50..d5e80a0d953e7792669f21011bc685ad if (blockstate == null) { blockstate = CapturedBlockState.getTreeBlockState(this, pos, flags); diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java -index 0422e389e5b9577417d09490a15584ed5b885209..d63c320051b9d58c3503d268c7913673679c79dd 100644 +index 77125720fcbeb7bfc180effb27cfb78c74832ce5..cb11cef117fc896ddcb40993ddb852a2e717c2ad 100644 --- a/src/main/java/net/minecraft/world/level/block/Block.java +++ b/src/main/java/net/minecraft/world/level/block/Block.java @@ -92,6 +92,19 @@ public class Block extends BlockBehaviour implements ItemLike { @@ -115,10 +115,10 @@ index 76720517cd2d82065eb8430cf854b536295341db..29755807fdb6c30e31c0ec2bbf33bed9 world.playSound((Player) null, pos, SoundEvents.PISTON_CONTRACT, SoundSource.BLOCKS, 0.5F, world.random.nextFloat() * 0.15F + 0.6F); diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -index 942dae5116840a2e8a992f0830574ab2a315bdf1..0ff34d2c569fbeae95509abed343b1e2f593378a 100644 +index 3ec96c7f2ad0d6ba8ad32a4aabb0292b5c2ff5b4..ad38a7ced7f3dc05fb3d133e9da39f0a5eb0915b 100644 --- a/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java +++ b/src/main/java/net/minecraft/world/level/block/state/BlockBehaviour.java -@@ -222,7 +222,7 @@ public abstract class BlockBehaviour { +@@ -223,7 +223,7 @@ public abstract class BlockBehaviour { /** @deprecated */ @Deprecated public boolean canBeReplaced(BlockState state, BlockPlaceContext context) { @@ -127,7 +127,7 @@ index 942dae5116840a2e8a992f0830574ab2a315bdf1..0ff34d2c569fbeae95509abed343b1e2 } /** @deprecated */ -@@ -726,6 +726,12 @@ public abstract class BlockBehaviour { +@@ -727,6 +727,12 @@ public abstract class BlockBehaviour { return ((Block) this.owner).builtInRegistryHolder(); } @@ -140,7 +140,7 @@ index 942dae5116840a2e8a992f0830574ab2a315bdf1..0ff34d2c569fbeae95509abed343b1e2 public Material getMaterial() { return this.material; } -@@ -823,7 +829,7 @@ public abstract class BlockBehaviour { +@@ -824,7 +830,7 @@ public abstract class BlockBehaviour { } public PushReaction getPistonPushReaction() { diff --git a/patches/unapplied/server/0420-Reduce-MutableInt-allocations-from-light-engine.patch b/patches/server/0420-Reduce-MutableInt-allocations-from-light-engine.patch index 881c2f0231..3adb42bf18 100644 --- a/patches/unapplied/server/0420-Reduce-MutableInt-allocations-from-light-engine.patch +++ b/patches/server/0420-Reduce-MutableInt-allocations-from-light-engine.patch @@ -28,10 +28,10 @@ index 729c4b1763a24bac3c0764bea505555a32e54f57..37d7165dfd17da03428f8dbbbf95aa80 if (mutableInt.getValue() >= 15) { return 15; diff --git a/src/main/java/net/minecraft/world/level/lighting/SkyLightEngine.java b/src/main/java/net/minecraft/world/level/lighting/SkyLightEngine.java -index 4252247acd5c71e46d90f454663a9737e22e2a61..d122475c1a9d340046c478087d3ff5bf1ff8932c 100644 +index 56b8f6ac53e7598da4dea2180825242222f86731..ca710a20e8b97341616463f4058b61cf4999af28 100644 --- a/src/main/java/net/minecraft/world/level/lighting/SkyLightEngine.java +++ b/src/main/java/net/minecraft/world/level/lighting/SkyLightEngine.java -@@ -14,6 +14,7 @@ import org.apache.commons.lang3.mutable.MutableInt; +@@ -15,6 +15,7 @@ import org.apache.commons.lang3.mutable.MutableInt; public final class SkyLightEngine extends LayerLightEngine<SkyLightSectionStorage.SkyDataLayerStorageMap, SkyLightSectionStorage> { private static final Direction[] DIRECTIONS = Direction.values(); private static final Direction[] HORIZONTALS = new Direction[]{Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST}; @@ -39,7 +39,7 @@ index 4252247acd5c71e46d90f454663a9737e22e2a61..d122475c1a9d340046c478087d3ff5bf public SkyLightEngine(LightChunkGetter chunkProvider) { super(chunkProvider, LightLayer.SKY, new SkyLightSectionStorage(chunkProvider)); -@@ -25,7 +26,7 @@ public final class SkyLightEngine extends LayerLightEngine<SkyLightSectionStorag +@@ -26,7 +27,7 @@ public final class SkyLightEngine extends LayerLightEngine<SkyLightSectionStorag if (level >= 15) { return level; } else { diff --git a/patches/unapplied/server/0421-Reduce-allocation-of-Vec3D-by-entity-tracker.patch b/patches/server/0421-Reduce-allocation-of-Vec3D-by-entity-tracker.patch index 1de506b9e3..f15e955db3 100644 --- a/patches/unapplied/server/0421-Reduce-allocation-of-Vec3D-by-entity-tracker.patch +++ b/patches/server/0421-Reduce-allocation-of-Vec3D-by-entity-tracker.patch @@ -18,10 +18,10 @@ index 3167f5c6be39757e3cc42cbb17ab0cf13a2fe470..3768a71491ef7836b9739bdaec7a077c private static long encode(double value) { return Mth.lfloor(value * 4096.0D); diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index ee64657a838b9b661b8accc997b6d149d21bce56..d6887ac56991eee37cff7f0d978b8f5977e43c39 100644 +index 5187988a22b55ac783147afe455a139662b67f7d..9077af957d284e341ca8327cb837dc9b4bb3ffee 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1934,9 +1934,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1931,9 +1931,13 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public void updatePlayer(ServerPlayer player) { org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot if (player != this.entity) { diff --git a/patches/unapplied/server/0422-Ensure-safe-gateway-teleport.patch b/patches/server/0422-Ensure-safe-gateway-teleport.patch index 6d352f74a8..6d352f74a8 100644 --- a/patches/unapplied/server/0422-Ensure-safe-gateway-teleport.patch +++ b/patches/server/0422-Ensure-safe-gateway-teleport.patch diff --git a/patches/unapplied/server/0423-Add-option-for-console-having-all-permissions.patch b/patches/server/0423-Add-option-for-console-having-all-permissions.patch index d1e3317d94..d1e3317d94 100644 --- a/patches/unapplied/server/0423-Add-option-for-console-having-all-permissions.patch +++ b/patches/server/0423-Add-option-for-console-having-all-permissions.patch diff --git a/patches/unapplied/server/0424-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch b/patches/server/0424-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch index b1b132ffcf..d1757b83c1 100644 --- a/patches/unapplied/server/0424-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch +++ b/patches/server/0424-Optimize-anyPlayerCloseEnoughForSpawning-to-use-dist.patch @@ -42,10 +42,10 @@ index 6e7d09cd48048957a14835b857ac708aafe8f664..4e8a79f2d3b6f52c6284bc9b0ce2423d // Paper start diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index d6887ac56991eee37cff7f0d978b8f5977e43c39..bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5 100644 +index 9077af957d284e341ca8327cb837dc9b4bb3ffee..6e27a89af794d411cce3c1c932c1f4910cec889c 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -185,11 +185,23 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -182,11 +182,23 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider final CallbackExecutor chunkLoadConversionCallbackExecutor = new CallbackExecutor(); // Paper // Paper start - distance maps private final com.destroystokyo.paper.util.misc.PooledLinkedHashSets<ServerPlayer> pooledLinkedPlayerHashSets = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets<>(); @@ -69,7 +69,7 @@ index d6887ac56991eee37cff7f0d978b8f5977e43c39..bc698f8aee7eb5f2dbc1affd24e9af9f // Paper start - per player mob spawning if (this.playerMobDistanceMap != null) { this.playerMobDistanceMap.add(player, chunkX, chunkZ, this.distanceManager.getSimulationDistance()); -@@ -199,6 +211,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -196,6 +208,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider void removePlayerFromDistanceMaps(ServerPlayer player) { @@ -80,7 +80,7 @@ index d6887ac56991eee37cff7f0d978b8f5977e43c39..bc698f8aee7eb5f2dbc1affd24e9af9f // Paper start - per player mob spawning if (this.playerMobDistanceMap != null) { this.playerMobDistanceMap.remove(player); -@@ -210,6 +226,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -207,6 +223,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider int chunkX = MCUtil.getChunkCoordinate(player.getX()); int chunkZ = MCUtil.getChunkCoordinate(player.getZ()); // Note: players need to be explicitly added to distance maps before they can be updated @@ -88,7 +88,7 @@ index d6887ac56991eee37cff7f0d978b8f5977e43c39..bc698f8aee7eb5f2dbc1affd24e9af9f // Paper start - per player mob spawning if (this.playerMobDistanceMap != null) { this.playerMobDistanceMap.update(player, chunkX, chunkZ, this.distanceManager.getSimulationDistance()); -@@ -303,6 +320,38 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -300,6 +317,38 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.regionManagers.add(this.dataRegionManager); // Paper end this.playerMobDistanceMap = this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets) : null; // Paper @@ -127,7 +127,7 @@ index d6887ac56991eee37cff7f0d978b8f5977e43c39..bc698f8aee7eb5f2dbc1affd24e9af9f } protected ChunkGenerator generator() { -@@ -558,6 +607,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -555,6 +604,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider holder = (ChunkHolder) this.pendingUnloads.remove(pos); if (holder != null) { holder.setTicketLevel(level); @@ -135,7 +135,7 @@ index d6887ac56991eee37cff7f0d978b8f5977e43c39..bc698f8aee7eb5f2dbc1affd24e9af9f } else { holder = new ChunkHolder(new ChunkPos(pos), level, this.level, this.lightEngine, this.queueSorter, this); // Paper start -@@ -653,6 +703,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -650,6 +700,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider ChunkHolder playerchunk = (ChunkHolder) this.updatingChunkMap.remove(j); if (playerchunk != null) { @@ -143,7 +143,7 @@ index d6887ac56991eee37cff7f0d978b8f5977e43c39..bc698f8aee7eb5f2dbc1affd24e9af9f this.pendingUnloads.put(j, playerchunk); this.modified = true; ++i; -@@ -1418,43 +1469,48 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1415,43 +1466,48 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider return this.anyPlayerCloseEnoughForSpawning(pos, false); } @@ -357,10 +357,10 @@ index 42b4214a1319691e9a6cb0c5fafaeeff821f3f99..1d9a0f6effa1654609f4d0752ec69eed } diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index e7210672073de654a8cf1670642a2f2035dec635..86574b86b02dc0b0814cc0d0540e82957f094025 100644 +index 8dc31f65126db6b2527d4106a885cb9b6dbc7a75..be00b0f9c15e1e7c22c2d2ebf3063639520f2030 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -261,6 +261,7 @@ public class ServerPlayer extends Player { +@@ -262,6 +262,7 @@ public class ServerPlayer extends Player { // CraftBukkit end public PlayerNaturallySpawnCreaturesEvent playerNaturallySpawnedEvent; // Paper diff --git a/patches/unapplied/server/0425-Use-distance-map-to-optimise-entity-tracker.patch b/patches/server/0425-Use-distance-map-to-optimise-entity-tracker.patch index 1bf77d801c..a1f1dae611 100644 --- a/patches/unapplied/server/0425-Use-distance-map-to-optimise-entity-tracker.patch +++ b/patches/server/0425-Use-distance-map-to-optimise-entity-tracker.patch @@ -6,10 +6,10 @@ Subject: [PATCH] Use distance map to optimise entity tracker Use the distance map to find candidate players for tracking. diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5..86cdc8951544c16f8dc5148bc2c7bf9bbf920c60 100644 +index 6e27a89af794d411cce3c1c932c1f4910cec889c..6188f35e2b5300b6ff4a16e4d6e0e4a846261f8a 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -69,6 +69,7 @@ import net.minecraft.network.protocol.game.ClientboundSetEntityLinkPacket; +@@ -66,6 +66,7 @@ import net.minecraft.network.protocol.game.ClientboundSetEntityLinkPacket; import net.minecraft.network.protocol.game.ClientboundSetPassengersPacket; import net.minecraft.network.protocol.game.DebugPackets; import net.minecraft.server.MCUtil; @@ -17,7 +17,7 @@ index bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5..86cdc8951544c16f8dc5148bc2c7bf9b import net.minecraft.server.level.progress.ChunkProgressListener; import net.minecraft.server.network.ServerPlayerConnection; import net.minecraft.util.CsvOutput; -@@ -196,10 +197,35 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -193,10 +194,35 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider public final com.destroystokyo.paper.util.misc.PlayerAreaMap playerMobSpawnMap; // this map is absent from updateMaps since it's controlled at the start of the chunkproviderserver tick public final com.destroystokyo.paper.util.misc.PlayerAreaMap playerChunkTickRangeMap; // Paper end - optimise ChunkMap#anyPlayerCloseEnoughForSpawning @@ -53,7 +53,7 @@ index bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5..86cdc8951544c16f8dc5148bc2c7bf9b // Note: players need to be explicitly added to distance maps before they can be updated this.playerChunkTickRangeMap.add(player, chunkX, chunkZ, DistanceManager.MOB_SPAWN_RANGE); // Paper - optimise ChunkMap#anyPlayerCloseEnoughForSpawning // Paper start - per player mob spawning -@@ -211,6 +237,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -208,6 +234,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider void removePlayerFromDistanceMaps(ServerPlayer player) { @@ -65,7 +65,7 @@ index bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5..86cdc8951544c16f8dc5148bc2c7bf9b // Paper start - optimise ChunkMap#anyPlayerCloseEnoughForSpawning this.playerMobSpawnMap.remove(player); this.playerChunkTickRangeMap.remove(player); -@@ -226,6 +257,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -223,6 +254,14 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider int chunkX = MCUtil.getChunkCoordinate(player.getX()); int chunkZ = MCUtil.getChunkCoordinate(player.getZ()); // Note: players need to be explicitly added to distance maps before they can be updated @@ -80,7 +80,7 @@ index bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5..86cdc8951544c16f8dc5148bc2c7bf9b this.playerChunkTickRangeMap.update(player, chunkX, chunkZ, DistanceManager.MOB_SPAWN_RANGE); // Paper - optimise ChunkMap#anyPlayerCloseEnoughForSpawning // Paper start - per player mob spawning if (this.playerMobDistanceMap != null) { -@@ -320,6 +359,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -317,6 +356,45 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.regionManagers.add(this.dataRegionManager); // Paper end this.playerMobDistanceMap = this.level.paperConfig().entities.spawning.perPlayerMobSpawns ? new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets) : null; // Paper @@ -126,7 +126,7 @@ index bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5..86cdc8951544c16f8dc5148bc2c7bf9b // Paper start - optimise ChunkMap#anyPlayerCloseEnoughForSpawning this.playerChunkTickRangeMap = new com.destroystokyo.paper.util.misc.PlayerAreaMap(this.pooledLinkedPlayerHashSets, (ServerPlayer player, int rangeX, int rangeZ, int currPosX, int currPosZ, int prevPosX, int prevPosZ, -@@ -1592,17 +1670,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1589,17 +1667,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void move(ServerPlayer player) { @@ -145,7 +145,7 @@ index bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5..86cdc8951544c16f8dc5148bc2c7bf9b int i = SectionPos.blockToSectionCoord(player.getBlockX()); int j = SectionPos.blockToSectionCoord(player.getBlockZ()); -@@ -1729,7 +1797,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1726,7 +1794,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = playerchunkmap_entitytracker; // Paper - Fast access to tracker this.entityMap.put(entity.getId(), playerchunkmap_entitytracker); @@ -154,7 +154,7 @@ index bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5..86cdc8951544c16f8dc5148bc2c7bf9b if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -1773,7 +1841,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1770,7 +1838,37 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = null; // Paper - We're no longer tracked } @@ -192,7 +192,7 @@ index bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5..86cdc8951544c16f8dc5148bc2c7bf9b List<ServerPlayer> list = Lists.newArrayList(); List<ServerPlayer> list1 = this.level.players(); ObjectIterator objectiterator = this.entityMap.values().iterator(); -@@ -1849,23 +1947,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1846,23 +1944,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider DebugPackets.sendPoiPacketsForChunk(this.level, chunk.getPos()); List<Entity> list = Lists.newArrayList(); List<Entity> list1 = Lists.newArrayList(); @@ -236,7 +236,7 @@ index bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5..86cdc8951544c16f8dc5148bc2c7bf9b Iterator iterator; Entity entity1; -@@ -1941,6 +2047,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1938,6 +2044,42 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider this.lastSectionPos = SectionPos.of((EntityAccess) entity); } @@ -280,7 +280,7 @@ index bc698f8aee7eb5f2dbc1affd24e9af9f7c1ad2d5..86cdc8951544c16f8dc5148bc2c7bf9b return object instanceof ChunkMap.TrackedEntity ? ((ChunkMap.TrackedEntity) object).entity.getId() == this.entity.getId() : false; } diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java -index 7d6507ef6b50e62c2d5e02483337124390f7bf59..175f5400225584f1fedc940d967a3d6f8ede84c0 100644 +index 70978ba28cec4dd3e64bf380c0669b3bcf4a640b..0f85956d4d1c98225ff7cff7abad217a124f0dfc 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -57,6 +57,7 @@ import net.minecraft.network.syncher.EntityDataSerializers; diff --git a/patches/unapplied/server/0426-Optimize-ServerLevels-chunk-level-checking-methods.patch b/patches/server/0426-Optimize-ServerLevels-chunk-level-checking-methods.patch index 7c253c9113..97a753c00b 100644 --- a/patches/unapplied/server/0426-Optimize-ServerLevels-chunk-level-checking-methods.patch +++ b/patches/server/0426-Optimize-ServerLevels-chunk-level-checking-methods.patch @@ -8,10 +8,10 @@ so inline where possible, and avoid the abstraction of the Either class. diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index cf0976f7352919197a322fb4f7f8e20c24509db5..443044aa09b80bdbbcd202b53d265c635b50015f 100644 +index e531c2ed2432b0184878cc3fcfe0bc91a551977c..c3db29bc1b24a976617068a4ddae062857d61097 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2250,19 +2250,22 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2251,19 +2251,22 @@ public class ServerLevel extends Level implements WorldGenLevel { } private boolean isPositionTickingWithEntitiesLoaded(long chunkPos) { diff --git a/patches/unapplied/server/0427-Delay-Chunk-Unloads-based-on-Player-Movement.patch b/patches/server/0427-Delay-Chunk-Unloads-based-on-Player-Movement.patch index 21c409adc6..21c409adc6 100644 --- a/patches/unapplied/server/0427-Delay-Chunk-Unloads-based-on-Player-Movement.patch +++ b/patches/server/0427-Delay-Chunk-Unloads-based-on-Player-Movement.patch diff --git a/patches/unapplied/server/0428-Fix-villager-trading-demand-MC-163962.patch b/patches/server/0428-Fix-villager-trading-demand-MC-163962.patch index fb5e330854..fb5e330854 100644 --- a/patches/unapplied/server/0428-Fix-villager-trading-demand-MC-163962.patch +++ b/patches/server/0428-Fix-villager-trading-demand-MC-163962.patch diff --git a/patches/unapplied/server/0429-Maps-shouldn-t-load-chunks.patch b/patches/server/0429-Maps-shouldn-t-load-chunks.patch index 3ab19f357a..3ab19f357a 100644 --- a/patches/unapplied/server/0429-Maps-shouldn-t-load-chunks.patch +++ b/patches/server/0429-Maps-shouldn-t-load-chunks.patch diff --git a/patches/unapplied/server/0430-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch b/patches/server/0430-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch index 9ed5e37d35..9ed5e37d35 100644 --- a/patches/unapplied/server/0430-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch +++ b/patches/server/0430-Use-seed-based-lookup-for-Treasure-Maps-Fixes-lag-fr.patch diff --git a/patches/unapplied/server/0431-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch b/patches/server/0431-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch index 1cafad18f3..1cafad18f3 100644 --- a/patches/unapplied/server/0431-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch +++ b/patches/server/0431-Fix-CraftScheduler-runTaskTimerAsynchronously-Plugin.patch diff --git a/patches/unapplied/server/0432-Fix-piston-physics-inconsistency-MC-188840.patch b/patches/server/0432-Fix-piston-physics-inconsistency-MC-188840.patch index dcc303244a..dcc303244a 100644 --- a/patches/unapplied/server/0432-Fix-piston-physics-inconsistency-MC-188840.patch +++ b/patches/server/0432-Fix-piston-physics-inconsistency-MC-188840.patch diff --git a/patches/unapplied/server/0433-Fix-sand-duping.patch b/patches/server/0433-Fix-sand-duping.patch index 5780d77de8..5780d77de8 100644 --- a/patches/unapplied/server/0433-Fix-sand-duping.patch +++ b/patches/server/0433-Fix-sand-duping.patch diff --git a/patches/unapplied/server/0434-Fix-missing-chunks-due-to-integer-overflow.patch b/patches/server/0434-Fix-missing-chunks-due-to-integer-overflow.patch index 8b62d6533b..94b8d07c3a 100644 --- a/patches/unapplied/server/0434-Fix-missing-chunks-due-to-integer-overflow.patch +++ b/patches/server/0434-Fix-missing-chunks-due-to-integer-overflow.patch @@ -15,15 +15,15 @@ allows the distance calculation to avoid overflow and work as intended. This issue is being tracked in Mojira ticket MC-159283 diff --git a/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java b/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java -index 8a5826d80f9275de1a2a6a2e23369dd1920f560f..6825feea42667a0f14c4c730e5f1ac970c654c56 100644 +index 30b6c5839b0da1aea792b7e092f0fcf5e83835db..683474cd96d3a0cdfb3b22d0111c8d3231f01d92 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java +++ b/src/main/java/net/minecraft/world/level/levelgen/DensityFunctions.java @@ -501,7 +501,7 @@ public final class DensityFunctions { - int l = j / 2; - int m = i % 2; - int n = j % 2; -- float f = 100.0F - Mth.sqrt((float)(i * i + j * j)) * 8.0F; -+ float f = 100.0F - Mth.sqrt((long) i * (long) i + (long) j * (long) j) * 8.0F; // Paper - cast ints to long to avoid integer overflow + int j = z / 2; + int k = x % 2; + int l = z % 2; +- float f = 100.0F - Mth.sqrt((float)(x * x + z * z)) * 8.0F; ++ float f = 100.0F - Mth.sqrt((long) x * (long) x + (long) z * (long) z) * 8.0F; // Paper - cast ints to long to avoid integer overflow f = Mth.clamp(f, -100.0F, 80.0F); - for(int o = -12; o <= 12; ++o) { + for(int m = -12; m <= 12; ++m) { diff --git a/patches/unapplied/server/0435-Prevent-position-desync-in-playerconnection-causing-.patch b/patches/server/0435-Prevent-position-desync-in-playerconnection-causing-.patch index cbf8b7bff9..203472da06 100644 --- a/patches/unapplied/server/0435-Prevent-position-desync-in-playerconnection-causing-.patch +++ b/patches/server/0435-Prevent-position-desync-in-playerconnection-causing-.patch @@ -14,10 +14,10 @@ behaviour, we need to move all of this dangerous logic outside of the move call and into an appropriate place in the tick method. diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index ea83ac86eb392652c55c5a4a774481d631b76dd1..c03867ed9a66a408900cadf81b09704e415dfca6 100644 +index 408c2071ea8f99721bc13cf4da27a17e64bc9e8a..a0f492b0c7783fc8c5ce2e1a60707ae2db74ab9f 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -1373,6 +1373,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser +@@ -1439,6 +1439,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic this.player.move(MoverType.PLAYER, new Vec3(d7, d8, d9)); this.player.onGround = packet.isOnGround(); // CraftBukkit - SPIGOT-5810, SPIGOT-5835, SPIGOT-6828: reset by this.player.move diff --git a/patches/unapplied/server/0436-Inventory-getHolder-method-without-block-snapshot.patch b/patches/server/0436-Inventory-getHolder-method-without-block-snapshot.patch index 9ed9fe0826..9ed9fe0826 100644 --- a/patches/unapplied/server/0436-Inventory-getHolder-method-without-block-snapshot.patch +++ b/patches/server/0436-Inventory-getHolder-method-without-block-snapshot.patch diff --git a/patches/unapplied/server/0437-Improve-Arrow-API.patch b/patches/server/0437-Improve-Arrow-API.patch index 47bb897a5a..47bb897a5a 100644 --- a/patches/unapplied/server/0437-Improve-Arrow-API.patch +++ b/patches/server/0437-Improve-Arrow-API.patch |