Плагин начинает работать, но почему выполняется только одно действие? [закрыт]

94
09 мая 2021, 23:40
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.

Закрыт 1 год назад.

Улучшить вопрос

Проблема в том, что когда плагин начинает работать, то выполняется только одно действие например если первым поставить проверку игрока, то проверка и будет, но на проверку аргументов будет выдавать ошибку, и наоборот, как сделать, чтобы было обе проверки? Вот код:

if (Bukkit.getPlayer(args[0])==null) {
    player.sendMessage(ChatColor.RED+"Игрок не в сети!");
    return true;
}
if (args.length==0||args.length>=2) { 
    player.sendMessage(ChatColor.RED+"Ошибка, пишите /call [игрок]");
    return true;
}
Answer 1

Вам сначала нужно проверить корректность аргументов, а потом проверить находится ли игрок в сети, т.е. просто поменять if-ы местами. Если не передать ни одного аргумента и сразу не проверить что передано необходимое их количество, а сначала пробовать читать первый аргумент - будет ошибка обращения к элементу за границами массива.

Технически - сначала нужно проверить что в массиве есть хотя бы один элемент (или ровно один), а потом уже обращаться к первому элементу массива.

// Если нужно чтобы был передан ровно один аргумент, достаточно такого условия:
if (args.length!=1) { 
    player.sendMessage(ChatColor.RED+"Ошибка, пишите /call [игрок]");
    return true;
}
if (Bukkit.getPlayer(args[0])==null) {
    player.sendMessage(ChatColor.RED+"Игрок не в сети!");
    return true;
}
READ ALSO
Доступ к елементам массива, которые являются экземплярами классов, которые связаны между собой

Доступ к елементам массива, которые являются экземплярами классов, которые связаны между собой

Я хочу сделать игру платформер (используя Processing) и столкнулся с такой проблемойУ меня есть 2 типа блоков: стационарные (неподвижные) и те которые...

109
Ошибка в Eclipse Window Builder: This is not a GUI class and can't be edited graphically?

Ошибка в Eclipse Window Builder: This is not a GUI class and can't be edited graphically?

Появилась ошибка в Eclipse Window Builder Я в eclipse новичок, не знаю как исправить!

340
Создание постера с помощью canvas

Создание постера с помощью canvas

Как создать постер к видео с помощью canvas и js чтоб постеры к видео создавались при загрузке страницы с видео ну или создавались при загрузке...

117
Приватный сервер из файлов браузерной игры

Приватный сервер из файлов браузерной игры

Сегодня мой друг сделал приватный сервер из одной браузерной игры под названием starveio

101