Сборки серверов

СливПлатные

Новые сообщения

Сейчас онлайн

  • zootmn15
  • fff20256
  • Bonny
  • ren192
  • T1rus126
  • qaqiiii1
  • Malinbl4
  • RZ_
  • drenkovvak
  • MrNoobkin
  • CAJIO
  • Jarvis20015
  • Olympic
  • Nikita7424
  • Skerb
  • AlpaGG_
  • legionfrost
  • Testivich
  • emon
  • Jindorm
  • Kakapin
  • z0roday
  • Extr1se_
  • ScorpRex
  • ZloyBoy
  • Albetik
  • kwezyy
  • Tqreas
  • Niktpsik
  • kirilltwice
  • AnrimiX
  • Animeas1234
  • Kiramakis
  • sqzme
  • s1derr
  • somikyy
  • cr7A
  • dafin_1
  • Toshiro
  • Kwilz
  • TREX_SKITLSE
  • vasilkin666
  • Pipisa228

Помощь Java. Как узнать все "подкоманды" всех плагинов на сервере?

samson
Приветствую! В плагине на java надо каким то образом узнать все команды и подкоманды (те, которые вводятся аргументами для главной команды. Например "confirm" в команде "/reload confirm") сервера включая обычные команды типо /title, /locate и тд. Есть же всякие панели для управления сервером в которых как то это все узнается. Спасибо за ответ.
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 156
/help
Кроме того, вы также можете использовать команду /pl или /plugins

Если сервер ваш:
вам нужно будет обращаться к API каждого плагина и проверять их команды.


Пример кода:
public class PluginCommands {
    public static void main(String[] args) {
        for (Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
            for (String commandName : plugin.getDescription().getCommands().keySet()) {
                PluginCommand command = Bukkit.getPluginCommand(commandName);
                if (command != null) {
                    System.out.println("Command: " + command.getName());
                    System.out.println("    Plugin: " + plugin.getName());
                    System.out.println("    Description: " + command.getDescription());
                    System.out.println("    Aliases: " + String.join(", ", command.getAliases()));
                    System.out.println("    Permission: " + command.getPermission());
                    System.out.println();
                }
            }
        }
    }
}
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 156
Этот код пройдет через все плагины на вашем сервере и выведет информацию о каждой зарегистрированной команде, включая ее имя, описание, плагин, алиасы и разрешение.
 
samson
@_Dead_, Да, но там все равно нету аргументов для команд, например /cmi reload. Увы, сейчас не во всех плагинах пишут такое в описаниях для команды, даже в CMI.
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 156
@samson, В таком случае лучшим вариантом будет использование специального клиентского мода, название которого я врат ли вспомню, он выводил все под-команды в строку над чатом.
Это или мод или библиотека, все что помню.
 
ВерхНиз