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

СливПлатные

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

  • BlackBro
  • KameLiya
  • kutomori
  • timverhovniy
  • Ugin
  • brain
  • luckyhh
  • bobobo
  • Sanseddy
  • gulping
  • Toping
  • kisa
  • misha123
  • Gleban2000
  • benzobak
  • Marg
  • NikoVK
  • Milly_official
  • PS_LAZY_SEAL
  • Nameless58
  • FrenkiTvinn
  • recate
  • абвг1345234
  • RamzST
  • m0k0xa
  • Dimka00
  • GeroiN111
  • RazWars
  • Moadip
  • Daniil_5655
  • drrsan
  • Votond
  • T1REK
  • cherte9ok
  • ItsFloweSs
  • IvanRa
  • ucnobi
  • CrowelyPro
  • pfpff
  • Adept
  • Postal_08
  • hoffmann56r
  • huydsfhudsfhug
  • TimTimTim
  • Mariposa
  • Set
  • avl123
  • Чебупелик
  • LastClock
  • serhijhig
  • Mysterio ♡
  • wave6lol
  • TakumiHiji
  • adfhwetujwrjt
  • no_war
  • kyotoagony
  • Iriskas
  • fr1z
  • Dayne
  • Rossek2
  • M1ka
  • lalp1vk0
  • daniilbredikhin525@gmail.
  • KILLER42
  • TrueMan
  • Gey228
  • Shawon12345
  • Davibp1776
  • xperikss
  • Flezit
  • 535353
  • Katok777
  • nhiudhbifg
  • bollepl
  • Snon_S

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

samson
Приветствую! В плагине на java надо каким то образом узнать все команды и подкоманды (те, которые вводятся аргументами для главной команды. Например "confirm" в команде "/reload confirm") сервера включая обычные команды типо /title, /locate и тд. Есть же всякие панели для управления сервером в которых как то это все узнается. Спасибо за ответ.
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 130
/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на.
  • 130
Этот код пройдет через все плагины на вашем сервере и выведет информацию о каждой зарегистрированной команде, включая ее имя, описание, плагин, алиасы и разрешение.
 
samson
@_Dead_, Да, но там все равно нету аргументов для команд, например /cmi reload. Увы, сейчас не во всех плагинах пишут такое в описаниях для команды, даже в CMI.
 
_Dead_
  • _Dead_
  • Жiнка з ароматом пива, шкiра снiжного кальвiна.
  • 130
@samson, В таком случае лучшим вариантом будет использование специального клиентского мода, название которого я врат ли вспомню, он выводил все под-команды в строку над чатом.
Это или мод или библиотека, все что помню.
 
ВерхНиз