import org.bukkit.Location; import org.bukkit.block.data.BlockData; import org.bukkit.block.data.type.Switch; import org.bukkit.entity.Player; public class PowerLever { private final BlockData poweredData; private final FakeBlock fakeBlock; public PowerLever(ZombiesPlugin main, Location location) { fakeBlock = main.getFakeBlockTracker().getOrCreate(location); poweredData = location.getBlock().getBlockData().clone(); if (!(poweredData instanceof Switch switchData)) { System.err.println("PowerLever: BlockData is not a Switch!"); return; } switchData.setPowered(true); } public void disposeGame(Game game) { for (Player player : game.getPlayers()) { fakeBlock.revert(player); } } public boolean isPowered(Game game) { for (Player player : game.getPlayers()) { if (fakeBlock.isViewedBy(player)) { return true; } } return false; } public void setPowered(Game game) { for (Player player : game.getPlayers()) { fakeBlock.setData(player, poweredData); fakeBlock.updateIndividually(player); } } public Location getLocation() { return fakeBlock.getLocation(); } }