--- a/net/minecraft/server/BlockDiodeAbstract.java +++ b/net/minecraft/server/BlockDiodeAbstract.java @@ -2,6 +2,8 @@ import java.util.Random; +import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit + public abstract class BlockDiodeAbstract extends BlockFacingHorizontal { protected static final AxisAlignedBB c = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.125D, 1.0D); @@ -35,8 +37,18 @@ boolean flag = this.e(world, blockposition, iblockdata); if (this.d && !flag) { + // CraftBukkit start + if (CraftEventFactory.callRedstoneChange(world, blockposition.getX(), blockposition.getY(), blockposition.getZ(), 15, 0).getNewCurrent() != 0) { + return; + } + // CraftBukkit end world.setTypeAndData(blockposition, this.z(iblockdata), 2); } else if (!this.d) { + // CraftBukkit start + if (CraftEventFactory.callRedstoneChange(world, blockposition.getX(), blockposition.getY(), blockposition.getZ(), 0, 15).getNewCurrent() != 15) { + return; + } + // CraftBukkit end world.setTypeAndData(blockposition, this.y(iblockdata), 2); if (!flag) { world.a(blockposition, this.y(iblockdata).getBlock(), this.E(iblockdata), -1);