diff --git a/src/main/java/net/minecraft/server/BlockDoor.java b/src/main/java/net/minecraft/server/BlockDoor.java index c7ceab0e7e..8dc9e9ee7e 100644 --- a/src/main/java/net/minecraft/server/BlockDoor.java +++ b/src/main/java/net/minecraft/server/BlockDoor.java @@ -166,7 +166,7 @@ public class BlockDoor extends Block { if (!world.isStatic) { this.b(world, i, j, k, i1, 0); } - } else if (l > 0 && Block.byId[l].isPowerSource()) { + } else if (l > 0) { // CraftBukkit start org.bukkit.World bworld = world.getWorld(); org.bukkit.block.Block block = bworld.getBlockAt(i, j, k); diff --git a/src/main/java/net/minecraft/server/BlockTrapdoor.java b/src/main/java/net/minecraft/server/BlockTrapdoor.java index 153e896163..a69c406344 100644 --- a/src/main/java/net/minecraft/server/BlockTrapdoor.java +++ b/src/main/java/net/minecraft/server/BlockTrapdoor.java @@ -30,7 +30,7 @@ public class BlockTrapdoor extends Block { } public AxisAlignedBB e(World world, int i, int j, int k) { - this.a(world, i, j, k); + this.a((IBlockAccess)world, i, j, k); // CraftBukkit - Make sure this points to the below method! return super.e(world, i, j, k); } @@ -121,14 +121,14 @@ public class BlockTrapdoor extends Block { } // CraftBukkit start - if (l > 0 && Block.byId[l] != null && Block.byId[l].isPowerSource()) { + if (l > 0) { org.bukkit.World bworld = world.getWorld(); org.bukkit.block.Block block = bworld.getBlockAt(i, j, k); int power = block.getBlockPower(); int oldPower = (world.getData(i, j, k) & 4) > 0 ? 15 : 0; - if (oldPower == 0 ^ power == 0) { + if (oldPower == 0 ^ power == 0 || (Block.byId[l] != null && Block.byId[l].isPowerSource())) { BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, oldPower, power); world.getServer().getPluginManager().callEvent(eventRedstone); diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java index 56e6dc8cdf..5b0231b6a2 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -134,8 +134,8 @@ public abstract class EntityLiving extends Entity { this.ae(); } + // CraftBukkit start - don't inline the damage, perform it with an event if (this.aj() && this.T()) { - // CraftBukkit start EntityDamageEvent event = new EntityDamageEvent(this.getBukkitEntity(), EntityDamageEvent.DamageCause.SUFFOCATION, 1); this.world.getServer().getPluginManager().callEvent(event); @@ -225,7 +225,7 @@ public abstract class EntityLiving extends Entity { if (this.deathTicks == 20) { int i; - // CraftBukkit start - update getExpReward() below if the removed if() changes! + // CraftBukkit start - update getExpReward() above if the removed if() changes! i = expToDrop; while (i > 0) { int j = EntityExperienceOrb.b(i);