diff options
Diffstat (limited to 'Spigot-Server-Patches-Unmapped/0557-Add-BellRingEvent.patch')
-rw-r--r-- | Spigot-Server-Patches-Unmapped/0557-Add-BellRingEvent.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Spigot-Server-Patches-Unmapped/0557-Add-BellRingEvent.patch b/Spigot-Server-Patches-Unmapped/0557-Add-BellRingEvent.patch new file mode 100644 index 0000000000..6352b44128 --- /dev/null +++ b/Spigot-Server-Patches-Unmapped/0557-Add-BellRingEvent.patch @@ -0,0 +1,53 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Eearslya Sleiarion <[email protected]> +Date: Sun, 23 Aug 2020 13:04:02 +0200 +Subject: [PATCH] Add BellRingEvent + +Add a new event, BellRingEvent, to trigger whenever a player rings a +village bell. Passes along the bell block and the player who rang it. + +diff --git a/src/main/java/net/minecraft/world/level/block/BlockBell.java b/src/main/java/net/minecraft/world/level/block/BlockBell.java +index 687f7acd8254294b568c9adf3e72d02d12551381..24754057bc83577f4854262bbb82db355591270e 100644 +--- a/src/main/java/net/minecraft/world/level/block/BlockBell.java ++++ b/src/main/java/net/minecraft/world/level/block/BlockBell.java +@@ -1,8 +1,11 @@ + package net.minecraft.world.level.block; + ++import io.papermc.paper.event.block.BellRingEvent; ++ + import javax.annotation.Nullable; + import net.minecraft.core.BlockPosition; + import net.minecraft.core.EnumDirection; ++import net.minecraft.server.MCUtil; + import net.minecraft.sounds.SoundCategory; + import net.minecraft.sounds.SoundEffects; + import net.minecraft.stats.StatisticList; +@@ -89,7 +92,7 @@ public class BlockBell extends BlockTileEntity { + boolean flag1 = !flag || this.a(iblockdata, enumdirection, movingobjectpositionblock.getPos().y - (double) blockposition.getY()); + + if (flag1) { +- boolean flag2 = this.a(world, blockposition, enumdirection); ++ boolean flag2 = this.handleBellRing(world, blockposition, enumdirection, entityhuman); // Paper + + if (flag2 && entityhuman != null) { + entityhuman.a(StatisticList.BELL_RING); +@@ -123,6 +126,11 @@ public class BlockBell extends BlockTileEntity { + } + + public boolean a(World world, BlockPosition blockposition, @Nullable EnumDirection enumdirection) { ++ // Paper start - add ringer param ++ return this.handleBellRing(world, blockposition, enumdirection, null); ++ } ++ public boolean handleBellRing(World world, BlockPosition blockposition, @Nullable EnumDirection enumdirection, @Nullable Entity ringer) { ++ // Paper end + TileEntity tileentity = world.getTileEntity(blockposition); + + if (!world.isClientSide && tileentity instanceof TileEntityBell) { +@@ -130,6 +138,7 @@ public class BlockBell extends BlockTileEntity { + enumdirection = (EnumDirection) world.getType(blockposition).get(BlockBell.a); + } + ++ if (!new BellRingEvent(world.getWorld().getBlockAt(MCUtil.toLocation(world, blockposition)), ringer == null ? null : ringer.getBukkitEntity()).callEvent()) return false; // Paper - BellRingEvent + ((TileEntityBell) tileentity).a(enumdirection); + world.playSound((EntityHuman) null, blockposition, SoundEffects.BLOCK_BELL_USE, SoundCategory.BLOCKS, 2.0F, 1.0F); + return true; |