项目命令无法识别项目 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!");
}
我正在开发一个 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!");
}