0
0
mirror of https://hub.spigotmc.org/stash/scm/spigot/craftbukkit.git synced 2025-10-28 22:25:57 +00:00
Files
craftbukkit/nms-patches/net/minecraft/world/level/redstone/ExperimentalRedstoneWireEvaluator.patch
2025-10-01 01:05:00 +10:00

41 lines
1.8 KiB
Diff

--- a/net/minecraft/world/level/redstone/ExperimentalRedstoneWireEvaluator.java
+++ b/net/minecraft/world/level/redstone/ExperimentalRedstoneWireEvaluator.java
@@ -17,6 +17,11 @@
import net.minecraft.world.level.block.state.properties.BlockPropertyRedstoneSide;
import net.minecraft.world.level.block.state.properties.BlockStateEnum;
+// CraftBukkit start
+import org.bukkit.craftbukkit.block.CraftBlock;
+import org.bukkit.event.block.BlockRedstoneEvent;
+// CraftBukkit end
+
public class ExperimentalRedstoneWireEvaluator extends RedstoneWireEvaluator {
private final Deque<BlockPosition> wiresToTurnOff = new ArrayDeque();
@@ -41,7 +46,16 @@
int j = unpackPower(i);
IBlockData iblockdata1 = world.getBlockState(blockposition1);
- if (iblockdata1.is(this.wireBlock) && !((Integer) iblockdata1.getValue(BlockRedstoneWire.POWER)).equals(j)) {
+ // CraftBukkit start
+ int oldPower = iblockdata.getValue(BlockRedstoneWire.POWER);
+ if (oldPower != j) {
+ BlockRedstoneEvent event = new BlockRedstoneEvent(CraftBlock.at(world, blockposition1), oldPower, j);
+ world.getCraftServer().getPluginManager().callEvent(event);
+
+ j = event.getNewCurrent();
+ }
+ if (iblockdata1.is(this.wireBlock) && oldPower != j) {
+ // CraftBukkit end
int k = 2;
if (!flag || !flag1) {
@@ -150,6 +164,7 @@
}
int k1;
+ Orientation orientation2; // CraftBukkit - decompile error
for (; !this.wiresToTurnOn.isEmpty(); this.propagateChangeToNeighbors(world, blockposition1, k1, orientation2, false)) {
blockposition1 = (BlockPosition) this.wiresToTurnOn.removeFirst();