跳到主要内容

CannonRTP 命令与权限

CannonRTP 在 cannonrtp 命名空间下注册其命令。

  • 根命令:/cannonrtp
  • 别名:/crtp、/wc

/wc 是大多数管理员会使用的简短别名,但所有子命令底层使用的权限节点都是 cannonrtp.admin。

管理员命令​

create、place、remove、target 和 center 会先保存配置,再应用更改。如果保存失败,命令会报告错误,不会重新加载或应用该更改。请先解决报告的文件问题,再重试。

更改成功后,这些命令以及 delete 会重建所有炮台,而不仅仅是你编辑的那一个。正在进行的发射会被取消,相关玩家会被送回其炮台座位;每个炮台都会丢弃队列中的目的地并重新开始搜索;所有发射冷却也会重置。

命令发送者描述
/cannonrtp任意显示帮助标题,后接发送者可使用的所有已注册子命令
/wc help任意与 /cannonrtp 相同 —— 打印帮助列表
/wc create <id>玩家创建一份全新的炮台配置,并在你当前位置放置第一个实例。已存在的 id 会被拒绝;请使用 /wc place 为其添加放置点。
/wc create <id> <display_name>玩家同上,但设置自定义显示名称(下划线会被替换为空格)
/wc place <id>玩家在你当前位置追加放置一个现有炮台的实例
/wc remove <id>玩家移除你当前世界中距离最近的 <id> 放置点(配置文件保留)
/wc delete <id>任意直接删除炮台的配置文件
/wc target <id> <world>玩家修改该炮台的目标落点世界
/wc center <id>玩家将该炮台的搜索中心设为你当前位置
/wc list任意列出所有放置点的显示名称、状态、队列大小以及最后的状态详情
/wc status任意与 /wc list 输出相同
/wc probe玩家测试你当前位置是否能通过所有已启用的保护检查
/wc reload任意完整重新加载 CannonRTP:所有配置文件、炮台和保护适配器,以及 imports/ 文件夹中等待处理的所有内容
/wc setup玩家打开 Nightbreak 风格的内容浏览器菜单(列出已安装和可下载的炮台内容包)
/wc recommendedplugins任意打开 Nightbreak 为 CannonRTP 推荐的配套插件目录
/wc downloadpluginupdate任意从 Nightbreak 下载更新版本的 CannonRTP 插件 jar。它会在下次服务器重启后使用;如果 config.yml 中的 nightbreak.applyPluginUpdatesWithoutRestart 为 when-empty 或 immediately,则会更早应用
/wc applypluginupdate任意通过从新 jar 重新加载插件,无需重启即可应用已下载的 CannonRTP 更新。没有等待中的有效新版本、有其他作者的插件依赖或软依赖 CannonRTP,或另一次插件替换正在进行时,该命令会被拒绝。如果新 jar 启用失败,会重新加载之前的 jar,更新则留在更新文件夹中等待下次重启。参见免重启应用更新。
/wc downloadall任意从 Nightbreak 下载 CannonRTP 插件更新以及所有可用的内容包
/wc downloadallcontent任意从 Nightbreak 下载所有可用的 CannonRTP 内容包(仅内容,不含插件 jar)
/wc updatecontent任意下载已过期的 CannonRTP 内容包的更新(别名:/wc updateallcontent)
/wc forcereinstallcontent <package|all>任意即使本地副本已是最新,也强制从 Nightbreak 重新下载内容 —— 用它来修复损坏或被手工编辑过的内容包文件。传入 all 可处理所有已下载的内容包,或通过 Tab 补全指定单个 Nightbreak 包 slug(free-cannon-model、cannonrtp-premium-cannon-model)。

/wc initialize 为拥有 cannonrtp.admin 的玩家打开首次设置菜单。/wc setup 打开内容浏览器。共享初始化流程会注册这两个命令;预设模式不决定 initialize 是否存在。

在设置被标记为完成(config.yml 中的 setupDone)之前,拥有 cannonrtp.admin 的玩家会在加入约 10 秒后收到一条聊天提醒,其中带有指向 /wc initialize 和 /wc setup 的可点击链接。首次设置菜单中的每个选项(Recommended Setup、Manual Setup、Use Current Content)都会将 setupDone 设为 true 并停止提醒。

上述所有管理员子命令都需要 cannonrtp.admin 权限。

这些 Nightbreak 命令随 CannonRTP 一并发布

/wc setup、/wc initialize、/wc recommendedplugins、/wc downloadpluginupdate、/wc applypluginupdate、/wc downloadall、/wc downloadallcontent、/wc updatecontent 和 /wc forcereinstallcontent 由内置(shade)进 CannonRTP 的共享 MagmaCore 库提供。它们会自动注册 —— 你不会在 plugin.yml 中看到它们。另外独立的 /nightbreaklogin 命令(同样来自 MagmaCore)用于将服务器关联到你的 Nightbreak 账户以进行高级下载,/nightbreaklogout 则用于断开关联(参见断开一台服务器的关联)。

MagmaCore 还会注册 /wcchangelog,向管理员显示未读的 CannonRTP 及炮台内容包版本说明。参见更新日志通知。

有关 /wc setup、/wc downloadall 和 /wc updatecontent 实际管理的内容详情,请参阅内容包页面。

create、place、remove 和 delete 的区别

一份炮台配置(plugins/CannonRTP/cannons/<id>.yml)可以驱动世界中的多个放置点。create 创建配置并放置第一个实例。place 为现有配置追加一个放置点。remove 删除一个放置点(你所在世界中距离最近的那个),但保留配置。delete 直接删除配置文件,从而删除所有放置点。三个内置文件(example_cannonrtp、cannonrtp_free_cannon、cannonrtp_premium_cannon)会在随后的重新加载中以默认值、无放置点的状态重新生成。

玩家交互​

没有供玩家激活炮台的命令。玩家通过走入炮台的触发半径(triggerRadius,默认 1.75 格)来使用 CannonRTP。

权限​

在 plugin.yml 中注册了两个权限节点:

权限默认描述
cannonrtp.adminop所有管理员子命令所需(包括捆绑的 Nightbreak setup / downloadall / updatecontent 命令)
cannonrtp.usetrue玩家触发任何炮台前所需

共享的 /nightbreaklogin 和 /nightbreaklogout 命令(由 MagmaCore 提供,未在 CannonRTP 的 plugin.yml 中声明)使用其自有的 nightbreak.login 权限节点,默认为 op。

cannonrtp.use 的运作方式​

如果玩家没有 cannonrtp.use 权限,炮台会静默忽略该玩家。基础权限检查不会发送任何拒绝消息 —— 他们只是会直接穿过炮台区域而不会被发射。

单炮台权限门控​

每个炮台配置还可以定义一个 requiredPermission 字段。

  • 如果 requiredPermission 为空(默认),炮台仅检查 cannonrtp.use。
  • 如果设置了 requiredPermission,且玩家有 cannonrtp.use 但缺少该单炮台节点,CannonRTP 会发送已配置的 noPermission 消息,其中包含炮台的显示名称。该消息对每个玩家在每个炮台上限速为每 3 秒一次。

Tab 补全​

作用于现有炮台的命令(place、remove、delete、target、center)会从已知的炮台配置 id 列表中对 <id> 进行 Tab 补全,并且只接受已经存在的 id。/wc create 是例外:它的 <id> 和 <display_name> 是自由文本,因此 Tab 补全只会显示 <id> / <display_name> 提示。接受 <world> 参数的命令会从当前已加载的世界名称列表中进行 Tab 补全,而 /wc forcereinstallcontent 会补全 all 以及每个 Nightbreak 包的 slug。