From 78a003ee897f74c5e888d5dd152a5f85e49b8b8d Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Thu, 21 Sep 2023 19:31:59 -0700 Subject: [PATCH] work and compile errors --- patches/api/0010-Timings-v2.patch | 9 ++- .../0012-Player-affects-spawning-API.patch | 2 +- patches/api/0017-Add-view-distance-API.patch | 2 +- ...cord-chat-API-from-spigot-subclasses.patch | 2 +- .../0025-Player-Tab-List-and-Title-APIs.patch | 2 +- .../api/0027-Complete-resource-pack-API.patch | 2 +- ...0046-Add-String-based-Action-Bar-API.patch | 2 +- patches/api/0055-Fix-upstream-javadocs.patch | 2 +- ...nt-protocol-version-and-virtual-host.patch | 2 +- ...0-Ability-to-apply-mending-to-XP-API.patch | 2 +- .../0091-Player.setPlayerProfile-API.patch | 2 +- ...4-Add-openSign-method-to-HumanEntity.patch | 2 +- ...95-Add-Ban-Methods-to-Player-Objects.patch | 2 +- ...e-attack-cooldown-methods-for-Player.patch | 2 +- .../0189-Add-Player-Client-Options-API.patch | 2 +- patches/api/0206-Brand-support.patch | 4 +- .../api/0217-Player-elytra-boost-API.patch | 2 +- patches/api/0244-Add-sendOpLevel-API.patch | 2 +- .../api/0292-Add-PlayerKickEvent-causes.patch | 2 +- patches/api/0340-Multi-Block-Change-API.patch | 2 +- patches/api/0369-More-Teleport-API.patch | 4 +- ...stom-Chat-Completion-Suggestions-API.patch | 2 +- .../0381-Elder-Guardian-appearance-API.patch | 4 +- .../0389-Add-Player-Warden-Warning-API.patch | 4 +- patches/api/0397-fix-Instruments.patch | 2 +- .../0399-Add-Sneaking-API-for-Entities.patch | 2 +- patches/api/0402-Flying-Fall-Damage-API.patch | 2 +- patches/api/0405-Win-Screen-API.patch | 2 +- patches/api/0420-Fix-BanList-API.patch | 2 +- .../api/0428-Add-Listing-API-for-Player.patch | 2 +- patches/server/0002-Remap-fixes.patch | 15 ++++ patches/server/0010-Adventure.patch | 4 +- patches/server/0014-Timings-v2.patch | 4 +- .../0029-Player-affects-spawning-API.patch | 2 +- ...031-Only-refresh-abilities-if-needed.patch | 2 +- ...44-Implement-PlayerLocaleChangeEvent.patch | 2 +- ...051-Improve-Player-chat-API-handling.patch | 2 +- .../0055-Player-Tab-List-and-Title-APIs.patch | 2 +- ...ble-inter-world-teleportation-safety.patch | 2 +- .../0064-Complete-resource-pack-API.patch | 4 +- ...th-absorb-values-and-repair-bad-data.patch | 2 +- .../0120-String-based-Action-Bar-API.patch | 2 +- .../server/0140-Basic-PlayerProfile-API.patch | 75 +++++++------------ .../server/0142-Profile-Lookup-Events.patch | 34 ++++----- ...nt-protocol-version-and-virtual-host.patch | 2 +- ...8-Ability-to-apply-mending-to-XP-API.patch | 2 +- .../0172-Fill-Profile-Property-Events.patch | 60 ++++++++------- ...PlayerAdvancementCriterionGrantEvent.patch | 4 +- .../0181-Player.setPlayerProfile-API.patch | 4 +- ...86-Flag-to-disable-the-channel-limit.patch | 2 +- .../0215-InventoryCloseEvent-Reason-API.patch | 2 +- ...e-attack-cooldown-methods-for-Player.patch | 2 +- .../server/0252-Improve-death-events.patch | 2 +- ...-replace-OfflinePlayer-getLastPlayed.patch | 2 +- ...-remove-from-being-called-on-Players.patch | 2 +- ...rove-exact-choice-recipe-ingredients.patch | 4 +- ...ize-call-to-getFluid-for-explosions.patch} | 4 +- ...-in-stack-not-having-effects-when-d.patch} | 12 +-- .../0334-Entity-Activation-Range-2.0.patch} | 58 +++++++------- ...ement-alternative-item-despawn-rate.patch} | 0 .../0336-Lag-compensate-eating.patch} | 12 +-- .../0337-Tracking-Range-Improvements.patch} | 4 +- ...-items-vanishing-through-end-portal.patch} | 4 +- ...ment-optional-per-player-mob-spawns.patch} | 39 +++++----- ...et-gravity-in-void.-Fixes-MC-167279.patch} | 0 ...41-Improve-Block-breakNaturally-API.patch} | 0 ...-getChunkAt-calls-for-loaded-chunks.patch} | 8 +- ...0343-Add-debug-for-sync-chunk-loads.patch} | 32 +++++--- .../0344-Improve-java-version-check.patch} | 2 +- .../0345-Add-ThrownEggHatchEvent.patch} | 0 .../0346-Entity-Jump-API.patch} | 18 ++--- ...-to-nerf-pigmen-from-nether-portals.patch} | 6 +- .../0348-Make-the-GUI-graph-fancier.patch} | 0 ...49-add-hand-to-BlockMultiPlaceEvent.patch} | 4 +- ...ipwire-hook-placement-before-update.patch} | 0 ...o-allow-iron-golems-to-spawn-in-air.patch} | 0 ...chance-of-villager-zombie-infection.patch} | 4 +- .../0353-Optimise-Chunk-getFluid.patch} | 6 +- ...rbose-world-setting-to-false-by-def.patch} | 0 ...Add-tick-times-API-and-mspt-command.patch} | 14 ++-- ...56-Expose-MinecraftServer-isRunning.patch} | 4 +- ...dd-Raw-Byte-ItemStack-Serialization.patch} | 4 +- ...pawn-settings-and-per-player-option.patch} | 4 +- ...nections-shouldn-t-hold-up-shutdown.patch} | 2 +- ...ow-bees-to-load-chunks-for-beehives.patch} | 0 ...PlayerChunkMap-adds-crashing-server.patch} | 10 +-- .../0362-Don-t-tick-dead-players.patch} | 4 +- ...-Player-s-shouldn-t-be-able-to-move.patch} | 4 +- ...timize-Collision-to-not-load-chunks.patch} | 12 +-- ...ove-existing-players-to-world-spawn.patch} | 14 ++-- ...alSelector-Goal.Flag-Set-operations.patch} | 0 ...rializing-mismatching-chunk-coordina.patch | 0 .../{server => skipped}/0343-Anti-Xray.patch | 0 93 files changed, 305 insertions(+), 295 deletions(-) rename patches/{unapplied/server/0334-Optimize-call-to-getFluid-for-explosions.patch => server/0332-Optimize-call-to-getFluid-for-explosions.patch} (87%) rename patches/{unapplied/server/0335-Fix-last-firework-in-stack-not-having-effects-when-d.patch => server/0333-Fix-last-firework-in-stack-not-having-effects-when-d.patch} (64%) rename patches/{unapplied/server/0337-Entity-Activation-Range-2.0.patch => server/0334-Entity-Activation-Range-2.0.patch} (95%) rename patches/{unapplied/server/0338-Implement-alternative-item-despawn-rate.patch => server/0335-Implement-alternative-item-despawn-rate.patch} (100%) rename patches/{unapplied/server/0339-Lag-compensate-eating.patch => server/0336-Lag-compensate-eating.patch} (88%) rename patches/{unapplied/server/0340-Tracking-Range-Improvements.patch => server/0337-Tracking-Range-Improvements.patch} (95%) rename patches/{unapplied/server/0341-Fix-items-vanishing-through-end-portal.patch => server/0338-Fix-items-vanishing-through-end-portal.patch} (89%) rename patches/{unapplied/server/0342-implement-optional-per-player-mob-spawns.patch => server/0339-implement-optional-per-player-mob-spawns.patch} (95%) rename patches/{unapplied/server/0344-Bees-get-gravity-in-void.-Fixes-MC-167279.patch => server/0340-Bees-get-gravity-in-void.-Fixes-MC-167279.patch} (100%) rename patches/{unapplied/server/0345-Improve-Block-breakNaturally-API.patch => server/0341-Improve-Block-breakNaturally-API.patch} (100%) rename patches/{unapplied/server/0346-Optimise-getChunkAt-calls-for-loaded-chunks.patch => server/0342-Optimise-getChunkAt-calls-for-loaded-chunks.patch} (89%) rename patches/{unapplied/server/0347-Add-debug-for-sync-chunk-loads.patch => server/0343-Add-debug-for-sync-chunk-loads.patch} (90%) rename patches/{unapplied/server/0348-Improve-java-version-check.patch => server/0344-Improve-java-version-check.patch} (96%) rename patches/{unapplied/server/0349-Add-ThrownEggHatchEvent.patch => server/0345-Add-ThrownEggHatchEvent.patch} (100%) rename patches/{unapplied/server/0350-Entity-Jump-API.patch => server/0346-Entity-Jump-API.patch} (84%) rename patches/{unapplied/server/0351-Add-option-to-nerf-pigmen-from-nether-portals.patch => server/0347-Add-option-to-nerf-pigmen-from-nether-portals.patch} (91%) rename patches/{unapplied/server/0352-Make-the-GUI-graph-fancier.patch => server/0348-Make-the-GUI-graph-fancier.patch} (100%) rename patches/{unapplied/server/0353-add-hand-to-BlockMultiPlaceEvent.patch => server/0349-add-hand-to-BlockMultiPlaceEvent.patch} (89%) rename patches/{unapplied/server/0354-Validate-tripwire-hook-placement-before-update.patch => server/0350-Validate-tripwire-hook-placement-before-update.patch} (100%) rename patches/{unapplied/server/0355-Add-option-to-allow-iron-golems-to-spawn-in-air.patch => server/0351-Add-option-to-allow-iron-golems-to-spawn-in-air.patch} (100%) rename patches/{unapplied/server/0356-Configurable-chance-of-villager-zombie-infection.patch => server/0352-Configurable-chance-of-villager-zombie-infection.patch} (93%) rename patches/{unapplied/server/0357-Optimise-Chunk-getFluid.patch => server/0353-Optimise-Chunk-getFluid.patch} (92%) rename patches/{unapplied/server/0358-Set-spigots-verbose-world-setting-to-false-by-def.patch => server/0354-Set-spigots-verbose-world-setting-to-false-by-def.patch} (100%) rename patches/{unapplied/server/0359-Add-tick-times-API-and-mspt-command.patch => server/0355-Add-tick-times-API-and-mspt-command.patch} (93%) rename patches/{unapplied/server/0360-Expose-MinecraftServer-isRunning.patch => server/0356-Expose-MinecraftServer-isRunning.patch} (83%) rename patches/{unapplied/server/0361-Add-Raw-Byte-ItemStack-Serialization.patch => server/0357-Add-Raw-Byte-ItemStack-Serialization.patch} (94%) rename patches/{unapplied/server/0362-Pillager-patrol-spawn-settings-and-per-player-option.patch => server/0358-Pillager-patrol-spawn-settings-and-per-player-option.patch} (96%) rename patches/{unapplied/server/0363-Remote-Connections-shouldn-t-hold-up-shutdown.patch => server/0359-Remote-Connections-shouldn-t-hold-up-shutdown.patch} (95%) rename patches/{unapplied/server/0364-Do-not-allow-bees-to-load-chunks-for-beehives.patch => server/0360-Do-not-allow-bees-to-load-chunks-for-beehives.patch} (100%) rename patches/{unapplied/server/0365-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch => server/0361-Prevent-Double-PlayerChunkMap-adds-crashing-server.patch} (87%) rename patches/{unapplied/server/0366-Don-t-tick-dead-players.patch => server/0362-Don-t-tick-dead-players.patch} (85%) rename patches/{unapplied/server/0367-Dead-Player-s-shouldn-t-be-able-to-move.patch => server/0363-Dead-Player-s-shouldn-t-be-able-to-move.patch} (84%) rename patches/{unapplied/server/0368-Optimize-Collision-to-not-load-chunks.patch => server/0364-Optimize-Collision-to-not-load-chunks.patch} (94%) rename patches/{unapplied/server/0369-Don-t-move-existing-players-to-world-spawn.patch => server/0365-Don-t-move-existing-players-to-world-spawn.patch} (81%) rename patches/{unapplied/server/0370-Optimize-GoalSelector-Goal.Flag-Set-operations.patch => server/0366-Optimize-GoalSelector-Goal.Flag-Set-operations.patch} (100%) rename patches/unapplied/{server => skipped}/0336-Guard-against-serializing-mismatching-chunk-coordina.patch (100%) rename patches/unapplied/{server => skipped}/0343-Anti-Xray.patch (100%) diff --git a/patches/api/0010-Timings-v2.patch b/patches/api/0010-Timings-v2.patch index 3a7fbd82ea..8ca1f76a25 100644 --- a/patches/api/0010-Timings-v2.patch +++ b/patches/api/0010-Timings-v2.patch @@ -3455,10 +3455,10 @@ index 516d7fc7812aac343782861d0d567f54aa578c2a..00000000000000000000000000000000 - // Spigot end -} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index e5a54a2f35d83f8c7a5f2b6512b86481aa7f9f51..5ae3750e3d88b1c60c982b7108ff6b820375ab99 100644 +index e5a54a2f35d83f8c7a5f2b6512b86481aa7f9f51..c54d478035f7782074c00f870d41da8283fec538 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2346,7 +2346,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2346,7 +2346,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM @Deprecated // Paper public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @Nullable java.util.UUID sender, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) { throw new UnsupportedOperationException("Not supported yet."); @@ -3466,6 +3466,11 @@ index e5a54a2f35d83f8c7a5f2b6512b86481aa7f9f51..5ae3750e3d88b1c60c982b7108ff6b82 + } + + // Paper start ++ /** ++ * @return the player's ping ++ * @deprecated use {@link Player#getPing()} ++ */ ++ @Deprecated + public int getPing() { + throw new UnsupportedOperationException( "Not supported yet." ); } diff --git a/patches/api/0012-Player-affects-spawning-API.patch b/patches/api/0012-Player-affects-spawning-API.patch index 2337269533..b089e1d2ca 100644 --- a/patches/api/0012-Player-affects-spawning-API.patch +++ b/patches/api/0012-Player-affects-spawning-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player affects spawning API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 5ae3750e3d88b1c60c982b7108ff6b820375ab99..e48c12b84d00169f17bc2ac3aca5ffa74c8b7c43 100644 +index c54d478035f7782074c00f870d41da8283fec538..f21183cd5491b09e4543839252aed1ea10ddf849 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -2198,6 +2198,22 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0017-Add-view-distance-API.patch b/patches/api/0017-Add-view-distance-API.patch index 849fae9042..6fe8772dcf 100644 --- a/patches/api/0017-Add-view-distance-API.patch +++ b/patches/api/0017-Add-view-distance-API.patch @@ -75,7 +75,7 @@ index 5357291ff0f2f20bd87ab9f6e57f6a4f6ff65226..887aa6217583d224d66f6d238ac269c2 public class Spigot { diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index e48c12b84d00169f17bc2ac3aca5ffa74c8b7c43..c8347316f6c54916e07a6f7086b99775c4d2c802 100644 +index f21183cd5491b09e4543839252aed1ea10ddf849..f9b9e0269b3a9402c5be1c1c2007956415ff708a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -2212,6 +2212,78 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch index a6dae18ce6..c07b8e382b 100644 --- a/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch +++ b/patches/api/0021-Graduate-bungeecord-chat-API-from-spigot-subclasses.patch @@ -76,7 +76,7 @@ index 124e88e512d24b6ff7ace3cf7d5a6adf4c2bb40d..ccc825a2ea43bb84a5a08dff00c4d8ec * Gets the name of the update folder. The update folder is used to safely * update plugins at the right moment on a plugin load. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index c8347316f6c54916e07a6f7086b99775c4d2c802..ad516f99f7f5345c567acbb9dfa54bad0896f4a0 100644 +index f9b9e0269b3a9402c5be1c1c2007956415ff708a..284bb156c4430a9a8afce0a7dffa96722b8c29cc 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1041,6 +1041,42 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0025-Player-Tab-List-and-Title-APIs.patch b/patches/api/0025-Player-Tab-List-and-Title-APIs.patch index 017a0f21dc..c95a880263 100644 --- a/patches/api/0025-Player-Tab-List-and-Title-APIs.patch +++ b/patches/api/0025-Player-Tab-List-and-Title-APIs.patch @@ -432,7 +432,7 @@ index 0000000000000000000000000000000000000000..9e90c3df567a65b48a0b9341f784eb90 + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index ad516f99f7f5345c567acbb9dfa54bad0896f4a0..02febdfdd45ee79b659fed23a54886371feded0f 100644 +index 284bb156c4430a9a8afce0a7dffa96722b8c29cc..d5746291dd0cfc32591482945040e992ad1efb8e 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1075,6 +1075,131 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0027-Complete-resource-pack-API.patch b/patches/api/0027-Complete-resource-pack-API.patch index 7b619a1dd1..670123b021 100644 --- a/patches/api/0027-Complete-resource-pack-API.patch +++ b/patches/api/0027-Complete-resource-pack-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Complete resource pack API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 02febdfdd45ee79b659fed23a54886371feded0f..a63a4053c8a17284cd302db1fb6b6b673310ae44 100644 +index d5746291dd0cfc32591482945040e992ad1efb8e..e12d28143a213abdc0552a15e82cacecc414ca26 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1655,7 +1655,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0046-Add-String-based-Action-Bar-API.patch b/patches/api/0046-Add-String-based-Action-Bar-API.patch index 2c1e50fcd0..50bab710de 100644 --- a/patches/api/0046-Add-String-based-Action-Bar-API.patch +++ b/patches/api/0046-Add-String-based-Action-Bar-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add String based Action Bar API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index a63a4053c8a17284cd302db1fb6b6b673310ae44..f9ff1d74d58e50a8e46698e4704fe3c32390af8a 100644 +index e12d28143a213abdc0552a15e82cacecc414ca26..3954f40b23536fec495585a8b14e82d092d62e39 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1042,6 +1042,39 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0055-Fix-upstream-javadocs.patch b/patches/api/0055-Fix-upstream-javadocs.patch index 3d53b389c4..9dfe88faac 100644 --- a/patches/api/0055-Fix-upstream-javadocs.patch +++ b/patches/api/0055-Fix-upstream-javadocs.patch @@ -405,7 +405,7 @@ index ae9eaaa8e38e1d9dfc459926c7fc51ddb89de84a..b2ec535bb1b0ce0c114ddd7638b90218 @Override public int getConversionTime(); diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index f9ff1d74d58e50a8e46698e4704fe3c32390af8a..7c97450f9fe2eebe03a1c30eb080d3d3624eefb8 100644 +index 3954f40b23536fec495585a8b14e82d092d62e39..264c6bdeb2f1f0d937e4356d761a3264a1c4d58a 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -431,15 +431,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch b/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch index 292c3441ac..225a9fa26a 100644 --- a/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch +++ b/patches/api/0076-Expose-client-protocol-version-and-virtual-host.patch @@ -57,7 +57,7 @@ index 0000000000000000000000000000000000000000..7b2af1bd72dfbcf4e962a982940fc49b + +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 7c97450f9fe2eebe03a1c30eb080d3d3624eefb8..f69d918381f706c21a55e2604564714cb74cba54 100644 +index 264c6bdeb2f1f0d937e4356d761a3264a1c4d58a..f9239eae50b86f54f0cd8c604d2ba9468fc5f33b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -51,7 +51,7 @@ import org.jetbrains.annotations.Nullable; diff --git a/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch b/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch index 03d373a706..74f4182cfc 100644 --- a/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/api/0080-Ability-to-apply-mending-to-XP-API.patch @@ -10,7 +10,7 @@ of giving the player experience points. Both an API To standalone mend, and apply mending logic to .giveExp has been added. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index f69d918381f706c21a55e2604564714cb74cba54..90e7a703934697875edc3c3ca892cc51c598fac1 100644 +index f9239eae50b86f54f0cd8c604d2ba9468fc5f33b..9dca8fc727b727063d9ca50fdd8f6452173a5cd4 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1368,6 +1368,15 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0091-Player.setPlayerProfile-API.patch b/patches/api/0091-Player.setPlayerProfile-API.patch index 8bbaf6781f..b5cb085b05 100644 --- a/patches/api/0091-Player.setPlayerProfile-API.patch +++ b/patches/api/0091-Player.setPlayerProfile-API.patch @@ -93,7 +93,7 @@ index 016cee903c7179baf711984503d1d0793d40c5c5..064edd612885b2ea4b35001a864503b5 /** diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 90e7a703934697875edc3c3ca892cc51c598fac1..e7ea7a93f7377c25c2786612f1c6123682e8a0da 100644 +index 9dca8fc727b727063d9ca50fdd8f6452173a5cd4..ccd80734cf5641455fd9d9b63238739987e225da 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -2678,6 +2678,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0094-Add-openSign-method-to-HumanEntity.patch b/patches/api/0094-Add-openSign-method-to-HumanEntity.patch index d2fe9edc0c..d97f715ca3 100644 --- a/patches/api/0094-Add-openSign-method-to-HumanEntity.patch +++ b/patches/api/0094-Add-openSign-method-to-HumanEntity.patch @@ -36,7 +36,7 @@ index abdca9fe5acc90f167219eb769ece66c35682bb1..b3aa3dc6aa5afbc36cc86741b4cba56f /** * Make the entity drop the item in their hand. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index e7ea7a93f7377c25c2786612f1c6123682e8a0da..a8213398be954a6cebef8658e62600e0fffe1759 100644 +index ccd80734cf5641455fd9d9b63238739987e225da..bca4794a67c369b0bb882e56f489ed952488b2c5 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -2523,10 +2523,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch b/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch index 384b98675c..cd13623b8c 100644 --- a/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch +++ b/patches/api/0095-Add-Ban-Methods-to-Player-Objects.patch @@ -74,7 +74,7 @@ index 12349910297a75c00e64f6ccc7981aeeeb43ecd3..8f2f3e0ac5266f571b62a754921422bb /** * Adds this user to the {@link ProfileBanList}. If a previous ban exists, this will diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index a8213398be954a6cebef8658e62600e0fffe1759..01555373317beafc506f1c7559f7107cd738ac4f 100644 +index bca4794a67c369b0bb882e56f489ed952488b2c5..a851ec4d350ce442eb01385d21ca75e695cf09d2 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1042,6 +1042,162 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch b/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch index 297e27ca41..1d7bc22a46 100644 --- a/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/api/0144-Expose-attack-cooldown-methods-for-Player.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose attack cooldown methods for Player diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 01555373317beafc506f1c7559f7107cd738ac4f..1329e5784bb9941ae5bc35205b057c8e864aa09e 100644 +index a851ec4d350ce442eb01385d21ca75e695cf09d2..9954fc11b2c2fe56c194d7d3ce878a343a9b2429 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -2854,6 +2854,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0189-Add-Player-Client-Options-API.patch b/patches/api/0189-Add-Player-Client-Options-API.patch index 23d1d53ee8..8327d8a1ea 100644 --- a/patches/api/0189-Add-Player-Client-Options-API.patch +++ b/patches/api/0189-Add-Player-Client-Options-API.patch @@ -229,7 +229,7 @@ index 0000000000000000000000000000000000000000..cf67dc7d465223710adbf2b798109f52 + } +} diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 1329e5784bb9941ae5bc35205b057c8e864aa09e..1dab97ff89d30f018819dc054241f188319603ba 100644 +index 9954fc11b2c2fe56c194d7d3ce878a343a9b2429..393b3be157d2111d7209b7a94515c93a931a1ec9 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -2874,6 +2874,12 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0206-Brand-support.patch b/patches/api/0206-Brand-support.patch index 1e755c3e02..947a44a3ef 100644 --- a/patches/api/0206-Brand-support.patch +++ b/patches/api/0206-Brand-support.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Brand support diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 1dab97ff89d30f018819dc054241f188319603ba..1ede954027c4e81b17948ac4fba272616f0978a6 100644 +index 393b3be157d2111d7209b7a94515c93a931a1ec9..81e8bfbe4380090830591274025a026de740fd05 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -2983,6 +2983,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -2988,6 +2988,16 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM // Paper end } diff --git a/patches/api/0217-Player-elytra-boost-API.patch b/patches/api/0217-Player-elytra-boost-API.patch index a75f49ed0f..1e1555551d 100644 --- a/patches/api/0217-Player-elytra-boost-API.patch +++ b/patches/api/0217-Player-elytra-boost-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player elytra boost API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 1ede954027c4e81b17948ac4fba272616f0978a6..1796749b58ab23b66905967f0af650c265e3ee27 100644 +index 81e8bfbe4380090830591274025a026de740fd05..e9df321980d0744a50edf2d5f978340013588803 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -2880,6 +2880,19 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0244-Add-sendOpLevel-API.patch b/patches/api/0244-Add-sendOpLevel-API.patch index 11d802f7ca..bc8064f6cd 100644 --- a/patches/api/0244-Add-sendOpLevel-API.patch +++ b/patches/api/0244-Add-sendOpLevel-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add sendOpLevel API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 1796749b58ab23b66905967f0af650c265e3ee27..156a3887628a51e099976842bc1f8ea81d7e2d9f 100644 +index e9df321980d0744a50edf2d5f978340013588803..8a6cab8df1f1947bbdc4d11ba24b982a8483b2cc 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -2893,6 +2893,17 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0292-Add-PlayerKickEvent-causes.patch b/patches/api/0292-Add-PlayerKickEvent-causes.patch index f2612640d7..d168614b7b 100644 --- a/patches/api/0292-Add-PlayerKickEvent-causes.patch +++ b/patches/api/0292-Add-PlayerKickEvent-causes.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerKickEvent causes diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 156a3887628a51e099976842bc1f8ea81d7e2d9f..32b4c674e13aed411a9529bbf601c4aee0b68f12 100644 +index 8a6cab8df1f1947bbdc4d11ba24b982a8483b2cc..549adf75eeb0d014c5baf7c111f4ec1468339bd5 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -274,6 +274,14 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0340-Multi-Block-Change-API.patch b/patches/api/0340-Multi-Block-Change-API.patch index 07ef3133af..f8d6f396aa 100644 --- a/patches/api/0340-Multi-Block-Change-API.patch +++ b/patches/api/0340-Multi-Block-Change-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Multi Block Change API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 32b4c674e13aed411a9529bbf601c4aee0b68f12..a53805af92dab72c8e43c1e215893fb96b2150f6 100644 +index 549adf75eeb0d014c5baf7c111f4ec1468339bd5..fe1c58a20de699d869a3f86295c8446991cce399 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -790,6 +790,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0369-More-Teleport-API.patch b/patches/api/0369-More-Teleport-API.patch index 552b8e2e3d..e736573b03 100644 --- a/patches/api/0369-More-Teleport-API.patch +++ b/patches/api/0369-More-Teleport-API.patch @@ -165,10 +165,10 @@ index ab0ceaba9ddcbe20a8b8a1fc3ed19cb3c64ecd3d..97f0bc6573c8ba09de77061b6312b91c * Teleports this entity to the given location. If this entity is riding a * vehicle, it will be dismounted prior to teleportation. diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index a53805af92dab72c8e43c1e215893fb96b2150f6..f11e776c82d8b79281f723c97c398e8e10f2f98b 100644 +index fe1c58a20de699d869a3f86295c8446991cce399..6a53097f308955dc063daf96aa367c2cb2945ca1 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3048,6 +3048,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3053,6 +3053,49 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM String getClientBrandName(); // Paper end diff --git a/patches/api/0371-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0371-Custom-Chat-Completion-Suggestions-API.patch index 952e164f4b..6855546ed2 100644 --- a/patches/api/0371-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/api/0371-Custom-Chat-Completion-Suggestions-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Custom Chat Completion Suggestions API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index f11e776c82d8b79281f723c97c398e8e10f2f98b..7cef68ae3a8ae0f71b8c5e63f0eca175a6383946 100644 +index 6a53097f308955dc063daf96aa367c2cb2945ca1..470d47d6ffaf04805439d043fbb04bf2342d1db8 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -2935,6 +2935,29 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0381-Elder-Guardian-appearance-API.patch b/patches/api/0381-Elder-Guardian-appearance-API.patch index ca804dda3a..254bf53ceb 100644 --- a/patches/api/0381-Elder-Guardian-appearance-API.patch +++ b/patches/api/0381-Elder-Guardian-appearance-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 7cef68ae3a8ae0f71b8c5e63f0eca175a6383946..85bce5830b47a3e915450c0f41df7ccbdd6e50e9 100644 +index 470d47d6ffaf04805439d043fbb04bf2342d1db8..93a8db0a1f7fa0a06315a9ec9f58c62c6faa4fb8 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3114,6 +3114,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3119,6 +3119,24 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM void lookAt(@NotNull org.bukkit.entity.Entity entity, @NotNull io.papermc.paper.entity.LookAnchor playerAnchor, @NotNull io.papermc.paper.entity.LookAnchor entityAnchor); // Paper end - Teleport API diff --git a/patches/api/0389-Add-Player-Warden-Warning-API.patch b/patches/api/0389-Add-Player-Warden-Warning-API.patch index 02722afe2b..c230bcf1dc 100644 --- a/patches/api/0389-Add-Player-Warden-Warning-API.patch +++ b/patches/api/0389-Add-Player-Warden-Warning-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add Player Warden Warning API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 85bce5830b47a3e915450c0f41df7ccbdd6e50e9..8a7171f0b05d1a9c583ea9cef107c2c0e67aad67 100644 +index 93a8db0a1f7fa0a06315a9ec9f58c62c6faa4fb8..4d1d81ddc7638e958f9cd1b10fd26227efc1578d 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java -@@ -3130,6 +3130,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM +@@ -3135,6 +3135,59 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM * @param silent whether sound should be silenced */ void showElderGuardian(boolean silent); diff --git a/patches/api/0397-fix-Instruments.patch b/patches/api/0397-fix-Instruments.patch index 24fa6c979c..562e9ea3a8 100644 --- a/patches/api/0397-fix-Instruments.patch +++ b/patches/api/0397-fix-Instruments.patch @@ -98,7 +98,7 @@ index de976be7132d05506fde7a839cac3954b0dd8da4..642feb8b4578e6dbd2bf78d859283d20 public static Instrument getByType(final byte type) { return BY_DATA.get(type); diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 8a7171f0b05d1a9c583ea9cef107c2c0e67aad67..1e53491b82e465d08acf02529f73e2e83ece7d96 100644 +index 4d1d81ddc7638e958f9cd1b10fd26227efc1578d..fdb0b8b81e53c85c865c4a3a895719f5afbffd17 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -511,9 +511,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0399-Add-Sneaking-API-for-Entities.patch b/patches/api/0399-Add-Sneaking-API-for-Entities.patch index 44756f1959..6bda4587c7 100644 --- a/patches/api/0399-Add-Sneaking-API-for-Entities.patch +++ b/patches/api/0399-Add-Sneaking-API-for-Entities.patch @@ -35,7 +35,7 @@ index 3f3ea5bb6b3ea6f55b5cd699f1c01ac159619add..a2a423d4e4c2702ba5967223cab0432d * Get the category of spawn to which this entity belongs. * diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 1e53491b82e465d08acf02529f73e2e83ece7d96..4c52aa04487e7d9b6bf5ae7e87d40d14fab9f25d 100644 +index fdb0b8b81e53c85c865c4a3a895719f5afbffd17..2e4b2ad1907a2d5f4462c5fd2d1482f2bb623d3b 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -414,6 +414,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0402-Flying-Fall-Damage-API.patch b/patches/api/0402-Flying-Fall-Damage-API.patch index 865e94b4aa..cabed05fef 100644 --- a/patches/api/0402-Flying-Fall-Damage-API.patch +++ b/patches/api/0402-Flying-Fall-Damage-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Flying Fall Damage API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 4c52aa04487e7d9b6bf5ae7e87d40d14fab9f25d..ce6e913b7bec56d2c64d50fc2848be748f023de5 100644 +index 2e4b2ad1907a2d5f4462c5fd2d1482f2bb623d3b..4db6e9802105eba76d6f59b74873bea9502d2c7e 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1705,6 +1705,23 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0405-Win-Screen-API.patch b/patches/api/0405-Win-Screen-API.patch index 9b70b0da1b..6eef30f0ef 100644 --- a/patches/api/0405-Win-Screen-API.patch +++ b/patches/api/0405-Win-Screen-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Win Screen API diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index ce6e913b7bec56d2c64d50fc2848be748f023de5..41e900329090706f2999ae2f67e763b03190acdf 100644 +index 4db6e9802105eba76d6f59b74873bea9502d2c7e..62400bd5d9469f9622139d2c4a6e2e5a0a83f808 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1072,6 +1072,47 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0420-Fix-BanList-API.patch b/patches/api/0420-Fix-BanList-API.patch index 39837fa256..f585bdbf82 100644 --- a/patches/api/0420-Fix-BanList-API.patch +++ b/patches/api/0420-Fix-BanList-API.patch @@ -130,7 +130,7 @@ index e805e629cede1c4c0674282c930cb67852718c3e..5248cf08ef83c7304dd76c42a2f646bb + // Paper end } diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 41e900329090706f2999ae2f67e763b03190acdf..621cb3d41a2ff403ad33fc4bcb9f5e547dc1c46a 100644 +index 62400bd5d9469f9622139d2c4a6e2e5a0a83f808..c85cfcefdd74b908cfec9a473f4b1d1af63082f4 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -298,7 +298,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/api/0428-Add-Listing-API-for-Player.patch b/patches/api/0428-Add-Listing-API-for-Player.patch index 93257994e9..8ff1c0000d 100644 --- a/patches/api/0428-Add-Listing-API-for-Player.patch +++ b/patches/api/0428-Add-Listing-API-for-Player.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add Listing API for Player diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java -index 621cb3d41a2ff403ad33fc4bcb9f5e547dc1c46a..f59cbc92334c7b7b20e593a58232fb3c4434f12b 100644 +index c85cfcefdd74b908cfec9a473f4b1d1af63082f4..5c7a73ea74efe256c695080ba92b8cf698e4cd86 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -1841,6 +1841,32 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM diff --git a/patches/server/0002-Remap-fixes.patch b/patches/server/0002-Remap-fixes.patch index 2e453ea204..803207ad07 100644 --- a/patches/server/0002-Remap-fixes.patch +++ b/patches/server/0002-Remap-fixes.patch @@ -73,6 +73,21 @@ index 7918deb55e6ed2e16eba501ab380a456270d9512..a81475d0cd3c5b75b4abe0d1a0138937 return new Object2ObjectLinkedOpenHashMap<>(); // CraftBukkit }); ResourceLocation minecraftkey = recipeholder.id(); +diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java b/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java +index fce67663f0a954d9f184c04bf96e23e6fb2ac5eb..c21dd258d749c28e509c86a70c1f85712aeeda9e 100644 +--- a/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java ++++ b/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java +@@ -250,8 +250,8 @@ public class LootTable { + + public static class Builder implements FunctionUserBuilder { + +- private final Builder pools = ImmutableList.builder(); +- private final Builder functions = ImmutableList.builder(); ++ private final ImmutableList.Builder pools = ImmutableList.builder(); ++ private final ImmutableList.Builder functions = ImmutableList.builder(); + private LootContextParamSet paramSet; + private Optional randomSequence; + diff --git a/src/test/java/org/bukkit/DyeColorsTest.java b/src/test/java/org/bukkit/DyeColorsTest.java index ad52c3fc6210939a39ef77a382c640a24ee44838..6b7dd01778f0a5d3a96d2d04af4b525d17efbfba 100644 --- a/src/test/java/org/bukkit/DyeColorsTest.java diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index 10336d2d21..390ef833e5 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -3625,7 +3625,7 @@ index 10fa80df3ae2406f34af669f89d087b15ad1d71b..66fb6aeb49b7e93d2a4d9b5ce7f1a7d6 public boolean isOp() { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0c4371fba7e770050182b3cff429bdbfe778e8f6..0a945ed432b431ec6c714cccf45f4e09756c7b1a 100644 +index 0c4371fba7e770050182b3cff429bdbfe778e8f6..5b3749feed210da7f62deab5672a40ec396eedc8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -296,14 +296,39 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -3824,7 +3824,7 @@ index 0c4371fba7e770050182b3cff429bdbfe778e8f6..0a945ed432b431ec6c714cccf45f4e09 + } else { + hash = ""; + } -+ this.getHandle().sendTexturePack(url, hash, force, io.papermc.paper.adventure.PaperAdventure.asVanilla(prompt)); ++ this.getHandle().connection.send(new ClientboundResourcePackPacket(url, hash, force, io.papermc.paper.adventure.PaperAdventure.asVanilla(prompt))); + } + // Paper end + diff --git a/patches/server/0014-Timings-v2.patch b/patches/server/0014-Timings-v2.patch index 1e2c5a0d70..4956800193 100644 --- a/patches/server/0014-Timings-v2.patch +++ b/patches/server/0014-Timings-v2.patch @@ -1850,7 +1850,7 @@ index b0ffa23faf62629043dfd613315eaf9c5fcc2cfe..00000000000000000000000000000000 - } -} diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0a945ed432b431ec6c714cccf45f4e09756c7b1a..30e77f21bfc017a6a715ea1ff0ffddea0b260ac5 100644 +index 5b3749feed210da7f62deab5672a40ec396eedc8..aa8ec0a92c8bca78088a2b30f571587823dd79bb 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2566,6 +2566,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1862,7 +1862,7 @@ index 0a945ed432b431ec6c714cccf45f4e09756c7b1a..30e77f21bfc017a6a715ea1ff0ffddea + @Override + public int getPing() + { -+ return getHandle().latency; ++ return CraftPlayer.this.getPing(); + } + // Paper end }; diff --git a/patches/server/0029-Player-affects-spawning-API.patch b/patches/server/0029-Player-affects-spawning-API.patch index 6c458c87ed..76122bbe7e 100644 --- a/patches/server/0029-Player-affects-spawning-API.patch +++ b/patches/server/0029-Player-affects-spawning-API.patch @@ -137,7 +137,7 @@ index b6a3c75b84d9f768afee33aa0f226207b307c1c0..a583599e3b49d5ded871252646904a80 for(Player player : this.players()) { if (EntitySelector.NO_SPECTATORS.test(player) && EntitySelector.LIVING_ENTITY_STILL_ALIVE.test(player)) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 30e77f21bfc017a6a715ea1ff0ffddea0b260ac5..be014733d23c0b03fc8b13792caaaf96ac0d33e6 100644 +index aa8ec0a92c8bca78088a2b30f571587823dd79bb..19688fa3049603f63a306e5c48c45c80b0030f69 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2205,6 +2205,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0031-Only-refresh-abilities-if-needed.patch b/patches/server/0031-Only-refresh-abilities-if-needed.patch index 390a2100dd..42da1f2bc0 100644 --- a/patches/server/0031-Only-refresh-abilities-if-needed.patch +++ b/patches/server/0031-Only-refresh-abilities-if-needed.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Only refresh abilities if needed diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index be014733d23c0b03fc8b13792caaaf96ac0d33e6..a6eca427d04cfbdfb8af277a72e5866e7c14d30f 100644 +index 19688fa3049603f63a306e5c48c45c80b0030f69..14667b660e756da2ae838efe979e4c96146625db 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1878,12 +1878,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0044-Implement-PlayerLocaleChangeEvent.patch b/patches/server/0044-Implement-PlayerLocaleChangeEvent.patch index a6868bc957..48b0a31eda 100644 --- a/patches/server/0044-Implement-PlayerLocaleChangeEvent.patch +++ b/patches/server/0044-Implement-PlayerLocaleChangeEvent.patch @@ -39,7 +39,7 @@ index e978a91636192cd00ef8bab9b8411fda39aebbb7..32ecdb19c377952b553297548c7f3ff3 // CraftBukkit end this.language = clientOptions.language(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a6eca427d04cfbdfb8af277a72e5866e7c14d30f..a67a3f13c2b142205b76a6ff478a606fe7546925 100644 +index 14667b660e756da2ae838efe979e4c96146625db..5ded753f030cad268f8aaeaf242985c67da2ca8d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2203,7 +2203,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0051-Improve-Player-chat-API-handling.patch b/patches/server/0051-Improve-Player-chat-API-handling.patch index 0adb63d379..a5567f463d 100644 --- a/patches/server/0051-Improve-Player-chat-API-handling.patch +++ b/patches/server/0051-Improve-Player-chat-API-handling.patch @@ -53,7 +53,7 @@ index c2289c8ef49c73d662a67eab7a2b8c0cf9bb31a9..3e3c3db4a9a4474af79d2470da2ab133 if (this.commandMap.dispatch(sender, commandLine)) { return true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a67a3f13c2b142205b76a6ff478a606fe7546925..2acb5e73db4d629729c05373babd0d2e37122448 100644 +index 5ded753f030cad268f8aaeaf242985c67da2ca8d..965f40d5acb8cfe401e22c4c15efa84b36ac3ace 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -452,7 +452,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0055-Player-Tab-List-and-Title-APIs.patch b/patches/server/0055-Player-Tab-List-and-Title-APIs.patch index f1fb97580a..3a003cd429 100644 --- a/patches/server/0055-Player-Tab-List-and-Title-APIs.patch +++ b/patches/server/0055-Player-Tab-List-and-Title-APIs.patch @@ -63,7 +63,7 @@ index bd808eb312ade7122973a47f4b96505829511da5..bf0f9cab7c66c089f35b851e799ba4a4 // Paper end buf.writeComponent(this.text); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 2acb5e73db4d629729c05373babd0d2e37122448..99410c3c7fc78ea64e3f12b95c79b51d9adf39f1 100644 +index 965f40d5acb8cfe401e22c4c15efa84b36ac3ace..93b38758645a52f2da7d8e2baba576dc0284a132 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1,5 +1,6 @@ diff --git a/patches/server/0058-Configurable-inter-world-teleportation-safety.patch b/patches/server/0058-Configurable-inter-world-teleportation-safety.patch index d32153ee8f..a141e85e9f 100644 --- a/patches/server/0058-Configurable-inter-world-teleportation-safety.patch +++ b/patches/server/0058-Configurable-inter-world-teleportation-safety.patch @@ -16,7 +16,7 @@ The wanted destination was on top of the emerald block however the player ended This only is the case if the player is teleporting between worlds. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 99410c3c7fc78ea64e3f12b95c79b51d9adf39f1..6f4829dede7dca4b3d51818f8779b3438216d3b4 100644 +index 93b38758645a52f2da7d8e2baba576dc0284a132..c30d2987f4afce8737c5c67b193d9ee3b6e230be 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1120,7 +1120,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0064-Complete-resource-pack-API.patch b/patches/server/0064-Complete-resource-pack-API.patch index a62c31cb2c..696eb450f8 100644 --- a/patches/server/0064-Complete-resource-pack-API.patch +++ b/patches/server/0064-Complete-resource-pack-API.patch @@ -22,7 +22,7 @@ index b9062fe651de34d5b3f9d5f146ae0b4fe29cbfee..e8b12a8ae009023afa2818ecbf398a14 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6f4829dede7dca4b3d51818f8779b3438216d3b4..a4b9dd757ddc31447fc4b284a63fc0b28a039fb0 100644 +index c30d2987f4afce8737c5c67b193d9ee3b6e230be..de5d17be3d7dcd9ae1f10918c3d6a3caffe7ef23 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -191,6 +191,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -58,7 +58,7 @@ index 6f4829dede7dca4b3d51818f8779b3438216d3b4..a4b9dd757ddc31447fc4b284a63fc0b2 + net.minecraft.network.chat.Component promptComponent = resourcePackPrompt != null ? + io.papermc.paper.adventure.PaperAdventure.asVanilla(resourcePackPrompt) : + null; -+ this.getHandle().sendTexturePack(url, hash, required, promptComponent); ++ this.getHandle().connection.send(new ClientboundResourcePackPacket(url, hash, required, promptComponent)); + } + + @Override diff --git a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch index 56b696fab7..33db07fbca 100644 --- a/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch +++ b/patches/server/0073-handle-NaN-health-absorb-values-and-repair-bad-data.patch @@ -44,7 +44,7 @@ index c5d4f36dda7c977b3a7563f4d2d74ebcf7dc61ef..fa03c3a9debe419dd4e60764de4d9544 protected void internalSetAbsorptionAmount(float absorptionAmount) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a4b9dd757ddc31447fc4b284a63fc0b28a039fb0..6deb65557561268ae7126cbb9e177def16d89d97 100644 +index de5d17be3d7dcd9ae1f10918c3d6a3caffe7ef23..dc436397256cecfb51ed82b0cc654307a8d2e0f6 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2123,6 +2123,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0120-String-based-Action-Bar-API.patch b/patches/server/0120-String-based-Action-Bar-API.patch index a50ba17d90..4809ccb8de 100644 --- a/patches/server/0120-String-based-Action-Bar-API.patch +++ b/patches/server/0120-String-based-Action-Bar-API.patch @@ -26,7 +26,7 @@ index 32ef3edebe94a2014168b7e438752a80b2687e5f..ab6c58eed6707ab7b0aa3e7549a871ad // Paper end buf.writeComponent(this.text); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6deb65557561268ae7126cbb9e177def16d89d97..38c544cdf2230e94850eda4d38afce9df53973a8 100644 +index dc436397256cecfb51ed82b0cc654307a8d2e0f6..75e82bec61c9e20d6ae589664f87cb1f26b0deb5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -300,6 +300,29 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0140-Basic-PlayerProfile-API.patch b/patches/server/0140-Basic-PlayerProfile-API.patch index 067465ce52..6c4055eb39 100644 --- a/patches/server/0140-Basic-PlayerProfile-API.patch +++ b/patches/server/0140-Basic-PlayerProfile-API.patch @@ -11,7 +11,7 @@ public org.bukkit.craftbukkit.profile.CraftPlayerTextures public org.bukkit.craftbukkit.profile.CraftPlayerTextures copyFrom(Lorg/bukkit/profile/PlayerTextures;)V public org.bukkit.craftbukkit.profile.CraftPlayerTextures rebuildPropertyIfDirty()V public org.bukkit.craftbukkit.profile.CraftPlayerProfile toString(Lcom/mojang/authlib/properties/PropertyMap;)Ljava/lang/String; -# needed to maintain visibility with overriden methods +# needed to maintain visibility with overridden methods public org.bukkit.craftbukkit.profile.CraftPlayerProfile getProperty(Ljava/lang/String;)Lcom/mojang/authlib/properties/Property; public org.bukkit.craftbukkit.profile.CraftPlayerProfile setProperty(Ljava/lang/String;Lcom/mojang/authlib/properties/Property;)V @@ -422,13 +422,15 @@ index 0000000000000000000000000000000000000000..3ff790cec1ad89caec4be64421dd7d51 +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java new file mode 100644 -index 0000000000000000000000000000000000000000..1459a1f99fe614d072a087cda18788cf13102645 +index 0000000000000000000000000000000000000000..04eae6eda89cbad530d2a5b8d1ef5880752a8625 --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperAuthenticationService.java -@@ -0,0 +1,31 @@ +@@ -0,0 +1,30 @@ +package com.destroystokyo.paper.profile; + -+import com.mojang.authlib.*; ++import com.mojang.authlib.Environment; ++import com.mojang.authlib.EnvironmentParser; ++import com.mojang.authlib.GameProfileRepository; +import com.mojang.authlib.minecraft.MinecraftSessionService; +import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; +import com.mojang.authlib.yggdrasil.YggdrasilEnvironment; @@ -436,70 +438,72 @@ index 0000000000000000000000000000000000000000..1459a1f99fe614d072a087cda18788cf +import java.net.Proxy; + +public class PaperAuthenticationService extends YggdrasilAuthenticationService { ++ + private final Environment environment; ++ + public PaperAuthenticationService(Proxy proxy) { + super(proxy); + this.environment = EnvironmentParser.getEnvironmentFromProperties().orElse(YggdrasilEnvironment.PROD.getEnvironment()); + } + + @Override -+ public UserAuthentication createUserAuthentication(Agent agent) { -+ return new PaperUserAuthentication(this, agent); -+ } -+ -+ @Override + public MinecraftSessionService createMinecraftSessionService() { + return new PaperMinecraftSessionService(this, this.environment); + } + + @Override + public GameProfileRepository createProfileRepository() { -+ return new PaperGameProfileRepository(this, this.environment); ++ return new PaperGameProfileRepository(this.getProxy(), this.environment); + } +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java new file mode 100644 -index 0000000000000000000000000000000000000000..582c169c85ac66f1f9430f79042e4655f776c157 +index 0000000000000000000000000000000000000000..7b9e797b42c88b17d6a7c590a423f4e85d99a59d --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java -@@ -0,0 +1,18 @@ +@@ -0,0 +1,17 @@ +package com.destroystokyo.paper.profile; + -+import com.mojang.authlib.Agent; +import com.mojang.authlib.Environment; +import com.mojang.authlib.ProfileLookupCallback; -+import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; +import com.mojang.authlib.yggdrasil.YggdrasilGameProfileRepository; ++import java.net.Proxy; + +public class PaperGameProfileRepository extends YggdrasilGameProfileRepository { -+ public PaperGameProfileRepository(YggdrasilAuthenticationService authenticationService, Environment environment) { -+ super(authenticationService, environment); ++ public PaperGameProfileRepository(Proxy proxy, Environment environment) { ++ super(proxy, environment); + } + + @Override -+ public void findProfilesByNames(String[] names, Agent agent, ProfileLookupCallback callback) { -+ super.findProfilesByNames(names, agent, callback); ++ public void findProfilesByNames(String[] names, ProfileLookupCallback callback) { ++ super.findProfilesByNames(names, callback); + } +} diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java new file mode 100644 -index 0000000000000000000000000000000000000000..93d73c27340645c7502acafdc0b2cfbc1a759dd8 +index 0000000000000000000000000000000000000000..ea906c9942be4c37b0daf866c759771af0b1e0ed --- /dev/null +++ b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java -@@ -0,0 +1,30 @@ +@@ -0,0 +1,31 @@ +package com.destroystokyo.paper.profile; + +import com.mojang.authlib.Environment; +import com.mojang.authlib.GameProfile; +import com.mojang.authlib.minecraft.MinecraftProfileTexture; ++import com.mojang.authlib.yggdrasil.ProfileResult; ++import com.mojang.authlib.yggdrasil.ServicesKeySet; +import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; +import com.mojang.authlib.yggdrasil.YggdrasilMinecraftSessionService; + ++import java.net.Proxy; +import java.util.Map; ++import java.util.UUID; ++import org.jetbrains.annotations.Nullable; + +public class PaperMinecraftSessionService extends YggdrasilMinecraftSessionService { -+ protected PaperMinecraftSessionService(YggdrasilAuthenticationService authenticationService, Environment environment) { -+ super(authenticationService, environment); ++ ++ protected PaperMinecraftSessionService(ServicesKeySet servicesKeySet, Proxy proxy, Environment environment) { ++ super(servicesKeySet, proxy, environment); + } + + @Override @@ -508,31 +512,8 @@ index 0000000000000000000000000000000000000000..93d73c27340645c7502acafdc0b2cfbc + } + + @Override -+ public GameProfile fillProfileProperties(GameProfile profile, boolean requireSecure) { -+ return super.fillProfileProperties(profile, requireSecure); -+ } -+ -+ @Override -+ protected GameProfile fillGameProfile(GameProfile profile, boolean requireSecure) { -+ return super.fillGameProfile(profile, requireSecure); -+ } -+} -diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java -new file mode 100644 -index 0000000000000000000000000000000000000000..3cdd06d3af7ff94f1fe1a11b9a9275e17c695a38 ---- /dev/null -+++ b/src/main/java/com/destroystokyo/paper/profile/PaperUserAuthentication.java -@@ -0,0 +1,12 @@ -+package com.destroystokyo.paper.profile; -+ -+import com.mojang.authlib.Agent; -+import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; -+import com.mojang.authlib.yggdrasil.YggdrasilUserAuthentication; -+import java.util.UUID; -+ -+public class PaperUserAuthentication extends YggdrasilUserAuthentication { -+ public PaperUserAuthentication(YggdrasilAuthenticationService authenticationService, Agent agent) { -+ super(authenticationService, UUID.randomUUID().toString(), agent); ++ public @Nullable ProfileResult fetchProfile(final UUID profileId, final boolean requireSecure) { ++ return super.fetchProfile(profileId, requireSecure); + } +} diff --git a/src/main/java/com/destroystokyo/paper/profile/SharedPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/SharedPlayerProfile.java diff --git a/patches/server/0142-Profile-Lookup-Events.patch b/patches/server/0142-Profile-Lookup-Events.patch index a9a4210f19..bd19d1292e 100644 --- a/patches/server/0142-Profile-Lookup-Events.patch +++ b/patches/server/0142-Profile-Lookup-Events.patch @@ -7,31 +7,29 @@ Adds a Pre Lookup Event and a Post Lookup Event so that plugins may prefill in p profiles that had to be looked up. diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java -index 582c169c85ac66f1f9430f79042e4655f776c157..08fdb681a68e8be6e4062af0630957ce3e524806 100644 +index 7b9e797b42c88b17d6a7c590a423f4e85d99a59d..fd841c62c659a427dd08da5dbdf0e2e625391bc0 100644 --- a/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java +++ b/src/main/java/com/destroystokyo/paper/profile/PaperGameProfileRepository.java -@@ -1,11 +1,16 @@ +@@ -1,9 +1,14 @@ package com.destroystokyo.paper.profile; +import com.destroystokyo.paper.event.profile.LookupProfileEvent; +import com.destroystokyo.paper.event.profile.PreLookupProfileEvent; +import com.google.common.collect.Sets; - import com.mojang.authlib.Agent; import com.mojang.authlib.Environment; +import com.mojang.authlib.GameProfile; import com.mojang.authlib.ProfileLookupCallback; - import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; import com.mojang.authlib.yggdrasil.YggdrasilGameProfileRepository; - + import java.net.Proxy; +import java.util.Set; + public class PaperGameProfileRepository extends YggdrasilGameProfileRepository { - public PaperGameProfileRepository(YggdrasilAuthenticationService authenticationService, Environment environment) { - super(authenticationService, environment); -@@ -13,6 +18,50 @@ public class PaperGameProfileRepository extends YggdrasilGameProfileRepository { + public PaperGameProfileRepository(Proxy proxy, Environment environment) { +@@ -12,6 +17,44 @@ public class PaperGameProfileRepository extends YggdrasilGameProfileRepository { @Override - public void findProfilesByNames(String[] names, Agent agent, ProfileLookupCallback callback) { -- super.findProfilesByNames(names, agent, callback); + public void findProfilesByNames(String[] names, ProfileLookupCallback callback) { +- super.findProfilesByNames(names, callback); + Set unfoundNames = Sets.newHashSet(); + for (String name : names) { + PreLookupProfileEvent event = new PreLookupProfileEvent(name); @@ -55,27 +53,21 @@ index 582c169c85ac66f1f9430f79042e4655f776c157..08fdb681a68e8be6e4062af0630957ce + // Some things were not found.... Proceed to look up. + if (!unfoundNames.isEmpty()) { + String[] namesArr = unfoundNames.toArray(new String[unfoundNames.size()]); -+ super.findProfilesByNames(namesArr, agent, new PreProfileLookupCallback(callback)); ++ super.findProfilesByNames(namesArr, new PreProfileLookupCallback(callback)); + } + } + -+ private static class PreProfileLookupCallback implements ProfileLookupCallback { -+ private final ProfileLookupCallback callback; -+ -+ PreProfileLookupCallback(ProfileLookupCallback callback) { -+ this.callback = callback; -+ } -+ ++ private record PreProfileLookupCallback(ProfileLookupCallback callback) implements ProfileLookupCallback { + @Override + public void onProfileLookupSucceeded(GameProfile gameProfile) { + PlayerProfile from = CraftPlayerProfile.asBukkitMirror(gameProfile); + new LookupProfileEvent(from).callEvent(); -+ callback.onProfileLookupSucceeded(gameProfile); ++ this.callback.onProfileLookupSucceeded(gameProfile); + } + + @Override -+ public void onProfileLookupFailed(GameProfile gameProfile, Exception e) { -+ callback.onProfileLookupFailed(gameProfile, e); ++ public void onProfileLookupFailed(final String profileName, final Exception exception) { ++ this.callback.onProfileLookupFailed(profileName, exception); + } } } diff --git a/patches/server/0158-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0158-Expose-client-protocol-version-and-virtual-host.patch index f91890481e..aff659e07a 100644 --- a/patches/server/0158-Expose-client-protocol-version-and-virtual-host.patch +++ b/patches/server/0158-Expose-client-protocol-version-and-virtual-host.patch @@ -90,7 +90,7 @@ index 9a327d193d732baea1fadaab7ebc663d6fd5307c..17f01fa589cb7c4eff4233a27e60a592 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 38c544cdf2230e94850eda4d38afce9df53973a8..e12ae345142f27efa9a4b97c9da522571fc1288a 100644 +index 75e82bec61c9e20d6ae589664f87cb1f26b0deb5..8106506803d77b88f13ca033eefa3b3f62453650 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -246,6 +246,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0168-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0168-Ability-to-apply-mending-to-XP-API.patch index 31643177d4..be694c6135 100644 --- a/patches/server/0168-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/server/0168-Ability-to-apply-mending-to-XP-API.patch @@ -14,7 +14,7 @@ public net.minecraft.world.entity.ExperienceOrb durabilityToXp(I)I public net.minecraft.world.entity.ExperienceOrb xpToDurability(I)I diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e12ae345142f27efa9a4b97c9da522571fc1288a..4eab2d038a247053353f437bada1f3d87b20c92a 100644 +index 8106506803d77b88f13ca033eefa3b3f62453650..d327ce535c8750b6ee6c993b3643006e0e91a08d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1498,7 +1498,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0172-Fill-Profile-Property-Events.patch b/patches/server/0172-Fill-Profile-Property-Events.patch index 30643d081c..4e37684e36 100644 --- a/patches/server/0172-Fill-Profile-Property-Events.patch +++ b/patches/server/0172-Fill-Profile-Property-Events.patch @@ -11,32 +11,42 @@ If Mojang API does need to be hit, event fire so you can get the results. This is useful for implementing a ProfileCache for Player Skulls diff --git a/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java -index 93d73c27340645c7502acafdc0b2cfbc1a759dd8..5c7d2ee19243d0911a3a00af3ae42078a2ccba94 100644 +index ea906c9942be4c37b0daf866c759771af0b1e0ed..48fcfe223f807ccb903804adfead4b97beb2475d 100644 --- a/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java +++ b/src/main/java/com/destroystokyo/paper/profile/PaperMinecraftSessionService.java -@@ -1,6 +1,8 @@ - package com.destroystokyo.paper.profile; - - import com.mojang.authlib.Environment; -+import com.destroystokyo.paper.event.profile.FillProfileEvent; -+import com.destroystokyo.paper.event.profile.PreFillProfileEvent; - import com.mojang.authlib.GameProfile; - import com.mojang.authlib.minecraft.MinecraftProfileTexture; - import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService; -@@ -20,7 +22,15 @@ public class PaperMinecraftSessionService extends YggdrasilMinecraftSessionServi - - @Override - public GameProfile fillProfileProperties(GameProfile profile, boolean requireSecure) { -- return super.fillProfileProperties(profile, requireSecure); -+ CraftPlayerProfile playerProfile = (CraftPlayerProfile) CraftPlayerProfile.asBukkitMirror(profile); -+ new PreFillProfileEvent(playerProfile).callEvent(); -+ profile = playerProfile.getGameProfile(); -+ if (profile.isComplete() && profile.getProperties().containsKey("textures")) { -+ return profile; -+ } -+ GameProfile gameProfile = super.fillProfileProperties(profile, requireSecure); -+ new FillProfileEvent(CraftPlayerProfile.asBukkitMirror(gameProfile)).callEvent(); -+ return gameProfile; +@@ -24,7 +24,21 @@ public class PaperMinecraftSessionService extends YggdrasilMinecraftSessionServi + return super.getTextures(profile, requireSecure); } - @Override +- @Override ++ public @Nullable ProfileResult fetchProfile(GameProfile profile, final boolean requireSecure) { ++ CraftPlayerProfile playerProfile = (CraftPlayerProfile) CraftPlayerProfile.asBukkitMirror(profile); ++ new com.destroystokyo.paper.event.profile.PreFillProfileEvent(playerProfile).callEvent(); ++ profile = playerProfile.getGameProfile(); ++ if (profile.getProperties().containsKey("textures")) { ++ return new ProfileResult(profile, java.util.Collections.emptySet()); ++ } ++ ProfileResult result = super.fetchProfile(profile.getId(), requireSecure); ++ if (result != null) { ++ new com.destroystokyo.paper.event.profile.FillProfileEvent(CraftPlayerProfile.asBukkitMirror(result.profile())).callEvent(); ++ } ++ return result; ++ } ++ ++ @Override @io.papermc.paper.annotation.DoNotUse @Deprecated + public @Nullable ProfileResult fetchProfile(final UUID profileId, final boolean requireSecure) { + return super.fetchProfile(profileId, requireSecure); + } +diff --git a/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java +index f5162f7171c348ff523b18e577246561d79e1c20..238b6cd88cb24ca63770db607f2241fcd7210574 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/SkullBlockEntity.java +@@ -216,7 +216,7 @@ public class SkullBlockEntity extends BlockEntity { + MinecraftSessionService minecraftsessionservice = SkullBlockEntity.sessionService; + + if (minecraftsessionservice != null) { +- ProfileResult profileresult = minecraftsessionservice.fetchProfile(profile.getId(), true); ++ ProfileResult profileresult = minecraftsessionservice instanceof com.destroystokyo.paper.profile.PaperMinecraftSessionService paperMinecraftSessionService ? paperMinecraftSessionService.fetchProfile(profile, true) : minecraftsessionservice.fetchProfile(profile.getId(), true); // Paper + + return profileresult == null ? Optional.of(profile) : Optional.of(profileresult.profile()); + } else { diff --git a/patches/server/0173-PlayerAdvancementCriterionGrantEvent.patch b/patches/server/0173-PlayerAdvancementCriterionGrantEvent.patch index 223deb23b5..3a419b951e 100644 --- a/patches/server/0173-PlayerAdvancementCriterionGrantEvent.patch +++ b/patches/server/0173-PlayerAdvancementCriterionGrantEvent.patch @@ -5,7 +5,7 @@ Subject: [PATCH] PlayerAdvancementCriterionGrantEvent diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java -index f5f26c0327f0dae47badcc914fc89a4019c784a3..0128c29bc0a99d4eb4f53b2beb20045c0126db9d 100644 +index f5f26c0327f0dae47badcc914fc89a4019c784a3..6487bf016e646ca772b667a2a81c85e82c027c05 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java @@ -226,6 +226,12 @@ public class PlayerAdvancements { @@ -13,7 +13,7 @@ index f5f26c0327f0dae47badcc914fc89a4019c784a3..0128c29bc0a99d4eb4f53b2beb20045c if (advancementprogress.grantProgress(criterionName)) { + // Paper start -+ if (!new com.destroystokyo.paper.event.player.PlayerAdvancementCriterionGrantEvent(this.player.getBukkitEntity(), advancement.bukkit, criterionName).callEvent()) { ++ if (!new com.destroystokyo.paper.event.player.PlayerAdvancementCriterionGrantEvent(this.player.getBukkitEntity(), advancement.toBukkit(), criterionName).callEvent()) { + advancementprogress.revokeProgress(criterionName); + return false; + } diff --git a/patches/server/0181-Player.setPlayerProfile-API.patch b/patches/server/0181-Player.setPlayerProfile-API.patch index 222f8e4ef1..0c6bef880d 100644 --- a/patches/server/0181-Player.setPlayerProfile-API.patch +++ b/patches/server/0181-Player.setPlayerProfile-API.patch @@ -55,7 +55,7 @@ index b17fe83bcd7bde44ee8c1f872fffa8bf40707c50..aac78c13361b19efa7b43a0c95458390 public Server getServer() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 4eab2d038a247053353f437bada1f3d87b20c92a..df3baed35f408e2098f6c98522aed8017d61f489 100644 +index d327ce535c8750b6ee6c993b3643006e0e91a08d..160a6d5b3ec3a9bc7677f937444334c0aca8be86 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -229,11 +229,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -179,7 +179,7 @@ index 4eab2d038a247053353f437bada1f3d87b20c92a..df3baed35f408e2098f6c98522aed801 + + //Respawn the player then update their position and selected slot + ServerLevel worldserver = handle.serverLevel(); -+ connection.send(new net.minecraft.network.protocol.game.ClientboundRespawnPacket(worldserver.dimensionTypeId(), worldserver.dimension(), net.minecraft.world.level.biome.BiomeManager.obfuscateSeed(worldserver.getSeed()), handle.gameMode.getGameModeForPlayer(), handle.gameMode.getPreviousGameModeForPlayer(), worldserver.isDebug(), worldserver.isFlat(), net.minecraft.network.protocol.game.ClientboundRespawnPacket.KEEP_ALL_DATA, this.getHandle().getLastDeathLocation(), handle.getPortalCooldown())); ++ connection.send(new net.minecraft.network.protocol.game.ClientboundRespawnPacket(new net.minecraft.network.protocol.game.CommonPlayerSpawnInfo(worldserver.dimensionTypeId(), worldserver.dimension(), net.minecraft.world.level.biome.BiomeManager.obfuscateSeed(worldserver.getSeed()), handle.gameMode.getGameModeForPlayer(), handle.gameMode.getPreviousGameModeForPlayer(), worldserver.isDebug(), worldserver.isFlat(), handle.getLastDeathLocation(), handle.getPortalCooldown()), net.minecraft.network.protocol.game.ClientboundRespawnPacket.KEEP_ALL_DATA)); + handle.onUpdateAbilities(); + connection.internalTeleport(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch(), java.util.Collections.emptySet()); + net.minecraft.server.MinecraftServer.getServer().getPlayerList().sendAllPlayerInfo(handle); diff --git a/patches/server/0186-Flag-to-disable-the-channel-limit.patch b/patches/server/0186-Flag-to-disable-the-channel-limit.patch index f7719a1de2..958efeab5f 100644 --- a/patches/server/0186-Flag-to-disable-the-channel-limit.patch +++ b/patches/server/0186-Flag-to-disable-the-channel-limit.patch @@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs. provide an optional flag to disable this check, at your own risk. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index df3baed35f408e2098f6c98522aed8017d61f489..380c1c32a2f404b2e6b801f5ebeccae54d9395fa 100644 +index 160a6d5b3ec3a9bc7677f937444334c0aca8be86..21e12aa4508b0079e17131b1ee7baebe4108e413 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -194,6 +194,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0215-InventoryCloseEvent-Reason-API.patch b/patches/server/0215-InventoryCloseEvent-Reason-API.patch index ef8f7f2603..b3273b5727 100644 --- a/patches/server/0215-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0215-InventoryCloseEvent-Reason-API.patch @@ -173,7 +173,7 @@ index e5b2686e466a2604ebcdb6e5c3b6fb7ff7bc6eec..aa131c233ee9d7926ca77e1afedd27ba @Override public boolean isBlocking() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 380c1c32a2f404b2e6b801f5ebeccae54d9395fa..9366cc71807cc88d5dd70138b9ce5d49335731db 100644 +index 21e12aa4508b0079e17131b1ee7baebe4108e413..f1c6baeafb93ae51d4a76d39399cbd99b2e1f92c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1149,7 +1149,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0251-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0251-Expose-attack-cooldown-methods-for-Player.patch index 2279f97625..762e5c4dfd 100644 --- a/patches/server/0251-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/server/0251-Expose-attack-cooldown-methods-for-Player.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Expose attack cooldown methods for Player diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 9366cc71807cc88d5dd70138b9ce5d49335731db..42034c3ce08ef4432cb71dfd10dc561bda7c8dc8 100644 +index f1c6baeafb93ae51d4a76d39399cbd99b2e1f92c..d9ada8e35c30dcad123716bf4ca7b3fbbb5bdf4b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2801,6 +2801,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0252-Improve-death-events.patch b/patches/server/0252-Improve-death-events.patch index 64b2a0fb6d..6539f069b3 100644 --- a/patches/server/0252-Improve-death-events.patch +++ b/patches/server/0252-Improve-death-events.patch @@ -392,7 +392,7 @@ index 6483ad071c119353267a4f13b192a50931995c2a..7eecbe85949e47b367014c04d7a37c2c this.gameEvent(GameEvent.ENTITY_DIE); } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 42034c3ce08ef4432cb71dfd10dc561bda7c8dc8..874f515eb8cf7bc3fa2e37f09993fd4454ec089e 100644 +index d9ada8e35c30dcad123716bf4ca7b3fbbb5bdf4b..622cd2c42dc51353c29f85abb6ab3cbbed460bfa 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2301,7 +2301,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0289-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0289-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch index c64ea8a108..055a0ad0f0 100644 --- a/patches/server/0289-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/server/0289-Add-APIs-to-replace-OfflinePlayer-getLastPlayed.patch @@ -106,7 +106,7 @@ index aac78c13361b19efa7b43a0c95458390f1ba8340..f572a74b85df36a6da76b78ec29d8072 public Location getLastDeathLocation() { if (this.getData().contains("LastDeathLocation", 10)) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 874f515eb8cf7bc3fa2e37f09993fd4454ec089e..574186529adc6d780efb1f9644703d6c472f16d4 100644 +index 622cd2c42dc51353c29f85abb6ab3cbbed460bfa..f38de4bf4f45e2069e4baaf960b6fac542b1a08e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -195,6 +195,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0291-Block-Entity-remove-from-being-called-on-Players.patch b/patches/server/0291-Block-Entity-remove-from-being-called-on-Players.patch index 485fcfa1b7..c189c0b86e 100644 --- a/patches/server/0291-Block-Entity-remove-from-being-called-on-Players.patch +++ b/patches/server/0291-Block-Entity-remove-from-being-called-on-Players.patch @@ -12,7 +12,7 @@ Player we will look at limiting the scope of this change. It appears to be unintentional in the few cases we've seen so far. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 574186529adc6d780efb1f9644703d6c472f16d4..ffac201e99efcc1527956df18cce5aab986332e9 100644 +index f38de4bf4f45e2069e4baaf960b6fac542b1a08e..1fecbdbc382a47aa76bd562fb3cc0625b7807bfc 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2848,6 +2848,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0295-Improve-exact-choice-recipe-ingredients.patch b/patches/server/0295-Improve-exact-choice-recipe-ingredients.patch index 3aa15486da..47a51d830f 100644 --- a/patches/server/0295-Improve-exact-choice-recipe-ingredients.patch +++ b/patches/server/0295-Improve-exact-choice-recipe-ingredients.patch @@ -143,14 +143,14 @@ index 0000000000000000000000000000000000000000..413dfa52760db393ad6a8b5341200ee7 +import org.checkerframework.checker.nullness.qual.NonNull; +import org.checkerframework.framework.qual.DefaultQualifier; diff --git a/src/main/java/net/minecraft/recipebook/ServerPlaceRecipe.java b/src/main/java/net/minecraft/recipebook/ServerPlaceRecipe.java -index 4303f2b4e55191f8a53170435c6d1263782d1c8d..f5440ae9bbce231de06cf184fd0a8490cebfafde 100644 +index 4303f2b4e55191f8a53170435c6d1263782d1c8d..a65d07cb3d2dae85225921498d1721dc3c6a6bf3 100644 --- a/src/main/java/net/minecraft/recipebook/ServerPlaceRecipe.java +++ b/src/main/java/net/minecraft/recipebook/ServerPlaceRecipe.java @@ -34,6 +34,7 @@ public class ServerPlaceRecipe implements PlaceRecipe 0.0F; f -= 0.22500001F) { BlockPos blockposition = BlockPos.containing(d4, d5, d6); BlockState iblockdata = this.level.getBlockState(blockposition); diff --git a/patches/unapplied/server/0335-Fix-last-firework-in-stack-not-having-effects-when-d.patch b/patches/server/0333-Fix-last-firework-in-stack-not-having-effects-when-d.patch similarity index 64% rename from patches/unapplied/server/0335-Fix-last-firework-in-stack-not-having-effects-when-d.patch rename to patches/server/0333-Fix-last-firework-in-stack-not-having-effects-when-d.patch index 7ee698a4d4..068f604c0a 100644 --- a/patches/unapplied/server/0335-Fix-last-firework-in-stack-not-having-effects-when-d.patch +++ b/patches/server/0333-Fix-last-firework-in-stack-not-having-effects-when-d.patch @@ -9,15 +9,15 @@ dispensed. The resulting item would have size == 0 and therefore be convertered to air, hence why the effects disappeared. diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -index b13944a7a688ed9013e4c7dfdad6523738b9c35c..cec6ee5d31f2a86a61fd142035af853fa512e211 100644 +index b1256306601969c05a833b22ab1f16b5b6b4ed15..d500de41d0a61d67aff523fe436da06e625687dd 100644 --- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java -@@ -515,7 +515,7 @@ public interface DispenseItemBehavior { - } +@@ -516,7 +516,7 @@ public interface DispenseItemBehavior { itemstack1 = CraftItemStack.asNMSCopy(event.getItem()); -- FireworkRocketEntity entityfireworks = new FireworkRocketEntity(pointer.getLevel(), stack, pointer.x(), pointer.y(), pointer.x(), true); -+ FireworkRocketEntity entityfireworks = new FireworkRocketEntity(pointer.getLevel(), itemstack1, pointer.x(), pointer.y(), pointer.x(), true); // Paper - GH-2871 - fix last firework in stack having no effects when dispensed + Vec3 vec3d = DispenseItemBehavior.getEntityPokingOutOfBlockPos(pointer, EntityType.FIREWORK_ROCKET, enumdirection); +- FireworkRocketEntity entityfireworks = new FireworkRocketEntity(pointer.level(), stack, vec3d.x(), vec3d.y(), vec3d.z(), true); ++ FireworkRocketEntity entityfireworks = new FireworkRocketEntity(pointer.level(), itemstack1, vec3d.x(), vec3d.y(), vec3d.z(), true); // Paper - GH-2871 - fix last firework in stack having no effects when dispensed - DispenseItemBehavior.setEntityPokingOutOfBlock(pointer, entityfireworks, enumdirection); entityfireworks.shoot((double) enumdirection.getStepX(), (double) enumdirection.getStepY(), (double) enumdirection.getStepZ(), 0.5F, 1.0F); + pointer.level().addFreshEntity(entityfireworks); diff --git a/patches/unapplied/server/0337-Entity-Activation-Range-2.0.patch b/patches/server/0334-Entity-Activation-Range-2.0.patch similarity index 95% rename from patches/unapplied/server/0337-Entity-Activation-Range-2.0.patch rename to patches/server/0334-Entity-Activation-Range-2.0.patch index e7d5dfcecf..e73b9c627b 100644 --- a/patches/unapplied/server/0337-Entity-Activation-Range-2.0.patch +++ b/patches/server/0334-Entity-Activation-Range-2.0.patch @@ -18,7 +18,7 @@ public net.minecraft.world.entity.Entity isInsidePortal public net.minecraft.world.entity.LivingEntity jumping diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0efc377743e93a0120843cab192753d037e88a73..b12e9da3eebda396769b30f4b7e37a78f3bcb060 100644 +index 0b928a1cf86de9c83fd50472226be48443ed65a6..9bcf1fee8df0186f7355bf37ba7c39553bdbf1d0 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; @@ -29,7 +29,7 @@ index 0efc377743e93a0120843cab192753d037e88a73..b12e9da3eebda396769b30f4b7e37a78 import com.google.common.collect.Lists; import com.mojang.datafixers.DataFixer; import com.mojang.datafixers.util.Pair; -@@ -1186,17 +1185,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -956,17 +955,17 @@ public class ServerLevel extends Level implements WorldGenLevel { ++TimingHistory.entityTicks; // Paper - timings // Spigot start co.aikar.timings.Timing timer; // Paper @@ -51,7 +51,7 @@ index 0efc377743e93a0120843cab192753d037e88a73..b12e9da3eebda396769b30f4b7e37a78 try { // Paper end - timings entity.setOldPosAndRot(); -@@ -1207,9 +1206,13 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -977,9 +976,13 @@ public class ServerLevel extends Level implements WorldGenLevel { return BuiltInRegistries.ENTITY_TYPE.getKey(entity.getType()).toString(); }); gameprofilerfiller.incrementCounter("tickNonPassenger"); @@ -65,7 +65,7 @@ index 0efc377743e93a0120843cab192753d037e88a73..b12e9da3eebda396769b30f4b7e37a78 Iterator iterator = entity.getPassengers().iterator(); while (iterator.hasNext()) { -@@ -1217,13 +1220,18 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -987,13 +990,18 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(entity, entity1); } @@ -85,7 +85,7 @@ index 0efc377743e93a0120843cab192753d037e88a73..b12e9da3eebda396769b30f4b7e37a78 passenger.setOldPosAndRot(); ++passenger.tickCount; ProfilerFiller gameprofilerfiller = this.getProfiler(); -@@ -1232,8 +1240,17 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1002,8 +1010,17 @@ public class ServerLevel extends Level implements WorldGenLevel { return BuiltInRegistries.ENTITY_TYPE.getKey(passenger.getType()).toString(); }); gameprofilerfiller.incrementCounter("tickPassenger"); @@ -103,7 +103,7 @@ index 0efc377743e93a0120843cab192753d037e88a73..b12e9da3eebda396769b30f4b7e37a78 gameprofilerfiller.pop(); Iterator iterator = passenger.getPassengers().iterator(); -@@ -1243,6 +1260,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1013,6 +1030,7 @@ public class ServerLevel extends Level implements WorldGenLevel { this.tickPassenger(passenger, entity2); } @@ -112,7 +112,7 @@ index 0efc377743e93a0120843cab192753d037e88a73..b12e9da3eebda396769b30f4b7e37a78 } 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 0f40361ebfe64fae828f577529200e40e94b0e05..049df55b07e14b6ea75bfb9aa4de2adb0548305d 100644 +index 7c23f63fd642002cac597da2eafc5f0b4232d5a4..359f680c52dc44139e48673675617d97c1aa24a1 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -390,6 +390,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -124,7 +124,7 @@ index 0f40361ebfe64fae828f577529200e40e94b0e05..049df55b07e14b6ea75bfb9aa4de2adb protected int numCollisions = 0; // Paper public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one @javax.annotation.Nullable -@@ -962,6 +964,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -910,6 +912,8 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { } else { this.wasOnFire = this.isOnFire(); if (movementType == MoverType.PISTON) { @@ -133,7 +133,7 @@ index 0f40361ebfe64fae828f577529200e40e94b0e05..049df55b07e14b6ea75bfb9aa4de2adb movement = this.limitPistonMovement(movement); if (movement.equals(Vec3.ZERO)) { return; -@@ -974,6 +978,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -922,6 +926,13 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { this.stuckSpeedMultiplier = Vec3.ZERO; this.setDeltaMovement(Vec3.ZERO); } @@ -148,10 +148,10 @@ index 0f40361ebfe64fae828f577529200e40e94b0e05..049df55b07e14b6ea75bfb9aa4de2adb movement = this.maybeBackOffFromEdge(movement, movementType); Vec3 vec3d1 = this.collide(movement); diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 3081c1370a0854f07214cbc50b06cbb005d171fb..cbdbc859416d51d0311ce5f6032a2b4dfe34d3a7 100644 +index df0cc02f9bbea857226765c6066a2b945036a0d9..7bbb68bf06e04b58b6c4fa546fe919e387e00b27 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java -@@ -218,6 +218,19 @@ public abstract class Mob extends LivingEntity implements Targeting { +@@ -220,6 +220,19 @@ public abstract class Mob extends LivingEntity implements Targeting { return this.lookControl; } @@ -172,10 +172,10 @@ index 3081c1370a0854f07214cbc50b06cbb005d171fb..cbdbc859416d51d0311ce5f6032a2b4d Entity entity = this.getControlledVehicle(); diff --git a/src/main/java/net/minecraft/world/entity/PathfinderMob.java b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -index d8ce7ea5fcb2785435ec1f530cb6e7114c01e4b7..5f3a14ca456e65894e824864ccf3cd5fabc9c6bd 100644 +index 5e9cf929674888b3a143a0691dc6936b304467f1..b5964614823059261c28eb2e998ad54249f07e7b 100644 --- a/src/main/java/net/minecraft/world/entity/PathfinderMob.java +++ b/src/main/java/net/minecraft/world/entity/PathfinderMob.java -@@ -19,6 +19,7 @@ public abstract class PathfinderMob extends Mob { +@@ -21,6 +21,7 @@ public abstract class PathfinderMob extends Mob { } public org.bukkit.craftbukkit.entity.CraftCreature getBukkitCreature() { return (org.bukkit.craftbukkit.entity.CraftCreature) super.getBukkitEntity(); } // Paper @@ -252,10 +252,10 @@ index d27e5f9dac4703b839ab8444f6b54bf54d58af86..34f319ad09276c6f68dde449c79351de } } diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java -index 73a5750dd47cf8869070f92594cfb926193c8761..1e775178f346ef3d2f121e539ba81a75c8a37c36 100644 +index 7d7390dc76f683178fc332ea3c2c945ba8e9b84b..cc829161404c0f98a403c5219d5c535de1d5c5ba 100644 --- a/src/main/java/net/minecraft/world/entity/npc/Villager.java +++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java -@@ -226,17 +226,34 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -227,17 +227,34 @@ public class Villager extends AbstractVillager implements ReputationEventHandler @Override public void inactiveTick() { // SPIGOT-3874, SPIGOT-3894, SPIGOT-3846, SPIGOT-5286 :( @@ -293,7 +293,7 @@ index 73a5750dd47cf8869070f92594cfb926193c8761..1e775178f346ef3d2f121e539ba81a75 this.level().getProfiler().pop(); if (this.assignProfessionWhenSpawned) { this.assignProfessionWhenSpawned = false; -@@ -260,7 +277,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -261,7 +278,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler this.lastTradedPlayer = null; } @@ -302,7 +302,7 @@ index 73a5750dd47cf8869070f92594cfb926193c8761..1e775178f346ef3d2f121e539ba81a75 Raid raid = ((ServerLevel) this.level()).getRaidAt(this.blockPosition()); if (raid != null && raid.isActive() && !raid.isOver()) { -@@ -271,6 +288,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler +@@ -272,6 +289,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler if (this.getVillagerData().getProfession() == VillagerProfession.NONE && this.isTrading()) { this.stopTrading(); } @@ -348,7 +348,7 @@ index b149e8bcac034bb3fc118a9adcb0de45e18ed5e9..fc35cfc9d045f3e5b6a50af1d0ba83b6 + } diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java -index b1111e644f860f40a944fd43ac900db4615a1c5e..9a6ed3aa55f988ed30669fab2a2513741eda399b 100644 +index 4968e036350631b79a8c7e70fdc32db4bcff2ade..495ab82a3a9d47583eb7239730aa78dd51f16fc6 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -160,6 +160,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -380,7 +380,7 @@ index 45f55c79a9d105f732054d61c4cf83eb5db49762..17a6327ab7b26dfab38881bbc0689b0b } } diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java -index 305d9772f2af22e8bdf73235cdb15ea01ac2c3b3..50ddcd7ee9c3ffe7549361f942df01b8ef078932 100644 +index 5d470b424d52ae402ec0e950263ad54cf6f7e3ef..b1e844b1c0dafb2dfc9904d2d4ad0e8fd5b6e572 100644 --- a/src/main/java/org/spigotmc/ActivationRange.java +++ b/src/main/java/org/spigotmc/ActivationRange.java @@ -1,39 +1,52 @@ @@ -564,9 +564,9 @@ index 305d9772f2af22e8bdf73235cdb15ea01ac2c3b3..50ddcd7ee9c3ffe7549361f942df01b8 + ActivationType.VILLAGER.boundingBox = player.getBoundingBox().inflate( villagerActivationRange, worldHeight, villagerActivationRange ); + // Paper end - // Paper start - java.util.List entities = world.getEntities((Entity)null, maxBB, null); -@@ -172,60 +250,118 @@ public class ActivationRange + world.getEntities().get(maxBB, ActivationRange::activateEntity); + } +@@ -166,60 +244,118 @@ public class ActivationRange * @param entity * @return */ @@ -628,7 +628,8 @@ index 305d9772f2af22e8bdf73235cdb15ea01ac2c3b3..50ddcd7ee9c3ffe7549361f942df01b8 { - return true; + return 20; // Paper -+ } + } +- if ( entity instanceof Villager && ( (Villager) entity ).canBreed() ) + // Paper start + if (entity instanceof Bee) { + Bee bee = (Bee)entity; @@ -656,8 +657,7 @@ index 305d9772f2af22e8bdf73235cdb15ea01ac2c3b3..50ddcd7ee9c3ffe7549361f942df01b8 + return config.villagersWorkImmunityFor; + } + } - } -- if ( entity instanceof Villager && ( (Villager) entity ).canBreed() ) ++ } + if ( entity instanceof Llama && ( (Llama) entity ).inCaravan() ) { - return true; @@ -685,11 +685,11 @@ index 305d9772f2af22e8bdf73235cdb15ea01ac2c3b3..50ddcd7ee9c3ffe7549361f942df01b8 + // Paper start + if (entity instanceof Mob && ((Mob) entity).targetSelector.hasTasks() ) { + return 0; - } ++ } + if (entity instanceof Pillager) { + Pillager pillager = (Pillager) entity; + // TODO:? -+ } + } + // Paper end } // SPIGOT-6644: Otherwise the target refresh tick will be missed @@ -702,7 +702,7 @@ index 305d9772f2af22e8bdf73235cdb15ea01ac2c3b3..50ddcd7ee9c3ffe7549361f942df01b8 } /** -@@ -240,8 +376,19 @@ public class ActivationRange +@@ -234,8 +370,19 @@ public class ActivationRange if ( entity instanceof FireworkRocketEntity ) { return true; } @@ -723,7 +723,7 @@ index 305d9772f2af22e8bdf73235cdb15ea01ac2c3b3..50ddcd7ee9c3ffe7549361f942df01b8 // Should this entity tick? if ( !isActive ) -@@ -249,15 +396,19 @@ public class ActivationRange +@@ -243,15 +390,19 @@ public class ActivationRange if ( ( MinecraftServer.currentTick - entity.activatedTick - 1 ) % 20 == 0 ) { // Check immunities every 20 ticks. diff --git a/patches/unapplied/server/0338-Implement-alternative-item-despawn-rate.patch b/patches/server/0335-Implement-alternative-item-despawn-rate.patch similarity index 100% rename from patches/unapplied/server/0338-Implement-alternative-item-despawn-rate.patch rename to patches/server/0335-Implement-alternative-item-despawn-rate.patch diff --git a/patches/unapplied/server/0339-Lag-compensate-eating.patch b/patches/server/0336-Lag-compensate-eating.patch similarity index 88% rename from patches/unapplied/server/0339-Lag-compensate-eating.patch rename to patches/server/0336-Lag-compensate-eating.patch index b5d9357d59..35b7a4e65d 100644 --- a/patches/unapplied/server/0339-Lag-compensate-eating.patch +++ b/patches/server/0336-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 53abf88143206eee03f372cf6471fbfbe519496d..1d0d8971675d882a54e5c3eb1315ed53be9338be 100644 +index ac59a1e5ae4fe84af44220d721b60f2e157e0f1f..ca179b062fa6142da584ad1a091e63d89403a0f0 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3594,6 +3594,11 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3653,6 +3653,11 @@ public abstract class LivingEntity extends Entity implements Attackable { return ((Byte) this.entityData.get(LivingEntity.DATA_LIVING_ENTITY_FLAGS) & 2) > 0 ? InteractionHand.OFF_HAND : InteractionHand.MAIN_HAND; } @@ -22,7 +22,7 @@ index 53abf88143206eee03f372cf6471fbfbe519496d..1d0d8971675d882a54e5c3eb1315ed53 private void updatingUsingItem() { if (this.isUsingItem()) { if (ItemStack.isSameItem(this.getItemInHand(this.getUsedItemHand()), this.useItem)) { -@@ -3612,7 +3617,12 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3671,7 +3676,12 @@ public abstract class LivingEntity extends Entity implements Attackable { this.triggerItemUseEffects(stack, 5); } @@ -36,7 +36,7 @@ index 53abf88143206eee03f372cf6471fbfbe519496d..1d0d8971675d882a54e5c3eb1315ed53 this.completeUsingItem(); } -@@ -3660,7 +3670,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3719,7 +3729,10 @@ public abstract class LivingEntity extends Entity implements Attackable { if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper use override flag this.useItem = itemstack; @@ -48,7 +48,7 @@ index 53abf88143206eee03f372cf6471fbfbe519496d..1d0d8971675d882a54e5c3eb1315ed53 if (!this.level().isClientSide) { this.setLivingEntityFlag(1, true); this.setLivingEntityFlag(2, hand == InteractionHand.OFF_HAND); -@@ -3685,7 +3698,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3744,7 +3757,10 @@ public abstract class LivingEntity extends Entity implements Attackable { } } else if (!this.isUsingItem() && !this.useItem.isEmpty()) { this.useItem = ItemStack.EMPTY; @@ -60,7 +60,7 @@ index 53abf88143206eee03f372cf6471fbfbe519496d..1d0d8971675d882a54e5c3eb1315ed53 } } -@@ -3818,7 +3834,10 @@ public abstract class LivingEntity extends Entity implements Attackable { +@@ -3877,7 +3893,10 @@ public abstract class LivingEntity extends Entity implements Attackable { } this.useItem = ItemStack.EMPTY; diff --git a/patches/unapplied/server/0340-Tracking-Range-Improvements.patch b/patches/server/0337-Tracking-Range-Improvements.patch similarity index 95% rename from patches/unapplied/server/0340-Tracking-Range-Improvements.patch rename to patches/server/0337-Tracking-Range-Improvements.patch index 45798924ef..5b0eae3c0b 100644 --- a/patches/unapplied/server/0340-Tracking-Range-Improvements.patch +++ b/patches/server/0337-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 562e45954cc72a253f20e9a9fddf0f179baf3e7b..c00a625af27cdd80e2e4773ad93ff919f12acf31 100644 +index 66046c763872a031c65db17502b33199a40fd093..eb8b82514cc19ff5404c7558f93310d6629cb6d7 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -1326,6 +1326,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -1816,6 +1816,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/0341-Fix-items-vanishing-through-end-portal.patch b/patches/server/0338-Fix-items-vanishing-through-end-portal.patch similarity index 89% rename from patches/unapplied/server/0341-Fix-items-vanishing-through-end-portal.patch rename to patches/server/0338-Fix-items-vanishing-through-end-portal.patch index 7dc474e2ad..1a857a9597 100644 --- a/patches/unapplied/server/0341-Fix-items-vanishing-through-end-portal.patch +++ b/patches/server/0338-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 049df55b07e14b6ea75bfb9aa4de2adb0548305d..92f96ea37ea73353c17b73721af31c65467dcc0d 100644 +index 359f680c52dc44139e48673675617d97c1aa24a1..d9e9d363d8b0271cee42479a362f6670c5df38cb 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java -@@ -3342,6 +3342,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -3326,6 +3326,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { if (flag1) { blockposition1 = ServerLevel.END_SPAWN_POINT; } else { diff --git a/patches/unapplied/server/0342-implement-optional-per-player-mob-spawns.patch b/patches/server/0339-implement-optional-per-player-mob-spawns.patch similarity index 95% rename from patches/unapplied/server/0342-implement-optional-per-player-mob-spawns.patch rename to patches/server/0339-implement-optional-per-player-mob-spawns.patch index 40aa6f3911..9103dcbebc 100644 --- a/patches/unapplied/server/0342-implement-optional-per-player-mob-spawns.patch +++ b/patches/server/0339-implement-optional-per-player-mob-spawns.patch @@ -252,20 +252,20 @@ 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 c00a625af27cdd80e2e4773ad93ff919f12acf31..5cc0a39622a265e42e6b7d20e81144d1acce59b7 100644 +index eb8b82514cc19ff5404c7558f93310d6629cb6d7..842f7423d113f23d4b95162c81d407efd765679a 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -151,6 +151,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -147,6 +147,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider private final Long2LongMap chunkSaveCooldowns; private final Queue unloadQueue; - int viewDistance; + private int serverViewDistance; + public final com.destroystokyo.paper.util.misc.PlayerAreaMap playerMobDistanceMap; // Paper - // Paper - rewrite chunk system - -@@ -162,11 +163,21 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - int chunkX = MCUtil.getChunkCoordinate(player.getX()); - int chunkZ = MCUtil.getChunkCoordinate(player.getZ()); + // CraftBukkit start - recursion-safe executor for Chunk loadCallback() and unloadCallback() + public final CallbackExecutor callbackExecutor = new CallbackExecutor(); +@@ -176,16 +177,32 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + int chunkX = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getX()); + int chunkZ = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getZ()); // Note: players need to be explicitly added to distance maps before they can be updated + // Paper start - per player mob spawning + if (this.playerMobDistanceMap != null) { @@ -275,7 +275,6 @@ index c00a625af27cdd80e2e4773ad93ff919f12acf31..5cc0a39622a265e42e6b7d20e81144d1 } void removePlayerFromDistanceMaps(ServerPlayer player) { - this.level.playerChunkLoader.removePlayer(player); // Paper - replace chunk loader + // Paper start - per player mob spawning + if (this.playerMobDistanceMap != null) { @@ -285,10 +284,10 @@ index c00a625af27cdd80e2e4773ad93ff919f12acf31..5cc0a39622a265e42e6b7d20e81144d1 } void updateMaps(ServerPlayer player) { -@@ -174,6 +185,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider - int chunkZ = MCUtil.getChunkCoordinate(player.getZ()); + int chunkX = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getX()); + int chunkZ = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getZ()); // Note: players need to be explicitly added to distance maps before they can be updated - this.level.playerChunkLoader.updatePlayer(player); // Paper - replace chunk loader ++ + // Paper start - per player mob spawning + if (this.playerMobDistanceMap != null) { + this.playerMobDistanceMap.update(player, chunkX, chunkZ, io.papermc.paper.chunk.system.ChunkSystem.getTickViewDistance(player)); @@ -297,7 +296,7 @@ index c00a625af27cdd80e2e4773ad93ff919f12acf31..5cc0a39622a265e42e6b7d20e81144d1 } // Paper end // Paper start -@@ -259,6 +275,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -276,6 +293,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 @@ -305,7 +304,7 @@ index c00a625af27cdd80e2e4773ad93ff919f12acf31..5cc0a39622a265e42e6b7d20e81144d1 } protected ChunkGenerator generator() { -@@ -284,6 +301,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -301,6 +319,31 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider }); } @@ -338,10 +337,10 @@ index c00a625af27cdd80e2e4773ad93ff919f12acf31..5cc0a39622a265e42e6b7d20e81144d1 double d0 = (double) SectionPos.sectionToBlockCoord(pos.x, 8); double d1 = (double) SectionPos.sectionToBlockCoord(pos.z, 8); diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 5cb151a7d89c7281b03f24c5f79afb7edf7cbfea..d9743139d1cb932c6aac56da85f073e4dfe2933c 100644 +index 0f38bdf2c9a29f2111c27138b8d997c230633bb8..dd9b315c169398d12c592c549693f94922961ed1 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -543,7 +543,18 @@ public class ServerChunkCache extends ChunkSource { +@@ -696,7 +696,18 @@ public class ServerChunkCache extends ChunkSource { gameprofilerfiller.push("naturalSpawnCount"); this.level.timings.countNaturalMobs.startTiming(); // Paper - timings int l = this.distanceManager.getNaturalSpawnChunkCount(); @@ -362,10 +361,10 @@ index 5cb151a7d89c7281b03f24c5f79afb7edf7cbfea..d9743139d1cb932c6aac56da85f073e4 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 4aea5b2e36f5cd6f9b076f9a225a391211ec0c25..a1f75dfbe975ff0150cb529266c3c0884c8e2d45 100644 +index 394f2b87010454ff2e4898f3ee5085c68d91952a..8af7966008a5f06c9a33f0c4396b940ecec623e8 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -248,6 +248,11 @@ public class ServerPlayer extends Player { +@@ -246,6 +246,11 @@ public class ServerPlayer extends Player { public boolean queueHealthUpdatePacket = false; public net.minecraft.network.protocol.game.ClientboundSetHealthPacket queuedHealthUpdatePacket; // Paper end @@ -377,7 +376,7 @@ index 4aea5b2e36f5cd6f9b076f9a225a391211ec0c25..a1f75dfbe975ff0150cb529266c3c088 // CraftBukkit start public String displayName; -@@ -380,6 +385,7 @@ public class ServerPlayer extends Player { +@@ -339,6 +344,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(); @@ -386,7 +385,7 @@ index 4aea5b2e36f5cd6f9b076f9a225a391211ec0c25..a1f75dfbe975ff0150cb529266c3c088 // Yes, this doesn't match Vanilla, but it's the best we can do for now. diff --git a/src/main/java/net/minecraft/world/level/NaturalSpawner.java b/src/main/java/net/minecraft/world/level/NaturalSpawner.java -index 23d53f3fd524cc4d827dc95ab95367702a110a05..e57bb23ec14263b7c9dd721fefbe912963b863d0 100644 +index fe38079d69f3e9987ad5ab077ae09d05017a681a..7983f9a21251cec4857529ad1180a62668ea5037 100644 --- a/src/main/java/net/minecraft/world/level/NaturalSpawner.java +++ b/src/main/java/net/minecraft/world/level/NaturalSpawner.java @@ -70,6 +70,12 @@ public final class NaturalSpawner { diff --git a/patches/unapplied/server/0344-Bees-get-gravity-in-void.-Fixes-MC-167279.patch b/patches/server/0340-Bees-get-gravity-in-void.-Fixes-MC-167279.patch similarity index 100% rename from patches/unapplied/server/0344-Bees-get-gravity-in-void.-Fixes-MC-167279.patch rename to patches/server/0340-Bees-get-gravity-in-void.-Fixes-MC-167279.patch diff --git a/patches/unapplied/server/0345-Improve-Block-breakNaturally-API.patch b/patches/server/0341-Improve-Block-breakNaturally-API.patch similarity index 100% rename from patches/unapplied/server/0345-Improve-Block-breakNaturally-API.patch rename to patches/server/0341-Improve-Block-breakNaturally-API.patch diff --git a/patches/unapplied/server/0346-Optimise-getChunkAt-calls-for-loaded-chunks.patch b/patches/server/0342-Optimise-getChunkAt-calls-for-loaded-chunks.patch similarity index 89% rename from patches/unapplied/server/0346-Optimise-getChunkAt-calls-for-loaded-chunks.patch rename to patches/server/0342-Optimise-getChunkAt-calls-for-loaded-chunks.patch index a5aab28fc1..50d9094442 100644 --- a/patches/unapplied/server/0346-Optimise-getChunkAt-calls-for-loaded-chunks.patch +++ b/patches/server/0342-Optimise-getChunkAt-calls-for-loaded-chunks.patch @@ -7,10 +7,10 @@ bypass the need to get a player chunk, then get the either, then unwrap it... diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index d9743139d1cb932c6aac56da85f073e4dfe2933c..603f9d1f501a18214f11a6e401f2c43d9c3cf8eb 100644 +index dd9b315c169398d12c592c549693f94922961ed1..b6461fdd77895fbeae10e92c76e8799c7e846ac5 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -270,6 +270,12 @@ public class ServerChunkCache extends ChunkSource { +@@ -398,6 +398,12 @@ public class ServerChunkCache extends ChunkSource { return this.getChunk(x, z, leastStatus, create); }, this.mainThreadProcessor).join(); } else { @@ -23,8 +23,8 @@ index d9743139d1cb932c6aac56da85f073e4dfe2933c..603f9d1f501a18214f11a6e401f2c43d ProfilerFiller gameprofilerfiller = this.level.getProfiler(); gameprofilerfiller.incrementCounter("getChunk"); -@@ -313,39 +319,7 @@ public class ServerChunkCache extends ChunkSource { - if (!io.papermc.paper.util.TickThread.isTickThread()) { // Paper - rewrite chunk system +@@ -444,39 +450,7 @@ public class ServerChunkCache extends ChunkSource { + if (Thread.currentThread() != this.mainThread) { return null; } else { - this.level.getProfiler().incrementCounter("getChunkNow"); diff --git a/patches/unapplied/server/0347-Add-debug-for-sync-chunk-loads.patch b/patches/server/0343-Add-debug-for-sync-chunk-loads.patch similarity index 90% rename from patches/unapplied/server/0347-Add-debug-for-sync-chunk-loads.patch rename to patches/server/0343-Add-debug-for-sync-chunk-loads.patch index 03f1500bc0..095dfaf041 100644 --- a/patches/unapplied/server/0347-Add-debug-for-sync-chunk-loads.patch +++ b/patches/server/0343-Add-debug-for-sync-chunk-loads.patch @@ -194,13 +194,13 @@ index 0000000000000000000000000000000000000000..0bb4aaa546939b67a5d22865190f3047 + } +} diff --git a/src/main/java/io/papermc/paper/command/PaperCommand.java b/src/main/java/io/papermc/paper/command/PaperCommand.java -index ae51993e0de706cb62c96795ca9de7663893a5bf..5bfa245a621a0bf7ef60cd01f4c04576b770384e 100644 +index 830978f3409888302ab857161628cee5869efa8f..43573b5ef76c8bb42411c3707cb13d90d531b905 100644 --- a/src/main/java/io/papermc/paper/command/PaperCommand.java +++ b/src/main/java/io/papermc/paper/command/PaperCommand.java -@@ -40,6 +40,7 @@ public final class PaperCommand extends Command { +@@ -39,6 +39,7 @@ public final class PaperCommand extends Command { + commands.put(Set.of("version"), new VersionCommand()); commands.put(Set.of("dumpplugins"), new DumpPluginsCommand()); commands.put(Set.of("fixlight"), new FixLightCommand()); - commands.put(Set.of("debug", "chunkinfo", "holderinfo"), new ChunkDebugCommand()); + commands.put(Set.of("syncloadinfo"), new SyncLoadInfoCommand()); return commands.entrySet().stream() @@ -300,23 +300,31 @@ index 0000000000000000000000000000000000000000..95d6022c9cfb2e36ec5a71be6e343540 + } +} diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -index 603f9d1f501a18214f11a6e401f2c43d9c3cf8eb..1c327067d488cc916d082a797b161cb7836ffa2e 100644 +index b6461fdd77895fbeae10e92c76e8799c7e846ac5..7aceefc28f310e704ca8803e95c40ada13718988 100644 --- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java +++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java -@@ -294,6 +294,7 @@ public class ServerChunkCache extends ChunkSource { - // Paper start - async chunk io/loading - io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system - // Paper end +@@ -393,6 +393,7 @@ public class ServerChunkCache extends ChunkSource { + @Nullable + @Override + public ChunkAccess getChunk(int x, int z, ChunkStatus leastStatus, boolean create) { ++ final int x1 = x; final int z1 = z; // Paper - conflict on variable change + if (Thread.currentThread() != this.mainThread) { + return (ChunkAccess) CompletableFuture.supplyAsync(() -> { + return this.getChunk(x, z, leastStatus, create); +@@ -426,6 +427,7 @@ public class ServerChunkCache extends ChunkSource { + + Objects.requireNonNull(completablefuture); + if (!completablefuture.isDone()) { // Paper + com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - sync load info this.level.timings.syncChunkLoad.startTiming(); // Paper chunkproviderserver_b.managedBlock(completablefuture::isDone); - io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - async chunk debug // Paper - rewrite chunk system + this.level.timings.syncChunkLoad.stopTiming(); // Paper diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 62ea2bb2fdd1f2de31b08c88193887989fbd3ece..fc6cf61664b4c64c9319c61b447a02e2cc38558f 100644 +index 9bcf1fee8df0186f7355bf37ba7c39553bdbf1d0..79229f3563cc642568487ea92840c8753c536240 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -651,6 +651,13 @@ public class ServerLevel extends Level implements WorldGenLevel { - this.entityLookup = new io.papermc.paper.chunk.system.entity.EntityLookup(this, new EntityCallbacks()); // Paper - rewrite chunk system +@@ -416,6 +416,13 @@ public class ServerLevel extends Level implements WorldGenLevel { + this.getCraftServer().addWorld(this.getWorld()); // CraftBukkit } + // Paper start diff --git a/patches/unapplied/server/0348-Improve-java-version-check.patch b/patches/server/0344-Improve-java-version-check.patch similarity index 96% rename from patches/unapplied/server/0348-Improve-java-version-check.patch rename to patches/server/0344-Improve-java-version-check.patch index 700b761283..2a3fce4999 100644 --- a/patches/unapplied/server/0348-Improve-java-version-check.patch +++ b/patches/server/0344-Improve-java-version-check.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Improve java version check Co-Authored-By: MiniDigger diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java -index 863a983165aa845abbf7b8f2a3cd0c5057bb47d8..2badebc0d7954c6d343bfd66dd14dc2d2d4661d7 100644 +index bf34d343fd0b3158bf00f9ce22b45dfd82c75dc5..8c9a6e1b34865c3a15eea40637d6a4b540396a5c 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -200,23 +200,27 @@ public class Main { diff --git a/patches/unapplied/server/0349-Add-ThrownEggHatchEvent.patch b/patches/server/0345-Add-ThrownEggHatchEvent.patch similarity index 100% rename from patches/unapplied/server/0349-Add-ThrownEggHatchEvent.patch rename to patches/server/0345-Add-ThrownEggHatchEvent.patch diff --git a/patches/unapplied/server/0350-Entity-Jump-API.patch b/patches/server/0346-Entity-Jump-API.patch similarity index 84% rename from patches/unapplied/server/0350-Entity-Jump-API.patch rename to patches/server/0346-Entity-Jump-API.patch index cde7320d17..7e52fa865a 100644 --- a/patches/unapplied/server/0350-Entity-Jump-API.patch +++ b/patches/server/0346-Entity-Jump-API.patch @@ -5,13 +5,13 @@ 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 1d0d8971675d882a54e5c3eb1315ed53be9338be..11e84ea16177f11b834bcf13e9b36985ac4cfd4e 100644 +index ca179b062fa6142da584ad1a091e63d89403a0f0..4008d402b01d7ea25a56d16ebbf00e182b0d60c3 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java -@@ -3255,8 +3255,10 @@ public abstract class LivingEntity extends Entity implements Attackable { - } else if (this.isInLava() && (!this.onGround() || d7 > d8)) { +@@ -3284,8 +3284,10 @@ public abstract class LivingEntity extends Entity implements Attackable { + } else if (this.isInLava() && (!this.onGround() || d3 > d4)) { this.jumpInLiquid(FluidTags.LAVA); - } else if ((this.onGround() || flag && d7 <= d8) && this.noJumpDelay == 0) { + } else if ((this.onGround() || flag && d3 <= d4) && this.noJumpDelay == 0) { + if (new com.destroystokyo.paper.event.entity.EntityJumpEvent(getBukkitLivingEntity()).callEvent()) { // Paper this.jumpFromGround(); this.noJumpDelay = 10; @@ -20,10 +20,10 @@ index 1d0d8971675d882a54e5c3eb1315ed53be9338be..11e84ea16177f11b834bcf13e9b36985 } else { this.noJumpDelay = 0; diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java -index 278a9842455a222ed9102fc7a95585755dfd5d7b..a190826d87ca5e05c408ef488986a29280b1b3d2 100644 +index 3d947293d33407e5d24f8fba738ab872e1d890b6..27e1ed14f2ae4f7922c7c3bc1ac21156bafcb0ba 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java -@@ -524,7 +524,9 @@ public class Panda extends Animal { +@@ -527,7 +527,9 @@ public class Panda extends Animal { Panda entitypanda = (Panda) iterator.next(); if (!entitypanda.isBaby() && entitypanda.onGround() && !entitypanda.isInWater() && entitypanda.canPerformAction()) { @@ -34,10 +34,10 @@ index 278a9842455a222ed9102fc7a95585755dfd5d7b..a190826d87ca5e05c408ef488986a292 } diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index 02f962eed1d85e8c532264f63666d26401d6a8f2..c245acdbaa84cc795e341ed042a0d8d90383f070 100644 +index 344e933311f5cdccb66069d486b111a003639dfe..add3cd866452df727107e94fb2039bddebe909be 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -@@ -184,7 +184,9 @@ public class Ravager extends Raider { +@@ -167,7 +167,9 @@ public class Ravager extends Raider { } if (!flag && this.onGround()) { @@ -48,7 +48,7 @@ index 02f962eed1d85e8c532264f63666d26401d6a8f2..c245acdbaa84cc795e341ed042a0d8d9 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 2913ad431b09a75106115257729960f8ba1637f4..f0457dd3d179dab3e164279f30690058549e530a 100644 +index d5f53ddf1bb24c933bf38efbe142411663ec2470..607e48cf2eb50f477bcacca636cacf27f01342ef 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -906,5 +906,19 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/unapplied/server/0351-Add-option-to-nerf-pigmen-from-nether-portals.patch b/patches/server/0347-Add-option-to-nerf-pigmen-from-nether-portals.patch similarity index 91% rename from patches/unapplied/server/0351-Add-option-to-nerf-pigmen-from-nether-portals.patch rename to patches/server/0347-Add-option-to-nerf-pigmen-from-nether-portals.patch index 4d3091a6f7..7b34896321 100644 --- a/patches/unapplied/server/0351-Add-option-to-nerf-pigmen-from-nether-portals.patch +++ b/patches/server/0347-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 92f96ea37ea73353c17b73721af31c65467dcc0d..7d00dc9bd1fe9167e0122395f901a4700c132f61 100644 +index d9e9d363d8b0271cee42479a362f6670c5df38cb..1badb25665edaeb5eb274b770ea50598ba056b22 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -392,6 +392,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -16,7 +16,7 @@ index 92f96ea37ea73353c17b73721af31c65467dcc0d..7d00dc9bd1fe9167e0122395f901a470 protected int numCollisions = 0; // Paper public boolean spawnedViaMobSpawner; // Paper - Yes this name is similar to above, upstream took the better one @javax.annotation.Nullable -@@ -2200,6 +2201,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2156,6 +2157,9 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { if (spawnedViaMobSpawner) { nbt.putBoolean("Paper.FromMobSpawner", true); } @@ -26,7 +26,7 @@ index 92f96ea37ea73353c17b73721af31c65467dcc0d..7d00dc9bd1fe9167e0122395f901a470 // Paper end return nbt; } catch (Throwable throwable) { -@@ -2342,6 +2346,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { +@@ -2298,6 +2302,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/0352-Make-the-GUI-graph-fancier.patch b/patches/server/0348-Make-the-GUI-graph-fancier.patch similarity index 100% rename from patches/unapplied/server/0352-Make-the-GUI-graph-fancier.patch rename to patches/server/0348-Make-the-GUI-graph-fancier.patch diff --git a/patches/unapplied/server/0353-add-hand-to-BlockMultiPlaceEvent.patch b/patches/server/0349-add-hand-to-BlockMultiPlaceEvent.patch similarity index 89% rename from patches/unapplied/server/0353-add-hand-to-BlockMultiPlaceEvent.patch rename to patches/server/0349-add-hand-to-BlockMultiPlaceEvent.patch index 84df7607c8..8e0a42cc57 100644 --- a/patches/unapplied/server/0353-add-hand-to-BlockMultiPlaceEvent.patch +++ b/patches/server/0349-add-hand-to-BlockMultiPlaceEvent.patch @@ -5,10 +5,10 @@ Subject: [PATCH] add hand to BlockMultiPlaceEvent diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index eaca76dfec9cbe3cbb9972a0c9cf30599816fcda..ee7a7b80f96712830ea92daefb4454df70def170 100644 +index 01ce54dba8c3efcc147b694ba57e070686375f68..ceca2bccb4c36713cf15fb1d7cab0cbd3f31aff5 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -@@ -399,13 +399,18 @@ public class CraftEventFactory { +@@ -401,13 +401,18 @@ public class CraftEventFactory { } org.bukkit.inventory.ItemStack item; diff --git a/patches/unapplied/server/0354-Validate-tripwire-hook-placement-before-update.patch b/patches/server/0350-Validate-tripwire-hook-placement-before-update.patch similarity index 100% rename from patches/unapplied/server/0354-Validate-tripwire-hook-placement-before-update.patch rename to patches/server/0350-Validate-tripwire-hook-placement-before-update.patch diff --git a/patches/unapplied/server/0355-Add-option-to-allow-iron-golems-to-spawn-in-air.patch b/patches/server/0351-Add-option-to-allow-iron-golems-to-spawn-in-air.patch similarity index 100% rename from patches/unapplied/server/0355-Add-option-to-allow-iron-golems-to-spawn-in-air.patch rename to patches/server/0351-Add-option-to-allow-iron-golems-to-spawn-in-air.patch diff --git a/patches/unapplied/server/0356-Configurable-chance-of-villager-zombie-infection.patch b/patches/server/0352-Configurable-chance-of-villager-zombie-infection.patch similarity index 93% rename from patches/unapplied/server/0356-Configurable-chance-of-villager-zombie-infection.patch rename to patches/server/0352-Configurable-chance-of-villager-zombie-infection.patch index c5631c6788..7b0fc6061a 100644 --- a/patches/unapplied/server/0356-Configurable-chance-of-villager-zombie-infection.patch +++ b/patches/server/0352-Configurable-chance-of-villager-zombie-infection.patch @@ -8,10 +8,10 @@ This allows you to solve an issue in vanilla behavior where: * On normal difficulty they will have a 50% of getting infected or dying. diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -index fed8b065172f40a2a5c251f46303fc4d72c9653a..fae2c89900db222f7319b5675ef4b470beca251b 100644 +index 2be074ecbc131b68574cf77ba9cab96424715522..55e4416a7988690ecfc8da6e83b43cbf9adda33b 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java -@@ -451,12 +451,16 @@ public class Zombie extends Monster { +@@ -452,12 +452,16 @@ public class Zombie extends Monster { public boolean killedEntity(ServerLevel world, LivingEntity other) { boolean flag = super.killedEntity(world, other); diff --git a/patches/unapplied/server/0357-Optimise-Chunk-getFluid.patch b/patches/server/0353-Optimise-Chunk-getFluid.patch similarity index 92% rename from patches/unapplied/server/0357-Optimise-Chunk-getFluid.patch rename to patches/server/0353-Optimise-Chunk-getFluid.patch index cd3ac36a01..8f635b56f9 100644 --- a/patches/unapplied/server/0357-Optimise-Chunk-getFluid.patch +++ b/patches/server/0353-Optimise-Chunk-getFluid.patch @@ -8,7 +8,7 @@ faster on its own, however removing the try catch makes it easier to inline due to code size diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java -index 24a1d04d01d01262facbac9c3683c21b7f54fd6d..c3760f22fcc56ccb25e3315823054416c2172386 100644 +index fdb8c2346cb2e444b75f863a8a8199da84f25193..f229838bf0566d61b2716463ff95fcc0b04d2e97 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java @@ -380,18 +380,20 @@ public class LevelChunk extends ChunkAccess { @@ -47,10 +47,10 @@ index 24a1d04d01d01262facbac9c3683c21b7f54fd6d..c3760f22fcc56ccb25e3315823054416 // CraftBukkit start diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -index 4eeb719b40ff1c18a7cdda7ecc6b135dbedd626e..b8fee4f8a0cfe32b9ef7f3f3cf818cbaec0d3fca 100644 +index 2c3ea88bac229df67bd742e16d2106d80bcc8889..789664d53584c7d958572c63db22f904fb411a58 100644 --- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java +++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java -@@ -46,7 +46,7 @@ public class LevelChunkSection { +@@ -43,7 +43,7 @@ public class LevelChunkSection { } public FluidState getFluidState(int x, int y, int z) { diff --git a/patches/unapplied/server/0358-Set-spigots-verbose-world-setting-to-false-by-def.patch b/patches/server/0354-Set-spigots-verbose-world-setting-to-false-by-def.patch similarity index 100% rename from patches/unapplied/server/0358-Set-spigots-verbose-world-setting-to-false-by-def.patch rename to patches/server/0354-Set-spigots-verbose-world-setting-to-false-by-def.patch diff --git a/patches/unapplied/server/0359-Add-tick-times-API-and-mspt-command.patch b/patches/server/0355-Add-tick-times-API-and-mspt-command.patch similarity index 93% rename from patches/unapplied/server/0359-Add-tick-times-API-and-mspt-command.patch rename to patches/server/0355-Add-tick-times-API-and-mspt-command.patch index 8a01ceb2e5..45da3a31cc 100644 --- a/patches/unapplied/server/0359-Add-tick-times-API-and-mspt-command.patch +++ b/patches/server/0355-Add-tick-times-API-and-mspt-command.patch @@ -125,10 +125,10 @@ index 72f2e81b9905a0d57ed8e2a88578f62d5235c456..7b58b2d6297800c2dcdbf7539e5ab8e7 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 21d7196cdc694a581c8a3232a39e7454c0b30f56..498f06aa1d8b2c20f5bf31d6751f08cf1eb4240f 100644 +index 5b274f766e8cf55151ac6499fa1a68b9a0816b57..0fa1d9f299194ff660130a1cf33d9a405d56a842 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -251,6 +251,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop 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 fc6cf61664b4c64c9319c61b447a02e2cc38558f..2838e035204e95defce0d7488248b2e57bf71fab 100644 +index 79229f3563cc642568487ea92840c8753c536240..4307b72acc389ccab97b2b7f3f824ddeca5a3cda 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -2473,7 +2473,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2217,7 +2217,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public void onTrackingStart(Entity entity) { org.spigotmc.AsyncCatcher.catchOp("entity register"); // Spigot @@ -37,7 +37,7 @@ index fc6cf61664b4c64c9319c61b447a02e2cc38558f..2838e035204e95defce0d7488248b2e5 if (entity instanceof ServerPlayer) { ServerPlayer entityplayer = (ServerPlayer) entity; -@@ -2507,6 +2507,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -2251,6 +2251,7 @@ public class ServerLevel extends Level implements WorldGenLevel { entity.updateDynamicGameEventListener(DynamicGameEventListener::add); entity.valid = true; // CraftBukkit diff --git a/patches/unapplied/server/0366-Don-t-tick-dead-players.patch b/patches/server/0362-Don-t-tick-dead-players.patch similarity index 85% rename from patches/unapplied/server/0366-Don-t-tick-dead-players.patch rename to patches/server/0362-Don-t-tick-dead-players.patch index 32deb385d9..ee41d21867 100644 --- a/patches/unapplied/server/0366-Don-t-tick-dead-players.patch +++ b/patches/server/0362-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 60564b0624eb253443831e1ba1c3f3dcade6b8ef..8be5973f90c7c6959e572072951d61f65f0cd2f3 100644 +index b8a54046bdfd7ae0650a3758af3a56d0d06d0661..ddfc108db57e3df813e9cef794f00b95d86f5078 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -724,7 +724,7 @@ public class ServerPlayer extends Player { +@@ -683,7 +683,7 @@ public class ServerPlayer extends Player { public void doTick() { try { diff --git a/patches/unapplied/server/0367-Dead-Player-s-shouldn-t-be-able-to-move.patch b/patches/server/0363-Dead-Player-s-shouldn-t-be-able-to-move.patch similarity index 84% rename from patches/unapplied/server/0367-Dead-Player-s-shouldn-t-be-able-to-move.patch rename to patches/server/0363-Dead-Player-s-shouldn-t-be-able-to-move.patch index 650e763d04..3fcf32908f 100644 --- a/patches/unapplied/server/0367-Dead-Player-s-shouldn-t-be-able-to-move.patch +++ b/patches/server/0363-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 078986fb32eeecacc954ad6719e981ed8b3a2350..a8731cf957da9aad7ed6f5d372500bc34afd32ca 100644 +index 9d252aea2c372f9a6b46319564dc6dc5e94d9a91..00d9dd5affd62ceb35bb783d6bcc9e1e600c0fb4 100644 --- a/src/main/java/net/minecraft/world/entity/player/Player.java +++ b/src/main/java/net/minecraft/world/entity/player/Player.java -@@ -1160,7 +1160,7 @@ public abstract class Player extends LivingEntity { +@@ -1166,7 +1166,7 @@ public abstract class Player extends LivingEntity { @Override protected boolean isImmobile() { diff --git a/patches/unapplied/server/0368-Optimize-Collision-to-not-load-chunks.patch b/patches/server/0364-Optimize-Collision-to-not-load-chunks.patch similarity index 94% rename from patches/unapplied/server/0368-Optimize-Collision-to-not-load-chunks.patch rename to patches/server/0364-Optimize-Collision-to-not-load-chunks.patch index 2821f17e10..d23823ed80 100644 --- a/patches/unapplied/server/0368-Optimize-Collision-to-not-load-chunks.patch +++ b/patches/server/0364-Optimize-Collision-to-not-load-chunks.patch @@ -14,19 +14,19 @@ 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 2848e657209a699b12fc0e1fd2bde54d661f07f0..9c3ab91555f60a1a3cd8a89e883cfbdedc53f3f8 100644 +index b4ded40387006821433db1de85ed1c2347757155..6a170e73f0ca6233a742dfa13ce496e0b770b0ac 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -827,6 +827,7 @@ public abstract class PlayerList { +@@ -824,6 +824,7 @@ public abstract class PlayerList { + entityplayer1.setShiftKeyDown(false); entityplayer1.forceSetPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); - // CraftBukkit end + worldserver1.getChunkSource().addRegionTicket(net.minecraft.server.level.TicketType.POST_TELEPORT, new net.minecraft.world.level.ChunkPos(location.getBlockX() >> 4, location.getBlockZ() >> 4), 1, entityplayer.getId()); // Paper while (avoidSuffocation && !worldserver1.noCollision((Entity) entityplayer1) && entityplayer1.getY() < (double) worldserver1.getMaxBuildHeight()) { + // CraftBukkit end 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 7d00dc9bd1fe9167e0122395f901a4700c132f61..70d1d664efa323cbb0c07fd5aa746122261b6bfa 100644 +index 1badb25665edaeb5eb274b770ea50598ba056b22..961213739ba810c6e39aca76a32d74bcf2a58ad3 100644 --- a/src/main/java/net/minecraft/world/entity/Entity.java +++ b/src/main/java/net/minecraft/world/entity/Entity.java @@ -237,6 +237,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource { @@ -92,7 +92,7 @@ index f2c423154ed6a00882a46d93b69ed4f6ba73782c..a3eaf80b020c3bbc0306c5d17659ee66 } diff --git a/src/main/java/net/minecraft/world/level/CollisionGetter.java b/src/main/java/net/minecraft/world/level/CollisionGetter.java -index 30d037a8f890e06b27c5d3609bdd10e6b11cfb13..06107d69dff9f0b52a5f188095cbd9a9efa5684c 100644 +index 140d10807a3a6806578cd203ba58383590c2f2c0..c476e37df8a75d77f5093b2a449e04f25ef2c2dd 100644 --- a/src/main/java/net/minecraft/world/level/CollisionGetter.java +++ b/src/main/java/net/minecraft/world/level/CollisionGetter.java @@ -44,11 +44,13 @@ public interface CollisionGetter extends BlockGetter { diff --git a/patches/unapplied/server/0369-Don-t-move-existing-players-to-world-spawn.patch b/patches/server/0365-Don-t-move-existing-players-to-world-spawn.patch similarity index 81% rename from patches/unapplied/server/0369-Don-t-move-existing-players-to-world-spawn.patch rename to patches/server/0365-Don-t-move-existing-players-to-world-spawn.patch index 7ef44984be..c3b90202af 100644 --- a/patches/unapplied/server/0369-Don-t-move-existing-players-to-world-spawn.patch +++ b/patches/server/0365-Don-t-move-existing-players-to-world-spawn.patch @@ -13,19 +13,19 @@ By skipping this, we avoid potential for a large spike on server start. public net.minecraft.server.level.ServerPlayer fudgeSpawnLocation(Lnet/minecraft/server/level/ServerLevel;)V diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java -index 8be5973f90c7c6959e572072951d61f65f0cd2f3..c7d4341642df2fc847e139cf03992b13645afa3e 100644 +index ddfc108db57e3df813e9cef794f00b95d86f5078..3ebcbda84de7817ff1aab5cdac6566f9eb05f2dd 100644 --- a/src/main/java/net/minecraft/server/level/ServerPlayer.java +++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java -@@ -377,7 +377,7 @@ public class ServerPlayer extends Player { +@@ -335,7 +335,7 @@ public class ServerPlayer extends Player { this.stats = server.getPlayerList().getPlayerStats(this); this.advancements = server.getPlayerList().getPlayerAdvancements(this); this.setMaxUpStep(1.0F); - this.fudgeSpawnLocation(world); -+ //this.fudgeSpawnLocation(world); // Paper - don't move to spawn on login, only first join ++ // this.fudgeSpawnLocation(world); // Paper - don't move to spawn on login, only first join + this.updateOptions(clientOptions); this.cachedSingleHashSet = new com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet<>(this); // Paper - -@@ -611,7 +611,7 @@ public class ServerPlayer extends Player { +@@ -570,7 +570,7 @@ public class ServerPlayer extends Player { position = Vec3.atCenterOf(world.getSharedSpawnPos()); } this.setLevel(world); @@ -35,10 +35,10 @@ index 8be5973f90c7c6959e572072951d61f65f0cd2f3..c7d4341642df2fc847e139cf03992b13 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 9c3ab91555f60a1a3cd8a89e883cfbdedc53f3f8..5b8b345ade30012371bdda744ba82c585f74db07 100644 +index 6a170e73f0ca6233a742dfa13ce496e0b770b0ac..89310108e94f3198c5f4ecd65e414a2c7af262cb 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java -@@ -236,6 +236,7 @@ public abstract class PlayerList { +@@ -228,6 +228,7 @@ public abstract class PlayerList { // Paper start if (nbttagcompound == null) { player.spawnReason = org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.DEFAULT; // set Player SpawnReason to DEFAULT on first login diff --git a/patches/unapplied/server/0370-Optimize-GoalSelector-Goal.Flag-Set-operations.patch b/patches/server/0366-Optimize-GoalSelector-Goal.Flag-Set-operations.patch similarity index 100% rename from patches/unapplied/server/0370-Optimize-GoalSelector-Goal.Flag-Set-operations.patch rename to patches/server/0366-Optimize-GoalSelector-Goal.Flag-Set-operations.patch diff --git a/patches/unapplied/server/0336-Guard-against-serializing-mismatching-chunk-coordina.patch b/patches/unapplied/skipped/0336-Guard-against-serializing-mismatching-chunk-coordina.patch similarity index 100% rename from patches/unapplied/server/0336-Guard-against-serializing-mismatching-chunk-coordina.patch rename to patches/unapplied/skipped/0336-Guard-against-serializing-mismatching-chunk-coordina.patch diff --git a/patches/unapplied/server/0343-Anti-Xray.patch b/patches/unapplied/skipped/0343-Anti-Xray.patch similarity index 100% rename from patches/unapplied/server/0343-Anti-Xray.patch rename to patches/unapplied/skipped/0343-Anti-Xray.patch