@Override
    public boolean onCommand(final CommandSender sender, final ItemStackRef itemStackRef, Command command, String label, String[] args) {
        // Check the player is holding the item
        ItemStack held = itemStackRef.get();
        if (held == null || held.getTypeId() == 0) {
            sender.sendMessage(plugin.translate(sender, "error-no-item-in-hand", "You must be holding a menu item"));
            return true;
        }

        if (args.length < 1) {
            return false;
        }

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < args.length; i++) {
            sb.append(args[i]);
            if (i + 1 < args.length) {
                sb.append(' ');
            }
        }
        sb.append(".txt");
        String filename = sb.toString();
        File scriptsFolder = new File(plugin.getDataFolder(), "scripts");
        final File scriptFile = new File(scriptsFolder, filename);
        new TextFileLoader(plugin, scriptFile, new TextCallback() {
            @Override
            public void onLoad(List<String> lines) {
                ItemStack held = itemStackRef.get();
                if (held == null || held.getTypeId() == 0) {
                    sender.sendMessage(plugin.translate(sender, "error-no-item-in-hand", "You must be holding a menu item"));
                    return;
                }
                ItemMeta meta = held.getItemMeta();
                meta.setDisplayName(lines.get(0));
                meta.setLore(lines.subList(1, lines.size()));
                held.setItemMeta(meta);
                sender.sendMessage(plugin.translate(sender, "script-imported", "Import successful"));
                itemStackRef.update();
            }

            @Override
            public void fail(Exception ex) {
                if (ex instanceof FileNotFoundException) {
                    sender.sendMessage(plugin.translate(sender, "import-file-not-found", "Could not find {0}", scriptFile.getPath()));
                } else {
                    sender.sendMessage(plugin.translate(sender, "import-load-error", "An error occurred while attempting to read {0}. Please see console for details.", scriptFile.getPath()));
                    plugin.getLogger().log(Level.WARNING, "Error occured while attempting to read " + scriptFile.getPath(), ex);
                }
            }
        }).load();
        return true;
    }