Конфигурация Extractioncraft
Extractioncraft использует несколько файлов конфигурации. Основные настройки находятся в config.yml и messaging.yml. Пакеты контента, таблицы добычи и пулы добычи имеют собственные папки конфигурации.
config.yml
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
deleteItemsOnFailToExtract | Boolean | true | Теряют ли игроки все предметы при неудачной эвакуации из матча через одну из точек эвакуации. При включении готовый контент сбалансирован с учётом этого риска. Отключение упрощает фарм контента и снижает мотивацию использовать механику эвакуации. |
nightbreak.autoDownloadPluginUpdates | Boolean | false | Общая настройка MagmaCore, добавляется в файл после запуска Extractioncraft. При true доступные обновления плагина Extractioncraft загружаются через несколько минут после запуска и применяются после следующего перезапуска, если только nightbreak.applyPluginUpdatesWithoutRestart не применит их раньше. См. Автоматические обновления. |
nightbreak.applyPluginUpdatesWithoutRestart | String | never | Общая настройка MagmaCore. never ждёт следующего перезапуска, when-empty применяет загруженное обновление плагина, как только на сервере не останется игроков, а immediately — сразу после загрузки. Применение обновления перезагружает Extractioncraft, из-за чего идущие матчи завершаются. См. Применение обновлений без перезапуска. |
Очистка применяется только после того, как матч перешёл в активную фазу. Выход во время ожидания или обратного отсчёта не затрагивает инвентарь. Эвакуация, выключение сервера или перезагрузка плагина сохраняют предметы и привязывают непривязанные к игроку, если включены чары EliteMobs Soulbind. Если эта опция равна false, при любом другом выходе из активного матча предметы привязываются, а не удаляются. Каждый способ выхода описан в разделе ход матча.
messaging.yml
Все сообщения поддерживают цветовые коды &. Заполнители указаны в каждой строке.
| Ключ | По умолчанию | Описание |
|---|---|---|
failedToJoinOngoingMatchAsPlayerMessage | Can't join this match - it has already started! | Показывается, когда игрок пытается присоединиться к идущему матчу |
failedToJoinOngoingMatchAsPlayerInstanceIsFull | Can't join this match - the instance is already full! | Показывается, когда матч достиг максимального количества игроков |
failedToJoinOngoingMatchAsPlayerNoPermission | Can't join this match - you don't have the permission! | Настраиваемое сообщение об отсутствии разрешения. Сейчас не отправляется: матчи Extractioncraft не задают разрешение на вход. |
failedToJoinMatchAsSpectatorNoSpectatorsAllowedMessage | Can't join this match - spectators are not allowed! | Настраиваемое сообщение для случая, когда наблюдение отключено для данного пакета контента. В настоящее время не отправляется средой выполнения матчей MagmaCore: попытка наблюдения молча отклоняется без отправки какого-либо сообщения. |
failedToJoinMatchAsSpectatorNoPermission | Can't spectate this match - you don't have the permission! | Настраиваемое сообщение для случая, когда у игрока нет разрешения на наблюдение. Сейчас не отправляется: для наблюдения разрешение не требуется. |
matchJoinAsPlayerMessage | [Extractioncraft] You are now in the match, $player! | Сообщение в чате при присоединении к матчу в качестве игрока. $player заменяется именем игрока, а $count — минимальным количеством игроков. |
matchJoinAsPlayerTitle | Extract! | Заголовок, показываемый при присоединении к матчу |
matchJoinAsPlayerSubtitle | Grab the loot and head to an extraction point! | Подзаголовок, показываемый при присоединении к матчу |
matchJoinAsSpectatorTitle | (пусто) | Заголовок, показываемый при присоединении в качестве наблюдателя. В Extractioncraft нет команды наблюдения, поэтому его видят только наблюдатели, которых другой плагин впустил через API. |
matchJoinAsSpectatorSubtitle | Now spectating! | Подзаголовок, показываемый при присоединении в качестве наблюдателя. Отправляется только наблюдателям, впущенным через API. |
matchJoinAsSpectatorMessage | [Extractioncraft] You are now spectating a match! Do &a/extractioncraft quit &fto stop spectating! | Сообщение в чате при присоединении в качестве наблюдателя. Отправляется только наблюдателям, впущенным через API. $player заменяется именем игрока. |
matchLeaveAsPlayerMessage | [Extractioncraft] You have left the match, $player! | Настраиваемое сообщение при выходе. В настоящее время не отправляется средой выполнения матчей MagmaCore, и $player не подставляется. |
matchLeaveAsSpectatorMessage | [Extractioncraft] You have left the match, $player! | Настраиваемое сообщение при выходе наблюдателя. В настоящее время не отправляется средой выполнения матчей MagmaCore, и $player не подставляется. |
matchFailedToStartNotEnoughPlayersMessage | This match requires $count players before starting - can't start yet! | Показывается всем в матче при использовании /exc start без достаточного количества игроков. Минимальным количеством игроков заменяется только заполнитель $amount, поэтому в тексте по умолчанию $count отображается дословно. Если вы хотите, чтобы число подставлялось, используйте $amount. |
matchStartingMessage | [Extractioncraft] Match starting! | Настраиваемое сообщение в чате при начале матча. В настоящее время не отправляется средой выполнения матчей MagmaCore (обратный отсчёт вместо этого показывается через заголовок/подзаголовок). |
matchStartingTitle | Match starting! | Заголовок обратного отсчёта. $count показывает 2, 1, затем 0 с интервалом в одну секунду. |
matchStartingSubtitle | in $count... | Подзаголовок обратного отсчёта. $count показывает 2, 1, затем 0 с интервалом в одну секунду. |
preventTeleportInMessage | [Extractioncraft] You have attempted to teleport into an ongoing match - you can't do that! | Настраиваемое сообщение для заблокированных телепортаций в мир матча. Сама телепортация отменяется средой выполнения, но это сообщение в настоящее время не отправляется игроку. |
preventTeleportOutMessage | [Extractioncraft] You have attempted to teleport from an ongoing match - you can't do that! | Настраиваемое сообщение для заблокированных телепортаций из матча. Сама телепортация отменяется средой выполнения, но это сообщение в настоящее время не отправляется игроку. |
Конфигурация пакетов контента
Пакеты контента — это YAML-файлы в папке content_packages/. Каждый определяет конфигурацию играбельной карты.
| Ключ | Тип | По умолчанию | Описание |
|---|---|---|---|
isEnabled | Boolean | true | Считается ли пакет установленным. Это определяет цвет его записи в /exc setup (true = установлен/зелёный, false = скачан, но не установлен/жёлтый), и меню настройки переключает это значение за вас. /exc createMatch по-прежнему предлагает отключённый пакет в автодополнении, но отказывается его генерировать. |
name | String | (обязательно) | Отображаемое имя пакета (поддерживает цветовые коды &) |
description | String list | (обязательно) | Строки описания, отображаемые в меню настройки |
downloadLink | String | (необязательно) | URL, показываемый в чате при нажатии на нескачанный пакет в меню настройки. Готовые пакеты используют https://nightbreak.io/plugin/extractioncraft/. |
version | Integer | 0 | Номер версии контента. Проверка состояния контента в Extractioncraft различает только «не скачан» / «установлен» / «не установлен», поэтому это значение сейчас ни с чем не сравнивается. |
folderName | String | (необязательно) | Записывается в готовые файлы, но текущим кодом не читается. Считается ли пакет скачанным, зависит от betterStructuresModulesContainerName. |
usesEliteMobs | Boolean | false | Декларативный флаг, указывающий, что пакет использует контент EliteMobs. Во время выполнения не проверяется. |
usesBetterStructures | Boolean | false | Декларативный флаг, указывающий, что пакет использует контент BetterStructures. Во время выполнения не проверяется. |
usesFreeMinecraftModules | Boolean | false | Декларативный флаг, указывающий, что пакет использует контент FreeMinecraftModels. Во время выполнения не проверяется. Обратите внимание, что в исходном коде ключ YAML пишется как usesFreeMinecraftModules (с "Modules"). |
betterStructuresModulesContainerName | String | (необязательно) | Имя файла конфигурации модульного генератора BetterStructures, передаваемое генератору мира при выполнении /exc createMatch, например kobold_mines_module_generator_10.yml. Именно этот ключ фактически решает, какая карта будет сгенерирована. Генератор должен быть включён, иметь isWorldGeneration: true и содержать хотя бы один установленный стартовый модуль. Меню настройки считает пакет скачанным, как только BetterStructures загрузил этот генератор. |
spectatable | Boolean | false | Принимает ли матч наблюдателей. В Extractioncraft нет команды наблюдения, поэтому параметр влияет только на наблюдателей, которых другой плагин впускает через API. |
pvpEnabled | Boolean | true | Включено ли PvP во время матчей. При false игроки и их снаряды не могут наносить урон другим игрокам нигде в мире матча. |
minPlayers | Integer | 1 | Минимальное количество игроков для начала матча. /exc start отказывает при меньшем количестве, а обратный отсчёт прерывается (завершая матч), если количество падает ниже этого значения во время отсчёта. Значения больше maxPlayers снижаются до maxPlayers. |
maxPlayers | Integer | 100 | Максимальное количество игроков в матче (не меньше 1). Все пять готовых пакетов Kobold Mines переопределяют это значение на 8. Extractioncraft не регистрирует команду присоединения, поэтому в матч попадает только его создатель, если другой плагин не впустит игроков через API. |
contentLevel | Integer | 10 | Уровень, передаваемый EliteMobs при генерации добычи из сундуков и бочек. Значения меньше 1 становятся 1. Готовые пакеты используют 10, 20, 30, 40 и 50. |
chestLootTables | String list | [] | Таблицы добычи для сундуков, формат filename.yml:weight |
barrelLootTables | String list | [] | Таблицы добычи для бочек, формат filename.yml:weight |
Формат веса таблицы добычи
Записи таблиц добычи для сундуков и бочек используют формат <loot_table_filename.yml>:<weight>. Когда игрок открывает контейнер, одна таблица добычи выбирается на основе взвешенной вероятности.
Пример:
chestLootTables:
- my_chest_high_loot_table.yml:.2
- my_chest_low_loot_table.yml:.2
barrelLootTables:
- kobold_mines_supplies_loot_table.yml:1
Часть :weight обязательна и должна быть положительным числом. Запись, в которой не ровно одно двоеточие, пустое имя файла или вес не является положительным числом, пропускается с предупреждением. Веса относительны друг к другу, поэтому в примере выше каждая из двух таблиц сундуков получает равную долю в 50%. Имя файла, которому не соответствует файл в loot_tables/, записывает предупреждение при запуске и пропускается — как и таблица с isEnabled: false. Если подходящих таблиц не осталось, правый клик по контейнеру этого типа ничего не делает.