@EventHandler(ignoreCancelled = true)
    public void onPlayerInteract(final PlayerInteractEvent event) {
        final boolean leftClickCheckFire = this.protectFire && event.getAction() == Action.LEFT_CLICK_BLOCK;
        if (!leftClickCheckFire && !this.rightClickTargetFace(event)) return;

        final Location target = event.getClickedBlock().getLocation();
        target.add(event.getBlockFace().getModX(), event.getBlockFace().getModY(), event.getBlockFace().getModZ());

        if (leftClickCheckFire && event.getClickedBlock().getWorld().getBlockTypeIdAt(target) != Material.FIRE.getId()) return;

        if (this.catalog.isAllowed(event.getPlayer(), target)) return;

        event.setCancelled(true);
        this.tellDenied(event.getPlayer(), target);
        this.catalog.plugin.getLogger().log(Level.FINE,
                "Cancelled {0} attempting to interact with {1} at {2} on {3}"
                , new Object[] { event.getPlayer().getName(), ( event.getItem() == null ? "hand" : event.getItem().getType().name() ), target, event.getBlockFace() });
    }