aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJake Potrebic <[email protected]>2024-06-13 17:08:12 -0700
committerJake Potrebic <[email protected]>2024-06-13 17:08:12 -0700
commit8731266275fe10f8b9ac6c0a7190c5000e4cbd26 (patch)
tree2bd2eed6251955c89cb598e11e4c34f993a920d7
parentba163e10bb7465950c28cc2e903f7ad26e5a6906 (diff)
downloadPaper-8731266275fe10f8b9ac6c0a7190c5000e4cbd26.tar.gz
Paper-8731266275fe10f8b9ac6c0a7190c5000e4cbd26.zip
650/1053
-rw-r--r--patches/server/0580-Config-option-for-Piglins-guarding-chests.patch (renamed from patches/unapplied/server/0586-Config-option-for-Piglins-guarding-chests.patch)2
-rw-r--r--patches/server/0581-Add-EntityDamageItemEvent.patch63
-rw-r--r--patches/server/0582-Optimize-indirect-passenger-iteration.patch (renamed from patches/unapplied/server/0588-Optimize-indirect-passenger-iteration.patch)6
-rw-r--r--patches/server/0583-Configurable-item-frame-map-cursor-update-interval.patch (renamed from patches/unapplied/server/0589-Configurable-item-frame-map-cursor-update-interval.patch)4
-rw-r--r--patches/server/0584-Change-EnderEye-target-without-changing-other-things.patch (renamed from patches/unapplied/server/0591-Change-EnderEye-target-without-changing-other-things.patch)0
-rw-r--r--patches/server/0585-Add-BlockBreakBlockEvent.patch (renamed from patches/unapplied/server/0592-Add-BlockBreakBlockEvent.patch)4
-rw-r--r--patches/server/0586-Option-to-prevent-data-components-copy-in-smithing-r.patch (renamed from patches/unapplied/server/0593-Option-to-prevent-data-components-copy-in-smithing-r.patch)20
-rw-r--r--patches/server/0587-More-CommandBlock-API.patch (renamed from patches/unapplied/server/0594-More-CommandBlock-API.patch)0
-rw-r--r--patches/server/0588-Add-missing-team-sidebar-display-slots.patch (renamed from patches/unapplied/server/0595-Add-missing-team-sidebar-display-slots.patch)0
-rw-r--r--patches/server/0589-Add-back-EntityPortalExitEvent.patch46
-rw-r--r--patches/server/0590-Add-methods-to-find-targets-for-lightning-strikes.patch (renamed from patches/unapplied/server/0597-Add-methods-to-find-targets-for-lightning-strikes.patch)8
-rw-r--r--patches/server/0591-Get-entity-default-attributes.patch (renamed from patches/unapplied/server/0598-Get-entity-default-attributes.patch)2
-rw-r--r--patches/server/0592-Left-handed-API.patch (renamed from patches/unapplied/server/0599-Left-handed-API.patch)0
-rw-r--r--patches/server/0593-Add-more-advancement-API.patch (renamed from patches/unapplied/server/0600-Add-more-advancement-API.patch)4
-rw-r--r--patches/server/0594-Add-ItemFactory-getSpawnEgg-API.patch (renamed from patches/unapplied/server/0601-Add-ItemFactory-getSpawnEgg-API.patch)8
-rw-r--r--patches/server/0595-Add-critical-damage-API.patch (renamed from patches/unapplied/server/0602-Add-critical-damage-API.patch)58
-rw-r--r--patches/server/0596-Fix-issues-with-mob-conversion.patch (renamed from patches/unapplied/server/0603-Fix-issues-with-mob-conversion.patch)6
-rw-r--r--patches/server/0597-Add-hasCollision-methods-to-various-places.patch (renamed from patches/unapplied/server/0604-Add-hasCollision-methods-to-various-places.patch)0
-rw-r--r--patches/server/0598-Goat-ram-API.patch (renamed from patches/unapplied/server/0605-Goat-ram-API.patch)0
-rw-r--r--patches/server/0599-Add-API-for-resetting-a-single-score.patch (renamed from patches/unapplied/server/0606-Add-API-for-resetting-a-single-score.patch)0
-rw-r--r--patches/server/0600-Add-Raw-Byte-Entity-Serialization.patch (renamed from patches/unapplied/server/0607-Add-Raw-Byte-Entity-Serialization.patch)10
-rw-r--r--patches/server/0601-Vanilla-command-permission-fixes.patch (renamed from patches/unapplied/server/0608-Vanilla-command-permission-fixes.patch)4
-rw-r--r--patches/server/0602-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch (renamed from patches/unapplied/server/0609-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch)10
-rw-r--r--patches/server/0603-Fix-GameProfileCache-concurrency.patch (renamed from patches/unapplied/server/0610-Fix-GameProfileCache-concurrency.patch)0
-rw-r--r--patches/server/0604-Improve-and-expand-AsyncCatcher.patch (renamed from patches/unapplied/server/0611-Improve-and-expand-AsyncCatcher.patch)16
-rw-r--r--patches/server/0605-Add-paper-mobcaps-and-paper-playermobcaps.patch (renamed from patches/unapplied/server/0612-Add-paper-mobcaps-and-paper-playermobcaps.patch)6
-rw-r--r--patches/server/0606-Sanitize-ResourceLocation-error-logging.patch (renamed from patches/unapplied/server/0613-Sanitize-ResourceLocation-error-logging.patch)6
-rw-r--r--patches/server/0607-Manually-inline-methods-in-BlockPosition.patch (renamed from patches/unapplied/server/0614-Manually-inline-methods-in-BlockPosition.patch)6
-rw-r--r--patches/server/0608-Name-craft-scheduler-threads-according-to-the-plugin.patch (renamed from patches/unapplied/server/0615-Name-craft-scheduler-threads-according-to-the-plugin.patch)0
-rw-r--r--patches/server/0609-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch (renamed from patches/unapplied/server/0616-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch)4
-rw-r--r--patches/server/0610-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch (renamed from patches/unapplied/server/0617-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch)2
-rw-r--r--patches/server/0611-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch (renamed from patches/unapplied/server/0618-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch)0
-rw-r--r--patches/server/0612-Time-scoreboard-search.patch (renamed from patches/unapplied/server/0619-Time-scoreboard-search.patch)0
-rw-r--r--patches/server/0613-Oprimise-map-impl-for-tracked-players.patch (renamed from patches/unapplied/server/0620-Oprimise-map-impl-for-tracked-players.patch)4
-rw-r--r--patches/server/0614-Add-missing-InventoryType.patch (renamed from patches/unapplied/server/0621-Add-missing-InventoryType.patch)0
-rw-r--r--patches/server/0615-Optimise-BlockSoil-nearby-water-lookup.patch (renamed from patches/unapplied/server/0622-Optimise-BlockSoil-nearby-water-lookup.patch)0
-rw-r--r--patches/server/0616-Fix-merchant-inventory-not-closing-on-entity-removal.patch (renamed from patches/unapplied/server/0623-Fix-merchant-inventory-not-closing-on-entity-removal.patch)4
-rw-r--r--patches/server/0617-Check-requirement-before-suggesting-root-nodes.patch (renamed from patches/unapplied/server/0624-Check-requirement-before-suggesting-root-nodes.patch)0
-rw-r--r--patches/server/0618-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch (renamed from patches/unapplied/server/0625-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch)4
-rw-r--r--patches/server/0619-Add-packet-limiter-config.patch (renamed from patches/unapplied/server/0626-Add-packet-limiter-config.patch)4
-rw-r--r--patches/server/0620-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch (renamed from patches/unapplied/server/0627-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch)0
-rw-r--r--patches/server/0621-Ensure-valid-vehicle-status.patch (renamed from patches/unapplied/server/0628-Ensure-valid-vehicle-status.patch)4
-rw-r--r--patches/server/0622-Prevent-softlocked-end-exit-portal-generation.patch (renamed from patches/unapplied/server/0629-Prevent-softlocked-end-exit-portal-generation.patch)0
-rw-r--r--patches/server/0623-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch (renamed from patches/unapplied/server/0630-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch)0
-rw-r--r--patches/server/0624-Don-t-log-debug-logging-being-disabled.patch (renamed from patches/unapplied/server/0631-Don-t-log-debug-logging-being-disabled.patch)2
-rw-r--r--patches/server/0625-fix-various-menus-with-empty-level-accesses.patch (renamed from patches/unapplied/server/0632-fix-various-menus-with-empty-level-accesses.patch)0
-rw-r--r--patches/server/0626-Preserve-overstacked-loot.patch (renamed from patches/unapplied/server/0633-Preserve-overstacked-loot.patch)2
-rw-r--r--patches/server/0627-Update-head-rotation-in-missing-places.patch (renamed from patches/unapplied/server/0634-Update-head-rotation-in-missing-places.patch)6
-rw-r--r--patches/server/0628-prevent-unintended-light-block-manipulation.patch (renamed from patches/unapplied/server/0635-prevent-unintended-light-block-manipulation.patch)0
-rw-r--r--patches/server/0629-Fix-CraftCriteria-defaults-map.patch (renamed from patches/unapplied/server/0636-Fix-CraftCriteria-defaults-map.patch)0
-rw-r--r--patches/server/0630-Fix-upstreams-block-state-factories.patch (renamed from patches/unapplied/server/0637-Fix-upstreams-block-state-factories.patch)0
-rw-r--r--patches/server/0631-Configurable-feature-seeds.patch (renamed from patches/unapplied/server/0638-Configurable-feature-seeds.patch)4
-rw-r--r--patches/server/0632-Add-root-admin-user-detection.patch (renamed from patches/unapplied/server/0639-Add-root-admin-user-detection.patch)4
-rw-r--r--patches/server/0633-don-t-attempt-to-teleport-dead-entities.patch (renamed from patches/unapplied/server/0640-don-t-attempt-to-teleport-dead-entities.patch)6
-rw-r--r--patches/server/0634-Prevent-excessive-velocity-through-repeated-crits.patch (renamed from patches/unapplied/server/0641-Prevent-excessive-velocity-through-repeated-crits.patch)7
-rw-r--r--patches/server/0635-Remove-client-side-code-using-deprecated-for-removal.patch (renamed from patches/unapplied/server/0642-Remove-client-side-code-using-deprecated-for-removal.patch)12
-rw-r--r--patches/server/0636-Fix-Spigot-growth-modifiers.patch (renamed from patches/unapplied/server/0643-Fix-Spigot-growth-modifiers.patch)0
-rw-r--r--patches/server/0637-Prevent-ContainerOpenersCounter-openCount-from-going.patch (renamed from patches/unapplied/server/0644-Prevent-ContainerOpenersCounter-openCount-from-going.patch)0
-rw-r--r--patches/server/0638-Add-PlayerItemFrameChangeEvent.patch (renamed from patches/unapplied/server/0645-Add-PlayerItemFrameChangeEvent.patch)10
-rw-r--r--patches/server/0639-Optimize-HashMapPalette.patch (renamed from patches/unapplied/server/0646-Optimize-HashMapPalette.patch)0
-rw-r--r--patches/server/0640-Allow-delegation-to-vanilla-chunk-gen.patch (renamed from patches/unapplied/server/0647-Allow-delegation-to-vanilla-chunk-gen.patch)4
-rw-r--r--patches/server/0641-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch (renamed from patches/unapplied/server/0648-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch)2
-rw-r--r--patches/server/0642-Add-more-Campfire-API.patch (renamed from patches/unapplied/server/0649-Add-more-Campfire-API.patch)16
-rw-r--r--patches/server/0643-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch (renamed from patches/unapplied/server/0650-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch)8
-rw-r--r--patches/unapplied/server/0587-Add-EntityDamageItemEvent.patch65
-rw-r--r--patches/unapplied/server/0590-Clear-bucket-NBT-after-dispense.patch20
-rw-r--r--patches/unapplied/server/0596-Add-back-EntityPortalExitEvent.patch50
67 files changed, 249 insertions, 284 deletions
diff --git a/patches/unapplied/server/0586-Config-option-for-Piglins-guarding-chests.patch b/patches/server/0580-Config-option-for-Piglins-guarding-chests.patch
index e1b0af28d0..8e2094a53d 100644
--- a/patches/unapplied/server/0586-Config-option-for-Piglins-guarding-chests.patch
+++ b/patches/server/0580-Config-option-for-Piglins-guarding-chests.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Config option for Piglins guarding chests
diff --git a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
-index 31bb652c7ef35e7d61df2b1b60589fbb5c845bb0..96d8f0fea969fa14bae77afc60c6a64032ca4957 100644
+index 3ca643747535bf7b71e5877ca47f730a2aca4ba5..d601bff8e8f62af78791ad357b51b92faf04e55f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
+++ b/src/main/java/net/minecraft/world/entity/monster/piglin/PiglinAi.java
@@ -476,6 +476,7 @@ public class PiglinAi {
diff --git a/patches/server/0581-Add-EntityDamageItemEvent.patch b/patches/server/0581-Add-EntityDamageItemEvent.patch
new file mode 100644
index 0000000000..6026e41afa
--- /dev/null
+++ b/patches/server/0581-Add-EntityDamageItemEvent.patch
@@ -0,0 +1,63 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Tue, 22 Dec 2020 13:52:48 -0800
+Subject: [PATCH] Add EntityDamageItemEvent
+
+
+diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
+index 7f7445a2b68fd2e6e5fcd509d950a0f8d680c1fe..ebc5f2e8d59da4bec25ff156ec95fe49366be59c 100644
+--- a/src/main/java/net/minecraft/world/item/ItemStack.java
++++ b/src/main/java/net/minecraft/world/item/ItemStack.java
+@@ -646,14 +646,14 @@ public final class ItemStack implements DataComponentHolder {
+ return (Integer) this.getOrDefault(DataComponents.MAX_DAMAGE, 0);
+ }
+
+- public void hurtAndBreak(int amount, ServerLevel world, @Nullable ServerPlayer player, Consumer<Item> breakCallback) {
++ public void hurtAndBreak(int amount, ServerLevel world, @Nullable LivingEntity player, Consumer<Item> breakCallback) { // Paper - Add EntityDamageItemEvent
+ if (this.isDamageableItem()) {
+ if (player == null || !player.hasInfiniteMaterials()) {
+ if (amount > 0) {
+ amount = EnchantmentHelper.processDurabilityChange(world, this, amount);
+ // CraftBukkit start
+- if (player != null) {
+- PlayerItemDamageEvent event = new PlayerItemDamageEvent(player.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount);
++ if (player instanceof ServerPlayer serverPlayer) { // Paper - Add EntityDamageItemEvent
++ PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount); // Paper - Add EntityDamageItemEvent
+ event.getPlayer().getServer().getPluginManager().callEvent(event);
+
+ if (amount != event.getDamage() || event.isCancelled()) {
+@@ -664,6 +664,14 @@ public final class ItemStack implements DataComponentHolder {
+ }
+
+ amount = event.getDamage();
++ // Paper start - Add EntityDamageItemEvent
++ } else if (player != null) {
++ io.papermc.paper.event.entity.EntityDamageItemEvent event = new io.papermc.paper.event.entity.EntityDamageItemEvent(player.getBukkitLivingEntity(), CraftItemStack.asCraftMirror(this), amount);
++ if (!event.callEvent()) {
++ return;
++ }
++ amount = event.getDamage();
++ // Paper end - Add EntityDamageItemEvent
+ }
+ // CraftBukkit end
+ if (amount <= 0) {
+@@ -671,8 +679,8 @@ public final class ItemStack implements DataComponentHolder {
+ }
+ }
+
+- if (player != null && amount != 0) {
+- CriteriaTriggers.ITEM_DURABILITY_CHANGED.trigger(player, this, this.getDamageValue() + amount);
++ if (player instanceof ServerPlayer serverPlayer && amount != 0) { // Paper - Add EntityDamageItemEvent
++ CriteriaTriggers.ITEM_DURABILITY_CHANGED.trigger(serverPlayer, this, this.getDamageValue() + amount); // Paper - Add EntityDamageItemEvent
+ }
+
+ int j = this.getDamageValue() + amount;
+@@ -701,7 +709,7 @@ public final class ItemStack implements DataComponentHolder {
+ entityplayer = null;
+ }
+
+- this.hurtAndBreak(amount, worldserver, entityplayer, (item) -> {
++ this.hurtAndBreak(amount, worldserver, entity, (item) -> { // Paper - Add EntityDamageItemEvent
+ // CraftBukkit start - Check for item breaking
+ if (this.count == 1 && entity instanceof net.minecraft.world.entity.player.Player) {
+ org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerItemBreakEvent((net.minecraft.world.entity.player.Player) entity, this);
diff --git a/patches/unapplied/server/0588-Optimize-indirect-passenger-iteration.patch b/patches/server/0582-Optimize-indirect-passenger-iteration.patch
index a535497d73..5f05159ded 100644
--- a/patches/unapplied/server/0588-Optimize-indirect-passenger-iteration.patch
+++ b/patches/server/0582-Optimize-indirect-passenger-iteration.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Optimize indirect passenger iteration
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index b4670fc653721283f95bb61ac57c306b224b7fb7..56de24f923571aff124ae64b737cbdf482d4b847 100644
+index 64e0dafe15bbf8e0f5892337df69063982a9d82a..5223379e5c11c978fd85bd05ef9451aa2ddc2aa3 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -3875,20 +3875,34 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
+@@ -3891,20 +3891,34 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
}
private Stream<Entity> getIndirectPassengersStream() {
@@ -43,7 +43,7 @@ index b4670fc653721283f95bb61ac57c306b224b7fb7..56de24f923571aff124ae64b737cbdf4
return () -> {
return this.getIndirectPassengersStream().iterator();
};
-@@ -3901,6 +3915,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
+@@ -3917,6 +3931,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
}
public boolean hasExactlyOnePlayerPassenger() {
diff --git a/patches/unapplied/server/0589-Configurable-item-frame-map-cursor-update-interval.patch b/patches/server/0583-Configurable-item-frame-map-cursor-update-interval.patch
index f06f3a327b..a6389cdcbb 100644
--- a/patches/unapplied/server/0589-Configurable-item-frame-map-cursor-update-interval.patch
+++ b/patches/server/0583-Configurable-item-frame-map-cursor-update-interval.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable item frame map cursor update interval
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
-index 56408fa2603137819f47e7bd9b53b0b5f647edd6..19a7d0ab2ee5494149dfb0503b7c69784b7bee8b 100644
+index 7e8a43ea1b32f444fb66e270a5f6b48bf7bcd2a0..f3f93710846ce0f6d53845e0b49331646a4e8332 100644
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
-@@ -117,7 +117,7 @@ public class ServerEntity {
+@@ -116,7 +116,7 @@ public class ServerEntity {
if (true || this.tickCount % 10 == 0) { // CraftBukkit - Moved below, should always enter this block
ItemStack itemstack = entityitemframe.getItem();
diff --git a/patches/unapplied/server/0591-Change-EnderEye-target-without-changing-other-things.patch b/patches/server/0584-Change-EnderEye-target-without-changing-other-things.patch
index 53d06a36ec..53d06a36ec 100644
--- a/patches/unapplied/server/0591-Change-EnderEye-target-without-changing-other-things.patch
+++ b/patches/server/0584-Change-EnderEye-target-without-changing-other-things.patch
diff --git a/patches/unapplied/server/0592-Add-BlockBreakBlockEvent.patch b/patches/server/0585-Add-BlockBreakBlockEvent.patch
index fbf1b1ea38..4bc0c5116f 100644
--- a/patches/unapplied/server/0592-Add-BlockBreakBlockEvent.patch
+++ b/patches/server/0585-Add-BlockBreakBlockEvent.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add BlockBreakBlockEvent
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
-index ed336112581ac77196ed3e60dc8aaf50312c078b..c09851136944bd58d82b3a9d19719b0354802824 100644
+index 6d0a90e9c637edff5c5ce1355a3b45f0fb7f4154..232e6216dc36aa698047fc0badf78c347414b3a5 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
-@@ -306,6 +306,24 @@ public class Block extends BlockBehaviour implements ItemLike {
+@@ -305,6 +305,24 @@ public class Block extends BlockBehaviour implements ItemLike {
}
diff --git a/patches/unapplied/server/0593-Option-to-prevent-data-components-copy-in-smithing-r.patch b/patches/server/0586-Option-to-prevent-data-components-copy-in-smithing-r.patch
index c4e4b8be1b..7246d24edd 100644
--- a/patches/unapplied/server/0593-Option-to-prevent-data-components-copy-in-smithing-r.patch
+++ b/patches/server/0586-Option-to-prevent-data-components-copy-in-smithing-r.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Option to prevent data components copy in smithing recipes
diff --git a/src/main/java/net/minecraft/world/item/crafting/SmithingTransformRecipe.java b/src/main/java/net/minecraft/world/item/crafting/SmithingTransformRecipe.java
-index c6c6d54f35dd75e14a6e040d730d5ae9c1406059..a39a2b2b1a4294cb68cdbc3e67ad3e29552eeec8 100644
+index 83b77e170f2945e9b40f302c4cf65efb1628c84a..d64a1c1e146d5d9aa940a37dbee16889c9bab783 100644
--- a/src/main/java/net/minecraft/world/item/crafting/SmithingTransformRecipe.java
+++ b/src/main/java/net/minecraft/world/item/crafting/SmithingTransformRecipe.java
-@@ -23,8 +23,15 @@ public class SmithingTransformRecipe implements SmithingRecipe {
+@@ -22,8 +22,15 @@ public class SmithingTransformRecipe implements SmithingRecipe {
final Ingredient base;
final Ingredient addition;
final ItemStack result;
@@ -24,9 +24,9 @@ index c6c6d54f35dd75e14a6e040d730d5ae9c1406059..a39a2b2b1a4294cb68cdbc3e67ad3e29
this.template = template;
this.base = base;
this.addition = addition;
-@@ -40,7 +47,9 @@ public class SmithingTransformRecipe implements SmithingRecipe {
- public ItemStack assemble(Container inventory, HolderLookup.Provider lookup) {
- ItemStack itemstack = inventory.getItem(1).transmuteCopy(this.result.getItem(), this.result.getCount());
+@@ -37,7 +44,9 @@ public class SmithingTransformRecipe implements SmithingRecipe {
+ public ItemStack assemble(SmithingRecipeInput input, HolderLookup.Provider lookup) {
+ ItemStack itemstack = input.base().transmuteCopy(this.result.getItem(), this.result.getCount());
+ if (this.copyDataComponents) { // Paper - Option to prevent data components copy
itemstack.applyComponents(this.result.getComponentsPatch());
@@ -34,7 +34,7 @@ index c6c6d54f35dd75e14a6e040d730d5ae9c1406059..a39a2b2b1a4294cb68cdbc3e67ad3e29
return itemstack;
}
-@@ -79,7 +88,7 @@ public class SmithingTransformRecipe implements SmithingRecipe {
+@@ -76,7 +85,7 @@ public class SmithingTransformRecipe implements SmithingRecipe {
public Recipe toBukkitRecipe(NamespacedKey id) {
CraftItemStack result = CraftItemStack.asCraftMirror(this.result);
@@ -44,10 +44,10 @@ index c6c6d54f35dd75e14a6e040d730d5ae9c1406059..a39a2b2b1a4294cb68cdbc3e67ad3e29
return recipe;
}
diff --git a/src/main/java/net/minecraft/world/item/crafting/SmithingTrimRecipe.java b/src/main/java/net/minecraft/world/item/crafting/SmithingTrimRecipe.java
-index f1207df56718ad2a62fb7d567b397ceaa668e1e7..45a7ad173b7025305ce83b51f94e2af47644b829 100644
+index 4ea43872f9da72ed959dd0709f959402d01d5fe0..f6f10da21a752e927409ea16076701c4ec403a0e 100644
--- a/src/main/java/net/minecraft/world/item/crafting/SmithingTrimRecipe.java
+++ b/src/main/java/net/minecraft/world/item/crafting/SmithingTrimRecipe.java
-@@ -31,8 +31,15 @@ public class SmithingTrimRecipe implements SmithingRecipe {
+@@ -30,8 +30,15 @@ public class SmithingTrimRecipe implements SmithingRecipe {
final Ingredient template;
final Ingredient base;
final Ingredient addition;
@@ -63,7 +63,7 @@ index f1207df56718ad2a62fb7d567b397ceaa668e1e7..45a7ad173b7025305ce83b51f94e2af4
this.template = template;
this.base = base;
this.addition = addition;
-@@ -58,7 +65,7 @@ public class SmithingTrimRecipe implements SmithingRecipe {
+@@ -55,7 +62,7 @@ public class SmithingTrimRecipe implements SmithingRecipe {
return ItemStack.EMPTY;
}
@@ -72,7 +72,7 @@ index f1207df56718ad2a62fb7d567b397ceaa668e1e7..45a7ad173b7025305ce83b51f94e2af4
itemstack1.set(DataComponents.TRIM, new ArmorTrim((Holder) optional.get(), (Holder) optional1.get()));
return itemstack1;
-@@ -109,7 +116,7 @@ public class SmithingTrimRecipe implements SmithingRecipe {
+@@ -106,7 +113,7 @@ public class SmithingTrimRecipe implements SmithingRecipe {
// CraftBukkit start
@Override
public Recipe toBukkitRecipe(NamespacedKey id) {
diff --git a/patches/unapplied/server/0594-More-CommandBlock-API.patch b/patches/server/0587-More-CommandBlock-API.patch
index 16cf3ee3d7..16cf3ee3d7 100644
--- a/patches/unapplied/server/0594-More-CommandBlock-API.patch
+++ b/patches/server/0587-More-CommandBlock-API.patch
diff --git a/patches/unapplied/server/0595-Add-missing-team-sidebar-display-slots.patch b/patches/server/0588-Add-missing-team-sidebar-display-slots.patch
index 641de83a40..641de83a40 100644
--- a/patches/unapplied/server/0595-Add-missing-team-sidebar-display-slots.patch
+++ b/patches/server/0588-Add-missing-team-sidebar-display-slots.patch
diff --git a/patches/server/0589-Add-back-EntityPortalExitEvent.patch b/patches/server/0589-Add-back-EntityPortalExitEvent.patch
new file mode 100644
index 0000000000..ccbe08c67a
--- /dev/null
+++ b/patches/server/0589-Add-back-EntityPortalExitEvent.patch
@@ -0,0 +1,46 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Sun, 16 May 2021 09:39:46 -0700
+Subject: [PATCH] Add back EntityPortalExitEvent
+
+
+diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
+index 5223379e5c11c978fd85bd05ef9451aa2ddc2aa3..4ef848a32c4f149e4cc2f9a8213244c163a72bea 100644
+--- a/src/main/java/net/minecraft/world/entity/Entity.java
++++ b/src/main/java/net/minecraft/world/entity/Entity.java
+@@ -3365,7 +3365,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
+ if (world instanceof ServerLevel worldserver) {
+ if (!this.isRemoved()) {
+ // CraftBukkit start
+- Location to = new Location(teleportTarget.newLevel().getWorld(), teleportTarget.pos().x, teleportTarget.pos().y, teleportTarget.pos().z, teleportTarget.yRot(), teleportTarget.xRot());
++ Location to = new Location(teleportTarget.newLevel().getWorld(), teleportTarget.pos().x, teleportTarget.pos().y, teleportTarget.pos().z, teleportTarget.yRot(), this.getXRot()); // Paper - use getXRot (doesn't respect DimensionTransition pitch)
+ // Paper start - gateway-specific teleport event
+ final EntityTeleportEvent teleEvent;
+ if (this.portalProcess != null && this.portalProcess.isSamePortal(((net.minecraft.world.level.block.EndGatewayBlock) net.minecraft.world.level.block.Blocks.END_GATEWAY)) && this.level.getBlockEntity(this.portalProcess.getEntryPosition()) instanceof net.minecraft.world.level.block.entity.TheEndGatewayBlockEntity theEndGatewayBlockEntity) {
+@@ -3379,7 +3379,25 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
+ return null;
+ }
+ to = teleEvent.getTo();
+- teleportTarget = new DimensionTransition(((CraftWorld) to.getWorld()).getHandle(), CraftLocation.toVec3D(to), teleportTarget.speed(), to.getYaw(), to.getPitch(), teleportTarget.missingRespawnBlock(), teleportTarget.postDimensionTransition(), teleportTarget.cause());
++ // Paper start - Call EntityPortalExitEvent
++ CraftEntity bukkitEntity = this.getBukkitEntity();
++ Vec3 velocity = teleportTarget.speed();
++ org.bukkit.event.entity.EntityPortalExitEvent event = new org.bukkit.event.entity.EntityPortalExitEvent(
++ bukkitEntity,
++ bukkitEntity.getLocation(), to.clone(),
++ bukkitEntity.getVelocity(), org.bukkit.craftbukkit.util.CraftVector.toBukkit(velocity)
++ );
++ event.callEvent();
++ if (this.isRemoved()) {
++ return null;
++ }
++
++ if (!event.isCancelled() && event.getTo() != null) {
++ to = event.getTo().clone();
++ velocity = org.bukkit.craftbukkit.util.CraftVector.toNMS(event.getAfter());
++ }
++ teleportTarget = new DimensionTransition(((CraftWorld) to.getWorld()).getHandle(), CraftLocation.toVec3D(to), velocity, to.getYaw(), to.getPitch(), teleportTarget.missingRespawnBlock(), teleportTarget.postDimensionTransition(), teleportTarget.cause());
++ // Paper end - Call EntityPortalExitEvent
+ // CraftBukkit end
+ ServerLevel worldserver1 = teleportTarget.newLevel();
+ List<Entity> list = this.getPassengers();
diff --git a/patches/unapplied/server/0597-Add-methods-to-find-targets-for-lightning-strikes.patch b/patches/server/0590-Add-methods-to-find-targets-for-lightning-strikes.patch
index 2ae599b1bf..10a30cf7b6 100644
--- a/patches/unapplied/server/0597-Add-methods-to-find-targets-for-lightning-strikes.patch
+++ b/patches/server/0590-Add-methods-to-find-targets-for-lightning-strikes.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add methods to find targets for lightning strikes
public net.minecraft.server.level.ServerLevel findLightningRod(Lnet/minecraft/core/BlockPos;)Ljava/util/Optional;
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index eecc5704582ce7c9a45adee8057d8297eae03a86..5cb0281ea110a1ce3444f4392bccbb19ca3bbf09 100644
+index 8c268f57d44d70df3210510abf7832939d41781d..efc27bb4072172f10839c181de9b5fba1f488b6f 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -763,6 +763,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -764,6 +764,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
}
protected BlockPos findLightningTargetAround(BlockPos pos) {
@@ -22,7 +22,7 @@ index eecc5704582ce7c9a45adee8057d8297eae03a86..5cb0281ea110a1ce3444f4392bccbb19
BlockPos blockposition1 = this.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING, pos);
Optional<BlockPos> optional = this.findLightningRod(blockposition1);
-@@ -777,6 +782,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -778,6 +783,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
if (!list.isEmpty()) {
return ((LivingEntity) list.get(this.random.nextInt(list.size()))).blockPosition();
} else {
@@ -31,7 +31,7 @@ index eecc5704582ce7c9a45adee8057d8297eae03a86..5cb0281ea110a1ce3444f4392bccbb19
blockposition1 = blockposition1.above(2);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index e10043db80ee5dc6468c8caa16d55ad418fa3670..d83321ba1de5445b4a060fd11c5bb8b237bc8b3f 100644
+index 6734f9e22e9bd1d1b385812d35a72487fe2b7b9b..e6adac1897902dfefe18bd67f903b4a524efdf59 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -712,6 +712,23 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/unapplied/server/0598-Get-entity-default-attributes.patch b/patches/server/0591-Get-entity-default-attributes.patch
index 6e3e66caf9..6f99af1f3a 100644
--- a/patches/unapplied/server/0598-Get-entity-default-attributes.patch
+++ b/patches/server/0591-Get-entity-default-attributes.patch
@@ -81,7 +81,7 @@ index 0000000000000000000000000000000000000000..ec9ebd2d539333293c51b7edfa18f18b
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 44e3e4c8326dc93292f482c136fe2d6e6b8eb0b6..68e805cb5085aa0413bb733c58690878fb670cf3 100644
+index a867c9de9c2c1798d8e9014f5114b0f4e32b3261..cfd003e975573564a3fea9d4379842979711e841 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -555,6 +555,18 @@ public final class CraftMagicNumbers implements UnsafeValues {
diff --git a/patches/unapplied/server/0599-Left-handed-API.patch b/patches/server/0592-Left-handed-API.patch
index 643df451a4..643df451a4 100644
--- a/patches/unapplied/server/0599-Left-handed-API.patch
+++ b/patches/server/0592-Left-handed-API.patch
diff --git a/patches/unapplied/server/0600-Add-more-advancement-API.patch b/patches/server/0593-Add-more-advancement-API.patch
index efa1f289fd..772c00ba58 100644
--- a/patches/unapplied/server/0600-Add-more-advancement-API.patch
+++ b/patches/server/0593-Add-more-advancement-API.patch
@@ -164,10 +164,10 @@ index 8ca86852319d7463f60832bc98b825b0b4325995..62ada73302c6b3ce3fb2dcc8c31a1d9c
private final DisplayInfo handle;
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 5b71ef6231c6c44ebeabfb1fb39941806cb22b5c..7d7abae8e2978d78b97cf22c5eecf47878818f52 100644
+index 2d9453498531c99f4fa566a08099b4e5a7af25fa..9d8adc5e281decd61fb3a8cfd78531b0b374e29c 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -379,6 +379,11 @@ public class Commodore {
+@@ -384,6 +384,11 @@ public class Commodore {
super.visitMethodInsn(opcode, owner, name, "()Lcom/destroystokyo/paper/profile/PlayerProfile;", itf);
return;
}
diff --git a/patches/unapplied/server/0601-Add-ItemFactory-getSpawnEgg-API.patch b/patches/server/0594-Add-ItemFactory-getSpawnEgg-API.patch
index 112573739d..925a23a50d 100644
--- a/patches/unapplied/server/0601-Add-ItemFactory-getSpawnEgg-API.patch
+++ b/patches/server/0594-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 7c32802947fd5318009a02724c85206b250e7143..be31b8a286794508a1c1bfcf3da0ac64c0383c60 100644
+index a96a09bb39fc35f3c4dfcd0da0ce1fe283b8377e..31a33e329ee06860f8845d201d32ee86a274a657 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
-@@ -579,4 +579,19 @@ public final class CraftItemFactory implements ItemFactory {
+@@ -590,4 +590,19 @@ public final class CraftItemFactory implements ItemFactory {
new net.md_5.bungee.api.chat.TextComponent(customName));
}
// Paper end - bungee hover events
@@ -29,10 +29,10 @@ index 7c32802947fd5318009a02724c85206b250e7143..be31b8a286794508a1c1bfcf3da0ac64
+ // Paper end - old getSpawnEgg API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-index 7d7abae8e2978d78b97cf22c5eecf47878818f52..8ae3b6bb5daf4d0a4a429868d1dea700c3ee129c 100644
+index 9d8adc5e281decd61fb3a8cfd78531b0b374e29c..0d5ce79dc8fb3b1677e09d663608a5cb5224de2f 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
-@@ -386,6 +386,15 @@ public class Commodore {
+@@ -391,6 +391,15 @@ public class Commodore {
}
// Paper end
diff --git a/patches/unapplied/server/0602-Add-critical-damage-API.patch b/patches/server/0595-Add-critical-damage-API.patch
index 80b6725bc2..9a52fb6f5d 100644
--- a/patches/unapplied/server/0602-Add-critical-damage-API.patch
+++ b/patches/server/0595-Add-critical-damage-API.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Add critical damage API
diff --git a/src/main/java/net/minecraft/world/damagesource/DamageSource.java b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
-index 9b5af216d38ff4584d40586403bd92207b230dfa..533ea6cbb813c8d1dc2bb3f65fd94d4fa5dd591e 100644
+index 20c3cd89deaa0aa9f9b1b60cde5644e49301d2cb..10bee9b217fae9170af9d66dac9741046be1cab6 100644
--- a/src/main/java/net/minecraft/world/damagesource/DamageSource.java
+++ b/src/main/java/net/minecraft/world/damagesource/DamageSource.java
-@@ -255,4 +255,18 @@ public class DamageSource {
+@@ -260,4 +260,18 @@ public class DamageSource {
public Holder<DamageType> typeHolder() {
return this.type;
}
@@ -28,42 +28,32 @@ index 9b5af216d38ff4584d40586403bd92207b230dfa..533ea6cbb813c8d1dc2bb3f65fd94d4f
+ // Paper end - add critical damage API
}
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 56f7a753d2167504b6d91219093097323a9081c5..07afb966626d86b065e138959e9ffcac27a0d5d2 100644
+index c89b7cf63d067895bbd07f43eef467ff1861f625..536a4e3c26e83f359083bde19832a962628244fa 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
-@@ -1274,7 +1274,7 @@ public abstract class Player extends LivingEntity {
- }
+@@ -1292,6 +1292,7 @@ public abstract class Player extends LivingEntity {
- f += this.getItemInHand(InteractionHand.MAIN_HAND).getItem().getAttackDamageBonus(this, f);
-- boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity && !this.isSprinting();
-+ boolean flag2 = flag && this.fallDistance > 0.0F && !this.onGround() && !this.onClimbable() && !this.isInWater() && !this.hasEffect(MobEffects.BLINDNESS) && !this.isPassenger() && target instanceof LivingEntity && !this.isSprinting(); // Paper - Add critical damage API; diff on change
+ flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits
+ if (flag2) {
++ damagesource = damagesource.critical(true); // Paper start - critical damage API
+ f *= 1.5F;
+ }
- flag2 = flag2 && !this.level().paperConfig().entities.behavior.disablePlayerCrits; // Paper - Toggleable player crits
- if (flag2) {
-@@ -1313,7 +1313,7 @@ public abstract class Player extends LivingEntity {
- }
+@@ -1352,7 +1353,7 @@ public abstract class Player extends LivingEntity {
+ float f7 = this.getEnchantedDamage(entityliving2, f6, damagesource) * f2;
- Vec3 vec3d = target.getDeltaMovement();
-- boolean flag5 = target.hurt(this.damageSources().playerAttack(this), f);
-+ boolean flag5 = target.hurt(this.damageSources().playerAttack(this).critical(flag2), f); // Paper - add critical damage API
-
- if (flag5) {
- if (i > 0) {
-@@ -1341,7 +1341,7 @@ public abstract class Player extends LivingEntity {
-
- if (entityliving != this && entityliving != target && !this.isAlliedTo((Entity) entityliving) && (!(entityliving instanceof ArmorStand) || !((ArmorStand) entityliving).isMarker()) && this.distanceToSqr((Entity) entityliving) < 9.0D) {
- // CraftBukkit start - Only apply knockback if the damage hits
-- if (entityliving.hurt(this.damageSources().playerAttack(this).sweep(), f4)) {
-+ if (entityliving.hurt(this.damageSources().playerAttack(this).sweep().critical(flag2), f4)) { // Paper - add critical damage API
- entityliving.knockback(0.4000000059604645D, (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F)), this, io.papermc.paper.event.entity.EntityKnockbackEvent.Cause.SWEEP_ATTACK); // CraftBukkit // Paper - knockback events
- }
- // CraftBukkit end
+ // CraftBukkit start - Only apply knockback if the damage hits
+- if (entityliving2.hurt(this.damageSources().playerAttack(this).sweep(), f7)) {
++ if (entityliving2.hurt(this.damageSources().playerAttack(this).sweep().critical(flag2), f7)) { // Paper - add critical damage API
+ entityliving2.knockback(0.4000000059604645D, (double) Mth.sin(this.getYRot() * 0.017453292F), (double) (-Mth.cos(this.getYRot() * 0.017453292F)), this, io.papermc.paper.event.entity.EntityKnockbackEvent.Cause.SWEEP_ATTACK); // CraftBukkit // Paper - knockback events
+ }
+ // CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
-index 49dc01532f9b60b3f594abca56b7d807fe6716d5..427e889f58c86f7649fc1b661d55277599b320c0 100644
+index 1f881f71d5698bc7b36bc029287ac8e873a46107..92b630475ef7032c9cae6288b2a0370562e25f57 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
-@@ -392,6 +392,7 @@ public abstract class AbstractArrow extends Projectile {
- }
+@@ -415,6 +415,7 @@ public abstract class AbstractArrow extends Projectile {
+ entityliving.setLastHurtMob(entity);
}
+ if (this.isCritArrow()) damagesource = damagesource.critical(); // Paper - add critical damage API
@@ -71,10 +61,10 @@ index 49dc01532f9b60b3f594abca56b7d807fe6716d5..427e889f58c86f7649fc1b661d552775
int k = entity.getRemainingFireTicks();
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index 3102324bfdaa82826eead1f40d24bf13553f6506..efc3808dde268f8325304f4bce8fb3bf399adafd 100644
+index f99247b37a6fb04d27611051908364bcde168afa..e0c1eab089fff724e029ed8109a653403e15fc77 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1064,7 +1064,7 @@ public class CraftEventFactory {
+@@ -1065,7 +1065,7 @@ public class CraftEventFactory {
return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.BLOCK_EXPLOSION, bukkitDamageSource, modifiers, modifierFunctions, cancelled);
}
DamageCause damageCause = (damager.getBukkitEntity() instanceof org.bukkit.entity.TNTPrimed) ? DamageCause.BLOCK_EXPLOSION : DamageCause.ENTITY_EXPLOSION;
@@ -83,7 +73,7 @@ index 3102324bfdaa82826eead1f40d24bf13553f6506..efc3808dde268f8325304f4bce8fb3bf
} else if (damager != null || source.getDirectEntity() != null) {
DamageCause cause = (source.isSweep()) ? DamageCause.ENTITY_SWEEP_ATTACK : DamageCause.ENTITY_ATTACK;
-@@ -1090,7 +1090,7 @@ public class CraftEventFactory {
+@@ -1091,7 +1091,7 @@ public class CraftEventFactory {
cause = DamageCause.MAGIC;
}
@@ -92,7 +82,7 @@ index 3102324bfdaa82826eead1f40d24bf13553f6506..efc3808dde268f8325304f4bce8fb3bf
} else if (source.is(DamageTypes.FELL_OUT_OF_WORLD)) {
return CraftEventFactory.callEntityDamageEvent(source.getDirectBlock(), source.getDirectBlockState(), entity, DamageCause.VOID, bukkitDamageSource, modifiers, modifierFunctions, cancelled);
} else if (source.is(DamageTypes.LAVA)) {
-@@ -1148,13 +1148,13 @@ public class CraftEventFactory {
+@@ -1149,13 +1149,13 @@ public class CraftEventFactory {
cause = DamageCause.CUSTOM;
}
diff --git a/patches/unapplied/server/0603-Fix-issues-with-mob-conversion.patch b/patches/server/0596-Fix-issues-with-mob-conversion.patch
index c714b6dda9..1b4597fe00 100644
--- a/patches/unapplied/server/0603-Fix-issues-with-mob-conversion.patch
+++ b/patches/server/0596-Fix-issues-with-mob-conversion.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix issues with mob conversion
diff --git a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
-index d99bd9f652f3cf09661e426c79693a203effb04c..5642bddc8268d70e5bb5446b65be1d8ce34feb9b 100644
+index 44313973318cc330bb0288ec5b857c61d4c8f9be..cee42ae2b75c29c89e7fc5b1c77d3b45ce40e9ba 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Skeleton.java
-@@ -90,10 +90,15 @@ public class Skeleton extends AbstractSkeleton {
+@@ -91,10 +91,15 @@ public class Skeleton extends AbstractSkeleton {
}
protected void doFreezeConversion() {
@@ -26,7 +26,7 @@ index d99bd9f652f3cf09661e426c79693a203effb04c..5642bddc8268d70e5bb5446b65be1d8c
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
-index 5cd316e6f8139f4258f40e28824ec2d27bad02f1..c583d883118ded5e1884c757427dc5e73c10dd27 100644
+index d35214c485dfc3abdb3f2d6683c9293b3b5f035d..d5e0c493f4c348724958193795ceb987765a465f 100644
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -258,6 +258,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
diff --git a/patches/unapplied/server/0604-Add-hasCollision-methods-to-various-places.patch b/patches/server/0597-Add-hasCollision-methods-to-various-places.patch
index a6045ddd1b..a6045ddd1b 100644
--- a/patches/unapplied/server/0604-Add-hasCollision-methods-to-various-places.patch
+++ b/patches/server/0597-Add-hasCollision-methods-to-various-places.patch
diff --git a/patches/unapplied/server/0605-Goat-ram-API.patch b/patches/server/0598-Goat-ram-API.patch
index 2f5ccdfed4..2f5ccdfed4 100644
--- a/patches/unapplied/server/0605-Goat-ram-API.patch
+++ b/patches/server/0598-Goat-ram-API.patch
diff --git a/patches/unapplied/server/0606-Add-API-for-resetting-a-single-score.patch b/patches/server/0599-Add-API-for-resetting-a-single-score.patch
index b9dd1c2be3..b9dd1c2be3 100644
--- a/patches/unapplied/server/0606-Add-API-for-resetting-a-single-score.patch
+++ b/patches/server/0599-Add-API-for-resetting-a-single-score.patch
diff --git a/patches/unapplied/server/0607-Add-Raw-Byte-Entity-Serialization.patch b/patches/server/0600-Add-Raw-Byte-Entity-Serialization.patch
index 7116257b9f..1c6a7c7472 100644
--- a/patches/unapplied/server/0607-Add-Raw-Byte-Entity-Serialization.patch
+++ b/patches/server/0600-Add-Raw-Byte-Entity-Serialization.patch
@@ -7,10 +7,10 @@ Subject: [PATCH] Add Raw Byte Entity Serialization
public net.minecraft.world.entity.Entity setLevel(Lnet/minecraft/world/level/Level;)V
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 5d4fa3823a6dbb6150e4b97cf3973eb254018e38..ebacae6f39fea052f4fb7c60f7164763b49f8148 100644
+index 4ef848a32c4f149e4cc2f9a8213244c163a72bea..4542c6a7c48bfcb8a5acf127944e24b60dfc13e1 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -2105,6 +2105,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
+@@ -2146,6 +2146,15 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
}
}
@@ -27,10 +27,10 @@ index 5d4fa3823a6dbb6150e4b97cf3973eb254018e38..ebacae6f39fea052f4fb7c60f7164763
return this.isPassenger() ? false : this.saveAsPassenger(nbt);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-index 9edcdc71b28cf08e42fbe44723ba540e8d4f7808..a61638bc8200f6aa25d9c3254aea6c0cd38bcbf1 100644
+index 7310f53747e68b918f132ee0f0a142e36537902e..6f9286e65f7ac730b808ddf9b52c344f03b4d778 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
-@@ -1068,6 +1068,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
+@@ -1085,6 +1085,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
// Paper end - tracked players API
@@ -50,7 +50,7 @@ index 9edcdc71b28cf08e42fbe44723ba540e8d4f7808..a61638bc8200f6aa25d9c3254aea6c0c
@Override
public boolean isInvisible() { // Paper - moved up from LivingEntity
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
-index 68e805cb5085aa0413bb733c58690878fb670cf3..83730eac9887bbf9bd5284676ec9a0509ec14a04 100644
+index cfd003e975573564a3fea9d4379842979711e841..1a46245fed7a5fca532df7e3febb22f5effca764 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -505,7 +505,33 @@ public final class CraftMagicNumbers implements UnsafeValues {
diff --git a/patches/unapplied/server/0608-Vanilla-command-permission-fixes.patch b/patches/server/0601-Vanilla-command-permission-fixes.patch
index ee87698d16..53fa2975d6 100644
--- a/patches/unapplied/server/0608-Vanilla-command-permission-fixes.patch
+++ b/patches/server/0601-Vanilla-command-permission-fixes.patch
@@ -33,10 +33,10 @@ index 899008b2980d13f1be6280cd8cb959c53a29bebf..d5f7da3502575f6847f3c22ab0e94284
private RedirectModifier<S> modifier = null;
private boolean forks;
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
-index 3728b051b9eb9e9e06bc765a9a2fae7f45daf6ff..779fee2f9b819124a01b9f8d2b7ed0d5f2accf6c 100644
+index a19d132f6a71356f91b19197f02ccf312bb4b7c3..3141e033706599aae9a89a0975afb3954424df48 100644
--- a/src/main/java/net/minecraft/commands/Commands.java
+++ b/src/main/java/net/minecraft/commands/Commands.java
-@@ -258,6 +258,13 @@ public class Commands {
+@@ -256,6 +256,13 @@ public class Commands {
PublishCommand.register(this.dispatcher);
}
diff --git a/patches/unapplied/server/0609-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch b/patches/server/0602-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
index b13869e417..4dc769ac68 100644
--- a/patches/unapplied/server/0609-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
+++ b/patches/server/0602-Do-not-run-close-logic-for-inventories-on-chunk-unlo.patch
@@ -9,10 +9,10 @@ chunk through it. This should also be OK from a leak prevention/
state desync POV because the TE is getting unloaded anyways.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index 5cb0281ea110a1ce3444f4392bccbb19ca3bbf09..e611857d9d29e8532b4ea3e0634c8f24a396a190 100644
+index efc27bb4072172f10839c181de9b5fba1f488b6f..4c739717fcf53b28312e8a98f9bf0989c604d0f0 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -1276,9 +1276,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -1274,9 +1274,13 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot Start
for (net.minecraft.world.level.block.entity.BlockEntity tileentity : chunk.getBlockEntities().values()) {
if (tileentity instanceof net.minecraft.world.Container) {
@@ -28,10 +28,10 @@ index 5cb0281ea110a1ce3444f4392bccbb19ca3bbf09..e611857d9d29e8532b4ea3e0634c8f24
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index b90b525faa5bba684c783a56f136532a8195de84..5a13975fc9a472308ee74401f7b1f84f716e46eb 100644
+index bc0a26cfbc5e1d21880f976c6bd4d0e30b277767..586f9bda04a74990b3eebbd2a52dcdb7273e8484 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -1675,6 +1675,18 @@ public class ServerPlayer extends Player {
+@@ -1718,6 +1718,18 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
this.connection.send(new ClientboundContainerClosePacket(this.containerMenu.containerId));
this.doCloseContainer();
}
@@ -51,7 +51,7 @@ index b90b525faa5bba684c783a56f136532a8195de84..5a13975fc9a472308ee74401f7b1f84f
@Override
public void doCloseContainer() {
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 07afb966626d86b065e138959e9ffcac27a0d5d2..9f3d1a5407635d740adb6722930c94781a021015 100644
+index 536a4e3c26e83f359083bde19832a962628244fa..538c530ce9a2ce94dc013d8237b68b66bfcaa610 100644
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
@@ -509,6 +509,11 @@ public abstract class Player extends LivingEntity {
diff --git a/patches/unapplied/server/0610-Fix-GameProfileCache-concurrency.patch b/patches/server/0603-Fix-GameProfileCache-concurrency.patch
index 6cb7e5235f..6cb7e5235f 100644
--- a/patches/unapplied/server/0610-Fix-GameProfileCache-concurrency.patch
+++ b/patches/server/0603-Fix-GameProfileCache-concurrency.patch
diff --git a/patches/unapplied/server/0611-Improve-and-expand-AsyncCatcher.patch b/patches/server/0604-Improve-and-expand-AsyncCatcher.patch
index 91ebe1c057..810f7e260b 100644
--- a/patches/unapplied/server/0611-Improve-and-expand-AsyncCatcher.patch
+++ b/patches/server/0604-Improve-and-expand-AsyncCatcher.patch
@@ -17,10 +17,10 @@ Async catch modifications to critical entity state
Co-authored-by: Jake Potrebic <[email protected]>
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 40d2c7bfc8ba8b8b366f23e53cf37f331e19ccf7..795e65c7c98d50ff67953ccb1ff68dac0088116e 100644
+index 83b0df341f4be1191191718e871dac6842d4a31a..c501f30418767678f9da2b54666da0d38cd594ff 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -1565,6 +1565,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -1578,6 +1578,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
}
public void internalTeleport(double d0, double d1, double d2, float f, float f1, Set<RelativeMovement> set) { // Paper
@@ -29,10 +29,10 @@ index 40d2c7bfc8ba8b8b366f23e53cf37f331e19ccf7..795e65c7c98d50ff67953ccb1ff68dac
if (player.isRemoved()) {
LOGGER.info("Attempt to teleport removed player {} restricted", player.getScoreboardName());
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index f6febeb8f24b227520cda80efac7e43c023f1b10..a44b48bbb736e7efb04061f302bbb61015284bcb 100644
+index 3bcc79b4f4d69ca7bbf1c8311869243853a19f3e..e54e41f2a94b19f9df3d087f88a2ceb6fc52d1dc 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -1147,7 +1147,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -1121,7 +1121,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
}
public boolean addEffect(MobEffectInstance mobeffect, @Nullable Entity entity, EntityPotionEffectEvent.Cause cause) {
@@ -166,7 +166,7 @@ index 219062cff8a05c765b092f1525043d9d9a1153ae..1c6e8438219f355274db4e0fa849cdd9
PersistentEntitySectionManager.LOGGER.warn("Entity {} wasn't found in section {} (destroying due to {})", new Object[]{this.entity, SectionPos.of(this.currentSectionKey), reason});
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index d83321ba1de5445b4a060fd11c5bb8b237bc8b3f..7b1a4925e40550432c2e7c599c85303b173843d4 100644
+index e6adac1897902dfefe18bd67f903b4a524efdf59..13d7ecd67a94b4651624df3c24d0ae6f4753a32f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1781,6 +1781,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -200,12 +200,12 @@ index d83321ba1de5445b4a060fd11c5bb8b237bc8b3f..7b1a4925e40550432c2e7c599c85303b
+ org.spigotmc.AsyncCatcher.catchOp("play sound"); // Paper
if (!(entity instanceof CraftEntity craftEntity) || entity.getWorld() != this || sound == null || category == null) return;
- ClientboundSoundEntityPacket packet = new ClientboundSoundEntityPacket(Holder.direct(SoundEvent.createVariableRangeEvent(new ResourceLocation(sound))), net.minecraft.sounds.SoundSource.valueOf(category.name()), craftEntity.getHandle(), volume, pitch, seed);
+ ClientboundSoundEntityPacket packet = new ClientboundSoundEntityPacket(Holder.direct(SoundEvent.createVariableRangeEvent(ResourceLocation.parse(sound))), net.minecraft.sounds.SoundSource.valueOf(category.name()), craftEntity.getHandle(), volume, pitch, seed);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-index f4574527cb1dddb97dba1fa2dfe1c17b89728015..00cac0c83897221fd4a83dcee884db751321af2e 100644
+index f37fe6724b8a85c7fd8eb3b08c7d5a412ca2263d..fe3304a40f2aaf84db825374f4b3d495d31f91ad 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
-@@ -523,6 +523,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
+@@ -524,6 +524,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@Override
public boolean addPotionEffect(PotionEffect effect, boolean force) {
diff --git a/patches/unapplied/server/0612-Add-paper-mobcaps-and-paper-playermobcaps.patch b/patches/server/0605-Add-paper-mobcaps-and-paper-playermobcaps.patch
index 080042b269..122b297cd8 100644
--- a/patches/unapplied/server/0612-Add-paper-mobcaps-and-paper-playermobcaps.patch
+++ b/patches/server/0605-Add-paper-mobcaps-and-paper-playermobcaps.patch
@@ -278,10 +278,10 @@ index 58ea6a1f95a09c22125a8262b1b221004ebce0e4..ea6533c1ac218aa075da3401807a06fc
BlockPos blockposition = NaturalSpawner.getRandomPosWithin(world, chunk);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 54820a8d11bb12c516d4138fb0bf77c16f053f3f..659d8ad2e0232934a3009f79283924e4363f7f32 100644
+index 0fc2e453c63b63e12f33cde28ad5afea5657ac57..3c9a9103783495c9015a8cea415620839f140f9c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2317,6 +2317,11 @@ public final class CraftServer implements Server {
+@@ -2320,6 +2320,11 @@ public final class CraftServer implements Server {
@Override
public int getSpawnLimit(SpawnCategory spawnCategory) {
@@ -294,7 +294,7 @@ index 54820a8d11bb12c516d4138fb0bf77c16f053f3f..659d8ad2e0232934a3009f79283924e4
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
-index 7b1a4925e40550432c2e7c599c85303b173843d4..fbd5df61e5cfd67991dedb7bbba4a16ff16fa49b 100644
+index 13d7ecd67a94b4651624df3c24d0ae6f4753a32f..6c5865c4c29e5470239dcabdfbb54057d05c80c7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1739,9 +1739,14 @@ public class CraftWorld extends CraftRegionAccessor implements World {
diff --git a/patches/unapplied/server/0613-Sanitize-ResourceLocation-error-logging.patch b/patches/server/0606-Sanitize-ResourceLocation-error-logging.patch
index 28ba1000d7..602f0d3b27 100644
--- a/patches/unapplied/server/0613-Sanitize-ResourceLocation-error-logging.patch
+++ b/patches/server/0606-Sanitize-ResourceLocation-error-logging.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Sanitize ResourceLocation error logging
diff --git a/src/main/java/net/minecraft/resources/ResourceLocation.java b/src/main/java/net/minecraft/resources/ResourceLocation.java
-index 0ad6d9d417193248f6a9df67f1d1a66cef3ff122..d93b623ce973b63d4f3a77bfe459f51af7cb3c1c 100644
+index 262660d115a5d5cbecfbae995955a24283e666b0..87afe84791af2d5e9f869cd4c09eed4bb5fee75b 100644
--- a/src/main/java/net/minecraft/resources/ResourceLocation.java
+++ b/src/main/java/net/minecraft/resources/ResourceLocation.java
-@@ -231,7 +231,7 @@ public class ResourceLocation implements Comparable<ResourceLocation> {
+@@ -247,7 +247,7 @@ public final class ResourceLocation implements Comparable<ResourceLocation> {
private static String assertValidNamespace(String namespace, String path) {
if (!isValidNamespace(namespace)) {
@@ -17,7 +17,7 @@ index 0ad6d9d417193248f6a9df67f1d1a66cef3ff122..d93b623ce973b63d4f3a77bfe459f51a
} else {
return namespace;
}
-@@ -257,7 +257,7 @@ public class ResourceLocation implements Comparable<ResourceLocation> {
+@@ -268,7 +268,7 @@ public final class ResourceLocation implements Comparable<ResourceLocation> {
private static String assertValidPath(String namespace, String path) {
if (!isValidPath(path)) {
diff --git a/patches/unapplied/server/0614-Manually-inline-methods-in-BlockPosition.patch b/patches/server/0607-Manually-inline-methods-in-BlockPosition.patch
index 630cd08862..77b9a47ac1 100644
--- a/patches/unapplied/server/0614-Manually-inline-methods-in-BlockPosition.patch
+++ b/patches/server/0607-Manually-inline-methods-in-BlockPosition.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Manually inline methods in BlockPosition
diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
-index 19fdd77d4830b7218b627fdf4ed755d8935c00aa..4144c872fbd89d22827ad1f586e9a8d63a39ed46 100644
+index 73d7b5148e3a92c085b08303589827a6f0ae8d07..12ff8886bb53ca15db745989c25b9bd2f45335e4 100644
--- a/src/main/java/net/minecraft/core/BlockPos.java
+++ b/src/main/java/net/minecraft/core/BlockPos.java
-@@ -558,9 +558,9 @@ public class BlockPos extends Vec3i {
+@@ -570,9 +570,9 @@ public class BlockPos extends Vec3i {
}
public BlockPos.MutableBlockPos set(int x, int y, int z) {
@@ -21,7 +21,7 @@ index 19fdd77d4830b7218b627fdf4ed755d8935c00aa..4144c872fbd89d22827ad1f586e9a8d6
return this;
}
-@@ -625,19 +625,19 @@ public class BlockPos extends Vec3i {
+@@ -637,19 +637,19 @@ public class BlockPos extends Vec3i {
@Override
public BlockPos.MutableBlockPos setX(int i) {
diff --git a/patches/unapplied/server/0615-Name-craft-scheduler-threads-according-to-the-plugin.patch b/patches/server/0608-Name-craft-scheduler-threads-according-to-the-plugin.patch
index 30f250f235..30f250f235 100644
--- a/patches/unapplied/server/0615-Name-craft-scheduler-threads-according-to-the-plugin.patch
+++ b/patches/server/0608-Name-craft-scheduler-threads-according-to-the-plugin.patch
diff --git a/patches/unapplied/server/0616-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch b/patches/server/0609-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
index ffee136c87..976f278b20 100644
--- a/patches/unapplied/server/0616-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
+++ b/patches/server/0609-Make-sure-inlined-getChunkAt-has-inlined-logic-for-l.patch
@@ -10,10 +10,10 @@ chunks did get inlined, but the standard CPS.getChunkAt
method was not inlined.
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
-index fd5dc0e09c89f4e21fde5d06b0fc0d4d45e52280..1408faa8754b2492879f2dbb525aba3bfc8f0421 100644
+index ed1fc466151ebebf7c3ac135c6893f4ea9a55a52..481248ef82d4257ca4cc88ab28a1a7946e22aef6 100644
--- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java
-@@ -351,6 +351,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
+@@ -352,6 +352,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
@Override
public final LevelChunk getChunk(int chunkX, int chunkZ) { // Paper - final to help inline
diff --git a/patches/unapplied/server/0617-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch b/patches/server/0610-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
index 0c62fa92a6..48449be461 100644
--- a/patches/unapplied/server/0617-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
+++ b/patches/server/0610-Don-t-read-neighbour-chunk-data-off-disk-when-conver.patch
@@ -8,7 +8,7 @@ Lighting is purged on update anyways, so let's not add more
into the conversion process
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
-index 09a73383867d1ffadababd24428ee7a61ab98959..e605dbdb821b2d13217ac88426e50480a4e4741d 100644
+index 9aa9ab894080a5819fc45698771afd034906d36a..f0f5e9bb5ac65250f0a151f9f90b58468335a8c2 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkStorage.java
@@ -47,6 +47,7 @@ public class ChunkStorage implements AutoCloseable {
diff --git a/patches/unapplied/server/0618-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch b/patches/server/0611-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch
index 0ab3e48f48..0ab3e48f48 100644
--- a/patches/unapplied/server/0618-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch
+++ b/patches/server/0611-Don-t-lookup-fluid-state-when-raytracing-skip-air-bl.patch
diff --git a/patches/unapplied/server/0619-Time-scoreboard-search.patch b/patches/server/0612-Time-scoreboard-search.patch
index 8d15084758..8d15084758 100644
--- a/patches/unapplied/server/0619-Time-scoreboard-search.patch
+++ b/patches/server/0612-Time-scoreboard-search.patch
diff --git a/patches/unapplied/server/0620-Oprimise-map-impl-for-tracked-players.patch b/patches/server/0613-Oprimise-map-impl-for-tracked-players.patch
index 05a08024ed..ad5326c8f4 100644
--- a/patches/unapplied/server/0620-Oprimise-map-impl-for-tracked-players.patch
+++ b/patches/server/0613-Oprimise-map-impl-for-tracked-players.patch
@@ -7,10 +7,10 @@ Reference2BooleanOpenHashMap is going to have
better lookups than HashMap.
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
-index 406c78dcb97d954f16f05d379d4dbf74c61c8fd1..3532febc8e34c8436a69a4c4b472b1776f21ee48 100644
+index d1247df5c51b0d377a27ea7cc5b5a2d1f1bf9b32..cf7c7813d528429a18dc25051df7fc06dc159930 100644
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
-@@ -1690,7 +1690,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
+@@ -1529,7 +1529,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
final Entity entity;
private final int range;
SectionPos lastSectionPos;
diff --git a/patches/unapplied/server/0621-Add-missing-InventoryType.patch b/patches/server/0614-Add-missing-InventoryType.patch
index a49bdf073d..a49bdf073d 100644
--- a/patches/unapplied/server/0621-Add-missing-InventoryType.patch
+++ b/patches/server/0614-Add-missing-InventoryType.patch
diff --git a/patches/unapplied/server/0622-Optimise-BlockSoil-nearby-water-lookup.patch b/patches/server/0615-Optimise-BlockSoil-nearby-water-lookup.patch
index 81b199a243..81b199a243 100644
--- a/patches/unapplied/server/0622-Optimise-BlockSoil-nearby-water-lookup.patch
+++ b/patches/server/0615-Optimise-BlockSoil-nearby-water-lookup.patch
diff --git a/patches/unapplied/server/0623-Fix-merchant-inventory-not-closing-on-entity-removal.patch b/patches/server/0616-Fix-merchant-inventory-not-closing-on-entity-removal.patch
index 11f85426c8..e15a3485c3 100644
--- a/patches/unapplied/server/0623-Fix-merchant-inventory-not-closing-on-entity-removal.patch
+++ b/patches/server/0616-Fix-merchant-inventory-not-closing-on-entity-removal.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Fix merchant inventory not closing on entity removal
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
-index e611857d9d29e8532b4ea3e0634c8f24a396a190..134df9ad4d5d5f85429f5e3ff6d879bc5f1fb13f 100644
+index 4c739717fcf53b28312e8a98f9bf0989c604d0f0..0723e6fb396a7afa11772f460a98f68cc815bba0 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
-@@ -2277,6 +2277,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
+@@ -2245,6 +2245,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
// Spigot end
// Spigot Start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message
diff --git a/patches/unapplied/server/0624-Check-requirement-before-suggesting-root-nodes.patch b/patches/server/0617-Check-requirement-before-suggesting-root-nodes.patch
index fce5e326f9..fce5e326f9 100644
--- a/patches/unapplied/server/0624-Check-requirement-before-suggesting-root-nodes.patch
+++ b/patches/server/0617-Check-requirement-before-suggesting-root-nodes.patch
diff --git a/patches/unapplied/server/0625-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch b/patches/server/0618-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
index 1049bf5495..4cc2e4a267 100644
--- a/patches/unapplied/server/0625-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
+++ b/patches/server/0618-Don-t-respond-to-ServerboundCommandSuggestionPacket-.patch
@@ -6,10 +6,10 @@ Subject: [PATCH] Don't respond to ServerboundCommandSuggestionPacket when
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-index 795e65c7c98d50ff67953ccb1ff68dac0088116e..4ac3e9cacc3c54a67da1547a319fd501ff375354 100644
+index c501f30418767678f9da2b54666da0d38cd594ff..c616ebd8d5c2b2e580772f87174cb22827cc5e90 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
-@@ -745,6 +745,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
+@@ -748,6 +748,11 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
return;
}
// CraftBukkit end
diff --git a/patches/unapplied/server/0626-Add-packet-limiter-config.patch b/patches/server/0619-Add-packet-limiter-config.patch
index 8315eb0598..a6bd6521f4 100644
--- a/patches/unapplied/server/0626-Add-packet-limiter-config.patch
+++ b/patches/server/0619-Add-packet-limiter-config.patch
@@ -24,7 +24,7 @@ and an action can be defined: DROP or KICK
If interval or rate are less-than 0, the limit is ignored
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
-index 6c30eb3750f434341ecec0bf8e9054bb331f9757..fd2a5c829899d45641a5b5d30116f4f368953c15 100644
+index 2b86415e4ea197c5c44c23072c9a1cda595544a8..4d9f1fc884050993287adfa4578a87da710623fb 100644
--- a/src/main/java/net/minecraft/network/Connection.java
+++ b/src/main/java/net/minecraft/network/Connection.java
@@ -137,6 +137,22 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
@@ -50,7 +50,7 @@ index 6c30eb3750f434341ecec0bf8e9054bb331f9757..fd2a5c829899d45641a5b5d30116f4f3
public Connection(PacketFlow side) {
this.receiving = side;
-@@ -207,6 +223,55 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
+@@ -215,6 +231,55 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
if (packetlistener == null) {
throw new IllegalStateException("Received a packet before the packet listener was initialized");
} else {
diff --git a/patches/unapplied/server/0627-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch b/patches/server/0620-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
index d9f19d0199..d9f19d0199 100644
--- a/patches/unapplied/server/0627-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
+++ b/patches/server/0620-Fix-setPatternColor-on-tropical-fish-bucket-meta.patch
diff --git a/patches/unapplied/server/0628-Ensure-valid-vehicle-status.patch b/patches/server/0621-Ensure-valid-vehicle-status.patch
index 544ee62764..223892323b 100644
--- a/patches/unapplied/server/0628-Ensure-valid-vehicle-status.patch
+++ b/patches/server/0621-Ensure-valid-vehicle-status.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Ensure valid vehicle status
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-index 5a13975fc9a472308ee74401f7b1f84f716e46eb..a94b43df4a6cd6f5974015bc5fc87d37347276f1 100644
+index 586f9bda04a74990b3eebbd2a52dcdb7273e8484..279c323bc2c2658fa1848d0c98f0614fbeb97e99 100644
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
-@@ -567,7 +567,7 @@ public class ServerPlayer extends Player {
+@@ -576,7 +576,7 @@ public class ServerPlayer extends net.minecraft.world.entity.player.Player {
}
}
diff --git a/patches/unapplied/server/0629-Prevent-softlocked-end-exit-portal-generation.patch b/patches/server/0622-Prevent-softlocked-end-exit-portal-generation.patch
index e2698e961b..e2698e961b 100644
--- a/patches/unapplied/server/0629-Prevent-softlocked-end-exit-portal-generation.patch
+++ b/patches/server/0622-Prevent-softlocked-end-exit-portal-generation.patch
diff --git a/patches/unapplied/server/0630-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch b/patches/server/0623-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
index 4fac0c1ab3..4fac0c1ab3 100644
--- a/patches/unapplied/server/0630-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
+++ b/patches/server/0623-Fix-CocaoDecorator-causing-a-crash-when-trying-to-ge.patch
diff --git a/patches/unapplied/server/0631-Don-t-log-debug-logging-being-disabled.patch b/patches/server/0624-Don-t-log-debug-logging-being-disabled.patch
index eda86b69fc..d62e56bfc1 100644
--- a/patches/unapplied/server/0631-Don-t-log-debug-logging-being-disabled.patch
+++ b/patches/server/0624-Don-t-log-debug-logging-being-disabled.patch
@@ -5,7 +5,7 @@ Subject: [PATCH] Don't log debug logging being disabled
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
-index 9572177323f29ea8315a3dfb943dfe10463f32ae..6c2a3813e7d63d57f07a8fa2edbb9d231221d818 100644
+index ba4fcfc86b385c8f50f414d5448edc5e99d2433a..db9c812cf7267adf0bfd8be7368140e91245d640 100644
--- a/src/main/java/org/spigotmc/SpigotConfig.java
+++ b/src/main/java/org/spigotmc/SpigotConfig.java
@@ -382,7 +382,7 @@ public class SpigotConfig
diff --git a/patches/unapplied/server/0632-fix-various-menus-with-empty-level-accesses.patch b/patches/server/0625-fix-various-menus-with-empty-level-accesses.patch
index efe5d1ddce..efe5d1ddce 100644
--- a/patches/unapplied/server/0632-fix-various-menus-with-empty-level-accesses.patch
+++ b/patches/server/0625-fix-various-menus-with-empty-level-accesses.patch
diff --git a/patches/unapplied/server/0633-Preserve-overstacked-loot.patch b/patches/server/0626-Preserve-overstacked-loot.patch
index bd846768be..bd657ec906 100644
--- a/patches/unapplied/server/0633-Preserve-overstacked-loot.patch
+++ b/patches/server/0626-Preserve-overstacked-loot.patch
@@ -10,7 +10,7 @@ chunk bans via the large amount of NBT created by unstacking the items.
Fixes GH-5140 and GH-4748.
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 83fce6746aaa3b378da6c5573ec9991d8438b071..6db7a023dd802706935c384df0b0aa430a6e29aa 100644
+index b231f90317fe7df9133674b12d47873520b481cb..edaf7f1692ae059581f3abc24bb228874e6d114b 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
@@ -72,9 +72,10 @@ public class LootTable {
diff --git a/patches/unapplied/server/0634-Update-head-rotation-in-missing-places.patch b/patches/server/0627-Update-head-rotation-in-missing-places.patch
index ff87022802..ab7ede0fd7 100644
--- a/patches/unapplied/server/0634-Update-head-rotation-in-missing-places.patch
+++ b/patches/server/0627-Update-head-rotation-in-missing-places.patch
@@ -8,10 +8,10 @@ This is because bukkit uses a separate head rotation field for yaw.
This issue only applies to players.
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index ebacae6f39fea052f4fb7c60f7164763b49f8148..0034e06a3caa89dfbb24a75d377d799ca0e8aed0 100644
+index 4542c6a7c48bfcb8a5acf127944e24b60dfc13e1..42afa622c97cc7da666cfb3019f417c96842d318 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -1813,6 +1813,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
+@@ -1845,6 +1845,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
this.setXRot(Mth.clamp(pitch, -90.0F, 90.0F) % 360.0F);
this.yRotO = this.getYRot();
this.xRotO = this.getXRot();
@@ -19,7 +19,7 @@ index ebacae6f39fea052f4fb7c60f7164763b49f8148..0034e06a3caa89dfbb24a75d377d799c
}
public void absMoveTo(double x, double y, double z) {
-@@ -1851,6 +1852,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
+@@ -1887,6 +1888,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
this.setXRot(pitch);
this.setOldPosAndRot();
this.reapplyPosition();
diff --git a/patches/unapplied/server/0635-prevent-unintended-light-block-manipulation.patch b/patches/server/0628-prevent-unintended-light-block-manipulation.patch
index bff44792dc..bff44792dc 100644
--- a/patches/unapplied/server/0635-prevent-unintended-light-block-manipulation.patch
+++ b/patches/server/0628-prevent-unintended-light-block-manipulation.patch
diff --git a/patches/unapplied/server/0636-Fix-CraftCriteria-defaults-map.patch b/patches/server/0629-Fix-CraftCriteria-defaults-map.patch
index 3e79bd7fb7..3e79bd7fb7 100644
--- a/patches/unapplied/server/0636-Fix-CraftCriteria-defaults-map.patch
+++ b/patches/server/0629-Fix-CraftCriteria-defaults-map.patch
diff --git a/patches/unapplied/server/0637-Fix-upstreams-block-state-factories.patch b/patches/server/0630-Fix-upstreams-block-state-factories.patch
index a48a6b0d09..a48a6b0d09 100644
--- a/patches/unapplied/server/0637-Fix-upstreams-block-state-factories.patch
+++ b/patches/server/0630-Fix-upstreams-block-state-factories.patch
diff --git a/patches/unapplied/server/0638-Configurable-feature-seeds.patch b/patches/server/0631-Configurable-feature-seeds.patch
index 44d7b04076..27997ba7c0 100644
--- a/patches/unapplied/server/0638-Configurable-feature-seeds.patch
+++ b/patches/server/0631-Configurable-feature-seeds.patch
@@ -19,10 +19,10 @@ index 49028463ba47e760281545c2f7597e3db8d6c453..7620c72a4c243cbeea245203ce03a97c
}
final Object val = config.get(key);
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
-index a8768f1925d5824ca985be1b53694ee233273758..748caca458eb4eec6ece22d8362e36de252f07dd 100644
+index 5adc1952504b26772116b55a5144b7704136edfa..c5dd3aac54aa5936da4bd9f54f0e76ecf8141d27 100644
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
-@@ -437,7 +437,14 @@ public abstract class ChunkGenerator {
+@@ -436,7 +436,14 @@ public abstract class ChunkGenerator {
return (String) optional.orElseGet(placedfeature::toString);
};
diff --git a/patches/unapplied/server/0639-Add-root-admin-user-detection.patch b/patches/server/0632-Add-root-admin-user-detection.patch
index ceb124af5d..abe2f3b5ae 100644
--- a/patches/unapplied/server/0639-Add-root-admin-user-detection.patch
+++ b/patches/server/0632-Add-root-admin-user-detection.patch
@@ -40,10 +40,10 @@ index 0000000000000000000000000000000000000000..68098dfe716e93aafcca4d8d5b5a81d8
+ }
+}
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
-index b8043b7e778792153620923ea228c1a211c27969..bbbadf5284907531eef761a738c3adf5305bd08f 100644
+index adbd61c41cc30afa89c6ee3544c562b351304a01..585d3e51b4af87327fc2bc64a49f09732a8c61ab 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
-@@ -192,6 +192,16 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
+@@ -196,6 +196,16 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
DedicatedServer.LOGGER.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"");
}
diff --git a/patches/unapplied/server/0640-don-t-attempt-to-teleport-dead-entities.patch b/patches/server/0633-don-t-attempt-to-teleport-dead-entities.patch
index c23f304dec..c207194634 100644
--- a/patches/unapplied/server/0640-don-t-attempt-to-teleport-dead-entities.patch
+++ b/patches/server/0633-don-t-attempt-to-teleport-dead-entities.patch
@@ -5,15 +5,15 @@ Subject: [PATCH] don't attempt to teleport dead entities
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 0034e06a3caa89dfbb24a75d377d799ca0e8aed0..7966d45adcbc239a506ab4aa2923a6df0dc36c03 100644
+index 42afa622c97cc7da666cfb3019f417c96842d318..4ec6a43b7f16560de948974d60ad8ab1dcbb4696 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -730,7 +730,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
+@@ -706,7 +706,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
// CraftBukkit start
public void postTick() {
// No clean way to break out of ticking once the entity has been copied to a new world, so instead we move the portalling later in the tick cycle
- if (!(this instanceof ServerPlayer)) {
+ if (!(this instanceof ServerPlayer) && this.isAlive()) { // Paper - don't attempt to teleport dead entities
- this.handleNetherPortal();
+ this.handlePortal();
}
}
diff --git a/patches/unapplied/server/0641-Prevent-excessive-velocity-through-repeated-crits.patch b/patches/server/0634-Prevent-excessive-velocity-through-repeated-crits.patch
index cfe01e4c50..36662e4adc 100644
--- a/patches/unapplied/server/0641-Prevent-excessive-velocity-through-repeated-crits.patch
+++ b/patches/server/0634-Prevent-excessive-velocity-through-repeated-crits.patch
@@ -5,15 +5,16 @@ Subject: [PATCH] Prevent excessive velocity through repeated crits
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-index a44b48bbb736e7efb04061f302bbb61015284bcb..0fe6b9f4376d2b852f6f23e31848cd9236577bdf 100644
+index e54e41f2a94b19f9df3d087f88a2ceb6fc52d1dc..65ab2a1e47d9f338dbb13062d25f6c9a3d5cc7ff 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
-@@ -2738,16 +2738,28 @@ public abstract class LivingEntity extends Entity implements Attackable {
+@@ -2744,17 +2744,29 @@ public abstract class LivingEntity extends Entity implements Attackable {
return this.hasEffect(MobEffects.JUMP) ? 0.1F * ((float) this.getEffect(MobEffects.JUMP).getAmplifier() + 1.0F) : 0.0F;
}
+ protected long lastJumpTime = 0L; // Paper - Prevent excessive velocity through repeated crits
- protected void jumpFromGround() {
+ @VisibleForTesting
+ public void jumpFromGround() {
float f = this.getJumpPower();
if (f > 1.0E-5F) {
diff --git a/patches/unapplied/server/0642-Remove-client-side-code-using-deprecated-for-removal.patch b/patches/server/0635-Remove-client-side-code-using-deprecated-for-removal.patch
index 77ffcc7ddc..4aed4f1f3a 100644
--- a/patches/unapplied/server/0642-Remove-client-side-code-using-deprecated-for-removal.patch
+++ b/patches/server/0635-Remove-client-side-code-using-deprecated-for-removal.patch
@@ -7,24 +7,24 @@ Subject: [PATCH] Remove client-side code using deprecated for removal
Fixes warnings on build
diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java
-index c7a21a11efba5c212958d56095217621828c1062..2cd0a4dc4f0baa08bd7f5a053303bb63733f0bab 100644
+index 4cf88f6d815d60cfbf8e4ecf9d96d0cfadd0620b..42d7ecfab6f72517904451d9df3f0404b176fdb2 100644
--- a/src/main/java/net/minecraft/Util.java
+++ b/src/main/java/net/minecraft/Util.java
-@@ -964,16 +964,7 @@ public class Util {
+@@ -1002,16 +1002,7 @@ public class Util {
}
- public void openUrl(URL url) {
+ public void openUri(URI uri) {
- try {
- Process process = AccessController.doPrivileged(
-- (PrivilegedExceptionAction<Process>)(() -> Runtime.getRuntime().exec(this.getOpenUrlArguments(url)))
+- (PrivilegedExceptionAction<Process>)(() -> Runtime.getRuntime().exec(this.getOpenUriArguments(uri)))
- );
- process.getInputStream().close();
- process.getErrorStream().close();
- process.getOutputStream().close();
- } catch (IOException | PrivilegedActionException var3) {
-- Util.LOGGER.error("Couldn't open url '{}'", url, var3);
+- Util.LOGGER.error("Couldn't open location '{}'", uri, var3);
- }
+ throw new IllegalStateException("This method is not useful on dedicated servers."); // Paper - Fix warnings on build by removing client-only code
}
- public void openUri(URI uri) {
+ public void openFile(File file) {
diff --git a/patches/unapplied/server/0643-Fix-Spigot-growth-modifiers.patch b/patches/server/0636-Fix-Spigot-growth-modifiers.patch
index dbaed5a331..dbaed5a331 100644
--- a/patches/unapplied/server/0643-Fix-Spigot-growth-modifiers.patch
+++ b/patches/server/0636-Fix-Spigot-growth-modifiers.patch
diff --git a/patches/unapplied/server/0644-Prevent-ContainerOpenersCounter-openCount-from-going.patch b/patches/server/0637-Prevent-ContainerOpenersCounter-openCount-from-going.patch
index b017de75d1..b017de75d1 100644
--- a/patches/unapplied/server/0644-Prevent-ContainerOpenersCounter-openCount-from-going.patch
+++ b/patches/server/0637-Prevent-ContainerOpenersCounter-openCount-from-going.patch
diff --git a/patches/unapplied/server/0645-Add-PlayerItemFrameChangeEvent.patch b/patches/server/0638-Add-PlayerItemFrameChangeEvent.patch
index 37c616b0a1..e047726740 100644
--- a/patches/unapplied/server/0645-Add-PlayerItemFrameChangeEvent.patch
+++ b/patches/server/0638-Add-PlayerItemFrameChangeEvent.patch
@@ -5,18 +5,18 @@ Subject: [PATCH] Add PlayerItemFrameChangeEvent
diff --git a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
-index 5a0658932cc45c49c9285b1419d574dd83041732..bb22b84c32848869967a47a60f9d8a0629a59e2a 100644
+index fdb6898519acfb27baf25d8bbad2013956c1361f..3c6edc5ea44b7ec15d8fc7a2dca95a11a0d6108a 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/ItemFrame.java
-@@ -2,6 +2,7 @@ package net.minecraft.world.entity.decoration;
+@@ -1,6 +1,7 @@
+ package net.minecraft.world.entity.decoration;
- import com.mojang.logging.LogUtils;
import javax.annotation.Nullable;
+import io.papermc.paper.event.player.PlayerItemFrameChangeEvent; // Paper - Add PlayerItemFrameChangeEvent
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.core.component.DataComponents;
-@@ -179,6 +180,13 @@ public class ItemFrame extends HangingEntity {
+@@ -154,6 +155,13 @@ public class ItemFrame extends HangingEntity {
return true;
}
// CraftBukkit end
@@ -30,7 +30,7 @@ index 5a0658932cc45c49c9285b1419d574dd83041732..bb22b84c32848869967a47a60f9d8a06
this.dropItem(source.getEntity(), false);
this.gameEvent(GameEvent.BLOCK_CHANGE, source.getEntity());
this.playSound(this.getRemoveItemSound(), 1.0F, 1.0F);
-@@ -429,11 +437,24 @@ public class ItemFrame extends HangingEntity {
+@@ -394,11 +402,24 @@ public class ItemFrame extends HangingEntity {
}
}
diff --git a/patches/unapplied/server/0646-Optimize-HashMapPalette.patch b/patches/server/0639-Optimize-HashMapPalette.patch
index d50159b901..d50159b901 100644
--- a/patches/unapplied/server/0646-Optimize-HashMapPalette.patch
+++ b/patches/server/0639-Optimize-HashMapPalette.patch
diff --git a/patches/unapplied/server/0647-Allow-delegation-to-vanilla-chunk-gen.patch b/patches/server/0640-Allow-delegation-to-vanilla-chunk-gen.patch
index ae73a367e1..700254e639 100644
--- a/patches/unapplied/server/0647-Allow-delegation-to-vanilla-chunk-gen.patch
+++ b/patches/server/0640-Allow-delegation-to-vanilla-chunk-gen.patch
@@ -5,10 +5,10 @@ Subject: [PATCH] Allow delegation to vanilla chunk gen
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-index 659d8ad2e0232934a3009f79283924e4363f7f32..a1c108bd8a11f63c0973e2d26186e18f5c3ba69e 100644
+index 3c9a9103783495c9015a8cea415620839f140f9c..ad5dc323e03dfae8670ebf9fad629e76c2106af7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
-@@ -2502,6 +2502,90 @@ public final class CraftServer implements Server {
+@@ -2510,6 +2510,90 @@ public final class CraftServer implements Server {
return new OldCraftChunkData(world.getMinHeight(), world.getMaxHeight(), handle.registryAccess().registryOrThrow(Registries.BIOME));
}
diff --git a/patches/unapplied/server/0648-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch b/patches/server/0641-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
index 96c1914907..8f7f6be080 100644
--- a/patches/unapplied/server/0648-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
+++ b/patches/server/0641-Fix-ChunkSnapshot-isSectionEmpty-int-and-optimize-Pa.patch
@@ -6,7 +6,7 @@ Subject: [PATCH] Fix ChunkSnapshot#isSectionEmpty(int) and optimize
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
-index 01596f87ee078fceeb3f2f29bbb2500e63e9efb8..f8c2d91958d6e4a1452fcf32c16fa8b97ea271a2 100644
+index f1d5c2d423dc015cc7720a4544370895f3cc644b..d6eab2a0fdbafc35efa7ed5b404357391565f4f3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
@@ -338,14 +338,17 @@ public class CraftChunk implements Chunk {
diff --git a/patches/unapplied/server/0649-Add-more-Campfire-API.patch b/patches/server/0642-Add-more-Campfire-API.patch
index c47758fa53..012ca1cc7d 100644
--- a/patches/unapplied/server/0649-Add-more-Campfire-API.patch
+++ b/patches/server/0642-Add-more-Campfire-API.patch
@@ -5,18 +5,18 @@ Subject: [PATCH] Add more Campfire API
diff --git a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java
-index e858d32c7e8e228a1f0327a33054671ad105c2eb..24563a43f25d4621291b1ba6f24773cccedddbfe 100644
+index 0c20a334be4b1c4cf7999826f8d9bff5e36bc2b8..6d58a30a588ec98bc343ab0ab82be82d9cf0618c 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/CampfireBlockEntity.java
-@@ -47,6 +47,7 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable {
+@@ -46,6 +46,7 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable {
public final int[] cookingProgress;
public final int[] cookingTime;
- private final RecipeManager.CachedCheck<Container, CampfireCookingRecipe> quickCheck;
+ private final RecipeManager.CachedCheck<SingleRecipeInput, CampfireCookingRecipe> quickCheck;
+ public final boolean[] stopCooking; // Paper - Add more Campfire API
public CampfireBlockEntity(BlockPos pos, BlockState state) {
super(BlockEntityType.CAMPFIRE, pos, state);
-@@ -54,6 +55,7 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable {
+@@ -53,6 +54,7 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable {
this.cookingProgress = new int[4];
this.cookingTime = new int[4];
this.quickCheck = RecipeManager.createCheck(RecipeType.CAMPFIRE_COOKING);
@@ -24,7 +24,7 @@ index e858d32c7e8e228a1f0327a33054671ad105c2eb..24563a43f25d4621291b1ba6f24773cc
}
public static void cookTick(Level world, BlockPos pos, BlockState state, CampfireBlockEntity campfire) {
-@@ -64,7 +66,9 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable {
+@@ -63,7 +65,9 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable {
if (!itemstack.isEmpty()) {
flag = true;
@@ -33,8 +33,8 @@ index e858d32c7e8e228a1f0327a33054671ad105c2eb..24563a43f25d4621291b1ba6f24773cc
+ } // Paper - Add more Campfire API
if (campfire.cookingProgress[i] >= campfire.cookingTime[i]) {
- SimpleContainer inventorysubcontainer = new SimpleContainer(new ItemStack[]{itemstack});
-@@ -177,6 +181,16 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable {
+ SingleRecipeInput singlerecipeinput = new SingleRecipeInput(itemstack);
+@@ -176,6 +180,16 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable {
System.arraycopy(aint, 0, this.cookingTime, 0, Math.min(this.cookingTime.length, aint.length));
}
@@ -51,7 +51,7 @@ index e858d32c7e8e228a1f0327a33054671ad105c2eb..24563a43f25d4621291b1ba6f24773cc
}
@Override
-@@ -185,6 +199,13 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable {
+@@ -184,6 +198,13 @@ public class CampfireBlockEntity extends BlockEntity implements Clearable {
ContainerHelper.saveAllItems(nbt, this.items, true, registryLookup);
nbt.putIntArray("CookingTimes", this.cookingProgress);
nbt.putIntArray("CookingTotalTimes", this.cookingTime);
diff --git a/patches/unapplied/server/0650-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch b/patches/server/0643-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
index 82e383fc34..148e6899d1 100644
--- a/patches/unapplied/server/0650-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
+++ b/patches/server/0643-Only-write-chunk-data-to-disk-if-it-serializes-witho.patch
@@ -44,7 +44,7 @@ index 12b7d50f49a2184aaf220a4a50a137b217c57124..f1237f6fd6414900ffbad0caee31aa83
public void close() throws IOException {
ByteBuffer bytebuffer = ByteBuffer.wrap(this.buf, 0, this.count);
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
-index 9748b798f55ee0cbfdce1a2b2c48700623ef17a5..c4eef3aade889c69cefd873bec2d031cc54103ea 100644
+index 7d4aa3d375bde32e0d2606346202929d481acad0..36e914b26de070035f195f67c65ee1df0d10daf0 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFileStorage.java
@@ -147,10 +147,17 @@ public class RegionFileStorage implements AutoCloseable {
@@ -78,9 +78,9 @@ index 9748b798f55ee0cbfdce1a2b2c48700623ef17a5..c4eef3aade889c69cefd873bec2d031c
}
// Paper start - Chunk save reattempt
return;
-@@ -204,4 +208,13 @@ public class RegionFileStorage implements AutoCloseable {
- }
-
+@@ -208,4 +212,13 @@ public class RegionFileStorage implements AutoCloseable {
+ public RegionStorageInfo info() {
+ return this.info;
}
+
+ // Paper start - don't write garbage data to disk if writing serialization fails
diff --git a/patches/unapplied/server/0587-Add-EntityDamageItemEvent.patch b/patches/unapplied/server/0587-Add-EntityDamageItemEvent.patch
deleted file mode 100644
index dab8825098..0000000000
--- a/patches/unapplied/server/0587-Add-EntityDamageItemEvent.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jake Potrebic <[email protected]>
-Date: Tue, 22 Dec 2020 13:52:48 -0800
-Subject: [PATCH] Add EntityDamageItemEvent
-
-
-diff --git a/src/main/java/net/minecraft/world/item/ItemStack.java b/src/main/java/net/minecraft/world/item/ItemStack.java
-index e5fbb6dac3b1869797f2141e82993374a9f18e94..1b062edcc04af4c500f38c1664b5cee25e265f3c 100644
---- a/src/main/java/net/minecraft/world/item/ItemStack.java
-+++ b/src/main/java/net/minecraft/world/item/ItemStack.java
-@@ -647,7 +647,7 @@ public final class ItemStack implements DataComponentHolder {
- return (Integer) this.getOrDefault(DataComponents.MAX_DAMAGE, 0);
- }
-
-- public void hurtAndBreak(int amount, RandomSource random, @Nullable ServerPlayer player, Runnable breakCallback) {
-+ public void hurtAndBreak(int amount, RandomSource random, @Nullable LivingEntity player, Runnable breakCallback) { // Paper - Add EntityDamageItemEvent
- if (this.isDamageableItem()) {
- int j;
-
-@@ -663,8 +663,8 @@ public final class ItemStack implements DataComponentHolder {
-
- amount -= k;
- // CraftBukkit start
-- if (player != null) {
-- PlayerItemDamageEvent event = new PlayerItemDamageEvent(player.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount);
-+ if (player instanceof ServerPlayer serverPlayer) { // Paper - Add EntityDamageItemEvent
-+ PlayerItemDamageEvent event = new PlayerItemDamageEvent(serverPlayer.getBukkitEntity(), CraftItemStack.asCraftMirror(this), amount); // Paper - Add EntityDamageItemEvent
- event.getPlayer().getServer().getPluginManager().callEvent(event);
-
- if (amount != event.getDamage() || event.isCancelled()) {
-@@ -675,6 +675,14 @@ public final class ItemStack implements DataComponentHolder {
- }
-
- amount = event.getDamage();
-+ // Paper start - Add EntityDamageItemEvent
-+ } else if (player != null) {
-+ io.papermc.paper.event.entity.EntityDamageItemEvent event = new io.papermc.paper.event.entity.EntityDamageItemEvent(player.getBukkitLivingEntity(), CraftItemStack.asCraftMirror(this), amount);
-+ if (!event.callEvent()) {
-+ return;
-+ }
-+ amount = event.getDamage();
-+ // Paper end - Add EntityDamageItemEvent
- }
- // CraftBukkit end
- if (amount <= 0) {
-@@ -682,8 +690,8 @@ public final class ItemStack implements DataComponentHolder {
- }
- }
-
-- if (player != null && amount != 0) {
-- CriteriaTriggers.ITEM_DURABILITY_CHANGED.trigger(player, this, this.getDamageValue() + amount);
-+ if (player instanceof ServerPlayer serverPlayer && amount != 0) { // Paper - Add EntityDamageItemEvent
-+ CriteriaTriggers.ITEM_DURABILITY_CHANGED.trigger(serverPlayer, this, this.getDamageValue() + amount); // Paper - Add EntityDamageItemEvent
- }
-
- j = this.getDamageValue() + amount;
-@@ -716,7 +724,7 @@ public final class ItemStack implements DataComponentHolder {
- entityplayer = null;
- }
-
-- this.hurtAndBreak(amount, randomsource, entityplayer, () -> {
-+ this.hurtAndBreak(amount, randomsource, entity, () -> { // Paper - Add EntityDamageItemEvent
- entity.broadcastBreakEvent(slot);
- Item item = this.getItem();
- // CraftBukkit start - Check for item breaking
diff --git a/patches/unapplied/server/0590-Clear-bucket-NBT-after-dispense.patch b/patches/unapplied/server/0590-Clear-bucket-NBT-after-dispense.patch
deleted file mode 100644
index ece5517a45..0000000000
--- a/patches/unapplied/server/0590-Clear-bucket-NBT-after-dispense.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jake Potrebic <[email protected]>
-Date: Fri, 13 Aug 2021 15:00:06 -0700
-Subject: [PATCH] Clear bucket NBT after dispense
-
-
-diff --git a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
-index dc68ade2ed576020a4a40608243059d6d9d82f19..f880f9faa1e5660853f28c0e2daf4ab6bc6a55fd 100644
---- a/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
-+++ b/src/main/java/net/minecraft/core/dispenser/DispenseItemBehavior.java
-@@ -444,8 +444,7 @@ public interface DispenseItemBehavior {
- Item item = Items.BUCKET;
- stack.shrink(1);
- if (stack.isEmpty()) {
-- stack.setItem(Items.BUCKET);
-- stack.setCount(1);
-+ stack = new ItemStack(item); // Paper - Clear bucket NBT after dispense
- } else if (pointer.blockEntity().addItem(new ItemStack(item)) < 0) {
- this.defaultDispenseItemBehavior.dispense(pointer, new ItemStack(item));
- }
diff --git a/patches/unapplied/server/0596-Add-back-EntityPortalExitEvent.patch b/patches/unapplied/server/0596-Add-back-EntityPortalExitEvent.patch
deleted file mode 100644
index 7b49353853..0000000000
--- a/patches/unapplied/server/0596-Add-back-EntityPortalExitEvent.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Jake Potrebic <[email protected]>
-Date: Sun, 16 May 2021 09:39:46 -0700
-Subject: [PATCH] Add back EntityPortalExitEvent
-
-
-diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
-index 56de24f923571aff124ae64b737cbdf482d4b847..5d4fa3823a6dbb6150e4b97cf3973eb254018e38 100644
---- a/src/main/java/net/minecraft/world/entity/Entity.java
-+++ b/src/main/java/net/minecraft/world/entity/Entity.java
-@@ -3312,6 +3312,28 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
- } else {
- // CraftBukkit start
- worldserver = shapedetectorshape.world;
-+ // Paper start - Call EntityPortalExitEvent
-+ Vec3 position = shapedetectorshape.pos;
-+ float yaw = shapedetectorshape.yRot;
-+ float pitch = this.getXRot(); // Keep entity pitch as per moveTo line below
-+ Vec3 velocity = shapedetectorshape.speed;
-+ CraftEntity bukkitEntity = this.getBukkitEntity();
-+ org.bukkit.event.entity.EntityPortalExitEvent event = new org.bukkit.event.entity.EntityPortalExitEvent(bukkitEntity,
-+ bukkitEntity.getLocation(), new Location(worldserver.getWorld(), position.x, position.y, position.z, yaw, pitch),
-+ bukkitEntity.getVelocity(), org.bukkit.craftbukkit.util.CraftVector.toBukkit(shapedetectorshape.speed));
-+ event.callEvent();
-+ if (this.isRemoved()) {
-+ return null;
-+ }
-+
-+ if (!event.isCancelled() && event.getTo() != null) {
-+ worldserver = ((CraftWorld) event.getTo().getWorld()).getHandle();
-+ position = CraftLocation.toVec3D(event.getTo());
-+ yaw = event.getTo().getYaw();
-+ pitch = event.getTo().getPitch();
-+ velocity = org.bukkit.craftbukkit.util.CraftVector.toNMS(event.getAfter());
-+ }
-+ // Paper end - Call EntityPortalExitEvent
- if (worldserver == this.level) {
- // SPIGOT-6782: Just move the entity if a plugin changed the world to the one the entity is already in
- this.moveTo(shapedetectorshape.pos.x, shapedetectorshape.pos.y, shapedetectorshape.pos.z, shapedetectorshape.yRot, shapedetectorshape.xRot);
-@@ -3331,8 +3353,8 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
-
- if (entity != null) {
- entity.restoreFrom(this);
-- entity.moveTo(shapedetectorshape.pos.x, shapedetectorshape.pos.y, shapedetectorshape.pos.z, shapedetectorshape.yRot, entity.getXRot());
-- entity.setDeltaMovement(shapedetectorshape.speed);
-+ entity.moveTo(position.x, position.y, position.z, yaw, pitch); // Paper - EntityPortalExitEvent
-+ entity.setDeltaMovement(velocity); // Paper - EntityPortalExitEvent
- // CraftBukkit start - Don't spawn the new entity if the current entity isn't spawned
- if (this.inWorld) {
- worldserver.addDuringTeleport(entity);