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

Помогите Как в команде задействовать все аргументы?

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

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

    ShaDow1K Участник

    Баллы:
    31
    Привет всем, хочу сделать плугин по RP командам, написал команду /me кое-каким образом. В консоли отменяет, usage неправильный пробивает, а вот само "правильное" выполнение команды вовсе не правильно. Проще говоря, пишу команду, н-р: /me это тест. По итогу пишет "Игрок java.lang:String и т.д" То есть отображение команды то есть, а вот сами аргументы не задействованы. Искал по разным форумам - не нашёл. Так что, кто знает как всё это создаётся, проверьте кот и исправьте пожалуйста.
    ИЗМЕНЕНИЕ: Для тех, кто не любит читать, мне нужно изменить 6 строку снизу, args на что-то другое, чтобы правило функционировала команда.
    Код:
        @Override
        public void onEnable() {
            getServer().getLogger().info("plugin was enabled!");
    
            getCommand("me").setExecutor(new CommandExecutor() {
                @Override
                public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
                    if(sender instanceof ConsoleCommandSender) {
                        sender.sendMessage("You can't use this command in console!");
                        return true;
                    }
                    if(args.length == 0) {
                        sender.sendMessage(ChatColor.RED + "Нельзя использовать эту команду без сообщения!");
                        return false;
                    }
                    if(args.length >= 1) {
                        getServer().broadcastMessage(ChatColor.DARK_PURPLE + sender.getName() + args);
                        return true;
                    }
                    return true;
                }
            });
        }
     
  2. Хостинг MineCraft
    <
  3. Pelmeshik

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

    Баллы:
    78
    Для начала по учи JAVA.

    Код:
                    if(args.length == 0) {
                        sender.sendMessage(ChatColor.RED + "Нельзя использовать эту команду без сообщения!");
                        return false;
    return false; Означает, что команда не выполнена и возращает usage. Поставь вместо false - true
    Тебе надо собрать все аргументы в String, а ты отправляешь массив строк.
    Вот правильный код

    Код:
        @Override
        public void onEnable() {
            getServer().getLogger().info("plugin was enabled!");
    
            getCommand("me").setExecutor(new CommandExecutor() {
                @Override
                public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
                    if(sender instanceof ConsoleCommandSender) {
                        sender.sendMessage("You can't use this command in console!");
                        return true;
                    }
                    if(args.length == 0) {
                        sender.sendMessage(ChatColor.RED + "Нельзя использовать эту команду без сообщения!");
                        return true;
                    }
                    if(args.length >= 1) {
                    StringBuilder mess = new StringBuilder();
                    String[] var4 = args;
                    int var5 = args.length;
    
                    for(int var6 = 0; var6 < var5; ++var6) {
                    String arg = var4[var6];
                    mess.append(arg + " ");
                    }
                        getServer().broadcastMessage(ChatColor.DARK_PURPLE + sender.getName() + mess.toString());
                        return true;
                    }
                    return true;
                }
            });
        }
     
  4. Автор темы
    ShaDow1K

    ShaDow1K Участник

    Баллы:
    31
    Спасибо, работает.
    По поводу false - true, так и было задумано.
    Java, Bukkit API я учу, так что может что-то и пропускаю.
     

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