Конфигурация и Разрешения ResurrectionChest
Разрешения
| Разрешение | Назначение | По умолчанию |
|---|---|---|
resurrectionchest.* | Предоставляет администраторам доступ к командам setup, content, update, reload и clear | op |
resurrectionchest.setup | Предоставляет администраторам доступ к командам /resurrectionchest setup, recommendedplugins, downloadallcontent и updatecontent | op |
resurrectionchest.initialize | Разрешает открыть начальную настройку командой /resurrectionchest initialize. | op |
resurrectionchest.use | Позволяет игроку зарегистрировать сундук и направлять в него выпавшие при смерти предметы | true |
resurrectionchest.model.free | Позволяет игроку использовать бесплатные визуальные модели сундука FreeMinecraftModels (Wooden Chest) | true |
resurrectionchest.model.premium | Позволяет игроку использовать премиум визуальные модели сундука FreeMinecraftModels (Angelic Chest) | op |
resurrectionchest.use — это важное разрешение для фактического поведения сундука. Разрешения администратора и моделей влияют только на команды и необязательные визуальные эффекты соответственно.
Команды
| Команда | Разрешение | Назначение |
|---|---|---|
/resurrectionchest | resurrectionchest.* | Выводит краткое информационное сообщение со ссылкой на процесс настройки |
/resurrectionchest setup | resurrectionchest.setup | Открывает меню настройки (просмотр и переключение паков сундуков, проверка обновлений плагина, просмотр рекомендуемых плагинов, переключение автоматических обновлений) |
/resurrectionchest recommendedplugins | resurrectionchest.setup | Открывает (или, для консоли, выводит списком) рекомендуемые сопутствующие плагины для ResurrectionChest |
/resurrectionchest downloadall | resurrectionchest.* | Загружает обновление плагина (если есть) и все доступные паки контента с Nightbreak |
/resurrectionchest downloadallcontent | resurrectionchest.setup | Загружает все доступные паки контента с Nightbreak |
/resurrectionchest updatecontent (псевдоним updateallcontent) | resurrectionchest.setup | Повторно загружает только устаревшие установленные паки контента |
/resurrectionchest forcereinstallcontent <package|all> | resurrectionchest.* | Повторно загружает пак контента (или все загруженные паки), даже если установленная версия уже актуальна. Имена пакетов автодополняются слагами Nightbreak wooden-chest и angelic-chest, а также значением all |
/resurrectionchest downloadpluginupdate | resurrectionchest.* | Загружает обновление плагина ResurrectionChest, если оно доступно |
/resurrectionchest reload | resurrectionchest.* | Перезагружает ResurrectionChest |
/resurrectionchest clear | resurrectionchest.* | Очищает все отслеживаемые блоки ResurrectionChest; выбрасывает инвентарь каждого отслеживаемого сундука и удаляет блоки сундука и таблички |
Загруженные обновления плагина помещаются в папку обновлений сервера и вступают в силу только после следующего перезапуска сервера.
Файлы плагина
| Путь | Назначение |
|---|---|
plugins/ResurrectionChest/config.yml | Все настройки из таблицы ниже |
plugins/ResurrectionChest/playerData.yml | По одной записи на зарегистрированный сундук, с ключом по UUID игрока: location сундука, префикс chestModel, выбранный при регистрации сундука, и trackedBlockSchemaVersion, используемый для переноса более старых регистраций на текущие маркеры владения блоками |
plugins/ResurrectionChest/content_packages/ | Определения паков контента wooden_chest.yml / angelic_chest.yml (имя, описание, ссылка для загрузки, версия, isEnabled, category) |
plugins/ResurrectionChest/nightbreak-changelogs.yml | Состояние «прочитано/скрыто» для общей папки входящих списков изменений за командой /resurrectionchestchangelog. См. Уведомления о списке изменений |
plugins/ResurrectionChest/imports/ | Папка для ручного импорта. Всё, что здесь оставлено, распаковывается при запуске — файлы моделей направляются в FreeMinecraftModels, и FreeMinecraftModels автоматически обновляется. См. Ручной импорт против управления в игре |
Не редактируйте playerData.yml вручную, пока сервер работает; ResurrectionChest перезаписывает его при каждой регистрации или удалении сундука.
Поверхность конфигурации
config.yml в настоящее время предоставляет следующие пользовательские настройки:
| Ключ конфигурации | Тип | По умолчанию |
|---|---|---|
setupDone | boolean | false |
nightbreak.autoDownloadPluginUpdates | boolean | false |
Input name for death chest | string | [DeathChest] |
Enable high compatibility / low security mode for plugin conflicts | boolean | false |
Lower worn armor's durability on death | boolean | true |
Amount of durability to lower on death | int | 100 |
Chest creation message | string | &8[ResurrectionChest] &aYou've created your Death Chest! |
Chest destruction message | string | &8[ResurrectionChest] &cYour Death Chest has been destroyed! |
Chest missing message | string | &8[ResurrectionChest] &4Your Death Chest is missing! |
Chest protected region message | string | &8[ResurrectionChest] &cYou can't create a Death Chest here - this area is protected! |
Death message | string | &8[ResurrectionChest] &aYour items have been moved to your Death Chest! |
deathChestRemovedMessage | string | &8[ResurrectionChest] &cYour Death Chest has been removed! |
Enable particle effects for death chests | boolean | true |
Particle effect 1 | string | ENCHANTMENT_TABLE |
Particle effect 2 | string | ENCHANTMENT_TABLE |
Particle effect 3 | string | PORTAL |
blacklistedWorlds | list | [none] |
storeXP | boolean | true |
xpPercentageKept | double | 0.75 |
deathChestNameTag | string | $playerName's &fResurrection Chest |
freeSingleDeathChestModelName | string | resurrectionchest_free_single |
freeDoubleDeathChestModelName | string | resurrectionchest_free_double |
premiumSingleDeathChestModelName | string | resurrectionchest_angelic_single |
premiumDoubleDeathChestModelName | string | resurrectionchest_angelic_double |
Автоматические обновления плагина и контента
nightbreak.autoDownloadPluginUpdates — это общая настройка Nightbreak/MagmaCore, которая поставляется внутри ResurrectionChest. По умолчанию она имеет значение false.
- Когда значение
false(по умолчанию), ничего не загружается автоматически. ResurrectionChest всё равно проверяет наличие обновления плагина при запуске (и примерно раз в час), чтобы внутриигровая кнопка обновления могла показать результат, но любую фактическую загрузку вы запускаете сами. - Когда значение
true, ResurrectionChest загружает доступное обновление плагина и устаревшие паки контента при запуске. Загруженные обновления плагина и контента используются только после перезапуска сервера. - Автоматическая загрузка плагина требует действительного токена аккаунта Nightbreak и активного членства сторонника.
Вы можете изменить эту настройку в игре через переключатель Automatic Updates на панели инструментов внутри /resurrectionchest setup или отредактировать config.yml напрямую.
Меню настройки также предоставляет пункт Plugin Update (показывает установленную/доступную версию и загружает обновление по клику) и пункт Recommended Plugins (тот же список, что и /resurrectionchest recommendedplugins).
Защита регионов
Регистрация сундука смерти считается строительством: прежде чем табличка будет принята, ResurrectionChest спрашивает у общего LocationQueryRegistry из MagmaCore, может ли игрок строить на блоке сундука.
- WorldGuard и GriefPrevention оборачиваются автоматически; если не установлен ни один из них, дополнительных ограничений нет и регистрация ведёт себя ровно как раньше.
- Если плагин защиты запрещает строительство, регистрация отклоняется, и игроку отправляется
Chest protected region message. - Если адаптер защиты выбрасывает ошибку, запрос завершается «закрыто» (регистрация отклоняется), а не молча обходит защиту.
Адаптеры подключаются при запуске, поэтому любая ошибка подключения видна в логе загрузки, а не при первой регистрации сундука.
Штраф к прочности брони
Lower worn armor's durability on death (по умолчанию true) и Amount of durability to lower on death (по умолчанию 100) применяются к надетой броне игрока в момент, когда она направляется в сундук смерти:
- каждому надетому элементу брони, попадающему в дроп смерти, к значению повреждения добавляется
Amount of durability to lower on death - если это довело бы элемент до его максимальной прочности или за неё, элемент полностью убирается из дропа (он уничтожается, а не сохраняется)
- иначе в сундук попадает повреждённый элемент
Штраф выполняется только при тех смертях, которые ResurrectionChest действительно обрабатывает — он пропускается, когда включён keepInventory, когда мир в чёрном списке, когда у игрока нет resurrectionchest.use и когда зарегистрированный сундук отсутствует.
Режим высокой совместимости
Enable high compatibility / low security mode for plugin conflicts по умолчанию имеет значение false. При этом у зарегистрированной таблички или сундука должна сохраниться метка ожидаемого владельца.
При true отсутствие метки в зарегистрированном месте допускается. Метка другого владельца по-прежнему отклоняется, а сундук должен оставаться блоком сундука. Режим помогает с плагинами, удаляющими метки, но не разрешает произвольные заменяющие блоки.
Обработка XP
Когда storeXP включён:
- ResurrectionChest отслеживает общее количество XP игрока во время игры, но считывает актуальное значение игрока в момент смерти, поэтому XP, выданный напрямую через API другого плагина, тоже учитывается
- при смерти сохраняет
общее XP * xpPercentageKept - устанавливает выпавший XP в
0 - возвращает сохранённый XP, когда владелец в следующий раз откроет свой зарегистрированный сундук (подходит любая половина двойного сундука)
- смерть до получения добавляет к сохранённому количеству, а не заменяет его
xpPercentageKept при чтении конфига зажимается в диапазон 0-1, поэтому значения выше 1 работают как 1, а отрицательные или некорректные — как 0.
Важные исключения:
- Если
keepInventoryактивен, ResurrectionChest ничего не делает. - Если
keepLevelактивен, ветка хранения XP пропускается и оставляет ванильную обработку уровней без изменений. - Сохранённый XP хранится только в оперативной памяти. Он не записывается в
playerData.yml, поэтому перезапуск сервера,/resurrectionchest reloadили перезагрузка плагина отбрасывают любой ещё не полученный XP. Предметы, уже находящиеся в сундуке, при этом не затрагиваются.
Обработка переполнения
Предметы помещаются в сундук по одному стаку за раз, причём допускается частичное размещение:
- сохраняется всё, что помещается, включая пополнение уже существующего стака
- в обычном списке предметов смерти на месте гибели остаётся только остаток
- игрок получает предупреждение о том, что сундук был полон
Интеграция с FreeMinecraftModels
Если FreeMinecraftModels установлен, ResurrectionChest может создать визуальную модель сундука поверх настоящего сундука.
Текущее поведение:
- премиум визуальные эффекты (Angelic Chest) предпочтительны, когда у игрока есть
resurrectionchest.model.premiumи премиум-модель фактически загружена - в противном случае используется бесплатный визуальный эффект (Wooden Chest), когда у игрока есть
resurrectionchest.model.free - если ни одно из разрешений не даёт пригодную модель, модель не создаётся и используется ванильный сундук как есть
- визуальная модель переключается между одинарным и двойным вариантами в зависимости от размера сундука
- настоящий сундук по-прежнему остаётся хранилищем
Выбор модели делается один раз, при регистрации сундука, и сохраняется в playerData.yml как chestModel этого сундука. Отсюда два следствия:
- если на момент регистрации FreeMinecraftModels не был установлен, сундук записывается без модели и остаётся обычным ванильным сундуком даже после установки FreeMinecraftModels
- последующее изменение разрешений задним числом не повышает и не понижает уже существующий сундук
В обоих случаях игроку нужно зарегистрировать сундук заново (сломать его и снова поставить табличку), чтобы получить новую модель.
Когда активна пользовательская модель, игроки могут взаимодействовать с ней напрямую:
- правый клик по модели открывает инвентарь базового сундука
- левый клик по модели уничтожает регистрацию (это может сделать только владелец; не-владелец при левом клике получает красное сообщение, и ничего не уничтожается)
Если FreeMinecraftModels отсутствует или модель не может быть создана, базовый сундук по-прежнему работает нормально.
Паки Контента
ResurrectionChest поставляется с двумя паками контента, которые оборачивают модели сундуков FreeMinecraftModels:
- Wooden Chest (бесплатный): предоставляет
resurrectionchest_free_single/resurrectionchest_free_double. Используется черезresurrectionchest.model.free. - Angelic Chest (премиум): предоставляет
resurrectionchest_angelic_single/resurrectionchest_angelic_double. Используется черезresurrectionchest.model.premium.
Каждый пак находится в папке models плагина FreeMinecraftModels, когда установлен, и в models_disabled, когда удалён. Переключение их через /resurrectionchest setup перемещает файлы между этими папками и автоматически перезагружает FreeMinecraftModels.
Оговорки на основе исходного кода
Текущий исходный код показывает несколько записей конфигурации, которые представлены в config.yml, но не используются нигде за пределами DefaultConfig:
Particle effect 1Particle effect 2freeSingleDeathChestModelNamefreeDoubleDeathChestModelNameиpremiumDoubleDeathChestModelName(плагин внутри жёстко зашивает префиксы имён моделейresurrectionchest_freeиresurrectionchest_angelic, а затем добавляет_singleили_doubleв зависимости от размера сундука, поэтому ключи конфигурации с "Double" в настоящее время не влияют на визуальные эффекты сундука)
Напротив, Particle effect 3 — это настройка частиц с очевидным активным использованием в текущем коде: она разрешается один раз при загрузке (с откатом на PORTAL и предупреждением в консоли, если имя не является корректной частицей) и затем создаётся каждый тик, пока чанк сундука загружен. Установка Enable particle effects for death chests в false полностью отменяет эту потиковую задачу, что является самым дешёвым вариантом на серверах с большим количеством зарегистрированных сундуков. premiumSingleDeathChestModelName используется для проверки существования файла премиум-модели перед назначением премиум-префикса; существование файла бесплатной модели отдельно не проверяется.
Ещё две оговорки по набору команд:
/resurrectionchest initializeоткрывает начальную настройку и требуетresurrectionchest.initialize./resurrectionchest setupоткрывает управление контентом, обновлениями и рекомендованными плагинами./resurrectionchest clearне ограничивается одним игроком. Она стирает все зарегистрированные сундуки на сервере за один проход.