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

СливПлатные

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

  • Niktpsik
  • SoulMinf
  • LiSnow
  • TakumiHiji
  • alduinchick
  • z0roday
  • molont1
  • Rekha
  • vxnder
  • MystalDev
  • mrmesniy
  • mineral
  • KamisPro
  • super.yariy
  • deizy_
  • JAHED2020
  • XapBu
  • zoloper_lok
  • Pigeon Pige
  • murzix
  • vityshanonrp
  • DanielD
  • Daruzost
  • skipperscabin
  • Maksim4iklojjj
  • lwrkk
  • tanatosbog
  • kukuwkaa
  • Kenos
  • hackers5656
  • 2005danyadanya2005
  • BlockByte - студия
  • skyRolly
  • Zeran
  • narci
  • fckkluvv
  • b3say
  • yellow
  • buffalow
  • RokyYTR
  • AnrimiX
  • pokems
  • kimiki49
  • danyapavlov02
  • mistik228
  • DestRise
  • dutch
  • MrReaper
  • piratkejual
  • Deletoser
  • santafly
  • VadimLaskin
  • Dark1107
  • jimbik1
  • dacemissss
  • axelius
  • minecrafterq
  • zxursed88
  • mewiiiil_0

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