mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-12 01:41:05 +01:00
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:
parent
1d6ff3461d
commit
5ede9ce5f7
2 changed files with 27 additions and 0 deletions
|
@ -48,6 +48,7 @@ public class BlockDaylightDetector extends BlockContainer {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (l != i1) {
|
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);
|
world.setData(i, j, k, i1, 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -339,18 +339,44 @@ public class TileEntityChest extends TileEntity implements IInventory {
|
||||||
this.h = 0;
|
this.h = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int oldPower = Math.max(0, Math.min(15, this.h)); // CraftBukkit - Get power before new viewer is added
|
||||||
|
|
||||||
++this.h;
|
++this.h;
|
||||||
if (this.world == null) return; // CraftBukkit
|
if (this.world == null) return; // CraftBukkit
|
||||||
this.world.playNote(this.x, this.y, this.z, this.q().id, 1, this.h);
|
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, this.z, this.q().id);
|
||||||
this.world.applyPhysics(this.x, this.y - 1, this.z, this.q().id);
|
this.world.applyPhysics(this.x, this.y - 1, this.z, this.q().id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void g() {
|
public void g() {
|
||||||
if (this.q() != null && this.q() instanceof BlockChest) {
|
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;
|
--this.h;
|
||||||
if (this.world == null) return; // CraftBukkit
|
if (this.world == null) return; // CraftBukkit
|
||||||
this.world.playNote(this.x, this.y, this.z, this.q().id, 1, this.h);
|
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, this.z, this.q().id);
|
||||||
this.world.applyPhysics(this.x, this.y - 1, this.z, this.q().id);
|
this.world.applyPhysics(this.x, this.y - 1, this.z, this.q().id);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue