@EventHandler(priority = EventPriority.HIGHEST) public void onBlockRedstoneChange(BlockRedstoneEvent event) { if (TrainCarts.isWorldDisabled(event)) { return; } Material type = event.getBlock().getType(); if (BlockUtil.isType(type, Material.LEVER)) { Block up = event.getBlock().getRelative(BlockFace.UP); Block down = event.getBlock().getRelative(BlockFace.DOWN); if (MaterialUtil.ISSIGN.get(up)) { updateRedstonePower(up, event.getNewCurrent() > 0); } if (MaterialUtil.ISSIGN.get(down)) { updateRedstonePower(down, event.getNewCurrent() > 0); } ignoreOutputLever(event.getBlock()); } else if (MaterialUtil.ISSIGN.get(type)) { updateRedstonePower(event.getBlock(), event.getNewCurrent() > 0); } }