项目命令无法识别项目 Spigot

Item command doesn't recognise the items Spigot

我正在开发一个 spigot 插件是为了好玩,它有几个项目。我尝试制作一个项目命令,以便我可以更轻松地获得项目。

public class giveCommand implements CommandExecutor {

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {

        if (!(sender instanceof Player )) {
            sender.sendMessage(ChatColor.RED + "You must be a player to run this command!");
            return true;
        }

        final Player player = (Player) sender;

        if (args.length < 1) {
            player.sendMessage(ChatColor.RED + "Please specify the item you want!");
            return true;
        } else if (args.length > 1) {
            player.sendMessage(ChatColor.RED + "Too many arguments!");
            return true;
        } else if (args.length == 1) {
            if (args[0] == "wand") {
                player.getInventory().addItem(itemManager.wand);
                player.sendMessage(ChatColor.GREEN + "You have been given a " + itemManager.wand.getItemMeta().getDisplayName() + ChatColor.GREEN + "!");
            } else if (args[0] == "powerstick") {
                player.getInventory().addItem(itemManager.powerStick);
                player.sendMessage(ChatColor.GREEN + "You have been given a " + itemManager.powerStick.getItemMeta().getDisplayName() + ChatColor.GREEN + "!");
            } else if (!(args[0] == "wand" || args[0] == "powerstick")) {
                player.sendMessage(ChatColor.RED + "That item doesn't exist!");
            }
        }
        return true;
    }
}

每次我 运行 /i wand/i powerstick,它只是说无效的项目。非常感谢修复和任何改进以轻松添加未来的项目。

检查您的 if 语句。您不应该使用 == 检查字符串,而应该使用 String#equals(anotherString) 或 String#equalsIgnoreCase(anotherString)

String#equalsIgnoreCase(..) 忽略大写。

尝试:

            if (args[0].equalsIgnoreCase("wand")) {
                player.getInventory().addItem(itemManager.wand);
                player.sendMessage(ChatColor.GREEN + "You have been given a " + itemManager.wand.getItemMeta().getDisplayName() + ChatColor.GREEN + "!");
            } else if (args[0].equalsIgnoreCase("powerstick")) {
                player.getInventory().addItem(itemManager.powerStick);
                player.sendMessage(ChatColor.GREEN + "You have been given a " + itemManager.powerStick.getItemMeta().getDisplayName() + ChatColor.GREEN + "!");
            } else if (!(args[0].equalsIgnoreCase("wand") || args[0].equalsIgnoreCase("powerstick"))) {
                player.sendMessage(ChatColor.RED + "That item doesn't exist!");
            }