Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Разработка плагинов для новичков' started by michaelukolov, Mar 19, 2014.

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

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

    Trophy Points:
    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. Хостинг MineCraft
    <
  3. kris13

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

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

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

    Trophy Points:
    173
    Skype:
    shkurovs
    @EventHandler не нужен
    Code:
        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]));
      }
    }
     
  5. StealerSlain

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

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

Share This Page