@EventHandler
    public void onBlockPistonExtend(final BlockPistonExtendEvent event){
        BlockFace facing = event.getDirection();

        if (plugin.gates.isGate(event.getBlock().getRelative(facing))){
            plugin.verbose("Piston tried to mess with a KonseptGate by pushing it! BOO!!");
            event.setCancelled(true);
        }
        else {
            for (Block affected : event.getBlocks()){
                if (plugin.gates.isGate(affected)){
                    // Yeah, this doesn't work because of a bug.
                    // I'll leave it in here as it will "take over" when that bug is fixed.
                    plugin.verbose("Piston tried to mess with a KonseptGate! BOO!!");
                    event.setCancelled(true);
                    break;
                }
                else if (plugin.gates.isGate(affected.getRelative(facing))){
                    plugin.verbose("Piston tried to mess with a KonseptGate by proxy! BOO!!");
                    event.setCancelled(true);
                    break;
                }
                else if (plugin.gates.isGate(affected.getRelative(BlockFace.UP))){
                    plugin.verbose("Piston tried to mess with the block below a KonseptGate! BOO!!");
                    event.setCancelled(true);
                    break;
                }
            }
        }
    }