diff options
author | Jake Potrebic <[email protected]> | 2023-07-07 10:25:36 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2023-07-07 10:25:36 -0700 |
commit | e1053543307a4e64990c41905f80c85cb82d17fb (patch) | |
tree | af38b2538e3598f601cb581cd349b17b4ba87e9b | |
parent | d7d3f6371e15f68bbbfc70d567552d426563acfb (diff) | |
download | Paper-e1053543307a4e64990c41905f80c85cb82d17fb.tar.gz Paper-e1053543307a4e64990c41905f80c85cb82d17fb.zip |
Fix incorrect new blockdata in EntityChangeBlockEvent (#9445)
Also fixes EntityBreakDoorEvent not having the correct 'to' block data
Also standardizes how to handle EntityChangeBlockEvent before a removeBlock or destroyBlock
call. Always use 'state.getFluidState().createLegacyBlock()' to get the new state instead of
just using the 'air' state.
-rw-r--r-- | patches/api/0359-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch | 21 | ||||
-rw-r--r-- | patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch (renamed from patches/api/0359-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0361-WorldCreator-keepSpawnLoaded.patch (renamed from patches/api/0360-WorldCreator-keepSpawnLoaded.patch) | 0 | ||||
-rw-r--r-- | patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch (renamed from patches/api/0361-Add-EntityDyeEvent-and-CollarColorable-interface.patch) | 0 | ||||
-rw-r--r-- | patches/api/0363-Add-PlayerStopUsingItemEvent.patch (renamed from patches/api/0362-Add-PlayerStopUsingItemEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0364-FallingBlock-auto-expire-setting.patch (renamed from patches/api/0363-FallingBlock-auto-expire-setting.patch) | 0 | ||||
-rw-r--r-- | patches/api/0365-Keyed-Cat-Type.patch (renamed from patches/api/0364-Keyed-Cat-Type.patch) | 0 | ||||
-rw-r--r-- | patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch (renamed from patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch) | 4 | ||||
-rw-r--r-- | patches/api/0367-Add-WardenAngerChangeEvent.patch (renamed from patches/api/0366-Add-WardenAngerChangeEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0368-Nameable-Banner-API.patch (renamed from patches/api/0367-Nameable-Banner-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0369-Add-Player-getFishHook.patch (renamed from patches/api/0368-Add-Player-getFishHook.patch) | 0 | ||||
-rw-r--r-- | patches/api/0370-More-Teleport-API.patch (renamed from patches/api/0369-More-Teleport-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0371-Add-EntityPortalReadyEvent.patch (renamed from patches/api/0370-Add-EntityPortalReadyEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch (renamed from patches/api/0371-Custom-Chat-Completion-Suggestions-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0373-Collision-API.patch (renamed from patches/api/0372-Collision-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0374-Block-Ticking-API.patch (renamed from patches/api/0373-Block-Ticking-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0375-Add-NamespacedKey-biome-methods.patch (renamed from patches/api/0374-Add-NamespacedKey-biome-methods.patch) | 0 | ||||
-rw-r--r-- | patches/api/0376-Also-load-resources-from-LibraryLoader.patch (renamed from patches/api/0375-Also-load-resources-from-LibraryLoader.patch) | 0 | ||||
-rw-r--r-- | patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch (renamed from patches/api/0376-Added-byte-array-serialization-deserialization-for-P.patch) | 0 | ||||
-rw-r--r-- | patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch (renamed from patches/api/0377-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch) | 0 | ||||
-rw-r--r-- | patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch (renamed from patches/api/0378-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch) | 0 | ||||
-rw-r--r-- | patches/api/0380-Add-getDrops-to-BlockState.patch (renamed from patches/api/0379-Add-getDrops-to-BlockState.patch) | 0 | ||||
-rw-r--r-- | patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch (renamed from patches/api/0380-Add-PlayerInventorySlotChangeEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0382-Elder-Guardian-appearance-API.patch (renamed from patches/api/0381-Elder-Guardian-appearance-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0383-Allow-changing-bed-s-occupied-property.patch (renamed from patches/api/0382-Allow-changing-bed-s-occupied-property.patch) | 0 | ||||
-rw-r--r-- | patches/api/0384-Add-EquipmentSlot-convenience-methods.patch (renamed from patches/api/0383-Add-EquipmentSlot-convenience-methods.patch) | 0 | ||||
-rw-r--r-- | patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch (renamed from patches/api/0384-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch) | 0 | ||||
-rw-r--r-- | patches/api/0386-Add-entity-knockback-API.patch (renamed from patches/api/0385-Add-entity-knockback-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0387-Added-EntityToggleSitEvent.patch (renamed from patches/api/0386-Added-EntityToggleSitEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0388-Add-Moving-Piston-API.patch (renamed from patches/api/0387-Add-Moving-Piston-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0389-Add-PrePlayerAttackEntityEvent.patch (renamed from patches/api/0388-Add-PrePlayerAttackEntityEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0390-Add-Player-Warden-Warning-API.patch (renamed from patches/api/0389-Add-Player-Warden-Warning-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch (renamed from patches/api/0390-More-vanilla-friendly-methods-to-update-trades.patch) | 0 | ||||
-rw-r--r-- | patches/api/0392-Add-paper-dumplisteners-command.patch (renamed from patches/api/0391-Add-paper-dumplisteners-command.patch) | 0 | ||||
-rw-r--r-- | patches/api/0393-ItemStack-damage-API.patch (renamed from patches/api/0392-ItemStack-damage-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0394-Add-Tick-TemporalUnit.patch (renamed from patches/api/0393-Add-Tick-TemporalUnit.patch) | 0 | ||||
-rw-r--r-- | patches/api/0395-Friction-API.patch (renamed from patches/api/0394-Friction-API.patch) | 2 | ||||
-rw-r--r-- | patches/api/0396-Player-Entity-Tracking-Events.patch (renamed from patches/api/0395-Player-Entity-Tracking-Events.patch) | 0 | ||||
-rw-r--r-- | patches/api/0397-Add-missing-Fluid-type.patch (renamed from patches/api/0396-Add-missing-Fluid-type.patch) | 0 | ||||
-rw-r--r-- | patches/api/0398-fix-Instruments.patch (renamed from patches/api/0397-fix-Instruments.patch) | 0 | ||||
-rw-r--r-- | patches/api/0399-Add-BlockLockCheckEvent.patch (renamed from patches/api/0398-Add-BlockLockCheckEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0400-Add-Sneaking-API-for-Entities.patch (renamed from patches/api/0399-Add-Sneaking-API-for-Entities.patch) | 0 | ||||
-rw-r--r-- | patches/api/0401-Improve-PortalEvents.patch (renamed from patches/api/0400-Improve-PortalEvents.patch) | 0 | ||||
-rw-r--r-- | patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent.patch (renamed from patches/api/0401-Add-exploded-block-state-to-BlockExplodeEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0403-Flying-Fall-Damage-API.patch (renamed from patches/api/0402-Flying-Fall-Damage-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch (renamed from patches/api/0403-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch) | 0 | ||||
-rw-r--r-- | patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch (renamed from patches/api/0404-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch) | 0 | ||||
-rw-r--r-- | patches/api/0406-Win-Screen-API.patch (renamed from patches/api/0405-Win-Screen-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0407-Add-Entity-Body-Yaw-API.patch (renamed from patches/api/0406-Add-Entity-Body-Yaw-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch (renamed from patches/api/0407-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch) | 0 | ||||
-rw-r--r-- | patches/api/0409-Add-EntityFertilizeEggEvent.patch (renamed from patches/api/0408-Add-EntityFertilizeEggEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch (renamed from patches/api/0409-Add-CompostItemEvent-and-EntityCompostItemEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0411-Add-Shearable-API.patch (renamed from patches/api/0410-Add-Shearable-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch (renamed from patches/api/0411-Fix-SpawnEggMeta-get-setSpawnedType.patch) | 0 | ||||
-rw-r--r-- | patches/api/0413-Add-Mob-Experience-reward-API.patch (renamed from patches/api/0412-Add-Mob-Experience-reward-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0414-Expand-PlayerItemMendEvent.patch (renamed from patches/api/0413-Expand-PlayerItemMendEvent.patch) | 0 | ||||
-rw-r--r-- | patches/api/0415-Add-transient-modifier-API.patch (renamed from patches/api/0414-Add-transient-modifier-API.patch) | 0 | ||||
-rw-r--r-- | patches/api/0416-Properly-remove-the-experimental-smithing-inventory-.patch (renamed from patches/api/0415-Properly-remove-the-experimental-smithing-inventory-.patch) | 0 | ||||
-rw-r--r-- | patches/api/0417-Add-method-to-remove-all-active-potion-effects.patch (renamed from patches/api/0416-Add-method-to-remove-all-active-potion-effects.patch) | 2 | ||||
-rw-r--r-- | patches/api/0418-Folia-scheduler-and-owned-region-API.patch (renamed from patches/api/0417-Folia-scheduler-and-owned-region-API.patch) | 4 | ||||
-rw-r--r-- | patches/api/0419-Add-event-for-player-editing-sign.patch (renamed from patches/api/0418-Add-event-for-player-editing-sign.patch) | 0 | ||||
-rw-r--r-- | patches/server/0802-Fix-new-block-data-for-EntityChangeBlockEvent.patch | 168 |
62 files changed, 181 insertions, 20 deletions
diff --git a/patches/api/0359-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch b/patches/api/0359-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch new file mode 100644 index 0000000000..21b3f85c0b --- /dev/null +++ b/patches/api/0359-Fix-incorrect-new-blockstate-in-EntityBreakDoorEvent.patch @@ -0,0 +1,21 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic <[email protected]> +Date: Sun, 2 Jul 2023 22:14:09 -0700 +Subject: [PATCH] Fix incorrect new blockstate in EntityBreakDoorEvent + + +diff --git a/src/main/java/org/bukkit/event/entity/EntityBreakDoorEvent.java b/src/main/java/org/bukkit/event/entity/EntityBreakDoorEvent.java +index 30b9bdca89a8d4b226824b3de8b9ac5bc8243c7d..b7889e3b6cc5d3ed4d7fc2380d0acb060cb0905a 100644 +--- a/src/main/java/org/bukkit/event/entity/EntityBreakDoorEvent.java ++++ b/src/main/java/org/bukkit/event/entity/EntityBreakDoorEvent.java +@@ -12,8 +12,8 @@ import org.jetbrains.annotations.NotNull; + * Cancelling the event will cause the event to be delayed + */ + public class EntityBreakDoorEvent extends EntityChangeBlockEvent { +- public EntityBreakDoorEvent(@NotNull final LivingEntity entity, @NotNull final Block targetBlock) { +- super(entity, targetBlock, Material.AIR.createBlockData()); ++ public EntityBreakDoorEvent(@NotNull final LivingEntity entity, @NotNull final Block targetBlock, @NotNull final org.bukkit.block.data.BlockData to) { // Paper ++ super(entity, targetBlock, to); // Paper + } + + @NotNull diff --git a/patches/api/0359-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch b/patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch index 5775b6f33c..5775b6f33c 100644 --- a/patches/api/0359-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch +++ b/patches/api/0360-Add-pre-unbreaking-amount-to-PlayerItemDamageEvent.patch diff --git a/patches/api/0360-WorldCreator-keepSpawnLoaded.patch b/patches/api/0361-WorldCreator-keepSpawnLoaded.patch index c148a391f4..c148a391f4 100644 --- a/patches/api/0360-WorldCreator-keepSpawnLoaded.patch +++ b/patches/api/0361-WorldCreator-keepSpawnLoaded.patch diff --git a/patches/api/0361-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch index 032a0872d1..032a0872d1 100644 --- a/patches/api/0361-Add-EntityDyeEvent-and-CollarColorable-interface.patch +++ b/patches/api/0362-Add-EntityDyeEvent-and-CollarColorable-interface.patch diff --git a/patches/api/0362-Add-PlayerStopUsingItemEvent.patch b/patches/api/0363-Add-PlayerStopUsingItemEvent.patch index 0743d44ae1..0743d44ae1 100644 --- a/patches/api/0362-Add-PlayerStopUsingItemEvent.patch +++ b/patches/api/0363-Add-PlayerStopUsingItemEvent.patch diff --git a/patches/api/0363-FallingBlock-auto-expire-setting.patch b/patches/api/0364-FallingBlock-auto-expire-setting.patch index 0a1e19afeb..0a1e19afeb 100644 --- a/patches/api/0363-FallingBlock-auto-expire-setting.patch +++ b/patches/api/0364-FallingBlock-auto-expire-setting.patch diff --git a/patches/api/0364-Keyed-Cat-Type.patch b/patches/api/0365-Keyed-Cat-Type.patch index b0797d78b7..b0797d78b7 100644 --- a/patches/api/0364-Keyed-Cat-Type.patch +++ b/patches/api/0365-Keyed-Cat-Type.patch diff --git a/patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch b/patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch index 88a8e4f5f6..126775a362 100644 --- a/patches/api/0365-Add-method-isTickingWorlds-to-Bukkit.patch +++ b/patches/api/0366-Add-method-isTickingWorlds-to-Bukkit.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add method isTickingWorlds() to Bukkit. diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 14ddb641d8a20ebd80cb2c5c8bef3062f813026d..5635bd49107013faace6b79731c70ac1356ec357 100644 +index 209a0c48e092f168744498e1ba7555279318394c..aa938c777936bbefc0c8cef248ad03e0f52bef2c 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -775,12 +775,26 @@ public final class Bukkit { @@ -56,7 +56,7 @@ index 14ddb641d8a20ebd80cb2c5c8bef3062f813026d..5635bd49107013faace6b79731c70ac1 * @param world the world to unload * @param save whether to save the chunks before unloading diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index b6bdb945755a2c37b3cb2c3e2e91f7d769c517c4..5a388914d58eda63715fc0a6d0d4f507b6ca9672 100644 +index 20f95f8911852d86ea938dd73ed0d44c01b27d28..7bdac4b297e40383dd2ef4e2735fdfb086ecaa14 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -648,34 +648,55 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi diff --git a/patches/api/0366-Add-WardenAngerChangeEvent.patch b/patches/api/0367-Add-WardenAngerChangeEvent.patch index acf45b5314..acf45b5314 100644 --- a/patches/api/0366-Add-WardenAngerChangeEvent.patch +++ b/patches/api/0367-Add-WardenAngerChangeEvent.patch diff --git a/patches/api/0367-Nameable-Banner-API.patch b/patches/api/0368-Nameable-Banner-API.patch index eba196daaf..eba196daaf 100644 --- a/patches/api/0367-Nameable-Banner-API.patch +++ b/patches/api/0368-Nameable-Banner-API.patch diff --git a/patches/api/0368-Add-Player-getFishHook.patch b/patches/api/0369-Add-Player-getFishHook.patch index 291eac5db5..291eac5db5 100644 --- a/patches/api/0368-Add-Player-getFishHook.patch +++ b/patches/api/0369-Add-Player-getFishHook.patch diff --git a/patches/api/0369-More-Teleport-API.patch b/patches/api/0370-More-Teleport-API.patch index dba7c50dc1..dba7c50dc1 100644 --- a/patches/api/0369-More-Teleport-API.patch +++ b/patches/api/0370-More-Teleport-API.patch diff --git a/patches/api/0370-Add-EntityPortalReadyEvent.patch b/patches/api/0371-Add-EntityPortalReadyEvent.patch index 4b1b1f1e1f..4b1b1f1e1f 100644 --- a/patches/api/0370-Add-EntityPortalReadyEvent.patch +++ b/patches/api/0371-Add-EntityPortalReadyEvent.patch diff --git a/patches/api/0371-Custom-Chat-Completion-Suggestions-API.patch b/patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch index 548433171d..548433171d 100644 --- a/patches/api/0371-Custom-Chat-Completion-Suggestions-API.patch +++ b/patches/api/0372-Custom-Chat-Completion-Suggestions-API.patch diff --git a/patches/api/0372-Collision-API.patch b/patches/api/0373-Collision-API.patch index 24bcebc503..24bcebc503 100644 --- a/patches/api/0372-Collision-API.patch +++ b/patches/api/0373-Collision-API.patch diff --git a/patches/api/0373-Block-Ticking-API.patch b/patches/api/0374-Block-Ticking-API.patch index 9b2fc54ea1..9b2fc54ea1 100644 --- a/patches/api/0373-Block-Ticking-API.patch +++ b/patches/api/0374-Block-Ticking-API.patch diff --git a/patches/api/0374-Add-NamespacedKey-biome-methods.patch b/patches/api/0375-Add-NamespacedKey-biome-methods.patch index 24cd2b9867..24cd2b9867 100644 --- a/patches/api/0374-Add-NamespacedKey-biome-methods.patch +++ b/patches/api/0375-Add-NamespacedKey-biome-methods.patch diff --git a/patches/api/0375-Also-load-resources-from-LibraryLoader.patch b/patches/api/0376-Also-load-resources-from-LibraryLoader.patch index ee5785d8cb..ee5785d8cb 100644 --- a/patches/api/0375-Also-load-resources-from-LibraryLoader.patch +++ b/patches/api/0376-Also-load-resources-from-LibraryLoader.patch diff --git a/patches/api/0376-Added-byte-array-serialization-deserialization-for-P.patch b/patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch index 161c82afe3..161c82afe3 100644 --- a/patches/api/0376-Added-byte-array-serialization-deserialization-for-P.patch +++ b/patches/api/0377-Added-byte-array-serialization-deserialization-for-P.patch diff --git a/patches/api/0377-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch b/patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch index bec7a5d015..bec7a5d015 100644 --- a/patches/api/0377-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch +++ b/patches/api/0378-Add-a-consumer-parameter-to-ProjectileSource-launchP.patch diff --git a/patches/api/0378-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch b/patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch index 9b5ef25cf4..9b5ef25cf4 100644 --- a/patches/api/0378-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch +++ b/patches/api/0379-Expose-codepoint-limit-in-YamlConfigOptions-and-incr.patch diff --git a/patches/api/0379-Add-getDrops-to-BlockState.patch b/patches/api/0380-Add-getDrops-to-BlockState.patch index 48f3a99f04..48f3a99f04 100644 --- a/patches/api/0379-Add-getDrops-to-BlockState.patch +++ b/patches/api/0380-Add-getDrops-to-BlockState.patch diff --git a/patches/api/0380-Add-PlayerInventorySlotChangeEvent.patch b/patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch index f094f9dbc9..f094f9dbc9 100644 --- a/patches/api/0380-Add-PlayerInventorySlotChangeEvent.patch +++ b/patches/api/0381-Add-PlayerInventorySlotChangeEvent.patch diff --git a/patches/api/0381-Elder-Guardian-appearance-API.patch b/patches/api/0382-Elder-Guardian-appearance-API.patch index 6c5cac6256..6c5cac6256 100644 --- a/patches/api/0381-Elder-Guardian-appearance-API.patch +++ b/patches/api/0382-Elder-Guardian-appearance-API.patch diff --git a/patches/api/0382-Allow-changing-bed-s-occupied-property.patch b/patches/api/0383-Allow-changing-bed-s-occupied-property.patch index 8dfafd6d33..8dfafd6d33 100644 --- a/patches/api/0382-Allow-changing-bed-s-occupied-property.patch +++ b/patches/api/0383-Allow-changing-bed-s-occupied-property.patch diff --git a/patches/api/0383-Add-EquipmentSlot-convenience-methods.patch b/patches/api/0384-Add-EquipmentSlot-convenience-methods.patch index 0ef6b4c9b0..0ef6b4c9b0 100644 --- a/patches/api/0383-Add-EquipmentSlot-convenience-methods.patch +++ b/patches/api/0384-Add-EquipmentSlot-convenience-methods.patch diff --git a/patches/api/0384-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch b/patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch index 8ba283e9b1..8ba283e9b1 100644 --- a/patches/api/0384-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch +++ b/patches/api/0385-Add-LivingEntity-swingHand-EquipmentSlot-convenience.patch diff --git a/patches/api/0385-Add-entity-knockback-API.patch b/patches/api/0386-Add-entity-knockback-API.patch index 3852612f24..3852612f24 100644 --- a/patches/api/0385-Add-entity-knockback-API.patch +++ b/patches/api/0386-Add-entity-knockback-API.patch diff --git a/patches/api/0386-Added-EntityToggleSitEvent.patch b/patches/api/0387-Added-EntityToggleSitEvent.patch index af2476123b..af2476123b 100644 --- a/patches/api/0386-Added-EntityToggleSitEvent.patch +++ b/patches/api/0387-Added-EntityToggleSitEvent.patch diff --git a/patches/api/0387-Add-Moving-Piston-API.patch b/patches/api/0388-Add-Moving-Piston-API.patch index 8f889f1e3d..8f889f1e3d 100644 --- a/patches/api/0387-Add-Moving-Piston-API.patch +++ b/patches/api/0388-Add-Moving-Piston-API.patch diff --git a/patches/api/0388-Add-PrePlayerAttackEntityEvent.patch b/patches/api/0389-Add-PrePlayerAttackEntityEvent.patch index 507b313e56..507b313e56 100644 --- a/patches/api/0388-Add-PrePlayerAttackEntityEvent.patch +++ b/patches/api/0389-Add-PrePlayerAttackEntityEvent.patch diff --git a/patches/api/0389-Add-Player-Warden-Warning-API.patch b/patches/api/0390-Add-Player-Warden-Warning-API.patch index 2df2999bc0..2df2999bc0 100644 --- a/patches/api/0389-Add-Player-Warden-Warning-API.patch +++ b/patches/api/0390-Add-Player-Warden-Warning-API.patch diff --git a/patches/api/0390-More-vanilla-friendly-methods-to-update-trades.patch b/patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch index f13fdb5601..f13fdb5601 100644 --- a/patches/api/0390-More-vanilla-friendly-methods-to-update-trades.patch +++ b/patches/api/0391-More-vanilla-friendly-methods-to-update-trades.patch diff --git a/patches/api/0391-Add-paper-dumplisteners-command.patch b/patches/api/0392-Add-paper-dumplisteners-command.patch index 8053dc2c4f..8053dc2c4f 100644 --- a/patches/api/0391-Add-paper-dumplisteners-command.patch +++ b/patches/api/0392-Add-paper-dumplisteners-command.patch diff --git a/patches/api/0392-ItemStack-damage-API.patch b/patches/api/0393-ItemStack-damage-API.patch index ffdcd4b728..ffdcd4b728 100644 --- a/patches/api/0392-ItemStack-damage-API.patch +++ b/patches/api/0393-ItemStack-damage-API.patch diff --git a/patches/api/0393-Add-Tick-TemporalUnit.patch b/patches/api/0394-Add-Tick-TemporalUnit.patch index 96c1dddab8..96c1dddab8 100644 --- a/patches/api/0393-Add-Tick-TemporalUnit.patch +++ b/patches/api/0394-Add-Tick-TemporalUnit.patch diff --git a/patches/api/0394-Friction-API.patch b/patches/api/0395-Friction-API.patch index 47b4634d1f..dd826ded3b 100644 --- a/patches/api/0394-Friction-API.patch +++ b/patches/api/0395-Friction-API.patch @@ -59,7 +59,7 @@ index d0bef15785493b512ff0f7414c1d58d38fead581..58017fce436cdbda255f7172fbdadb72 /** * Gets the item stack associated with this item drop. diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 55518f6412d4d319df9cdab3bdff52c6e2bcb8c5..4fa02476bbcb0590171d5b20d25156ccb3cc9b6c 100644 +index 7889ec8e0954c98e9611a20811b1ddc5bcd93b7f..f4c5ec3f7e5c29b1799eef6c4f76617e9f23c0d7 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -25,7 +25,7 @@ import org.jetbrains.annotations.Nullable; diff --git a/patches/api/0395-Player-Entity-Tracking-Events.patch b/patches/api/0396-Player-Entity-Tracking-Events.patch index a824ae278f..a824ae278f 100644 --- a/patches/api/0395-Player-Entity-Tracking-Events.patch +++ b/patches/api/0396-Player-Entity-Tracking-Events.patch diff --git a/patches/api/0396-Add-missing-Fluid-type.patch b/patches/api/0397-Add-missing-Fluid-type.patch index c260bf8497..c260bf8497 100644 --- a/patches/api/0396-Add-missing-Fluid-type.patch +++ b/patches/api/0397-Add-missing-Fluid-type.patch diff --git a/patches/api/0397-fix-Instruments.patch b/patches/api/0398-fix-Instruments.patch index 38cd1521f2..38cd1521f2 100644 --- a/patches/api/0397-fix-Instruments.patch +++ b/patches/api/0398-fix-Instruments.patch diff --git a/patches/api/0398-Add-BlockLockCheckEvent.patch b/patches/api/0399-Add-BlockLockCheckEvent.patch index 55a23307b1..55a23307b1 100644 --- a/patches/api/0398-Add-BlockLockCheckEvent.patch +++ b/patches/api/0399-Add-BlockLockCheckEvent.patch diff --git a/patches/api/0399-Add-Sneaking-API-for-Entities.patch b/patches/api/0400-Add-Sneaking-API-for-Entities.patch index 8ad9168a83..8ad9168a83 100644 --- a/patches/api/0399-Add-Sneaking-API-for-Entities.patch +++ b/patches/api/0400-Add-Sneaking-API-for-Entities.patch diff --git a/patches/api/0400-Improve-PortalEvents.patch b/patches/api/0401-Improve-PortalEvents.patch index f7f53b19fc..f7f53b19fc 100644 --- a/patches/api/0400-Improve-PortalEvents.patch +++ b/patches/api/0401-Improve-PortalEvents.patch diff --git a/patches/api/0401-Add-exploded-block-state-to-BlockExplodeEvent.patch b/patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent.patch index bdc2de6d23..bdc2de6d23 100644 --- a/patches/api/0401-Add-exploded-block-state-to-BlockExplodeEvent.patch +++ b/patches/api/0402-Add-exploded-block-state-to-BlockExplodeEvent.patch diff --git a/patches/api/0402-Flying-Fall-Damage-API.patch b/patches/api/0403-Flying-Fall-Damage-API.patch index f98c4bae3b..f98c4bae3b 100644 --- a/patches/api/0402-Flying-Fall-Damage-API.patch +++ b/patches/api/0403-Flying-Fall-Damage-API.patch diff --git a/patches/api/0403-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch b/patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch index 25fa280b26..25fa280b26 100644 --- a/patches/api/0403-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch +++ b/patches/api/0404-Expose-pre-collision-moving-velocity-to-VehicleBlock.patch diff --git a/patches/api/0404-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch b/patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch index 3936bb4a92..3936bb4a92 100644 --- a/patches/api/0404-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch +++ b/patches/api/0405-Replace-ItemFlag.HIDE_POTION_EFFECTS.patch diff --git a/patches/api/0405-Win-Screen-API.patch b/patches/api/0406-Win-Screen-API.patch index 2d1bbcb699..2d1bbcb699 100644 --- a/patches/api/0405-Win-Screen-API.patch +++ b/patches/api/0406-Win-Screen-API.patch diff --git a/patches/api/0406-Add-Entity-Body-Yaw-API.patch b/patches/api/0407-Add-Entity-Body-Yaw-API.patch index 05fecf4aed..05fecf4aed 100644 --- a/patches/api/0406-Add-Entity-Body-Yaw-API.patch +++ b/patches/api/0407-Add-Entity-Body-Yaw-API.patch diff --git a/patches/api/0407-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch b/patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch index 98799cd97d..98799cd97d 100644 --- a/patches/api/0407-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch +++ b/patches/api/0408-Fix-HandlerList-for-InventoryBlockStartEvent-subclas.patch diff --git a/patches/api/0408-Add-EntityFertilizeEggEvent.patch b/patches/api/0409-Add-EntityFertilizeEggEvent.patch index 52283a9df2..52283a9df2 100644 --- a/patches/api/0408-Add-EntityFertilizeEggEvent.patch +++ b/patches/api/0409-Add-EntityFertilizeEggEvent.patch diff --git a/patches/api/0409-Add-CompostItemEvent-and-EntityCompostItemEvent.patch b/patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch index f720032bf2..f720032bf2 100644 --- a/patches/api/0409-Add-CompostItemEvent-and-EntityCompostItemEvent.patch +++ b/patches/api/0410-Add-CompostItemEvent-and-EntityCompostItemEvent.patch diff --git a/patches/api/0410-Add-Shearable-API.patch b/patches/api/0411-Add-Shearable-API.patch index 96049cfd38..96049cfd38 100644 --- a/patches/api/0410-Add-Shearable-API.patch +++ b/patches/api/0411-Add-Shearable-API.patch diff --git a/patches/api/0411-Fix-SpawnEggMeta-get-setSpawnedType.patch b/patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch index 4014e17083..4014e17083 100644 --- a/patches/api/0411-Fix-SpawnEggMeta-get-setSpawnedType.patch +++ b/patches/api/0412-Fix-SpawnEggMeta-get-setSpawnedType.patch diff --git a/patches/api/0412-Add-Mob-Experience-reward-API.patch b/patches/api/0413-Add-Mob-Experience-reward-API.patch index e399177aeb..e399177aeb 100644 --- a/patches/api/0412-Add-Mob-Experience-reward-API.patch +++ b/patches/api/0413-Add-Mob-Experience-reward-API.patch diff --git a/patches/api/0413-Expand-PlayerItemMendEvent.patch b/patches/api/0414-Expand-PlayerItemMendEvent.patch index 223922e05e..223922e05e 100644 --- a/patches/api/0413-Expand-PlayerItemMendEvent.patch +++ b/patches/api/0414-Expand-PlayerItemMendEvent.patch diff --git a/patches/api/0414-Add-transient-modifier-API.patch b/patches/api/0415-Add-transient-modifier-API.patch index a32e4c86a9..a32e4c86a9 100644 --- a/patches/api/0414-Add-transient-modifier-API.patch +++ b/patches/api/0415-Add-transient-modifier-API.patch diff --git a/patches/api/0415-Properly-remove-the-experimental-smithing-inventory-.patch b/patches/api/0416-Properly-remove-the-experimental-smithing-inventory-.patch index 268785a112..268785a112 100644 --- a/patches/api/0415-Properly-remove-the-experimental-smithing-inventory-.patch +++ b/patches/api/0416-Properly-remove-the-experimental-smithing-inventory-.patch diff --git a/patches/api/0416-Add-method-to-remove-all-active-potion-effects.patch b/patches/api/0417-Add-method-to-remove-all-active-potion-effects.patch index 27d9d12401..d0a824c013 100644 --- a/patches/api/0416-Add-method-to-remove-all-active-potion-effects.patch +++ b/patches/api/0417-Add-method-to-remove-all-active-potion-effects.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add method to remove all active potion effects diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java -index 7fe230a8e8894b375a52c68152c7a0665b6ae1b3..bc6702817516c14d90ab45eb0ebf8354e79564a5 100644 +index 03490d35a24c056ed148e45eea27d1786a58c8fc..19e58e62ae442ef9be02ca7fa2f55e370a54afa4 100644 --- a/src/main/java/org/bukkit/entity/LivingEntity.java +++ b/src/main/java/org/bukkit/entity/LivingEntity.java @@ -589,6 +589,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource diff --git a/patches/api/0417-Folia-scheduler-and-owned-region-API.patch b/patches/api/0418-Folia-scheduler-and-owned-region-API.patch index f00d7a30d9..13a38952d2 100644 --- a/patches/api/0417-Folia-scheduler-and-owned-region-API.patch +++ b/patches/api/0418-Folia-scheduler-and-owned-region-API.patch @@ -499,7 +499,7 @@ index 0000000000000000000000000000000000000000..a6b50c9d8af589cc4747e14d343d2045 + } +} diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java -index 5635bd49107013faace6b79731c70ac1356ec357..77113822dc579ce350a5410ed713996eaf5e917e 100644 +index aa938c777936bbefc0c8cef248ad03e0f52bef2c..b243db56756c67cd2c41d7768898d01539f9260a 100644 --- a/src/main/java/org/bukkit/Bukkit.java +++ b/src/main/java/org/bukkit/Bukkit.java @@ -2523,6 +2523,141 @@ public final class Bukkit { @@ -645,7 +645,7 @@ index 5635bd49107013faace6b79731c70ac1356ec357..77113822dc579ce350a5410ed713996e public static Server.Spigot spigot() { return server.spigot(); diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java -index 5a388914d58eda63715fc0a6d0d4f507b6ca9672..b885c1aaf96f7b8e2787f37c21d65308a0a31e7f 100644 +index 7bdac4b297e40383dd2ef4e2735fdfb086ecaa14..6b72eccdcb6f75534a4267a1dd0a4cc2f39e917b 100644 --- a/src/main/java/org/bukkit/Server.java +++ b/src/main/java/org/bukkit/Server.java @@ -2198,4 +2198,119 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi diff --git a/patches/api/0418-Add-event-for-player-editing-sign.patch b/patches/api/0419-Add-event-for-player-editing-sign.patch index 8a4fbb67a7..8a4fbb67a7 100644 --- a/patches/api/0418-Add-event-for-player-editing-sign.patch +++ b/patches/api/0419-Add-event-for-player-editing-sign.patch diff --git a/patches/server/0802-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0802-Fix-new-block-data-for-EntityChangeBlockEvent.patch index cb4f4d4b82..83e3a32637 100644 --- a/patches/server/0802-Fix-new-block-data-for-EntityChangeBlockEvent.patch +++ b/patches/server/0802-Fix-new-block-data-for-EntityChangeBlockEvent.patch @@ -3,13 +3,59 @@ From: SoSeDiK <[email protected]> Date: Mon, 21 Mar 2022 20:00:53 +0200 Subject: [PATCH] Fix new block data for EntityChangeBlockEvent +Also standardizes how to handle EntityChangeBlockEvent before a removeBlock or destroyBlock +call. Always use 'state.getFluidState().createLegacyBlock()' to get the new state instead of +just using the 'air' state. + +Also fixes the new block data for EntityBreakDoorEvent (a sub-event from +EntityChangeBlockEvent) + Co-authored-by: Lulu13022002 <[email protected]> +Co-authored-by: Jake Potrebic <[email protected]> +diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java +index b7abd8309a7d9744d3b3df9be8cad54f8909cc15..d3a2a6dee2d83b3df0ddc521c080f7d72b709461 100644 +--- a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java ++++ b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java +@@ -107,7 +107,7 @@ public class HarvestFarmland extends Behavior<Villager> { + Block block1 = world.getBlockState(this.aboveFarmlandPos.below()).getBlock(); + + if (block instanceof CropBlock && ((CropBlock) block).isMaxAge(iblockdata)) { +- if (CraftEventFactory.callEntityChangeBlockEvent(entity, this.aboveFarmlandPos, Blocks.AIR.defaultBlockState())) { // CraftBukkit ++ if (CraftEventFactory.callEntityChangeBlockEvent(entity, this.aboveFarmlandPos, iblockdata.getFluidState().createLegacyBlock())) { // CraftBukkit // Paper - fix wrong block state + world.destroyBlock(this.aboveFarmlandPos, true, entity); + } // CraftBukkit + } +diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java +index 4253b3b1263a7ae5a2f5f3a34674dfea615a81ea..784a894688f98f9d0368a36d456c5c94e1ee3695 100644 +--- a/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java ++++ b/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java +@@ -72,7 +72,7 @@ public class BreakDoorGoal extends DoorInteractGoal { + + if (this.breakTime == this.getDoorBreakTime() && this.isValidDifficulty(this.mob.level().getDifficulty())) { + // CraftBukkit start +- if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreakDoorEvent(this.mob, this.doorPos).isCancelled()) { ++ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreakDoorEvent(this.mob, this.doorPos, this.mob.level().getFluidState(this.doorPos).createLegacyBlock()).isCancelled()) { // Paper - fix wrong block state + this.start(); + return; + } diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java -index 9be4e715faefc5f7972abf064bfff3c1c980f7fc..77542bbdfdc2bf0ec1527ad8551493e1d89da40c 100644 +index 9be4e715faefc5f7972abf064bfff3c1c980f7fc..b0caf52d00d8cd76550ab116291f8e11144a5e59 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java -@@ -77,7 +77,7 @@ public class EatBlockGoal extends Goal { +@@ -67,8 +67,9 @@ public class EatBlockGoal extends Goal { + if (this.eatAnimationTick == this.adjustedTickDelay(4)) { + BlockPos blockposition = this.mob.blockPosition(); + +- if (EatBlockGoal.IS_TALL_GRASS.test(this.level.getBlockState(blockposition))) { +- if (CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition, Blocks.AIR.defaultBlockState(), !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit ++ final BlockState blockState = this.level.getBlockState(blockposition); // Paper - fix wrong block state ++ if (EatBlockGoal.IS_TALL_GRASS.test(blockState)) { // Paper - fix wrong block state ++ if (CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition, blockState.getFluidState().createLegacyBlock(), !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit // Paper - fix wrong block state + this.level.destroyBlock(blockposition, false); + } + +@@ -77,7 +78,7 @@ public class EatBlockGoal extends Goal { BlockPos blockposition1 = blockposition.below(); if (this.level.getBlockState(blockposition1).is(Blocks.GRASS_BLOCK)) { @@ -18,8 +64,21 @@ index 9be4e715faefc5f7972abf064bfff3c1c980f7fc..77542bbdfdc2bf0ec1527ad8551493e1 this.level.levelEvent(2001, blockposition1, Block.getId(Blocks.GRASS_BLOCK.defaultBlockState())); this.level.setBlock(blockposition1, Blocks.DIRT.defaultBlockState(), 2); } +diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +index ef0c0714847c37f57ca05aaeb0ce7c217ae7ac0f..082351bd5f98d8738334b9164375f63fdc890455 100644 +--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java ++++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +@@ -579,7 +579,7 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> { + + if (i == 0) { + // CraftBukkit start +- if (!CraftEventFactory.callEntityChangeBlockEvent(this.rabbit, blockposition, Blocks.AIR.defaultBlockState())) { ++ if (!CraftEventFactory.callEntityChangeBlockEvent(this.rabbit, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state + return; + } + // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java -index 703068eaff84bcce83f61d805afa6cc0fef909b1..1ea5b05405f115e5d77ff0b282075628e64fec3d 100644 +index 703068eaff84bcce83f61d805afa6cc0fef909b1..1e07febcf7a3dfb281728cc5e3e4f15dd776d7e0 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -373,7 +373,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob @@ -27,12 +86,25 @@ index 703068eaff84bcce83f61d805afa6cc0fef909b1..1ea5b05405f115e5d77ff0b282075628 if (WitherBoss.canDestroy(iblockdata)) { // CraftBukkit start - if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, Blocks.AIR.defaultBlockState())) { -+ if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper ++ if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state continue; } // CraftBukkit end +diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +index 39eb9301626b191958ce42daa34b1ff3241cea80..b62457313a1e30aad0c5313d608667b5d3811455 100644 +--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java ++++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +@@ -573,7 +573,7 @@ public class EnderMan extends Monster implements NeutralMob { + boolean flag = movingobjectpositionblock.getBlockPos().equals(blockposition); + + if (iblockdata.is(BlockTags.ENDERMAN_HOLDABLE) && flag) { +- if (CraftEventFactory.callEntityChangeBlockEvent(this.enderman, blockposition, Blocks.AIR.defaultBlockState())) { // CraftBukkit - Place event ++ if (CraftEventFactory.callEntityChangeBlockEvent(this.enderman, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // CraftBukkit - Place event // Paper - fix wrong block state + world.removeBlock(blockposition, false); + world.gameEvent(GameEvent.BLOCK_DESTROY, blockposition, GameEvent.Context.of(this.enderman, iblockdata)); + this.enderman.setCarriedBlock(iblockdata.getBlock().defaultBlockState()); diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java -index c245acdbaa84cc795e341ed042a0d8d90383f070..842146548fc42c3b67a1196620b096d6c500b88d 100644 +index c245acdbaa84cc795e341ed042a0d8d90383f070..e87c6c8ab585d6b0b38bbb8e42c0082e38f03250 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java +++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java @@ -175,7 +175,7 @@ public class Ravager extends Raider { @@ -40,28 +112,52 @@ index c245acdbaa84cc795e341ed042a0d8d90383f070..842146548fc42c3b67a1196620b096d6 if (block instanceof LeavesBlock) { // CraftBukkit start - if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, net.minecraft.world.level.block.Blocks.AIR.defaultBlockState())) { -+ if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - use correct block state ++ if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state continue; } // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -index 754bad0bd38b8a356403f4c90de26de445cbf3c7..0b2d9eb8b3ff06cc64aa5bc7a81d79769709ccf0 100644 +index 754bad0bd38b8a356403f4c90de26de445cbf3c7..8d1f99f95a08eac98c6a03c6e534fc1997f8fe71 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java -@@ -179,7 +179,10 @@ public class Silverfish extends Monster { +@@ -179,7 +179,8 @@ public class Silverfish extends Monster { if (block instanceof InfestedBlock) { // CraftBukkit start - if (!CraftEventFactory.callEntityChangeBlockEvent(this.silverfish, blockposition1, net.minecraft.world.level.block.Blocks.AIR.defaultBlockState())) { -+ // Paper start - use correct block state -+ final BlockState afterState = world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? net.minecraft.world.level.block.Blocks.AIR.defaultBlockState() : ((InfestedBlock) block).hostStateByInfested(world.getBlockState(blockposition1)); -+ if (!CraftEventFactory.callEntityChangeBlockEvent(this.silverfish, blockposition1, afterState)) { -+ // Paper end - use correct block state ++ BlockState afterState = world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? iblockdata.getFluidState().createLegacyBlock() : ((InfestedBlock) block).hostStateByInfested(world.getBlockState(blockposition1)); // Paper - fix wrong block state ++ if (!CraftEventFactory.callEntityChangeBlockEvent(this.silverfish, blockposition1, afterState)) { // Paper - fix wrong block state continue; } // CraftBukkit end +diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +index f4342f6a36cf31066af3ee32fff059e6a318fad6..29ea746b6df87e996081149000c6db0b562f7e97 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +@@ -306,7 +306,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie + + if (iblockdata.is(BlockTags.FIRE)) { + // CraftBukkit start +- if (CraftEventFactory.callEntityChangeBlockEvent(this, pos, Blocks.AIR.defaultBlockState())) { ++ if (CraftEventFactory.callEntityChangeBlockEvent(this, pos, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state + this.level().removeBlock(pos, false); + } + // CraftBukkit end +diff --git a/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java b/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java +index 9bc9fa5e51c93af320b095036e874e74a6d50acf..f19a1ea64d26723d738b007c5102fe44b963bfb6 100644 +--- a/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java +@@ -263,7 +263,7 @@ public class ChorusFlowerBlock extends Block { + + if (!world.isClientSide && projectile.mayInteract(world, blockposition) && projectile.getType().is(EntityTypeTags.IMPACT_PROJECTILES)) { + // CraftBukkit +- if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, Blocks.AIR.defaultBlockState())) { ++ if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, state.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state + return; + } + // CraftBukkit end diff --git a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java -index 719c60316d6e22d8a6014fa491c904dec4bf2835..5355d9f3eb241be8101e8770c63cabbaf1e6d471 100644 +index 719c60316d6e22d8a6014fa491c904dec4bf2835..741aef7f4fbe1eba8db1eb4eb2ab255906863c66 100644 --- a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java +++ b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java @@ -129,7 +129,7 @@ public class PointedDripstoneBlock extends Block implements Fallable, SimpleWate @@ -69,7 +165,51 @@ index 719c60316d6e22d8a6014fa491c904dec4bf2835..5355d9f3eb241be8101e8770c63cabba if (!world.isClientSide && projectile.mayInteract(world, blockposition) && projectile instanceof ThrownTrident && projectile.getDeltaMovement().length() > 0.6D) { // CraftBukkit start - if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, Blocks.AIR.defaultBlockState())) { -+ if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, state.getFluidState().createLegacyBlock())) { // Paper - use correct block state ++ if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, state.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state return; } // CraftBukkit end +diff --git a/src/main/java/net/minecraft/world/level/block/TntBlock.java b/src/main/java/net/minecraft/world/level/block/TntBlock.java +index ed90d126e317612f40b101b559a94aabf9ad7ee2..d73589ac6076f82f516c368acb17d280fb3c47e5 100644 +--- a/src/main/java/net/minecraft/world/level/block/TntBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/TntBlock.java +@@ -156,7 +156,7 @@ public class TntBlock extends Block { + + if (projectile.isOnFire() && projectile.mayInteract(world, blockposition)) { + // CraftBukkit start +- if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, Blocks.AIR.defaultBlockState()) || !CraftEventFactory.callTNTPrimeEvent(world, blockposition, PrimeCause.PROJECTILE, projectile, null)) { ++ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, state.getFluidState().createLegacyBlock()) || !CraftEventFactory.callTNTPrimeEvent(world, blockposition, PrimeCause.PROJECTILE, projectile, null)) { // Paper - fix wrong block state + return; + } + // CraftBukkit end +diff --git a/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java b/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java +index b13d89b1516130507402cd3b4bdb9f3c2a36e807..936644ec4a57e51a1c11a5bf4e8449abcc209edb 100644 +--- a/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java +@@ -30,7 +30,7 @@ public class WaterlilyBlock extends BushBlock { + if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper + if (world instanceof ServerLevel && entity instanceof Boat) { + // CraftBukkit start +- if (!CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState())) { ++ if (!CraftEventFactory.callEntityChangeBlockEvent(entity, pos, state.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state + return; + } + // CraftBukkit end +diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +index f40ff2f248e3cacc924d90e9f90692b5bde7ea53..ff4dc2a8ab7a158f985599e37da5999cae97d42d 100644 +--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java ++++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +@@ -1357,11 +1357,11 @@ public class CraftEventFactory { + return event; + } + +- public static EntityBreakDoorEvent callEntityBreakDoorEvent(Entity entity, BlockPos pos) { ++ public static EntityBreakDoorEvent callEntityBreakDoorEvent(Entity entity, BlockPos pos, net.minecraft.world.level.block.state.BlockState newState) { // Paper + org.bukkit.entity.Entity entity1 = entity.getBukkitEntity(); + Block block = CraftBlock.at(entity.level(), pos); + +- EntityBreakDoorEvent event = new EntityBreakDoorEvent((LivingEntity) entity1, block); ++ EntityBreakDoorEvent event = new EntityBreakDoorEvent((LivingEntity) entity1, block, newState.createCraftBlockData()); // Paper + entity1.getServer().getPluginManager().callEvent(event); + + return event; |