Перейти к основному содержимому

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

Целевые платформы

Текущий репозиторий нацелен на:

  • Версия плагина: 1.5.0
  • Bukkit api-version: 1.21.4
  • Цель сборки Spigot API: 26.2-R0.1-SNAPSHOT
  • Java: 21

Команды

Плагин использует:

  • /betterfood
  • /bf

Подкоманды для игроков сосредоточены на переключении:

  • автоматического поедания (toggleEating или просто /betterfood без аргументов)
  • сообщений обратной связи о потреблении в панели действий (toggleMessage)

Админские подкоманды (требуют betterfood.admin) предоставляют общий инструментарий Nightbreak:

  • setup — открывает внутриигровое меню настройки
  • recommendedplugins — показывает плагины, которые хорошо сочетаются с BetterFood. Сейчас у BetterFood нет записей в общем каталоге рекомендаций, поэтому открывается пустое меню с сообщением о том, что дополнительных рекомендаций пока нет (отправители из консоли получают то же примечание в чате)
  • downloadpluginupdate / downloadall — загружает обновление плагина, если оно доступно
  • downloadallcontent — сообщает, что у BetterFood нет пакетов контента

Автодополнение фильтруется по разрешениям и по уже введённому тексту: toggleEating и toggleMessage предлагаются только отправителям с betterfood.user, а downloadpluginupdate, downloadallcontent, setup и recommendedplugins — только отправителям с betterfood.admin. Принимаемый псевдоним downloadall намеренно не предлагается. Оба переключателя игрока доступны только игрокам — явные подкоманды toggleEating / toggleMessage отказывают отправителям-не-игрокам сообщением «BetterFood settings can only be changed in-game.», тогда как голая команда /betterfood перенаправляет отправителей из консоли к команде обновления. Игроку без betterfood.user сообщается, что у него нет разрешения изменять настройки BetterFood. Нераспознанная подкоманда или более одного аргумента приводят к выводу строки с описанием использования, и сама эта строка учитывает разрешения: администраторы видят полный список, все остальные — только два переключателя.

Общие команды MagmaCore

Поскольку общий инструментарий MagmaCore встроен, BetterFood также регистрирует эти команды при загрузке — но только если их ещё никто не занял, поэтому на сервере, где уже работает другой плагин MagmaGuy, ими владеет первый загрузившийся плагин, а BetterFood записывает в лог, что пропускает регистрацию:

  • /nightbreak plugins — просмотр каталога плагинов: в виде меню в игре и в виде списка в чате из консоли (nightbreak.plugins, по умолчанию op). Голая команда /nightbreak только выводит строку с описанием использования.
  • /nightbreaklogin <token> и /nightbreaklogout — подключают и отключают общий токен аккаунта Nightbreak (nightbreak.login, по умолчанию op)
  • /logify — загружает текущий лог сервера на mclo.gs (logify.*, по умолчанию op)
  • /betterfoodchangelog [dismiss|disable] — показывает непрочитанные заметки о выпусках BetterFood. Эта команда снабжена пространством имён для каждого плагина, поэтому конфликтов не возникает; если /betterfoodchangelog всё же занята, используется запасное имя вида betterfood:betterfoodchangelog.

Команда просмотра изменений доступна только администраторам и только в игре: отправителям без админского разрешения (или из консоли) она отвечает «This command is only available to plugin administrators in-game.» Игрок считается администратором, если он op либо имеет betterfood.admin или betterfood.*. Администраторам также напоминают о непрочитанных заметках о выпусках вскоре после входа, если только они не выполнили /betterfoodchangelog disable. Состояние «прочитано/скрыто» хранится для каждого игрока в plugins/BetterFood/nightbreak-changelogs.yml.

Об общем потоке смотрите Токены Nightbreak, Настройка Nightbreak и Уведомления о списке изменений.

Разрешения

  • betterfood.user (по умолчанию true) — управляет обработчиком автоматического поедания и переключателями игрока.
  • betterfood.admin (по умолчанию op) — управляет загрузкой обновления плагина, меню настройки и командой рекомендуемых плагинов. Также считается админским разрешением для команды просмотра изменений.
  • nightbreak.plugins, nightbreak.login и logify.* (все по умолчанию op) — регистрируются встроенным инструментарием MagmaCore для перечисленных выше общих команд и не объявлены в plugin.yml самого BetterFood.

Прочие интеграции

  • Включена статистика bStats (id плагина 4557) — отключите глобально через конфигурацию bStats, если хотите отказаться от сбора данных.
  • BetterFood теперь поставляется с общим инструментарием MagmaCore. Он создаёт config.yml с переключателем nightbreak.autoDownloadPluginUpdates (по умолчанию false) — это единственный ключ, который BetterFood сам добавляет в config.yml, — и проверяет nightbreak.io на наличие более новой версии через несколько минут после загрузки (задержка разнесена по плагинам, чтобы несколько плагинов MagmaGuy не обращались наружу одновременно), а затем примерно раз в час. Результаты записываются в лог только при изменении, поэтому консоль не засоряется каждый час. BetterFood не передаёт идентификатор ресурса SpigotMC, и в его записи каталога его тоже нет, поэтому резервного варианта с версией SpigotMC не существует.
  • Операторы, заходящие на сервер, когда доступно обновление, получают через несколько секунд после входа сообщение в чат со ссылкой на страницу загрузки. Оно отправляется при каждом входе, пока установленная версия отстаёт.
  • Токен аккаунта хранится вне папки плагина, в общем файле plugins/MagmaCore/nightbreak.yml, поэтому одной привязки достаточно для всех плагинов MagmaGuy на сервере.
  • Никаких внешних зависимостей от плагинов; логика еды прослушивает только ванильное событие FoodLevelChangeEvent.