跳到主要内容

WorldCannon 配置

WorldCannon 使用一个全局配置文件,并为每个炮台单独使用一个配置文件。

文件布局

  • 全局配置:plugins/FunRTP/config.yml
  • 每个炮台的配置:plugins/FunRTP/custom/fun_rtps/<id>.yml

该插件还附带了一个名为 example_world_cannon 的示例炮台包。它默认处于禁用状态。

全局配置结构

主配置按以下区块组织:

  • runtime.*
  • landing.*
  • messages.*
  • protection.*

运行时设置

KeyDefaultBehavior
runtime.scanIntervalTicks10炮台检查附近玩家的频率
runtime.particleIntervalTicks15空闲炮台粒子效果的渲染频率

落点搜索设置

KeyDefaultBehavior
landing.searchAttemptsPerTick2预加载期间,每个炮台每 tick 进行的搜索尝试次数
landing.preloadedLocationsPerCannon5插件尝试为每个炮台排队保留的安全目的地数量
landing.searchTimeoutSeconds1000炮台持续搜索超过该时间后会被标记为耗尽
landing.slowFallingSeconds60到达后获得缓降效果的持续时间(玩家落地时效果会提前移除)
landing.failOpenOnProtectionErrorsfalse如果保护 API 报错,默认会阻止此次落点

落点音效

以下音效键可以配置:

  • landing.sounds.levitationStart.sound
  • landing.sounds.levitationStart.volume
  • landing.sounds.levitationStart.pitch
  • landing.sounds.blastOff.sound
  • landing.sounds.blastOff.volume
  • landing.sounds.blastOff.pitch

默认音效为:预热使用 BLOCK_BEACON_ACTIVATE,发射使用 ENTITY_GENERIC_EXPLODE

不安全材料列表

WorldCannon 会根据两个材料列表拒绝候选落点:

  • landing.unsafeGroundMaterials
  • landing.unsafeBodyMaterials

默认不安全地面材料:

  • LAVA
  • MAGMA_BLOCK
  • CAMPFIRE
  • SOUL_CAMPFIRE
  • CACTUS
  • POWDER_SNOW

默认不安全身体空间材料:

  • LAVA
  • WATER
  • FIRE
  • SOUL_FIRE
  • SWEET_BERRY_BUSH
  • POWDER_SNOW
  • COBWEB

消息设置

该插件在以下路径下公开消息和标题键:

  • messages.prefix
  • messages.helpHeader
  • messages.createdCannon
  • messages.deletedCannon
  • messages.movedCannon
  • messages.targetWorldUpdated
  • messages.searchCenterUpdated
  • messages.reload
  • messages.noPermission
  • messages.cannonDisabled
  • messages.queueCalibration
  • messages.noValidLocationYet
  • messages.noValidLocationFound
  • messages.invalidConfiguration
  • messages.statusLine
  • messages.probeAllowed
  • messages.probeBlocked
  • messages.unknownCommand
  • messages.titles.launchQueuedTitle
  • messages.titles.launchQueuedSubtitle
  • messages.titles.destinationPreviewTitle
  • messages.titles.destinationPreviewSubtitle
  • messages.titles.destinationConfirmedTitle
  • messages.titles.destinationConfirmedSubtitle
  • messages.titles.arrivalSubtitles

标题键控制自动发射和到达时的消息。arrivalSubtitles 是一个列表;插件每次发射时会随机选择其中一行。当前实现中没有手动确认提示。

每个炮台的配置字段

每个炮台文件会存储以下字段:

FieldDefaultNotes
isEnabled新创建的炮台默认为 true被禁用的炮台不会触发
displayName将 id 净化后,把下划线替换为空格用于消息和状态输出
cannonLocation必填炮台触发器所在的位置
targetWorld创建时的当前世界运行时必须已加载
searchCenter创建时的当前世界出生点如果之后未设置,插件会回退到目标世界的出生点
triggerRadius1.75用于检测附近玩家的半径
minSearchRadius500从搜索中心开始的最小落点搜索距离
maxSearchRadius5000从搜索中心开始的最大落点搜索距离
launchWarmupSeconds6发射前的漂浮/倒计时持续时间
verticalBoostTicks45传送前向上推进的 tick 数
verticalBoostVelocity1.35发射时施加的向上速度
enableParticlestrue控制空闲炮台粒子效果
requiredPermission空白该炮台的可选额外权限门槛

炮台创建默认值

当你运行 /wc create 时:

  • 炮台 id 会被转换为小写,并将 a-z0-9_- 以外的字符替换为 _
  • 显示名称默认使用净化后的 id,并将下划线转换为空格
  • cannonLocation 会设为你当前所在的位置
  • targetWorld 会设为你当前所在的世界
  • searchCenter 会设为该世界的出生点

运行时验证行为

当以下任一检查失败时,WorldCannon 会拒绝候选落点:

  • 目标世界未加载
  • 搜索中心无效
  • 随机采样点落在世界边界之外
  • 找不到安全的实体地表
  • 脚部或头部空间被阻挡
  • 地形或身体空间方块匹配已配置的不安全材料列表
  • 某个保护集成阻止了该落点

如果某个炮台在 landing.searchTimeoutSeconds 之前无法找到有效位置,它会变为耗尽状态,并开始返回已配置的失败消息,而不是发射玩家。