Files
CatServer/patches/net/minecraft/block/BlockLever.java.patch
2018-09-08 09:15:34 +08:00

33 lines
1.3 KiB
Diff

--- ../src-base/minecraft/net/minecraft/block/BlockLever.java
+++ ../src-work/minecraft/net/minecraft/block/BlockLever.java
@@ -1,6 +1,9 @@
package net.minecraft.block;
import javax.annotation.Nullable;
+
+import org.bukkit.event.block.BlockRedstoneEvent;
+
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool;
@@ -162,6 +165,19 @@
}
else
{
+ // CraftBukkit start - Interact Lever
+ boolean powered = state.getValue(POWERED);
+ org.bukkit.block.Block block = worldIn.getWorld().getBlockAt(pos.getX(), pos.getY(), pos.getZ());
+ int old = (powered) ? 15 : 0;
+ int current = (!powered) ? 15 : 0;
+
+ BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, old, current);
+ worldIn.getServer().getPluginManager().callEvent(eventRedstone);
+
+ if ((eventRedstone.getNewCurrent() > 0) == powered) {
+ return true;
+ }
+ // CraftBukkit end
state = state.cycleProperty(POWERED);
worldIn.setBlockState(pos, state, 3);
float f = ((Boolean)state.getValue(POWERED)).booleanValue() ? 0.6F : 0.5F;