Как получить доступ ко всем командам на сервере при использовании Bukkit API?

Как бы вы получили доступ ко всем командам, доступным в папке плагинов сервера?

возможно, путем доступа к каждому плагину в файле plugin.yml и получения их команд. Но я просто хочу знать, как это можно сделать. Если есть другой способ, и я над этим думаю.


person user3471511    schedule 14.06.2014    source источник


Ответы (2)


Вы можете перебрать все HelpTopic, а затем поместить их имена в список:

// create the List to store command names into
List<String> commandNames = new ArrayList<String>();  

// loop through all of the helpTopics, a list of all commands displayed 
// in /help (therefore all of the commands)
for(HelpTopic cmd : plugin.getServer().getHelpMap().getHelpTopics()){
    commandNames.add(cmd.getName());//add the name of the command to the Array
}

Скорее всего, вы захотите подождать, пока не будут включены все остальные плагины, прежде чем делать это.

person Jojodmo    schedule 15.06.2014

Вы можете работать с PlayerCommandPreprocessEvent и ServerCommandEvent.

// PlayerCommandPreprocessEvent
if (event.getMessage().toLowerCase().startsWith("/help")) {
    // Player issued: /help
}
// ServerCommandEvent
if (event.getCommand().toLowerCase().startsWith("help")) {
    // Console issued: help 
}
person spongebob    schedule 14.06.2014
comment
Это не отвечает на вопрос. Вопрос в том, как получить все доступные команды, а не в том, как определить, когда выполняется команда /help. - person Jojodmo; 15.06.2014
comment
Команда @jojodmo /help была примером. Однако пользователь 3471511 сказал: Если есть другой способ, и я уже обдумал это.. Кроме того, вы не должны голосовать против чужого ответа. Будьте честны. Пожалуйста, отмените свой голос. - person spongebob; 15.06.2014
comment
Я проголосовал против него, потому что он не отвечает на вопрос! Невозможно получить все доступные команды, используя то, что вы делаете, он только обнаруживает, когда игрок вводит /help или консоль вводит help, он не дает OP все доступные команды, которые перечислены когда игрок набирает /help - person Jojodmo; 15.06.2014
comment
Команда @Jojodmo /help была примером! Это не имеет ничего общего со всеми доступными командами, которые перечислены, когда игрок набирает /help! Кроме того, пользователь 3471511 сказал: Как получить доступ ко всем командам, доступным в папке плагинов сервера?. Доступ не означает получение. - person spongebob; 16.06.2014