Войти или зарегистрироваться

Помогите onCommand получить значение

michaelukolov

Активный участник
Пользователь
Баллы
68
Имя в Minecraft
UGT_Micl
Здравствуйте. Как получить значение из onCommand? Сделал вот так public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args), а мне нужен конфиг
this.getConfig().set("quetions", args ); Что ввести вместо args чтобы при вводе команды в конфиг записывалось значение после команды которое. То есть к примеру /quetion значение и текст значение записался в конфиг.
Вот код
@EventHandler
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args)
{
Player player = (Player) sender;
if(player.getPlayer().hasPermission("helper.quetion"))
{
if(cmd.getName().equalsIgnoreCase("quetion"))
{
this.getConfig().set("quetions", args );
saveConfig();
player.getPlayer().sendMessage("All right!");
}

}
return false;

}
 
Для начала sender может быть не только Player, по этому либо не кастуйте его к Player, либо поставьте проверку if (sender instanceof Player)
Так же у вас проблема в том что args это массив. Сделайте так
Код:
String quetions = "";
for (String s : args){
  questions += s + " ";
}
this.getConfig().set("questions", questions);
 
@EventHandler не нужен
Код:
    private String getTextFromArgs(String[] args){
        String result = "";
        for(int i = 1; i < args.length; i++){
            result = result + args[i];
            if(!(i == args.length - 1)){
                result = result + " ";
            }
        }
        return result;
    }

public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
  if(cmd.getName().equalsIgnoreCase("command") && sender instanceof Player && ((Player)sender).hasPermission("permission")){
    config.set("path.to.cell", getTextFromArgs(args[0]));
  }
}
 
Также не будет работать, если не поставишь return true;, когда команда выполнилась.
 
Назад
Верх