▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/CommandAPI
CommandAPI

CommandAPI

CommandAPI - мощный плагин для Bukkit/Spigot, который упрощает создание команд с новым UI из Minecraft 1.13. Автоматическая проверка аргументов, поддержка /execute и функций - всё для удобства разработчиков.

Оцените первым
69.4K
109

CommandAPI - это плагин для серверов Bukkit/Spigot, который даёт полную поддержку новой системы команд, появившейся в Minecraft 1.13. Если ты разрабатываешь плагины и устал вручную парсить аргументы, проверять типы и обрабатывать ошибки - эта штука реально упростит жизнь.

Что такое CommandAPI и зачем он нужен

Начиная с Minecraft 1.13, Mojang переписали командную систему - появился новый UI, автодополнение, строгие типы аргументов. Но для разработчиков плагинов это означало головную боль: нужно было вручную работать с Brigadier, проверять, что игрок ввёл число, а не текст, и так далее. CommandAPI берёт всё это на себя. Ты просто описываешь команду и её аргументы, а плагин сам проверяет, парсит и подсказывает.

Основные фишки

  • Умные команды - игроки не смогут ввести невалидную команду, а тебе не нужно писать кучу проверок.
  • Автоматический парсинг аргументов - просто укажи тип (число, игрок, предмет, зелье и т.д.), и CommandAPI сам всё преобразует.
  • Поддержка /execute - твои команды будут работать через /execute as ... run, как и положено.
  • Поддержка функций и тегов - команды можно вызывать из майнкрафтовских функций.
  • Не нужно регистрировать в plugin.yml - забудь про этот файл для команд.
  • Никаких лишних зависимостей - Brigadier не нужен, всё уже внутри.
  • Без слежки - плагин не собирает статистику, всё честно.

Как это выглядит в коде

Раньше, чтобы получить число из аргумента, приходилось писать так:

onCommand(CommandSender sender, Command command, String label, String[] args) {
    try {
        int i = Integer.parseInt(args[0]);
        // Делаем что-то с числом
    catch (NumberFormatException e) {
        // Обрабатываем ошибку
    }
}

С CommandAPI всё проще:

new CommandAPICommand("mycommand")
    .withArguments(new IntegerArgument("myint"))
    .executes((sender, args) -> {
        int i = (int) args.get("myint");
        // Делаем что-то с числом
    })
    .register();

Плагин сам проверит, что ввели именно число, и если нет - выдаст ошибку. Всего доступно больше 40 типов аргументов: от чисел до зачарований, сущностей, координат, предметов и эффектов зелья.

Проверка отправителя команды

Больше не нужно писать if (sender instanceof Player) - просто используй executesPlayer:

new CommandAPICommand("mycommand")
    .withArguments(arguments)
    .executesPlayer((player, args) -> {
        player.sendMessage("Привет, " + player.getDisplayName());
    })
    .register();

Конвертер плагинов

Если у тебя уже есть плагин, команды которого не работают с /execute, не беда. CommandAPI умеет конвертировать команды других плагинов - они станут совместимы с /execute и датапаками. Без переписывания кода.

Что ещё умеет

  • Парсить числа с диапазоном (например, только от 1 до 10).
  • Работать с координатами (целые, дробные, относительные через ~).
  • Преобразовывать сырой JSON в BaseComponent[].
  • Подсказывать онлайн-игроков при вводе.
  • Создавать свои типы аргументов.
  • Назначать права на конкретные аргументы - без прав их даже не видно.
  • Делать другие плагины совместимыми с /execute.
  • Обрабатывать результаты и успех команд как в командных блоках.
  • Давать контекстные подсказки на основе того, что уже ввёл пользователь.

Короче, если ты пишешь плагины для сервера на Майнкрафт и хочешь сэкономить кучу времени - CommandAPI реально мастхэв. Ставится просто, работает стабильно, документация есть (и она реально крутая). Скачать плагин CommandAPI можно для Bukkit/Spigot/Paper на Minecraft 1.13+.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.1.x1.21.x1.20.x1.19.x1.18.x1.17.x1.16.x1.15.x1.14.x1.13.x

Поддерживаемые окружения

Сервер

Ссылки


Детали

Лицензия:
Опубликован:3 года назад
Обновлён:2 месяца назад
Главная