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

Конфигурация и Разрешения ResurrectionChest

Разрешения

РазрешениеНазначениеПо умолчанию
resurrectionchest.*Предоставляет администраторам доступ к командам setup, content, update, reload и clearop
resurrectionchest.setupПредоставляет администраторам доступ к командам /resurrectionchest setup, recommendedplugins, downloadallcontent и updatecontentop
resurrectionchest.initializeРазрешает открыть начальную настройку командой /resurrectionchest initialize.op
resurrectionchest.useПозволяет игроку зарегистрировать сундук и направлять в него выпавшие при смерти предметыtrue
resurrectionchest.model.freeПозволяет игроку использовать бесплатные визуальные модели сундука FreeMinecraftModels (Wooden Chest)true
resurrectionchest.model.premiumПозволяет игроку использовать премиум визуальные модели сундука FreeMinecraftModels (Angelic Chest)op

resurrectionchest.use — это важное разрешение для фактического поведения сундука. Разрешения администратора и моделей влияют только на команды и необязательные визуальные эффекты соответственно.

Команды

КомандаРазрешениеНазначение
/resurrectionchestresurrectionchest.*Выводит краткое информационное сообщение со ссылкой на процесс настройки
/resurrectionchest setupresurrectionchest.setupОткрывает меню настройки (просмотр и переключение паков сундуков, проверка обновлений плагина, просмотр рекомендуемых плагинов, переключение автоматических обновлений)
/resurrectionchest recommendedpluginsresurrectionchest.setupОткрывает (или, для консоли, выводит списком) рекомендуемые сопутствующие плагины для ResurrectionChest
/resurrectionchest downloadallresurrectionchest.*Загружает обновление плагина (если есть) и все доступные паки контента с Nightbreak
/resurrectionchest downloadallcontentresurrectionchest.setupЗагружает все доступные паки контента с Nightbreak
/resurrectionchest updatecontent (псевдоним updateallcontent)resurrectionchest.setupПовторно загружает только устаревшие установленные паки контента
/resurrectionchest forcereinstallcontent <package|all>resurrectionchest.*Повторно загружает пак контента (или все загруженные паки), даже если установленная версия уже актуальна. Имена пакетов автодополняются слагами Nightbreak wooden-chest и angelic-chest, а также значением all
/resurrectionchest downloadpluginupdateresurrectionchest.*Загружает обновление плагина ResurrectionChest, если оно доступно
/resurrectionchest reloadresurrectionchest.*Перезагружает ResurrectionChest
/resurrectionchest clearresurrectionchest.*Очищает все отслеживаемые блоки 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 в настоящее время предоставляет следующие пользовательские настройки:

Ключ конфигурацииТипПо умолчанию
setupDonebooleanfalse
nightbreak.autoDownloadPluginUpdatesbooleanfalse
Input name for death cheststring[DeathChest]
Enable high compatibility / low security mode for plugin conflictsbooleanfalse
Lower worn armor's durability on deathbooleantrue
Amount of durability to lower on deathint100
Chest creation messagestring&8[ResurrectionChest] &aYou've created your Death Chest!
Chest destruction messagestring&8[ResurrectionChest] &cYour Death Chest has been destroyed!
Chest missing messagestring&8[ResurrectionChest] &4Your Death Chest is missing!
Chest protected region messagestring&8[ResurrectionChest] &cYou can't create a Death Chest here - this area is protected!
Death messagestring&8[ResurrectionChest] &aYour items have been moved to your Death Chest!
deathChestRemovedMessagestring&8[ResurrectionChest] &cYour Death Chest has been removed!
Enable particle effects for death chestsbooleantrue
Particle effect 1stringENCHANTMENT_TABLE
Particle effect 2stringENCHANTMENT_TABLE
Particle effect 3stringPORTAL
blacklistedWorldslist[none]
storeXPbooleantrue
xpPercentageKeptdouble0.75
deathChestNameTagstring$playerName's &fResurrection Chest
freeSingleDeathChestModelNamestringresurrectionchest_free_single
freeDoubleDeathChestModelNamestringresurrectionchest_free_double
premiumSingleDeathChestModelNamestringresurrectionchest_angelic_single
premiumDoubleDeathChestModelNamestringresurrectionchest_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 1
  • Particle effect 2
  • freeSingleDeathChestModelName
  • freeDoubleDeathChestModelName и 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 не ограничивается одним игроком. Она стирает все зарегистрированные сундуки на сервере за один проход.