From 3062eb208d70c44fbad76155983d1d82f6b511ea Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Thu, 25 Apr 2024 16:24:08 -0700 Subject: [PATCH] address my own comments --- patches/server/0010-Adventure.patch | 32 +++++++++++++------ ...oleAppender-for-console-improvements.patch | 4 +-- patches/server/0025-Timings-v2.patch | 2 +- .../0040-Player-affects-spawning-API.patch | 2 +- ...041-Only-refresh-abilities-if-needed.patch | 2 +- ...54-Implement-PlayerLocaleChangeEvent.patch | 2 +- ...061-Improve-Player-chat-API-handling.patch | 2 +- .../0065-Player-Tab-List-and-Title-APIs.patch | 2 +- ...ble-inter-world-teleportation-safety.patch | 2 +- .../0073-Complete-resource-pack-API.patch | 2 +- ...th-absorb-values-and-repair-bad-data.patch | 2 +- ...able-API-and-replenishable-lootables.patch | 9 +++--- .../0126-String-based-Action-Bar-API.patch | 2 +- .../0150-ensureServerConversions-API.patch | 4 +-- .../0151-Implement-getI18NDisplayName.patch | 4 +-- ...nt-protocol-version-and-virtual-host.patch | 2 +- ...0-Ability-to-apply-mending-to-XP-API.patch | 2 +- .../0183-Player.setPlayerProfile-API.patch | 2 +- ...88-Flag-to-disable-the-channel-limit.patch | 2 +- .../0215-InventoryCloseEvent-Reason-API.patch | 2 +- ...e-attack-cooldown-methods-for-Player.patch | 2 +- .../server/0250-Improve-death-events.patch | 2 +- ...-Replace-OfflinePlayer-getLastPlayed.patch | 2 +- ...r-remove-if-the-handle-is-a-custom-p.patch | 2 +- ...-Implement-Player-Client-Options-API.patch | 2 +- patches/server/0407-Brand-support.patch | 2 +- ...ate-HoverEvent-from-ItemStack-Entity.patch | 4 +-- ...r-spawnParticle-x-y-z-precision-loss.patch | 2 +- patches/server/0487-Add-sendOpLevel-API.patch | 2 +- ...550-Expand-PlayerGameModeChangeEvent.patch | 2 +- .../0562-Add-PlayerKickEvent-causes.patch | 2 +- .../server/0591-Add-PlayerSetSpawnEvent.patch | 2 +- ...0609-Add-ItemFactory-getSpawnEgg-API.patch | 4 +-- ...ulti-Block-Change-API-Implementation.patch | 2 +- ...0704-Implement-enchantWithLevels-API.patch | 6 ++-- patches/server/0746-More-Teleport-API.patch | 2 +- ...stom-Chat-Completion-Suggestions-API.patch | 2 +- .../0777-Elder-Guardian-appearance-API.patch | 2 +- .../0791-Add-Player-Warden-Warning-API.patch | 2 +- patches/server/0804-fix-Instruments.patch | 2 +- patches/server/0814-Flying-Fall-Damage.patch | 2 +- patches/server/0820-Win-Screen-API.patch | 2 +- .../0846-Expand-PlayerItemMendEvent.patch | 2 +- ...65-fix-item-meta-for-tadpole-buckets.patch | 2 +- patches/server/0866-Fix-BanList-API.patch | 2 +- .../server/0885-Bandaid-fix-for-Effect.patch | 2 +- .../0893-Add-Listing-API-for-Player.patch | 2 +- ...-Implement-OfflinePlayer-isConnected.patch | 2 +- .../0923-Add-player-idle-duration-API.patch | 2 +- ...stack-for-Player-sendEquipmentChange.patch | 2 +- .../0947-Add-experience-points-API.patch | 2 +- ...he-changed-item-from-dispense-events.patch | 4 +-- .../server/0985-Rewrite-chunk-system.patch | 2 +- patches/server/1025-Optimize-Hoppers.patch | 4 +-- .../1035-API-for-checking-sent-chunks.patch | 2 +- 55 files changed, 88 insertions(+), 77 deletions(-) diff --git a/patches/server/0010-Adventure.patch b/patches/server/0010-Adventure.patch index 86346098c..bd24346fb 100644 --- a/patches/server/0010-Adventure.patch +++ b/patches/server/0010-Adventure.patch @@ -1147,10 +1147,10 @@ index 0000000000000000000000000000000000000000..2fd6c3e65354071af71c7d8ebb97b559 +} diff --git a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java new file mode 100644 -index 0000000000000000000000000000000000000000..94a0a5850c97df08019c5b0f5d4e02a9b199949b +index 0000000000000000000000000000000000000000..6c59f7083ea0e5e9215f31baa677d0a4699dd39a --- /dev/null +++ b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java -@@ -0,0 +1,467 @@ +@@ -0,0 +1,474 @@ +package io.papermc.paper.adventure; + +import com.mojang.brigadier.StringReader; @@ -1219,6 +1219,7 @@ index 0000000000000000000000000000000000000000..94a0a5850c97df08019c5b0f5d4e02a9 +import org.bukkit.craftbukkit.command.VanillaCommandWrapper; +import org.bukkit.craftbukkit.entity.CraftEntity; +import org.intellij.lang.annotations.Subst; ++import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + @@ -1337,7 +1338,13 @@ index 0000000000000000000000000000000000000000..94a0a5850c97df08019c5b0f5d4e02a9 + return jsons; + } + -+ public static net.minecraft.network.chat.Component asVanilla(@Nullable final Component component) { ++ public static net.minecraft.network.chat.@NotNull Component asVanillaNullToEmpty(final @Nullable Component component) { ++ if (component == null) return net.minecraft.network.chat.CommonComponents.EMPTY; ++ return asVanilla(component); ++ } ++ ++ @Contract("null -> null; !null -> !null") ++ public static net.minecraft.network.chat.Component asVanilla(final @Nullable Component component) { + if (component == null) return null; + if (true) return new AdventureComponent(component); + return WRAPPER_AWARE_SERIALIZER.serialize(component); @@ -4059,7 +4066,7 @@ index 55945b83a5426b352bad9507cc9e94afb1278032..9ea1537408ff2d790747b6e5a681d917 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 13c3ac65f26e6cfc55ee3538b6308ef93f9936aa..aa9049ed3d39ab862978e311ec0bb0dceb648a8a 100644 +index 13c3ac65f26e6cfc55ee3538b6308ef93f9936aa..09293673061edc99d38933d2e4f1a8c0e3f9dac0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -386,14 +386,40 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -4159,7 +4166,7 @@ index 13c3ac65f26e6cfc55ee3538b6308ef93f9936aa..aa9049ed3d39ab862978e311ec0bb0dc if (this.getHandle().connection == null) return; - ClientboundTabListPacket packet = new ClientboundTabListPacket((this.playerListHeader == null) ? Component.empty() : this.playerListHeader, (this.playerListFooter == null) ? Component.empty() : this.playerListFooter); -+ ClientboundTabListPacket packet = new ClientboundTabListPacket((this.playerListHeader == null) ? Component.empty() : io.papermc.paper.adventure.PaperAdventure.asVanilla(this.playerListHeader), (this.playerListFooter == null) ? Component.empty() : io.papermc.paper.adventure.PaperAdventure.asVanilla(this.playerListFooter)); // Paper - adventure ++ ClientboundTabListPacket packet = new ClientboundTabListPacket(io.papermc.paper.adventure.PaperAdventure.asVanillaNullToEmpty(this.playerListHeader), io.papermc.paper.adventure.PaperAdventure.asVanillaNullToEmpty(this.playerListFooter)); // Paper - adventure this.getHandle().connection.send(packet); } @@ -4421,8 +4428,8 @@ index 13c3ac65f26e6cfc55ee3538b6308ef93f9936aa..aa9049ed3d39ab862978e311ec0bb0dc + final ServerGamePacketListenerImpl connection = this.getHandle().connection; + if (connection == null) return; + final ClientboundTabListPacket packet = new ClientboundTabListPacket( -+ io.papermc.paper.adventure.PaperAdventure.asVanilla((this.playerListHeader == null) ? net.kyori.adventure.text.Component.empty() : this.playerListHeader), -+ io.papermc.paper.adventure.PaperAdventure.asVanilla((this.playerListFooter == null) ? net.kyori.adventure.text.Component.empty() : this.playerListFooter) ++ io.papermc.paper.adventure.PaperAdventure.asVanillaNullToEmpty(this.playerListHeader), ++ io.papermc.paper.adventure.PaperAdventure.asVanillaNullToEmpty(this.playerListFooter) + ); + connection.send(packet); + } @@ -4733,10 +4740,10 @@ index 4dd9a80af9901287ab6740b072f2b89678c3d0cb..b2586684295b295a3196a2a9cf724cec public String getTitle() { return this.title; diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 01963ef944da9251c038208c20012939afc77830..cf9069d7b3607c190459ee47ab5f7ca4ff10d03b 100644 +index 01963ef944da9251c038208c20012939afc77830..319ad3342740657175ad78a1c1cc383046fe2fb5 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -501,4 +501,16 @@ public final class CraftItemFactory implements ItemFactory { +@@ -501,4 +501,21 @@ public final class CraftItemFactory implements ItemFactory { CraftItemStack craft = (CraftItemStack) itemStack; return CraftItemStack.asCraftMirror(EnchantmentHelper.enchantItem(MinecraftServer.getServer().getWorldData().enabledFeatures(), source, craft.handle, level, allowTreasures)); } @@ -4744,7 +4751,12 @@ index 01963ef944da9251c038208c20012939afc77830..cf9069d7b3607c190459ee47ab5f7ca4 + // Paper start - Adventure + @Override + public net.kyori.adventure.text.event.HoverEvent asHoverEvent(final ItemStack item, final java.util.function.UnaryOperator op) { -+ return net.kyori.adventure.text.event.HoverEvent.showItem(op.apply(net.kyori.adventure.text.event.HoverEvent.ShowItem.showItem(item.getType().getKey(), item.getAmount(), io.papermc.paper.adventure.PaperAdventure.asAdventure(CraftItemStack.asNMSCopy(item).getComponentsPatch())))); ++ return net.kyori.adventure.text.event.HoverEvent.showItem(op.apply( ++ net.kyori.adventure.text.event.HoverEvent.ShowItem.showItem( ++ item.getType().getKey(), ++ item.getAmount(), ++ io.papermc.paper.adventure.PaperAdventure.asAdventure(CraftItemStack.unwrap(item).getComponentsPatch())) // unwrap is fine here because the components patch will be safely copied ++ )); + } + + @Override diff --git a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch index 5a2749dfc..ff5b7afe3 100644 --- a/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/patches/server/0011-Use-TerminalConsoleAppender-for-console-improvements.patch @@ -206,7 +206,7 @@ index 0000000000000000000000000000000000000000..8f07539a82f449ad217e316a7513a170 + +} diff --git a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java -index 94a0a5850c97df08019c5b0f5d4e02a9b199949b..91ae74c30e6254a1e6fac5fcadb299653a32cc45 100644 +index 6c59f7083ea0e5e9215f31baa677d0a4699dd39a..4f5c5665e07961421cff423662599b8f3dc24c1b 100644 --- a/src/main/java/io/papermc/paper/adventure/PaperAdventure.java +++ b/src/main/java/io/papermc/paper/adventure/PaperAdventure.java @@ -31,6 +31,7 @@ import net.kyori.adventure.text.flattener.ComponentFlattener; @@ -217,7 +217,7 @@ index 94a0a5850c97df08019c5b0f5d4e02a9b199949b..91ae74c30e6254a1e6fac5fcadb29965 import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.kyori.adventure.text.serializer.plain.PlainComponentSerializer; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; -@@ -125,6 +126,7 @@ public final class PaperAdventure { +@@ -126,6 +127,7 @@ public final class PaperAdventure { public static final AttributeKey LOCALE_ATTRIBUTE = AttributeKey.valueOf("adventure:locale"); // init after FLATTENER because classloading triggered here might create a logger @Deprecated public static final PlainComponentSerializer PLAIN = PlainComponentSerializer.builder().flattener(FLATTENER).build(); diff --git a/patches/server/0025-Timings-v2.patch b/patches/server/0025-Timings-v2.patch index 037ebd721..dbeba37ef 100644 --- a/patches/server/0025-Timings-v2.patch +++ b/patches/server/0025-Timings-v2.patch @@ -1805,7 +1805,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 aa9049ed3d39ab862978e311ec0bb0dceb648a8a..e27712775a494c27030e3aa824e36ec8c217b1ea 100644 +index 09293673061edc99d38933d2e4f1a8c0e3f9dac0..8342d0cb6b54c4f21b70ed005aec3ae09b9a2697 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2763,6 +2763,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0040-Player-affects-spawning-API.patch b/patches/server/0040-Player-affects-spawning-API.patch index 5815242aa..8eb031e83 100644 --- a/patches/server/0040-Player-affects-spawning-API.patch +++ b/patches/server/0040-Player-affects-spawning-API.patch @@ -135,7 +135,7 @@ index f38f62e777d88a783e1e3b7e1a48da921cc67cf4..77ae7882a08441d9a80b50492be5e484 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 e27712775a494c27030e3aa824e36ec8c217b1ea..f66adfdf41835b185aec5e7f50c768e7894c951f 100644 +index 8342d0cb6b54c4f21b70ed005aec3ae09b9a2697..e0737fd20fd0e292cf43c50633a68b061e5743bf 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2405,6 +2405,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0041-Only-refresh-abilities-if-needed.patch b/patches/server/0041-Only-refresh-abilities-if-needed.patch index e93e2f4ce..8a80f02da 100644 --- a/patches/server/0041-Only-refresh-abilities-if-needed.patch +++ b/patches/server/0041-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 f66adfdf41835b185aec5e7f50c768e7894c951f..e37f9009a6eb83da610af2cba98c35d19547443c 100644 +index e0737fd20fd0e292cf43c50633a68b061e5743bf..bae02f826767f6eca80a56e610c16a555673d856 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2082,12 +2082,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0054-Implement-PlayerLocaleChangeEvent.patch b/patches/server/0054-Implement-PlayerLocaleChangeEvent.patch index f7d2ae8e4..3417a486e 100644 --- a/patches/server/0054-Implement-PlayerLocaleChangeEvent.patch +++ b/patches/server/0054-Implement-PlayerLocaleChangeEvent.patch @@ -39,7 +39,7 @@ index d75c3c10dcbd777796e479b9538e5254857ac07c..ab2336a30c1ffc1698c327c031a648d4 // 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 e37f9009a6eb83da610af2cba98c35d19547443c..86aaec4e639e0abf05531519d2ee5b9b1f8f7517 100644 +index bae02f826767f6eca80a56e610c16a555673d856..d2111ebdea4cbed688c6cfe585d63c6d4ef451f4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2403,7 +2403,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0061-Improve-Player-chat-API-handling.patch b/patches/server/0061-Improve-Player-chat-API-handling.patch index 125faa02b..dc101862d 100644 --- a/patches/server/0061-Improve-Player-chat-API-handling.patch +++ b/patches/server/0061-Improve-Player-chat-API-handling.patch @@ -53,7 +53,7 @@ index b43dae6ed6ebdd1978e35e9d43e07591f90dcb09..4a1305df41c42be65dbb0438066e148e 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 86aaec4e639e0abf05531519d2ee5b9b1f8f7517..d50da3bc2dc3b6da13321d19d2eb501df8987461 100644 +index d2111ebdea4cbed688c6cfe585d63c6d4ef451f4..a32d3dfafebc27d3792b12c21ecc8f0b54d918ba 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -544,7 +544,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0065-Player-Tab-List-and-Title-APIs.patch b/patches/server/0065-Player-Tab-List-and-Title-APIs.patch index bc2947c54..abed8a91a 100644 --- a/patches/server/0065-Player-Tab-List-and-Title-APIs.patch +++ b/patches/server/0065-Player-Tab-List-and-Title-APIs.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Player Tab List and Title APIs diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d50da3bc2dc3b6da13321d19d2eb501df8987461..7097c7b8e76478af9d0bae366b0d55c9a86e5127 100644 +index a32d3dfafebc27d3792b12c21ecc8f0b54d918ba..c3677a72abd6ca5f2a4efd1e736512051d51ee2b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -384,6 +384,98 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0068-Configurable-inter-world-teleportation-safety.patch b/patches/server/0068-Configurable-inter-world-teleportation-safety.patch index 7ca60df4e..57ac3703f 100644 --- a/patches/server/0068-Configurable-inter-world-teleportation-safety.patch +++ b/patches/server/0068-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 7097c7b8e76478af9d0bae366b0d55c9a86e5127..6229a21596892064b1d7b5cfc723ab5bcd4fa36e 100644 +index c3677a72abd6ca5f2a4efd1e736512051d51ee2b..0f919096e344e8bbd90ff0937dcd1de32a32763b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1235,7 +1235,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0073-Complete-resource-pack-API.patch b/patches/server/0073-Complete-resource-pack-API.patch index e4008abef..466656fb2 100644 --- a/patches/server/0073-Complete-resource-pack-API.patch +++ b/patches/server/0073-Complete-resource-pack-API.patch @@ -22,7 +22,7 @@ index 26b8a69a528db8a836b138a2a223c385508ce2c4..5f5d8ae29ff702eacc72341fae074a05 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 6229a21596892064b1d7b5cfc723ab5bcd4fa36e..6aebd2fcd8490b6ffb60af9aab5b7f30c4cc2453 100644 +index 0f919096e344e8bbd90ff0937dcd1de32a32763b..268eaf8493e23c5d3763c6c2d6da0e3f78818fd7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -206,6 +206,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch b/patches/server/0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch index 0aae49b1b..5a2ec045a 100644 --- a/patches/server/0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch +++ b/patches/server/0081-handle-NaN-health-absorb-values-and-repair-bad-data.patch @@ -44,7 +44,7 @@ index 53da8935e076d56f0a5423e5c1bdcdddc7cbd882..f02b12f3853bf4bf29b59a505f06cb98 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 6aebd2fcd8490b6ffb60af9aab5b7f30c4cc2453..b3e1ee818e87d9bbe6bbbfce715aca8720928c1c 100644 +index 268eaf8493e23c5d3763c6c2d6da0e3f78818fd7..4543f060e46791d03c503637e9f17a5d9f10d879 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2327,6 +2327,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0102-LootTable-API-and-replenishable-lootables.patch b/patches/server/0102-LootTable-API-and-replenishable-lootables.patch index b1c32fdf9..7525d2714 100644 --- a/patches/server/0102-LootTable-API-and-replenishable-lootables.patch +++ b/patches/server/0102-LootTable-API-and-replenishable-lootables.patch @@ -652,7 +652,7 @@ index dbde2402fd46b0d06e8efeb90be6fb98d7ae7798..f33e5cf6d456e615050047e924d9b242 + // Paper end } diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -index c2493c15d8fe4587d6ee2db100cc13303b66b39b..6a6473ebf03e5b1e502db7e66203783b9980d072 100644 +index c2493c15d8fe4587d6ee2db100cc13303b66b39b..5b183f12717008dd6c9863938c17b2e668ebded4 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java @@ -19,6 +19,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc @@ -663,7 +663,7 @@ index c2493c15d8fe4587d6ee2db100cc13303b66b39b..6a6473ebf03e5b1e502db7e66203783b protected RandomizableContainerBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { super(type, pos, state); -@@ -45,6 +46,57 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc +@@ -45,6 +46,56 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc this.lootTableSeed = lootTableSeed; } @@ -673,9 +673,8 @@ index c2493c15d8fe4587d6ee2db100cc13303b66b39b..6a6473ebf03e5b1e502db7e66203783b + // Copied from super with changes, always check the original method + this.lootableData.loadNbt(nbt); // Paper + if (nbt.contains("LootTable", 8)) { -+ final var loc = new net.minecraft.resources.ResourceLocation(nbt.getString("LootTable")); -+ this.setLootTable(ResourceKey.create(net.minecraft.core.registries.Registries.LOOT_TABLE, loc)); -+ try { org.bukkit.craftbukkit.util.CraftNamespacedKey.fromMinecraft(this.lootTable.location()); } catch (IllegalArgumentException ex) { this.lootTable = null; } // Paper - validate ++ this.setLootTable(net.minecraft.Optionull.map(net.minecraft.resources.ResourceLocation.tryParse(nbt.getString("LootTable")), rl -> ResourceKey.create(net.minecraft.core.registries.Registries.LOOT_TABLE, rl))); ++ try { if (this.lootTable != null) org.bukkit.craftbukkit.util.CraftNamespacedKey.fromMinecraft(this.lootTable.location()); } catch (IllegalArgumentException ex) { this.lootTable = null; } // Paper - validate + if (nbt.contains("LootTableSeed", 4)) { + this.setLootTableSeed(nbt.getLong("LootTableSeed")); + } else { diff --git a/patches/server/0126-String-based-Action-Bar-API.patch b/patches/server/0126-String-based-Action-Bar-API.patch index cae378a5d..08ca7a8ec 100644 --- a/patches/server/0126-String-based-Action-Bar-API.patch +++ b/patches/server/0126-String-based-Action-Bar-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] String based Action Bar API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index b3e1ee818e87d9bbe6bbbfce715aca8720928c1c..f7eb58914dd561734e1f5ab0aec5775f3ecf937b 100644 +index 4543f060e46791d03c503637e9f17a5d9f10d879..ab1b594cd1af0e966c2a722f2c9003772433be3c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -386,6 +386,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0150-ensureServerConversions-API.patch b/patches/server/0150-ensureServerConversions-API.patch index d46869635..85e770b11 100644 --- a/patches/server/0150-ensureServerConversions-API.patch +++ b/patches/server/0150-ensureServerConversions-API.patch @@ -7,10 +7,10 @@ This will take a Bukkit ItemStack and run it through any conversions a server pr to ensure it meets latest minecraft expectations. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index cf9069d7b3607c190459ee47ab5f7ca4ff10d03b..313b682ad4826cbe68dd66bd30e79a4101540cad 100644 +index 319ad3342740657175ad78a1c1cc383046fe2fb5..3868c1fbfed3a6bc1cea760834a96a1df66b184c 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -513,4 +513,12 @@ public final class CraftItemFactory implements ItemFactory { +@@ -518,4 +518,12 @@ public final class CraftItemFactory implements ItemFactory { return io.papermc.paper.adventure.PaperAdventure.asAdventure(CraftItemStack.asNMSCopy(itemStack).getDisplayName()); } // Paper end - Adventure diff --git a/patches/server/0151-Implement-getI18NDisplayName.patch b/patches/server/0151-Implement-getI18NDisplayName.patch index e2897ecc1..9493175f2 100644 --- a/patches/server/0151-Implement-getI18NDisplayName.patch +++ b/patches/server/0151-Implement-getI18NDisplayName.patch @@ -8,10 +8,10 @@ Currently the server only supports the English language. To override this, You must replace the language file embedded in the server jar. diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 313b682ad4826cbe68dd66bd30e79a4101540cad..31b43070e0c54a433f8429a548f90140c1f36cef 100644 +index 3868c1fbfed3a6bc1cea760834a96a1df66b184c..2c5037f04f79564306d3319e6489dfcf3d244d80 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -521,4 +521,19 @@ public final class CraftItemFactory implements ItemFactory { +@@ -526,4 +526,19 @@ public final class CraftItemFactory implements ItemFactory { return CraftItemStack.asCraftMirror(CraftItemStack.asNMSCopy(item)); } // Paper end - ensure server conversions API diff --git a/patches/server/0160-Expose-client-protocol-version-and-virtual-host.patch b/patches/server/0160-Expose-client-protocol-version-and-virtual-host.patch index fd67819a0..c66ecd22a 100644 --- a/patches/server/0160-Expose-client-protocol-version-and-virtual-host.patch +++ b/patches/server/0160-Expose-client-protocol-version-and-virtual-host.patch @@ -90,7 +90,7 @@ index 9214fb6b8e21ff6aee8be0691f1fe6e41c901ba3..644214cc3a3c8e560b6ce470fe5997e3 @Override diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f7eb58914dd561734e1f5ab0aec5775f3ecf937b..d8e10cc5afc5159b0eeef22ea2ef8b2dcf7655ca 100644 +index ab1b594cd1af0e966c2a722f2c9003772433be3c..7d202f4098e0b63ae0f208c4a882844be567ea73 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -332,6 +332,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0170-Ability-to-apply-mending-to-XP-API.patch b/patches/server/0170-Ability-to-apply-mending-to-XP-API.patch index bfe5b41e9..7ea416cb5 100644 --- a/patches/server/0170-Ability-to-apply-mending-to-XP-API.patch +++ b/patches/server/0170-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 d8e10cc5afc5159b0eeef22ea2ef8b2dcf7655ca..f03143b0d061051fcde7538efe57fbd5fc551ab4 100644 +index 7d202f4098e0b63ae0f208c4a882844be567ea73..97f159fd2f8f616415ef7ce1c18ab95f372d2da1 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1624,7 +1624,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0183-Player.setPlayerProfile-API.patch b/patches/server/0183-Player.setPlayerProfile-API.patch index 5ea76cbb7..87ed2840a 100644 --- a/patches/server/0183-Player.setPlayerProfile-API.patch +++ b/patches/server/0183-Player.setPlayerProfile-API.patch @@ -77,7 +77,7 @@ index 818df09e9245b5d89b4180b1eaa51470b7539341..461656e1cb095243bfe7a9ee2906e5b0 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 f03143b0d061051fcde7538efe57fbd5fc551ab4..4d9c2ce3bdfc2d6df53d49e82e4fec5638cd28d5 100644 +index 97f159fd2f8f616415ef7ce1c18ab95f372d2da1..bd27eb448db2488a617e11a2cfadf937b34f6279 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -247,11 +247,6 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0188-Flag-to-disable-the-channel-limit.patch b/patches/server/0188-Flag-to-disable-the-channel-limit.patch index 7055f7690..d4b37a535 100644 --- a/patches/server/0188-Flag-to-disable-the-channel-limit.patch +++ b/patches/server/0188-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 4d9c2ce3bdfc2d6df53d49e82e4fec5638cd28d5..6015ceaa922fd246bb2561a20a8d894444490094 100644 +index bd27eb448db2488a617e11a2cfadf937b34f6279..568aec34f5900f690eeb121bd908b501bf4c0838 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -207,6 +207,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 d1ed83cce..4d71778b7 100644 --- a/patches/server/0215-InventoryCloseEvent-Reason-API.patch +++ b/patches/server/0215-InventoryCloseEvent-Reason-API.patch @@ -165,7 +165,7 @@ index dd3377a4f69e5ac10905e52d0eecc2427e72d856..c79607a2f45b7a487a95cf98b9b0eb6b @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 6015ceaa922fd246bb2561a20a8d894444490094..c9af0b1ebf43cbd85d557bd053ef31eb9a975746 100644 +index 568aec34f5900f690eeb121bd908b501bf4c0838..2c16e8036695c853a4a9dba18617b904c1487a9a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1260,7 +1260,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0249-Expose-attack-cooldown-methods-for-Player.patch b/patches/server/0249-Expose-attack-cooldown-methods-for-Player.patch index 41fec22d4..fdeb44296 100644 --- a/patches/server/0249-Expose-attack-cooldown-methods-for-Player.patch +++ b/patches/server/0249-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 c9af0b1ebf43cbd85d557bd053ef31eb9a975746..cb50dbc10fa0ffb599a3644867eba2710afd09c5 100644 +index 2c16e8036695c853a4a9dba18617b904c1487a9a..46c206794b6f69761be87d2674d283977c28882a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2957,6 +2957,21 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0250-Improve-death-events.patch b/patches/server/0250-Improve-death-events.patch index 93a28bffe..88736e732 100644 --- a/patches/server/0250-Improve-death-events.patch +++ b/patches/server/0250-Improve-death-events.patch @@ -427,7 +427,7 @@ index 042968ff848da74be0c9fcf9bac3d0adfb135802..cb3729509e50fed64b17f16797825c1d 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 cb50dbc10fa0ffb599a3644867eba2710afd09c5..30e815d3bde7b5b2131d8c54fb0f3a8d7be966db 100644 +index 46c206794b6f69761be87d2674d283977c28882a..47c747b355737a81cc1d71659a0c8762a37329a8 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2502,7 +2502,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0280-Replace-OfflinePlayer-getLastPlayed.patch b/patches/server/0280-Replace-OfflinePlayer-getLastPlayed.patch index 9705fed90..b9da3375d 100644 --- a/patches/server/0280-Replace-OfflinePlayer-getLastPlayed.patch +++ b/patches/server/0280-Replace-OfflinePlayer-getLastPlayed.patch @@ -106,7 +106,7 @@ index 461656e1cb095243bfe7a9ee2906e5b00574ae78..411b280ac3e27e72091db813c0c9b69b 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 30e815d3bde7b5b2131d8c54fb0f3a8d7be966db..81af2a449f38e3a67f0a80fb778ba690c2df887c 100644 +index 47c747b355737a81cc1d71659a0c8762a37329a8..f6c70805e621365c2a4cc96fb51839cef4f04a5a 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -208,6 +208,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0282-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch b/patches/server/0282-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch index cc10b0260..0ff526b8e 100644 --- a/patches/server/0282-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch +++ b/patches/server/0282-Dont-block-Player-remove-if-the-handle-is-a-custom-p.patch @@ -8,7 +8,7 @@ We just add a check to ensure that the CraftPlayer's handle is a ServerPlayer diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 81af2a449f38e3a67f0a80fb778ba690c2df887c..bd7f04aee3227c3430530334e171c287a6efdd30 100644 +index f6c70805e621365c2a4cc96fb51839cef4f04a5a..130aa837f448ba22deb6075757b7f151763a1475 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -222,8 +222,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0351-Implement-Player-Client-Options-API.patch b/patches/server/0351-Implement-Player-Client-Options-API.patch index 01b0107c5..64ad3548d 100644 --- a/patches/server/0351-Implement-Player-Client-Options-API.patch +++ b/patches/server/0351-Implement-Player-Client-Options-API.patch @@ -136,7 +136,7 @@ index f6e4172f1c7ad38128e77e53f099e67a4c4be620..62bdc3016120271da2ca3a1f6ac46757 this.adventure$locale = java.util.Objects.requireNonNullElse(net.kyori.adventure.translation.Translator.parseLocale(this.language), java.util.Locale.US); // Paper this.requestedViewDistance = clientOptions.viewDistance(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index bd7f04aee3227c3430530334e171c287a6efdd30..caf81fefd2d873c714d16f6acf8a420d9ea07f04 100644 +index 130aa837f448ba22deb6075757b7f151763a1475..de972df14afa5ce021260dd1a0c6fa0f85e26df5 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -651,6 +651,28 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0407-Brand-support.patch b/patches/server/0407-Brand-support.patch index 48b12ea61..cbbdaf4cf 100644 --- a/patches/server/0407-Brand-support.patch +++ b/patches/server/0407-Brand-support.patch @@ -57,7 +57,7 @@ index 237e3d8d2fd539f1fc6cd466ff124890dfa644d6..d7ddfabcbacb077c337c789083a24ad8 } catch (Exception ex) { ServerGamePacketListenerImpl.LOGGER.error("Couldn\'t dispatch custom payload", ex); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index caf81fefd2d873c714d16f6acf8a420d9ea07f04..36851e22972f120f9b33359df7a82b59f95dd47a 100644 +index de972df14afa5ce021260dd1a0c6fa0f85e26df5..cc003b562d4df8e01b8d3f6e150b30ad716f6427 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3116,6 +3116,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0421-Create-HoverEvent-from-ItemStack-Entity.patch b/patches/server/0421-Create-HoverEvent-from-ItemStack-Entity.patch index 5be1d3cef..4117c384b 100644 --- a/patches/server/0421-Create-HoverEvent-from-ItemStack-Entity.patch +++ b/patches/server/0421-Create-HoverEvent-from-ItemStack-Entity.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Create HoverEvent from ItemStack Entity diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 31b43070e0c54a433f8429a548f90140c1f36cef..943ef44ce17719170b71be0eae75c43426376459 100644 +index 2c5037f04f79564306d3319e6489dfcf3d244d80..46a4518e25a0eaaa99b13e4fb522060974ce4ec2 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -536,4 +536,44 @@ public final class CraftItemFactory implements ItemFactory { +@@ -541,4 +541,44 @@ public final class CraftItemFactory implements ItemFactory { return nms != null ? net.minecraft.locale.Language.getInstance().getOrDefault(nms.getItem().getDescriptionId(nms)) : null; } // Paper end - add getI18NDisplayName diff --git a/patches/server/0450-Fix-Player-spawnParticle-x-y-z-precision-loss.patch b/patches/server/0450-Fix-Player-spawnParticle-x-y-z-precision-loss.patch index 802e588e8..b6d807d38 100644 --- a/patches/server/0450-Fix-Player-spawnParticle-x-y-z-precision-loss.patch +++ b/patches/server/0450-Fix-Player-spawnParticle-x-y-z-precision-loss.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Fix Player spawnParticle x/y/z precision loss diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 36851e22972f120f9b33359df7a82b59f95dd47a..f4af230d447d97506b0d32b4d653c92edc462ca2 100644 +index cc003b562d4df8e01b8d3f6e150b30ad716f6427..3fd8e11b3ae0a60ab7d62866dfb50386fb6efbc3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2682,7 +2682,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0487-Add-sendOpLevel-API.patch b/patches/server/0487-Add-sendOpLevel-API.patch index 9d0f78522..8737d09c0 100644 --- a/patches/server/0487-Add-sendOpLevel-API.patch +++ b/patches/server/0487-Add-sendOpLevel-API.patch @@ -32,7 +32,7 @@ index 505af87eaf8209437978848be1dde86f879f82f2..d5071f9f2d433706fc378f77906bb5f0 public boolean isWhiteListed(GameProfile profile) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index f4af230d447d97506b0d32b4d653c92edc462ca2..d2443a4de68d9fea215c114ada8426f55d9dc8d5 100644 +index 3fd8e11b3ae0a60ab7d62866dfb50386fb6efbc3..ca046ab01c39546b0f4abb95a50045c48e850a6c 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -675,6 +675,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0550-Expand-PlayerGameModeChangeEvent.patch b/patches/server/0550-Expand-PlayerGameModeChangeEvent.patch index b59f7d772..6ff7dbaf6 100644 --- a/patches/server/0550-Expand-PlayerGameModeChangeEvent.patch +++ b/patches/server/0550-Expand-PlayerGameModeChangeEvent.patch @@ -145,7 +145,7 @@ index f84a6f1ec9d1081b05ab44dd99659918aa0f1874..806f16a183ff1abae4cc21409bf8d26e } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index d2443a4de68d9fea215c114ada8426f55d9dc8d5..45174db532a56534184c201767910beb511cbea4 100644 +index ca046ab01c39546b0f4abb95a50045c48e850a6c..69013e355fe5a846d825fa07c37c28aaabd04585 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1640,7 +1640,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0562-Add-PlayerKickEvent-causes.patch b/patches/server/0562-Add-PlayerKickEvent-causes.patch index 70adee8b1..c7afa27fc 100644 --- a/patches/server/0562-Add-PlayerKickEvent-causes.patch +++ b/patches/server/0562-Add-PlayerKickEvent-causes.patch @@ -477,7 +477,7 @@ index f472dea0bd4f834c0c8f0aa59ae7cdae082b14af..2fa51c3a70f43cd23b8f494fc643d66c } } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 45174db532a56534184c201767910beb511cbea4..dd30da484ac9bcbbd7aef620151f460ad7dab3f7 100644 +index 69013e355fe5a846d825fa07c37c28aaabd04585..fd748146bebeca92d3b0a7be8521e45a7764aae7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -633,7 +633,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0591-Add-PlayerSetSpawnEvent.patch b/patches/server/0591-Add-PlayerSetSpawnEvent.patch index 48da78ead..d3575cc2b 100644 --- a/patches/server/0591-Add-PlayerSetSpawnEvent.patch +++ b/patches/server/0591-Add-PlayerSetSpawnEvent.patch @@ -187,7 +187,7 @@ index e18726915d1491d74084827afd9978800aecb644..a4a90df0b500fb440226b07462faaa87 } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index dd30da484ac9bcbbd7aef620151f460ad7dab3f7..1389674186b5460b25644cb49ec9fb7f47a3235b 100644 +index fd748146bebeca92d3b0a7be8521e45a7764aae7..4cc40a0b1bc3153797b32e273694a25606e68832 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1399,9 +1399,9 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0609-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0609-Add-ItemFactory-getSpawnEgg-API.patch index 6e990a284..207215c51 100644 --- a/patches/server/0609-Add-ItemFactory-getSpawnEgg-API.patch +++ b/patches/server/0609-Add-ItemFactory-getSpawnEgg-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Add ItemFactory#getSpawnEgg API diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index 943ef44ce17719170b71be0eae75c43426376459..db112344ef6cd6dc5c1fc5c222e23d481d161e73 100644 +index 46a4518e25a0eaaa99b13e4fb522060974ce4ec2..6b2d2b8397bb95ce6ffd87dc1a2f3292f81dd422 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -576,4 +576,19 @@ public final class CraftItemFactory implements ItemFactory { +@@ -581,4 +581,19 @@ public final class CraftItemFactory implements ItemFactory { new net.md_5.bungee.api.chat.TextComponent(customName)); } // Paper end - bungee hover events diff --git a/patches/server/0676-Multi-Block-Change-API-Implementation.patch b/patches/server/0676-Multi-Block-Change-API-Implementation.patch index d63be4a5f..fc3dccaf6 100644 --- a/patches/server/0676-Multi-Block-Change-API-Implementation.patch +++ b/patches/server/0676-Multi-Block-Change-API-Implementation.patch @@ -24,7 +24,7 @@ index 926ff9be3d9e3f5d620e4c7ccb22b9f64865ff8c..1a37654aff9a9c86c9f7af10a1cf7213 buf.writeLong(this.sectionPos.asLong()); buf.writeVarInt(this.positions.length); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 1389674186b5460b25644cb49ec9fb7f47a3235b..34cca6af6d6914059048ec5e36945cbee4c20d1a 100644 +index 4cc40a0b1bc3153797b32e273694a25606e68832..8f9676fca039ba2b5c52960eb1e4382219e59eb4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -928,6 +928,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0704-Implement-enchantWithLevels-API.patch b/patches/server/0704-Implement-enchantWithLevels-API.patch index fdd91be33..7031b197b 100644 --- a/patches/server/0704-Implement-enchantWithLevels-API.patch +++ b/patches/server/0704-Implement-enchantWithLevels-API.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Implement enchantWithLevels API diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index db112344ef6cd6dc5c1fc5c222e23d481d161e73..da1b01c6489f96cfbded87e651e1d6df1dd0751a 100644 +index 6b2d2b8397bb95ce6ffd87dc1a2f3292f81dd422..c13944058e26895a03f0013b6ca49ac7580ee9bf 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -@@ -591,4 +591,26 @@ public final class CraftItemFactory implements ItemFactory { +@@ -596,4 +596,26 @@ public final class CraftItemFactory implements ItemFactory { return eggItem == null ? null : new net.minecraft.world.item.ItemStack(eggItem).asBukkitMirror(); } // Paper end - old getSpawnEgg API @@ -22,7 +22,7 @@ index db112344ef6cd6dc5c1fc5c222e23d481d161e73..da1b01c6489f96cfbded87e651e1d6df + Preconditions.checkArgument(random != null, "Argument 'random' must not be null"); + final net.minecraft.world.item.ItemStack internalStack = CraftItemStack.asNMSCopy(itemStack); + if (internalStack.isEnchanted()) { -+ internalStack.applyComponents(net.minecraft.core.component.DataComponentPatch.builder().remove(net.minecraft.core.component.DataComponents.ENCHANTMENTS).build()); ++ internalStack.set(net.minecraft.core.component.DataComponents.ENCHANTMENTS, null); + } + final net.minecraft.world.item.ItemStack enchanted = net.minecraft.world.item.enchantment.EnchantmentHelper.enchantItem( + MinecraftServer.getServer().getWorldData().enabledFeatures(), diff --git a/patches/server/0746-More-Teleport-API.patch b/patches/server/0746-More-Teleport-API.patch index 306f32552..b751485e4 100644 --- a/patches/server/0746-More-Teleport-API.patch +++ b/patches/server/0746-More-Teleport-API.patch @@ -112,7 +112,7 @@ index 113ca1d16cb7650d72f488cdaa9e670d51dc85f0..b6fef2ca5b564c293cb602cb8e300d35 private final org.bukkit.entity.Entity.Spigot spigot = new org.bukkit.entity.Entity.Spigot() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 34cca6af6d6914059048ec5e36945cbee4c20d1a..3ea54916f278fadaa66d3bc6a096b90a56355d90 100644 +index 8f9676fca039ba2b5c52960eb1e4382219e59eb4..f72b0ad304deb4e07c4d4a547613baaab7b076b0 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1273,13 +1273,101 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0751-Custom-Chat-Completion-Suggestions-API.patch b/patches/server/0751-Custom-Chat-Completion-Suggestions-API.patch index 18ff11a0a..a31dfaba1 100644 --- a/patches/server/0751-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/server/0751-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/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3ea54916f278fadaa66d3bc6a096b90a56355d90..5fbe88dfc3246bc6270df5066f56e894f712c0c1 100644 +index f72b0ad304deb4e07c4d4a547613baaab7b076b0..f8d8b22a6bd039004318524b2cfd0a290f7b2073 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -689,6 +689,24 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0777-Elder-Guardian-appearance-API.patch b/patches/server/0777-Elder-Guardian-appearance-API.patch index 7856f050b..9a2454922 100644 --- a/patches/server/0777-Elder-Guardian-appearance-API.patch +++ b/patches/server/0777-Elder-Guardian-appearance-API.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Elder Guardian appearance API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5fbe88dfc3246bc6270df5066f56e894f712c0c1..943be224e35f66f5b66274ca8c923f1209889401 100644 +index f8d8b22a6bd039004318524b2cfd0a290f7b2073..a8dd25a4ed581f3902fa46b225a86d4d635feed4 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3275,6 +3275,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0791-Add-Player-Warden-Warning-API.patch b/patches/server/0791-Add-Player-Warden-Warning-API.patch index 1ed4e822a..5b6419692 100644 --- a/patches/server/0791-Add-Player-Warden-Warning-API.patch +++ b/patches/server/0791-Add-Player-Warden-Warning-API.patch @@ -10,7 +10,7 @@ public net.minecraft.world.entity.monster.warden.WardenSpawnTracker cooldownTick public net.minecraft.world.entity.monster.warden.WardenSpawnTracker increaseWarningLevel()V diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 943be224e35f66f5b66274ca8c923f1209889401..5837b2697ff630d68362d86dfa1c144a97955fe4 100644 +index a8dd25a4ed581f3902fa46b225a86d4d635feed4..ba236636f590858cc5d9ab80949eaa61cf7acb6b 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3280,6 +3280,41 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0804-fix-Instruments.patch b/patches/server/0804-fix-Instruments.patch index fc0962748..37029bc0d 100644 --- a/patches/server/0804-fix-Instruments.patch +++ b/patches/server/0804-fix-Instruments.patch @@ -6,7 +6,7 @@ Subject: [PATCH] fix Instruments properly handle Player#playNote diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 5837b2697ff630d68362d86dfa1c144a97955fe4..3bd3ca5aae53fbeb1b2e32ae94a68ad01ade5419 100644 +index ba236636f590858cc5d9ab80949eaa61cf7acb6b..acfbd4d4a4916183252812553d5b43485e21d30d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -766,7 +766,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0814-Flying-Fall-Damage.patch b/patches/server/0814-Flying-Fall-Damage.patch index 3438cddfb..d5f5b88ac 100644 --- a/patches/server/0814-Flying-Fall-Damage.patch +++ b/patches/server/0814-Flying-Fall-Damage.patch @@ -26,7 +26,7 @@ index 761e8a0c4e1db465c18892999e86885f27ca8075..230ffd3c4541ef8979605d733b6463e3 } else { if (fallDistance >= 2.0F) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3bd3ca5aae53fbeb1b2e32ae94a68ad01ade5419..c62c0393e9201194ea3aa28da88773ad562a276b 100644 +index acfbd4d4a4916183252812553d5b43485e21d30d..9806ff40a34a6592c8d26061f89f888c9a8cc717 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -2566,6 +2566,19 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0820-Win-Screen-API.patch b/patches/server/0820-Win-Screen-API.patch index 22903e6b3..388e89d52 100644 --- a/patches/server/0820-Win-Screen-API.patch +++ b/patches/server/0820-Win-Screen-API.patch @@ -7,7 +7,7 @@ Subject: [PATCH] Win Screen API public net.minecraft.server.level.ServerPlayer seenCredits diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index c62c0393e9201194ea3aa28da88773ad562a276b..fd41178576e8be545b8f31ed1954346eb66d4590 100644 +index 9806ff40a34a6592c8d26061f89f888c9a8cc717..0ee1f22acfe660b8c3b86817879c1556434c761f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1292,6 +1292,25 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0846-Expand-PlayerItemMendEvent.patch b/patches/server/0846-Expand-PlayerItemMendEvent.patch index 151d6e63c..0cd65fdc2 100644 --- a/patches/server/0846-Expand-PlayerItemMendEvent.patch +++ b/patches/server/0846-Expand-PlayerItemMendEvent.patch @@ -33,7 +33,7 @@ index adc3e6298a1946fdea029c82a9954fb5b6e24497..a207a31d80a302dbdfe80f8727222542 return k > 0 ? this.repairPlayerItems(player, k) : 0; } else { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index fd41178576e8be545b8f31ed1954346eb66d4590..8cd7841b038615ab41dee342df8aa76a8c3a12a7 100644 +index 0ee1f22acfe660b8c3b86817879c1556434c761f..12a096d20d254a9cbdfc28b923afef474fa5698f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1835,11 +1835,11 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0865-fix-item-meta-for-tadpole-buckets.patch b/patches/server/0865-fix-item-meta-for-tadpole-buckets.patch index 92fa5af5f..11453b4a7 100644 --- a/patches/server/0865-fix-item-meta-for-tadpole-buckets.patch +++ b/patches/server/0865-fix-item-meta-for-tadpole-buckets.patch @@ -5,7 +5,7 @@ Subject: [PATCH] fix item meta for tadpole buckets diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java -index da1b01c6489f96cfbded87e651e1d6df1dd0751a..c7533d6c512fd61ca77c1e07f844e0dd47a5893e 100644 +index c13944058e26895a03f0013b6ca49ac7580ee9bf..6e2a6ce5cf456bd9f6c8c18a58f08e2285dc77ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java @@ -364,6 +364,7 @@ public final class CraftItemFactory implements ItemFactory { diff --git a/patches/server/0866-Fix-BanList-API.patch b/patches/server/0866-Fix-BanList-API.patch index ac583e696..e4e7e8a14 100644 --- a/patches/server/0866-Fix-BanList-API.patch +++ b/patches/server/0866-Fix-BanList-API.patch @@ -208,7 +208,7 @@ index 172202accf4448a933fcf1ff820316c7910dd7f7..50ee7656580d386db473c054f5c5ec57 return null; } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 8cd7841b038615ab41dee342df8aa76a8c3a12a7..7bf40626a8fa3e5cd99612cc30681c31e5fcb744 100644 +index 12a096d20d254a9cbdfc28b923afef474fa5698f..661789f7e26496162b6d86d698fd91aab5f5fe0d 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1733,23 +1733,23 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0885-Bandaid-fix-for-Effect.patch b/patches/server/0885-Bandaid-fix-for-Effect.patch index e85022425..736ca0c37 100644 --- a/patches/server/0885-Bandaid-fix-for-Effect.patch +++ b/patches/server/0885-Bandaid-fix-for-Effect.patch @@ -65,7 +65,7 @@ index 0c5c67480e16333641f4ebc89d892f7a0e2387fd..18c1cceb9e8b2873b24134a9e0126336 // Special case: the axis is optional for ELECTRIC_SPARK Preconditions.checkArgument(effect.getData() == null || effect == Effect.ELECTRIC_SPARK, "Wrong kind of data for the %s effect", effect); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 7bf40626a8fa3e5cd99612cc30681c31e5fcb744..a83a9b9399efd843f249ebe0923706935109ee2f 100644 +index 661789f7e26496162b6d86d698fd91aab5f5fe0d..d4889bcb83be1f6d8099810b784acbaf764c9885 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -915,7 +915,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0893-Add-Listing-API-for-Player.patch b/patches/server/0893-Add-Listing-API-for-Player.patch index bcd0417d4..22568e673 100644 --- a/patches/server/0893-Add-Listing-API-for-Player.patch +++ b/patches/server/0893-Add-Listing-API-for-Player.patch @@ -119,7 +119,7 @@ index ea04eb049e16d1027d15f9863d1fcd16f090c464..0aa28caa1254137c0bae8e213bd08c9a // Paper end - Use single player info update packet on join player.sentListPacket = true; diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index a83a9b9399efd843f249ebe0923706935109ee2f..e8f90e9fd0fb2a6ae3419be759892f46ee459330 100644 +index d4889bcb83be1f6d8099810b784acbaf764c9885..7cec63cf1d1b33e23cc0a110f3ad0e16bf77ec78 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -199,6 +199,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0903-Implement-OfflinePlayer-isConnected.patch b/patches/server/0903-Implement-OfflinePlayer-isConnected.patch index 0a5dd1a00..7e05ab3fb 100644 --- a/patches/server/0903-Implement-OfflinePlayer-isConnected.patch +++ b/patches/server/0903-Implement-OfflinePlayer-isConnected.patch @@ -23,7 +23,7 @@ index 4d654c4f0b6210a9841427789ba70ce5d1d308be..9d93130f23addb18b97d7f5ec013faef public String getName() { Player player = this.getPlayer(); diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index e8f90e9fd0fb2a6ae3419be759892f46ee459330..3a3e909ed68f7abc1ec5f79c51783334372488d0 100644 +index 7cec63cf1d1b33e23cc0a110f3ad0e16bf77ec78..fbeddf9ccb5331598228c4846925268a14a21054 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -254,6 +254,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0923-Add-player-idle-duration-API.patch b/patches/server/0923-Add-player-idle-duration-API.patch index 1184e24e5..c4a929a7e 100644 --- a/patches/server/0923-Add-player-idle-duration-API.patch +++ b/patches/server/0923-Add-player-idle-duration-API.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add player idle duration API Implements API for getting and resetting a player's idle duration. diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 3a3e909ed68f7abc1ec5f79c51783334372488d0..99e676dd5183c1f696afdd2b207ddf5056ba68ef 100644 +index fbeddf9ccb5331598228c4846925268a14a21054..6365418ed2aa478b19312cdbf6cefd8d44d96db2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3395,6 +3395,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0926-Allow-null-itemstack-for-Player-sendEquipmentChange.patch b/patches/server/0926-Allow-null-itemstack-for-Player-sendEquipmentChange.patch index 3f057075e..529a4a83c 100644 --- a/patches/server/0926-Allow-null-itemstack-for-Player-sendEquipmentChange.patch +++ b/patches/server/0926-Allow-null-itemstack-for-Player-sendEquipmentChange.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow null itemstack for Player#sendEquipmentChange diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 99e676dd5183c1f696afdd2b207ddf5056ba68ef..05b27413b50255b8862f8feab2cd60e260919971 100644 +index 6365418ed2aa478b19312cdbf6cefd8d44d96db2..1bcb5f28b37473ac9079638669dff6f60a614cf9 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1125,7 +1125,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0947-Add-experience-points-API.patch b/patches/server/0947-Add-experience-points-API.patch index c5f04f3fe..2cd4426a4 100644 --- a/patches/server/0947-Add-experience-points-API.patch +++ b/patches/server/0947-Add-experience-points-API.patch @@ -18,7 +18,7 @@ index 230ffd3c4541ef8979605d733b6463e39cd00206..446556028028b25c35dbf3d099bf14a5 // Paper start - send while respecting visibility private static void sendSoundEffect(Player fromEntity, double x, double y, double z, SoundEvent soundEffect, SoundSource soundCategory, float volume, float pitch) { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 05b27413b50255b8862f8feab2cd60e260919971..84e7c91c56c306b6956520287364b87a297c14cf 100644 +index 1bcb5f28b37473ac9079638669dff6f60a614cf9..41d6f164251d1de4663383a024e9edd5257f97f3 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1902,6 +1902,49 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/0979-Properly-track-the-changed-item-from-dispense-events.patch b/patches/server/0979-Properly-track-the-changed-item-from-dispense-events.patch index cde48f6da..03deeffec 100644 --- a/patches/server/0979-Properly-track-the-changed-item-from-dispense-events.patch +++ b/patches/server/0979-Properly-track-the-changed-item-from-dispense-events.patch @@ -63,7 +63,7 @@ index 32084df594649d8da04052bbfa111896d8ea1f91..d194c08a50493da39f2457dc55fed953 Item item = Items.BUCKET; stack.shrink(1); diff --git a/src/main/java/net/minecraft/core/dispenser/ProjectileDispenseBehavior.java b/src/main/java/net/minecraft/core/dispenser/ProjectileDispenseBehavior.java -index 985954030654d521291cccbfc3ca49b67ee4357d..03503357b50c53e3f3f69db887a002df7285cd38 100644 +index 985954030654d521291cccbfc3ca49b67ee4357d..e37d2d29f3ba67cfe28abe4847a3dca07121f0be 100644 --- a/src/main/java/net/minecraft/core/dispenser/ProjectileDispenseBehavior.java +++ b/src/main/java/net/minecraft/core/dispenser/ProjectileDispenseBehavior.java @@ -36,7 +36,7 @@ public class ProjectileDispenseBehavior extends DefaultDispenseItemBehavior { @@ -79,7 +79,7 @@ index 985954030654d521291cccbfc3ca49b67ee4357d..03503357b50c53e3f3f69db887a002df } } -+ Projectile iprojectile = this.projectileItem.asProjectile(worldserver, iposition, CraftItemStack.asNMSCopy(event.getItem()), enumdirection); // Paper - move from above and track changed items in the dispense event ++ Projectile iprojectile = this.projectileItem.asProjectile(worldserver, iposition, CraftItemStack.unwrap(event.getItem()), enumdirection); // Paper - move from above and track changed items in the dispense event; unwrap is safe here because all uses of the stack make their own copies this.projectileItem.shoot(iprojectile, event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), this.dispenseConfig.power(), this.dispenseConfig.uncertainty()); ((Entity) iprojectile).projectileSource = new org.bukkit.craftbukkit.projectiles.CraftBlockProjectileSource(pointer.blockEntity()); // CraftBukkit end diff --git a/patches/server/0985-Rewrite-chunk-system.patch b/patches/server/0985-Rewrite-chunk-system.patch index 3c137de96..738116a3f 100644 --- a/patches/server/0985-Rewrite-chunk-system.patch +++ b/patches/server/0985-Rewrite-chunk-system.patch @@ -21649,7 +21649,7 @@ index 4b6a04e47f5d4c071607516519098fab317dcf12..01fc74e6cc8ea8808b821583afb26309 // Paper start - implement pointers diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 84e7c91c56c306b6956520287364b87a297c14cf..0b0bef1a8a12029c1da775f1cad5c1af42544179 100644 +index 41d6f164251d1de4663383a024e9edd5257f97f3..2d232a5e978baaedab4665ac389187f8d81c5484 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3458,31 +3458,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player { diff --git a/patches/server/1025-Optimize-Hoppers.patch b/patches/server/1025-Optimize-Hoppers.patch index 9f935dd7a..1ac04bb94 100644 --- a/patches/server/1025-Optimize-Hoppers.patch +++ b/patches/server/1025-Optimize-Hoppers.patch @@ -623,10 +623,10 @@ index 92086ca118d55ec49cefa5bf18977f8706e3e4b4..f78343b50641a63110b8867ad84298ba @Override diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -index 6a6473ebf03e5b1e502db7e66203783b9980d072..674c3c2b3cc2c00a8830900baf797bc20f154fe7 100644 +index 5b183f12717008dd6c9863938c17b2e668ebded4..17da915ffa638500a83b67db0940a7b9a9b333a1 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java -@@ -105,7 +105,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc +@@ -104,7 +104,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc @Override public ItemStack getItem(int slot) { diff --git a/patches/server/1035-API-for-checking-sent-chunks.patch b/patches/server/1035-API-for-checking-sent-chunks.patch index 18a11ca0f..76acdb85e 100644 --- a/patches/server/1035-API-for-checking-sent-chunks.patch +++ b/patches/server/1035-API-for-checking-sent-chunks.patch @@ -21,7 +21,7 @@ index ee58c67cb2bd78159cce19ec75f13dc6168a0e7a..149cfb0587299f72fcfddf395fb71b70 // TODO rebase into util patch diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java -index 0b0bef1a8a12029c1da775f1cad5c1af42544179..f07173f3ed5a7966bbe5306d81eb3df8b38ca7d1 100644 +index 2d232a5e978baaedab4665ac389187f8d81c5484..2ec4d1e930b6cd02e105f5edb60493f060041589 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -3450,6 +3450,35 @@ public class CraftPlayer extends CraftHumanEntity implements Player {