--- ../src-base/minecraft/net/minecraft/block/BlockRedstoneDiode.java +++ ../src-work/minecraft/net/minecraft/block/BlockRedstoneDiode.java @@ -13,6 +13,8 @@ import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; +import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit + public abstract class BlockRedstoneDiode extends BlockDirectional { protected final boolean isRepeaterPowered; @@ -44,16 +46,30 @@ { int l = p_149674_1_.getBlockMetadata(p_149674_2_, p_149674_3_, p_149674_4_); - if (!this.func_149910_g(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, l)) + if (!this.func_149910_g((IBlockAccess) p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, l)) // CraftBukkit - Cast world to IBlockAccess to call the right method. { boolean flag = this.isGettingInput(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, l); if (this.isRepeaterPowered && !flag) { + // CraftBukkit start + if (CraftEventFactory.callRedstoneChange(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, 15, 0).getNewCurrent() != 0) + { + return; + } + + // CraftBukkit end p_149674_1_.setBlock(p_149674_2_, p_149674_3_, p_149674_4_, this.getBlockUnpowered(), l, 2); } else if (!this.isRepeaterPowered) { + // CraftBukkit start + if (CraftEventFactory.callRedstoneChange(p_149674_1_, p_149674_2_, p_149674_3_, p_149674_4_, 0, 15).getNewCurrent() != 15) + { + return; + } + + // CraftBukkit end p_149674_1_.setBlock(p_149674_2_, p_149674_3_, p_149674_4_, this.getBlockPowered(), l, 2); if (!flag)