Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

[API] FlyBukkitCommandAPI - делаем команды руками из плеч [1.4.7-1.6.4(+?)]

sashabelii

Старожил
Пользователь
Баллы
123
Имя в Minecraft
sashabelii
Доброго времени суток.​

Решил выложить давно написанную, но так и не использованную библиотеку. Мне жутко не понравилась реализация "командного" API в Bukkit. Его по сути то и нет, т.е. вы сами парсите команды.​

Штуки:
  • Не заставляет вас добавлять базовую команду в plugin.yml
  • Каждая команда - объект
  • Глаза от полученного выколоть не хочется
  • Правьте вывод help как хотите
  • Поддержка псевдонимов команд
  • Поддержка TAB-автодополнения
  • Еще что-то, что я забыл. Писал давно, такие дела :)
Пример:
Код:
    private void registerCommands() {
      CommandRegistrar commander = new CommandRegistrar(this);
      HelpRegistrar helper = new HelpRegistrar(this);
      HelpIndexKeeper helpIndex = helper.registerIndex("Example", "All command of Example    plugin", "example.help");

      Command base = commander.register(new MainExampleCommand());
      Command regenCommand = base.addSubCommand(new ExampleCommand());
      regenCommand.addSubCommand(new ExampleSubCommand());
      base.addSubCommand(new ExampleOtherCommand());

      helpIndex.generateHelp(base.getDeepSubCommands());
    }

Код:
public class ClearContinueCommand extends Command {

    public ClearContinueCommand() {
        super("continue");
        setDescription("Продолжает делать штуки.");
        setUsageMessage("/cleaner continue");
        setPermission("cleaner.continue");
        setAliases(new String[]{"cn"});
    }

    @Override
    public void process(CommandSender sender, ArgsKeeper args) {
            if(args.hasArgOnLevel()) {
                  String arg = args.getLeveledArg();
                  ...
            }
    }

}

Тут могут быть ошибки, или просто неудобности. Для себя можете форкать и переписывать.

GitHub
 
Последнее редактирование:

Поделиться этой страницей

Назад
Верх