--- a/net/minecraft/world/level/block/SculkShriekerBlock.java +++ b/net/minecraft/world/level/block/SculkShriekerBlock.java @@ -62,6 +62,7 @@ EntityPlayer entityplayer = SculkShriekerBlockEntity.tryGetPlayer(entity); if (entityplayer != null) { + if (org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(entityplayer, org.bukkit.event.block.Action.PHYSICAL, blockposition, null, null, null).isCancelled()) return; // CraftBukkit worldserver.getBlockEntity(blockposition, TileEntityTypes.SCULK_SHRIEKER).ifPresent((sculkshriekerblockentity) -> { sculkshriekerblockentity.tryShriek(worldserver, entityplayer); }); @@ -144,10 +145,17 @@ @Override protected void spawnAfterBreak(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, ItemStack itemstack, boolean flag) { super.spawnAfterBreak(iblockdata, worldserver, blockposition, itemstack, flag); + // CraftBukkit start - Delegate to getExpDrop + } + + @Override + public int getExpDrop(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, ItemStack itemstack, boolean flag) { if (flag) { - this.tryDropExperience(worldserver, blockposition, itemstack, ConstantInt.of(5)); + return this.tryDropExperience(worldserver, blockposition, itemstack, ConstantInt.of(5)); } + return 0; + // CraftBukkit end } @Nullable