Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Неподтвержденные плагины", создана пользователем sashabelii, 5 май 2015.

  1. Автор темы
    sashabelii

    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
     
    Последнее редактирование: 25 авг 2015
  2. Хостинг MineCraft
    <

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