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:
Ursprung
1d6ff3461d
Commit
5ede9ce5f7
@ -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);
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren