Совместимость BetterFood
Целевые платформы
Текущий репозиторий нацелен на:
- Версия плагина:
1.5.5 - Bukkit
api-version:1.21.4 - Цель сборки Spigot API:
26.3-R0.1-SNAPSHOT - Java:
21
Команды
Плагин использует:
/betterfood/bf
Подкоманды для игроков сосредоточены на переключении:
- автоматического поедания (
toggleEatingили просто/betterfoodбез аргументов) - сообщений обратной связи о потреблении в панели действий (
toggleMessage)
Админские подкоманды (требуют betterfood.admin) предоставляют общий инструментарий Nightbreak:
setup— открывает внутриигровое меню настройкиrecommendedplugins— показывает плагины, которые хорошо сочетаются с BetterFood. Сейчас у BetterFood нет записей в общем каталоге рекомендаций, поэтому открывается пустое меню с сообщением о том, что дополнительных рекомендаций пока нет (отправители из консоли получают то же примечание в чате)downloadpluginupdate/downloadall— загружает обновление плагина, если оно доступноapplypluginupdateприменяет загруженное обновление плагина без перезапуска сервера (см. Обновление плагина без перезапуска)downloadallcontent— сообщает, что у BetterFood нет пакетов контента
Автодополнение учитывает разрешения и введённый текст: toggleEating и toggleMessage предлагаются только с betterfood.user, а downloadpluginupdate, applypluginupdate, downloadallcontent, setup и recommendedplugins — только с betterfood.admin. Псевдоним downloadall принимается, но намеренно не предлагается. Обе настройки доступны только игрокам. Явные подкоманды toggleEating / toggleMessage отвечают другим отправителям «BetterFood settings can only be changed in-game.», а /betterfood без аргументов указывает консоли команду обновления. Игрок без betterfood.user получает сообщение об отсутствии разрешения. Неизвестная подкоманда или более одного аргумента выводит справку. Администраторы видят две настройки и команды обновления, настройки меню и рекомендаций; остальные — только две настройки. В справке нет downloadallcontent, хотя команда принимается и предлагается администраторам при автодополнении.
Общие команды MagmaCore
Встроенные инструменты MagmaCore добавляют следующие команды при запуске. Глобальные команды регистрируются при загрузке, только если их имена свободны. Если на сервере есть другие плагины 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) иnightbreak.applyPluginUpdatesWithoutRestart(по умолчаниюnever, см. Обновление плагина без перезапуска) — и проверяетnightbreak.ioна наличие более новой версии через несколько минут после загрузки (задержка разнесена по плагинам, чтобы несколько плагинов MagmaGuy не обращались наружу одновременно), а затем примерно раз в час. Результаты записываются в лог только при изменении, поэтому консоль не засоряется каждый час. BetterFood не передаёт идентификатор ресурса SpigotMC, и в его записи каталога его тоже нет, поэтому резервного варианта с версией SpigotMC не существует. - Операторы, заходящие на сервер, когда доступно обновление, получают через несколько секунд после входа сообщение в чат со ссылкой на страницу загрузки. Оно отправляется при каждом входе, пока установленная версия отстаёт.
- Токен аккаунта хранится вне папки плагина, в общем файле
plugins/MagmaCore/nightbreak.yml, поэтому одной привязки достаточно для всех плагинов MagmaGuy на сервере. - Никаких внешних зависимостей от плагинов; логика еды прослушивает только ванильное событие
FoodLevelChangeEvent.
Обновление плагина без перезапуска
Загруженное обновление плагина ждёт в папке обновлений сервера. /betterfood applypluginupdate подставляет его без перезапуска сервера: BetterFood отключается, его jar-файл заменяется, а новая версия загружается и включается. Переключатели поедания и сообщений хранятся у самих игроков, поэтому они сохраняются.
Команда отказывается выполняться и выводит сообщение, если загруженного обновления нет, если ожидающее обновление не новее запущенной версии или его jar-файл недействителен, если от BetterFood зависит (через depend или softdepend) плагин другого автора или если уже выполняется подмена другого плагина. Если новая версия не включается, снова загружается предыдущий jar-файл, а обновление остаётся в папке обновлений до следующего перезапуска.
Параметр nightbreak.applyPluginUpdatesWithoutRestart в config.yml определяет, что происходит сразу после любой загрузки обновления плагина — через downloadpluginupdate, downloadall, меню настройки или автоматическую загрузку:
| Значение | Поведение |
|---|---|
never | По умолчанию. Обновление ждёт следующего перезапуска. Администраторам в сети с betterfood.admin или betterfood.* сообщается, что нужен перезапуск, и показывается команда applypluginupdate |
when-empty | Применяет обновление сразу, если на сервере нет игроков; иначе проверяет каждые 30 секунд и применяет его, как только сервер опустеет |
immediately | Применяет обновление сразу по завершении загрузки |
Любое другое значение работает как never.