@EventHandler(priority = EventPriority.LOWEST)
    public void onBowInteract(PlayerInteractEvent event) {
        if (event.getItem() != null && (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK)) {
            if (event.getItem().getType() == Material.BOW && event.getItem().hasItemMeta() && event.getItem().getItemMeta().hasDisplayName() && event.getItem().getItemMeta().hasLore()) {
                String name = event.getItem().getItemMeta().getDisplayName();
                Ability ability = plugin.getAbilityHandler().getAbilityType(ChatColor.stripColor(name));
                if (ability != null) {
                    // It's a match!
                    Player p = event.getPlayer();
                    if (!plugin.getReloadHandler().canUse(p.getUniqueId(), ability)) {
                        p.sendMessage(Message.formulate(Message.ERROR_COOLDOWN, String.valueOf(plugin.getReloadHandler().getTimeLeft(p.getUniqueId(), ability))));
                        event.setCancelled(true);
                    }
                }
            }
        }
    }