Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 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;
}
Вам сначала нужно проверить корректность аргументов, а потом проверить находится ли игрок в сети, т.е. просто поменять if-ы местами. Если не передать ни одного аргумента и сразу не проверить что передано необходимое их количество, а сначала пробовать читать первый аргумент - будет ошибка обращения к элементу за границами массива.
Технически - сначала нужно проверить что в массиве есть хотя бы один элемент (или ровно один), а потом уже обращаться к первому элементу массива.
// Если нужно чтобы был передан ровно один аргумент, достаточно такого условия:
if (args.length!=1) {
player.sendMessage(ChatColor.RED+"Ошибка, пишите /call [игрок]");
return true;
}
if (Bukkit.getPlayer(args[0])==null) {
player.sendMessage(ChatColor.RED+"Игрок не в сети!");
return true;
}
Продвижение своими сайтами как стратегия роста и независимости