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

СливПлатные

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

  • xiao
  • Katsuki99
  • imnstarzzz
  • HoldGrand
  • compoto
  • MiyukiSaki
  • luisharder
  • minqun173
  • zTix_
  • DayDreaming
  • anhvuquang0512
  • br1ckv73
  • teikereu
  • Hikaru
  • Wayfarer
  • kolosiysss
  • 1050TI_top
  • Krik_Rezonsize
  • kris228
  • Nxghtmare
  • yuiii
  • Mechta7el
  • Archie111

Помощь 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, В таком случае лучшим вариантом будет использование специального клиентского мода, название которого я врат ли вспомню, он выводил все под-команды в строку над чатом.
Это или мод или библиотека, все что помню.
 
ВерхНиз