Вы использовали mode в качестве переменной для args[0]
и не использовали его для проверки, включен ли он.Чтобы проверить строку включения / выключения, приравните mode
к args[1]
(второй элемент в массиве, потому что первым будет pvp) и проверьте перед условиями, если args[0]
равно pvp
Кроме того, вы не можете добавить параметр String arg2
, если переопределяете метод из JavaPlugin - поэтому просто используйте параметры по умолчанию для метода onCommand , см .: Метод Bukkit OnCommand
Код:
Player player = (Player) sender;
if (label.equalsIgnoreCase("event")) {
if (args[0].equals("pvp")) { //check if args[0] is pvp, you can add an else statement to send an error message if it is not pvp, or manipulate it differently
if (args.length != 2) { //if it does not contain both [pvp] and [off/on]
player.sendMessage("Syntax: /event (Event) on/off");
return true;
} else { //if args length = 2
String mode = args[1]; //[off/on]
if (mode.equalsIgnoreCase("on")) { //if args[1] is "on"
for (Player onps : Bukkit.getOnlinePlayers()) {
onps.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "PvP" + ChatColor.YELLOW + "Event" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + "Das PvP Event hat begonnen!");
onps.playSound(onps.getLocation(), Sound.ARROW_HIT, 2, 0);
}
return true;
} else if (mode.equalsIgnoreCase("off")) { //if args[1] is "off"
for (Player onps2 : Bukkit.getOnlinePlayers()) {
onps2.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "PvP" + ChatColor.YELLOW + "Event" + ChatColor.DARK_GRAY + "]" + ChatColor.GRAY + "Das PvP Event ist zu ende!");
onps2.playSound(onps2.getLocation(), Sound.ARROW_HIT, 2, 0);
}
HandlerList.unregisterAll();
return true;
} else {
player.sendMessage("Use: /event (event) on/off");
}
}
}
}
return false;
}
}
Я действительно предлагаю вам в ближайшем будущем внедрить какой-нибудь прослушиватель команд вместо проверки каждой команды в методе onCommand, поскольку это делает ваш код чищеи легче читать