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 灵魂绑定附魔启用时把未绑定的物品灵魂绑定给该玩家。将此选项设为 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! | 可配置的传送离开对局被阻止时的消息。运行时会取消该传送本身,但目前不会向玩家发送此消息。 |
内容包配置
内容包是 content_packages/ 文件夹中的 YAML 文件。每个文件定义一个可游玩的地图配置。
| 键 | 类型 | 默认值 | 描述 |
|---|---|---|---|
isEnabled | Boolean | true | 此内容包是否算作已安装。它决定该条目在 /exc setup 中的颜色(true = 已安装/绿色,false = 已下载但未安装/黄色),设置菜单会替你切换它。/exc createMatch 仍会为已禁用的内容包提供 Tab 补全,但会拒绝生成它。 |
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 | (可选) | 运行 /exc createMatch 时传给世界生成器的 BetterStructures 模块生成器配置文件名,例如 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 的表同样会被跳过。如果没有剩下任何可用的表,右键点击该类容器不会有任何效果。