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.
This commit is contained in:
gjmcferrin@gmail.com 2013-03-29 17:04:29 -04:00 committed by Travis Watkins
parent 1d6ff3461d
commit 5ede9ce5f7
2 changed files with 27 additions and 0 deletions

View file

@ -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);
}
}

View file

@ -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);
}