aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0311-AnvilDamageEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches/0311-AnvilDamageEvent.patch')
-rw-r--r--Spigot-Server-Patches/0311-AnvilDamageEvent.patch30
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
+