From d5e124a72d082efbf38238e14a7e87c95216f45b Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Wed, 2 Feb 2022 08:56:24 +1100 Subject: [PATCH] Clean up callBlockDamageEvent By: md_5 --- .../server/level/PlayerInteractManager.patch | 2 +- .../bukkit/craftbukkit/event/CraftEventFactory.java | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/paper-server/nms-patches/net/minecraft/server/level/PlayerInteractManager.patch b/paper-server/nms-patches/net/minecraft/server/level/PlayerInteractManager.patch index 85b270efb6..1dbf787356 100644 --- a/paper-server/nms-patches/net/minecraft/server/level/PlayerInteractManager.patch +++ b/paper-server/nms-patches/net/minecraft/server/level/PlayerInteractManager.patch @@ -122,7 +122,7 @@ + } + return; + } -+ org.bukkit.event.block.BlockDamageEvent blockEvent = CraftEventFactory.callBlockDamageEvent(this.player, blockposition.getX(), blockposition.getY(), blockposition.getZ(), this.player.getInventory().getSelected(), f >= 1.0f); ++ org.bukkit.event.block.BlockDamageEvent blockEvent = CraftEventFactory.callBlockDamageEvent(this.player, blockposition, this.player.getInventory().getSelected(), f >= 1.0f); + + if (blockEvent.isCancelled()) { + // Let the client know the block still exists diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index f2534491d2..9b4c6c1302 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -560,17 +560,14 @@ public class CraftEventFactory { /** * BlockDamageEvent */ - public static BlockDamageEvent callBlockDamageEvent(EntityHuman who, int x, int y, int z, ItemStack itemstack, boolean instaBreak) { - Player player = (who == null) ? null : (Player) who.getBukkitEntity(); + public static BlockDamageEvent callBlockDamageEvent(EntityPlayer who, BlockPosition pos, ItemStack itemstack, boolean instaBreak) { + Player player = who.getBukkitEntity(); CraftItemStack itemInHand = CraftItemStack.asCraftMirror(itemstack); - CraftWorld craftWorld = (CraftWorld) player.getWorld(); - CraftServer craftServer = (CraftServer) player.getServer(); - - Block blockClicked = craftWorld.getBlockAt(x, y, z); + Block blockClicked = CraftBlock.at(who.getLevel(), pos); BlockDamageEvent event = new BlockDamageEvent(player, blockClicked, itemInHand, instaBreak); - craftServer.getPluginManager().callEvent(event); + player.getServer().getPluginManager().callEvent(event); return event; }