- Баллы
- 76
- Имя в Minecraft
- DragOn4ik
Hi. Вопрос в названии темы.
Вы скажете - легко. if(args[0] == "help") {//действие}
Но не тут то было. Действие не выполняется, не учитывается return true, а начинается проверка следующего условия...
Отрывок из кода:
При вызове команды /fakechat help, получаю "Игрока нет на сервере"... Странно... Как будто bukkit не видит условия if(args[0] == "help")...
Проблема решена. Решение - сравнивать через equals, вместо ==
Вы скажете - легко. if(args[0] == "help") {//действие}
Но не тут то было. Действие не выполняется, не учитывается return true, а начинается проверка следующего условия...
Отрывок из кода:
Код:
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(command.getName().equalsIgnoreCase("fakechat")) {
if(sender instanceof ConsoleCommandSender) {
getLogger().info("Only for players. Use 'cfakechat'");
return true;
}
Player player = (Player)sender;
if(args.length == 0) {
player.sendMessage(ChatColor.RED + "Не указан игрок!");
return true;
}
if(args[0] == "help") { // если первый аргумент команды равен строке help
player.sendMessage(ChatColor.GREEN + "Help"); // выводим сообщение "help"
return true; //возвращаем true, тем самым останавливая выполнение команды.
}
if(player.getServer().getPlayerExact(args[0]) == null) {
player.sendMessage(ChatColor.RED + "Игрока нет на сервере!");
return true;
}
Проблема решена. Решение - сравнивать через equals, вместо ==
Последнее редактирование: