跳到主要内容

Extractioncraft 配置

Extractioncraft 使用多个配置文件。主要设置位于 config.yml 和 messaging.yml 中。内容包、战利品表和战利品池各有自己的配置文件夹。

config.yml​

键类型默认值描述
deleteItemsOnFailToExtractBooleantrue玩家未能通过某个撤离点从对局中撤离时是否丢失所有物品。启用时,预制内容会围绕此风险进行平衡。禁用会使内容更容易刷取,也降低了参与撤离机制的动力。
nightbreak.autoDownloadPluginUpdatesBooleanfalse共享的 MagmaCore 设置,在 Extractioncraft 启动后加入文件。为 true 时,可用的 Extractioncraft 插件更新会在启动数分钟后下载,并在下次重启后使用,除非 nightbreak.applyPluginUpdatesWithoutRestart 让其更早应用。参见自动更新。
nightbreak.applyPluginUpdatesWithoutRestartStringnever共享的 MagmaCore 设置。never 等待下次重启,when-empty 在下一次没有玩家在线时应用已下载的插件更新,immediately 在下载完成后立即应用。应用更新会重新加载 Extractioncraft,进行中的对局会因此结束。参见免重启应用更新。

清空只在对局正式开始后生效。在对局等待或倒计时期间离开,物品栏不会被改动。撤离成功、服务器关闭或插件重载都会保留物品,并在 EliteMobs 灵魂绑定附魔启用时把未绑定的物品灵魂绑定给该玩家。将此选项设为 false 时,以其他任何方式离开进行中的对局都会改为灵魂绑定物品,而不是清空它们。各种离开方式请参阅对局流程。

messaging.yml​

所有消息支持 & 颜色代码。占位符按行进行说明。

键默认值描述
failedToJoinOngoingMatchAsPlayerMessageCan't join this match - it has already started!玩家尝试加入进行中的对局时显示
failedToJoinOngoingMatchAsPlayerInstanceIsFullCan't join this match - the instance is already full!对局已达到最大玩家数时显示
failedToJoinOngoingMatchAsPlayerNoPermissionCan't join this match - you don't have the permission!可配置的无权限消息。目前不会发送:Extractioncraft 的对局没有设置加入权限。
failedToJoinMatchAsSpectatorNoSpectatorsAllowedMessageCan't join this match - spectators are not allowed!内容包禁用观战功能时可配置的消息。目前 MagmaCore 对局运行时不会发出此消息:观战尝试会被静默拒绝,不发送任何消息。
failedToJoinMatchAsSpectatorNoPermissionCan't spectate this match - you don't have the permission!玩家缺少观战权限时可配置的消息。目前不会发送:观战不需要任何权限。
matchJoinAsPlayerMessage[Extractioncraft] You are now in the match, $player!以玩家身份加入对局时的聊天消息。$player 会被替换为玩家名称,$count 会被替换为最低玩家数。
matchJoinAsPlayerTitleExtract!加入对局时显示的标题
matchJoinAsPlayerSubtitleGrab the loot and head to an extraction point!加入对局时显示的副标题
matchJoinAsSpectatorTitle(空)以观战者身份加入时显示的标题。Extractioncraft 没有观战命令,因此只有其他插件通过 API 接纳的观战者才会看到。
matchJoinAsSpectatorSubtitleNow 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 不会被替换。
matchFailedToStartNotEnoughPlayersMessageThis match requires $count players before starting - can't start yet!玩家数不足时使用 /exc start,会向对局中的所有人显示。只有 $amount 占位符会被替换为最低玩家数,因此默认文本会原样显示 $count。如果你希望该数值被替换,请使用 $amount。
matchStartingMessage[Extractioncraft] Match starting!可配置的对局开始聊天消息。目前 MagmaCore 对局运行时不会发出此项(倒计时改为通过标题/副标题显示)。
matchStartingTitleMatch starting!倒计时标题。$count 以一秒间隔依次显示 2、1、0。
matchStartingSubtitlein $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 文件。每个文件定义一个可游玩的地图配置。

键类型默认值描述
isEnabledBooleantrue此内容包是否算作已安装。它决定该条目在 /exc setup 中的颜色(true = 已安装/绿色,false = 已下载但未安装/黄色),设置菜单会替你切换它。/exc createMatch 仍会为已禁用的内容包提供 Tab 补全,但会拒绝生成它。
nameString(必填)内容包的显示名称(支持 & 颜色代码)
descriptionString list(必填)在设置菜单中显示的描述行
downloadLinkString(可选)在设置菜单中点击尚未下载的内容包时,于聊天中显示的 URL。预制内容包使用 https://nightbreak.io/plugin/extractioncraft/。
versionInteger0内容版本号。Extractioncraft 的内容状态检查只区分未下载 / 已安装 / 未安装,因此该值目前不会与任何内容作比较。
folderNameString(可选)写在预制文件中,但当前代码不会读取。内容包是否算作已下载取决于 betterStructuresModulesContainerName。
usesEliteMobsBooleanfalse声明该内容包使用 EliteMobs 内容的标志。运行时不强制执行。
usesBetterStructuresBooleanfalse声明该内容包使用 BetterStructures 内容的标志。运行时不强制执行。
usesFreeMinecraftModulesBooleanfalse声明该内容包使用 FreeMinecraftModels 内容的标志。运行时不强制执行。注意:源码中的 YAML 键拼写为 usesFreeMinecraftModules(带 "Modules")。
betterStructuresModulesContainerNameString(可选)运行 /exc createMatch 时传给世界生成器的 BetterStructures 模块生成器配置文件名,例如 kobold_mines_module_generator_10.yml。真正决定生成哪张地图的就是这个键。该生成器必须已启用、设置了 isWorldGeneration: true,并列出至少一个已安装的起始模块。一旦 BetterStructures 加载了此生成器,设置菜单就会把该内容包视为已下载。
spectatableBooleanfalse对局是否接受观战者。Extractioncraft 没有观战命令,因此这只影响其他插件通过 API 接纳的观战者。
pvpEnabledBooleantrue对局期间是否启用 PvP。为 false 时,玩家及其投射物在对局世界的任何地方都无法伤害其他玩家。
minPlayersInteger1开始对局所需的最低玩家数。低于该值时 /exc start 会拒绝执行;若在倒计时途中人数降到该值以下,倒计时会中止(并结束对局)。大于 maxPlayers 的值会被降为 maxPlayers。
maxPlayersInteger100对局允许的最大玩家数(至少为 1)。全部五个预制的 Kobold Mines 内容包都将其覆盖为 8。Extractioncraft 没有注册加入命令,因此除非其他插件通过 API 接纳玩家,否则只有创建者会进入对局。
contentLevelInteger10生成箱子和木桶战利品时传给 EliteMobs 的等级。小于 1 的值会变为 1。预制内容包分别使用 10、20、30、40 和 50。
chestLootTablesString list[]箱子使用的战利品表,格式为 filename.yml:weight
barrelLootTablesString 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 的表同样会被跳过。如果没有剩下任何可用的表,右键点击该类容器不会有任何效果。