Luckwet
Ньюби
- Баллы
- 1
- Имя в Minecraft
- Luckwet
Я пытаюсь создать команду /kick (player) (reason)
где player - ник игрока которого нужно кикнуть
reason - причина кика которая отобразиться у кикнутого.
Я не понимаю как сделать так, что бы обрабатывались все значения введеные отправителем в "reason"
Что бы после ввода например: "/kick Steve Нарушение правил сервера" кикнутому игроку выходила причина "Нарушение правил сервера", а выходит только первое значение, то-есть "Нарушение".
Я пробовал играться с методами, вертеть их туда сюда, присваивать аргументы строке, но получается только, что выводится либо самое первое значение, либо два(но в этом случае при вводе одного значения команда выдаёт ошибку)
Вот весь код:
Помогите, мучаюсь два дня уже над этим.
public class CommandKick implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(args.length == 0) {
sender.sendMessage(ChatColor.RED + "/kick <ник игрока> <причина>");
return true;
}
if(args.length == 1) {
sender.sendMessage(ChatColor.RED + "/kick <ник игрока> <причина>");
return true;
}
String name = args[0];
@SuppressWarnings ("deprecation")
Player p = Bukkit.getPlayer(name);
if(p == null) {
sender.sendMessage(ChatColor.RED + "" + ChatColor.UNDERLINE + name + ChatColor.RESET + "" + ChatColor.RED + " " + "сейчас нет на сервере.");
return true;
}
if(args.length > 2 || args.length < 3) {
String r1 = args[1];
p.kickPlayer(ChatColor.RED + "" + ChatColor.BOLD + "Администратор " + ChatColor.UNDERLINE + sender.getName() + ChatColor.RESET + "" + ChatColor.RED + "" + ChatColor.BOLD + " кикнул вас с сервера. Причина: " + r1);
}
if(args.length > 3 || args.length < 4) {
String r1 = args[1];
String r2 = args[2]
p.kickPlayer(ChatColor.RED + "" + ChatColor.BOLD + "Администратор " + ChatColor.UNDERLINE + sender.getName() + ChatColor.RESET + "" + ChatColor.RED + "" + ChatColor.BOLD + " кикнул вас с сервера. Причина: " + r1 + r2);
return true;
}
В виде фото:

где player - ник игрока которого нужно кикнуть
reason - причина кика которая отобразиться у кикнутого.
Я не понимаю как сделать так, что бы обрабатывались все значения введеные отправителем в "reason"
Что бы после ввода например: "/kick Steve Нарушение правил сервера" кикнутому игроку выходила причина "Нарушение правил сервера", а выходит только первое значение, то-есть "Нарушение".
Я пробовал играться с методами, вертеть их туда сюда, присваивать аргументы строке, но получается только, что выводится либо самое первое значение, либо два(но в этом случае при вводе одного значения команда выдаёт ошибку)
Вот весь код:
Помогите, мучаюсь два дня уже над этим.
public class CommandKick implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(args.length == 0) {
sender.sendMessage(ChatColor.RED + "/kick <ник игрока> <причина>");
return true;
}
if(args.length == 1) {
sender.sendMessage(ChatColor.RED + "/kick <ник игрока> <причина>");
return true;
}
String name = args[0];
@SuppressWarnings ("deprecation")
Player p = Bukkit.getPlayer(name);
if(p == null) {
sender.sendMessage(ChatColor.RED + "" + ChatColor.UNDERLINE + name + ChatColor.RESET + "" + ChatColor.RED + " " + "сейчас нет на сервере.");
return true;
}
if(args.length > 2 || args.length < 3) {
String r1 = args[1];
p.kickPlayer(ChatColor.RED + "" + ChatColor.BOLD + "Администратор " + ChatColor.UNDERLINE + sender.getName() + ChatColor.RESET + "" + ChatColor.RED + "" + ChatColor.BOLD + " кикнул вас с сервера. Причина: " + r1);
}
if(args.length > 3 || args.length < 4) {
String r1 = args[1];
String r2 = args[2]
p.kickPlayer(ChatColor.RED + "" + ChatColor.BOLD + "Администратор " + ChatColor.UNDERLINE + sender.getName() + ChatColor.RESET + "" + ChatColor.RED + "" + ChatColor.BOLD + " кикнул вас с сервера. Причина: " + r1 + r2);
return true;
}
В виде фото:
