@EventHandler
    public void onClick(InventoryClickEvent event) {
        if (event.getView().getTopInventory().equals(spellInv)) {
            if (event.getRawSlot() < spellInv.getSize() || event.isShiftClick()) {
                event.setCancelled(true);
                if (event.getRawSlot() < spellInv.getSize()) {
                    ItemStack item = event.getCurrentItem();
                    if (item != null && item.getType() != Material.AIR) {
                        Player p = (Player) event.getWhoClicked();
                        if (isWand(p.getItemInHand())) {
                            String displayName = item.getItemMeta().getDisplayName();
                            RuneType type = RuneType.getRune(displayName);
                            if (type != null) {
                                item = p.getItemInHand();
                                ItemMeta meta = item.getItemMeta();
                                ArrayList<String> lore = new ArrayList<String>();
                                lore.add(type.getName());
                                meta.setLore(lore);
                                item.setItemMeta(meta);
                                p.updateInventory();
                                p.sendMessage(ChatColor.RED + "You have selected the rune " + type.getName());
                            } else {
                                p.sendMessage(ChatColor.RED + "Error! Can't find the rune " + displayName);
                            }
                        } else {
                            p.sendMessage(ChatColor.RED + "You must be holding a wand!");
                        }
                    }
                }
            }
        }
    }