diff options
author | gjmcferrin@gmail.com <gjmcferrin@gmail.com> | 2013-03-29 17:04:29 -0400 |
---|---|---|
committer | Travis Watkins <amaranth@ubuntu.com> | 2013-04-03 02:48:58 -0500 |
commit | 5ede9ce5f749c16816b74d7286c0a62cb111e937 (patch) | |
tree | 58f74307b5e9335f1e7a1127200fad9bdaf45258 /src/main | |
parent | 1d6ff3461d8cb1d90928cba52d973f9e4025ace8 (diff) | |
download | craftbukkit-5ede9ce5f749c16816b74d7286c0a62cb111e937.tar craftbukkit-5ede9ce5f749c16816b74d7286c0a62cb111e937.tar.gz craftbukkit-5ede9ce5f749c16816b74d7286c0a62cb111e937.tar.lz craftbukkit-5ede9ce5f749c16816b74d7286c0a62cb111e937.tar.xz craftbukkit-5ede9ce5f749c16816b74d7286c0a62cb111e937.zip |
Add missing calls to BlockRedstoneEvent. Adds BUKKIT-3926
This adds calls to BlockRedstoneEvent for the new daylight sensor and
trapped chest blocks. Note that the redstone level for trapped chests
cannot be modified, as it is based on the number of players currently
viewing the chest's inventory.
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/net/minecraft/server/BlockDaylightDetector.java | 1 | ||||
-rw-r--r-- | src/main/java/net/minecraft/server/TileEntityChest.java | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/BlockDaylightDetector.java b/src/main/java/net/minecraft/server/BlockDaylightDetector.java index 84e93f41..fc31262e 100644 --- a/src/main/java/net/minecraft/server/BlockDaylightDetector.java +++ b/src/main/java/net/minecraft/server/BlockDaylightDetector.java @@ -48,6 +48,7 @@ public class BlockDaylightDetector extends BlockContainer { } if (l != i1) { + i1 = org.bukkit.craftbukkit.event.CraftEventFactory.callRedstoneChange(world, i, j, k, l, i1).getNewCurrent(); // CraftBukkit - Call BlockRedstoneEvent world.setData(i, j, k, i1, 3); } } diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java index b179ddf2..e529bf47 100644 --- a/src/main/java/net/minecraft/server/TileEntityChest.java +++ b/src/main/java/net/minecraft/server/TileEntityChest.java @@ -339,18 +339,44 @@ public class TileEntityChest extends TileEntity implements IInventory { this.h = 0; } + int oldPower = Math.max(0, Math.min(15, this.h)); // CraftBukkit - Get power before new viewer is added + ++this.h; if (this.world == null) return; // CraftBukkit this.world.playNote(this.x, this.y, this.z, this.q().id, 1, this.h); + + // CraftBukkit start - Call redstone event + if (this.q().id == Block.TRAPPED_CHEST.id) { + int newPower = Math.max(0, Math.min(15, this.h)); + + if (oldPower != newPower) { + org.bukkit.craftbukkit.event.CraftEventFactory.callRedstoneChange(world, this.x, this.y, this.z, oldPower, newPower); + } + } + // CraftBukkit end + this.world.applyPhysics(this.x, this.y, this.z, this.q().id); this.world.applyPhysics(this.x, this.y - 1, this.z, this.q().id); } public void g() { if (this.q() != null && this.q() instanceof BlockChest) { + int oldPower = Math.max(0, Math.min(15, this.h)); // CraftBukkit - Get power before new viewer is added + --this.h; if (this.world == null) return; // CraftBukkit this.world.playNote(this.x, this.y, this.z, this.q().id, 1, this.h); + + // CraftBukkit start - Call redstone event + if (this.q().id == Block.TRAPPED_CHEST.id) { + int newPower = Math.max(0, Math.min(15, this.h)); + + if (oldPower != newPower) { + org.bukkit.craftbukkit.event.CraftEventFactory.callRedstoneChange(world, this.x, this.y, this.z, oldPower, newPower); + } + } + // CraftBukkit end + this.world.applyPhysics(this.x, this.y, this.z, this.q().id); this.world.applyPhysics(this.x, this.y - 1, this.z, this.q().id); } |