1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем michaelukolov, 19 мар 2014.

  1. Автор темы
    michaelukolov

    michaelukolov Активный участник Пользователь

    Баллы:
    68
    Skype:
    michael.ukolov
    Имя в 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;

    }
     
  2. kris13

    kris13 Активный участник Пользователь

    Баллы:
    78
    Для начала sender может быть не только Player, по этому либо не кастуйте его к Player, либо поставьте проверку if (sender instanceof Player)
    Так же у вас проблема в том что args это массив. Сделайте так
    Код:
    String quetions = "";
    for (String s : args){
      questions += s + " ";
    }
    this.getConfig().set("questions", questions);
     
  3. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    @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]));
      }
    }
     
  4. StealerSlain

    StealerSlain Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    StealerSlain
    Также не будет работать, если не поставишь return true;, когда команда выполнилась.
     

Поделиться этой страницей