3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-11-15 20:40:07 +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.
Dieser Commit ist enthalten in:
gjmcferrin@gmail.com 2013-03-29 17:04:29 -04:00 committet von Travis Watkins
Ursprung 1d6ff3461d
Commit 5ede9ce5f7
2 geänderte Dateien mit 27 neuen und 0 gelöschten Zeilen

Datei anzeigen

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

Datei anzeigen

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