diff options
Diffstat (limited to 'Spigot-Server-Patches/0311-AnvilDamageEvent.patch')
-rw-r--r-- | Spigot-Server-Patches/0311-AnvilDamageEvent.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0311-AnvilDamageEvent.patch b/Spigot-Server-Patches/0311-AnvilDamageEvent.patch new file mode 100644 index 0000000000..c2e5acdfb1 --- /dev/null +++ b/Spigot-Server-Patches/0311-AnvilDamageEvent.patch @@ -0,0 +1,30 @@ +From f3de9936f9b7986b89d7a91927a574c46fdc85f3 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath <[email protected]> +Date: Fri, 20 Jul 2018 23:37:03 -0500 +Subject: [PATCH] AnvilDamageEvent + + +diff --git a/src/main/java/net/minecraft/server/ContainerAnvil.java b/src/main/java/net/minecraft/server/ContainerAnvil.java +index 1560dd382a..d206e04657 100644 +--- a/src/main/java/net/minecraft/server/ContainerAnvil.java ++++ b/src/main/java/net/minecraft/server/ContainerAnvil.java +@@ -74,6 +74,16 @@ public class ContainerAnvil extends Container { + if (!world.isClientSide) { + if (!entityhuman1.abilities.canInstantlyBuild && iblockdata.a(TagsBlock.ANVIL) && entityhuman1.getRandom().nextFloat() < 0.12F) { + IBlockData iblockdata1 = BlockAnvil.a_(iblockdata); ++ // Paper start ++ com.destroystokyo.paper.event.block.AnvilDamagedEvent event = new com.destroystokyo.paper.event.block.AnvilDamagedEvent(getBukkitView(), iblockdata1 != null ? org.bukkit.craftbukkit.block.data.CraftBlockData.fromData(iblockdata1) : null); ++ if (!event.callEvent()) { ++ return itemstack; ++ } else if (event.getDamageState() == com.destroystokyo.paper.event.block.AnvilDamagedEvent.DamageState.BROKEN) { ++ iblockdata1 = null; ++ } else { ++ iblockdata1 = ((org.bukkit.craftbukkit.block.data.CraftBlockData) event.getDamageState().getMaterial().createBlockData()).getState().set(BlockAnvil.FACING, iblockdata.get(BlockAnvil.FACING)); ++ } ++ // Paper end + + if (iblockdata1 == null) { + world.setAir(blockposition); +-- +2.21.0 + |