跳到主要内容

EternalTD 命令

EternalTD 注册根命令:

/eternaltd
/etd

设置期间使用的 Nightbreak 账户命令是由 MagmaCore 注册的独立顶层命令:

/nightbreaklogin <token>
/nightbreaklogout

两者都受 nightbreak.logindefault: op)保护。/nightbreaklogout 会从服务器清除已保存的 Nightbreak 账户令牌。

MagmaCore 还会注册一个按插件划分的更新日志命令 /etdchangelog,它同样是一个独立的顶层命令(参见发布更新日志)。

设置和内容管理

这些子命令大多由 MagmaCore 通过 NightbreakPluginBootstrap.registerStandardCommands 注册。它们在所有 Nightbreak 插件之间共享,并随 EternalTD 一起发布,因为 MagmaCore 被着色(shade)进了该插件。

命令发送者当前用途
/etd任何人输出当前设置/内容快速入门帮助。现在确实需要 eternaltd.* —— 没有该权限的发送者会收到 "You do not have permission to run this command!"
/etd initialize玩家打开首次设置菜单。所需权限: eternaltd.*.
/etd setup玩家打开 EternalTD 设置菜单(包浏览器,加上共享的插件更新、推荐插件和自动更新控制项)
/etd recommendedplugins任何人打开(玩家)或输出(控制台)EternalTD 的推荐配套插件
/etd downloadpluginupdate任何人如果有可用的 EternalTD 插件更新,则下载它(在下次重启后生效)
/etd downloadall任何人下载 EternalTD 插件更新以及所有可用内容
/etd downloadallcontent任何人下载所有可用的 EternalTD 内容(不含插件更新)
/etd updatecontent任何人下载过时的 EternalTD 内容的更新
/etd updateallcontent任何人/etd updatecontent 的别名
/etd forcereinstallcontent <package&#124;all>任何人通过正常的、经过认证的导入/重载流程重新下载内容,即使已安装的版本已经是最新的all 覆盖所有被检测为已下载的包;一个 Nightbreak slug(支持 Tab 补全)则针对单个包,即便它的文件已完全缺失也仍然有效。当某个包的文件被删除或损坏时,用它来修复。
/etd install任何人应用官方 EternalTD 资源包设置
/etd reload任何人原地重启 EternalTD(完整的禁用、加载、启用循环)

管理员注意事项:

  • EternalTD 的 plugin.yml 只声明了一个权限节点 eternaltd.*default: op),其说明为授予对管理员、设置和调试命令的访问权限。
  • 所有面向管理员的功能都归结到这一个节点:setuprecommendedpluginsdownloadalldownloadallcontentdownloadpluginupdateupdatecontent/updateallcontentforcereinstallcontentinstallreloadcheatsetwaveselectfloorselectfloorcoordinatesshowselectionregisterregister startregister end,以及不带子命令的 /etd。(共享的 MagmaCore 命令把它拆分为“管理员”“设置”和“初始化”三种权限,但 EternalTD 三者都传入 eternaltd.*,因此实际要求完全相同。)
  • 两个 Nightbreak 账户命令使用它们自己的节点 nightbreak.logindefault: op),该节点由 MagmaCore 在运行时注册,而不是通过 EternalTD 的 plugin.yml
  • initialize由共享引导程序注册,同样需要eternaltd.*;预设模式不会决定是否注册此命令。
  • 只有面向玩家的命令不受限制:hub/lobbyjoinstart/goquit/stop
  • 第一个参数的 Tab 补全也会按权限过滤,因此没有 eternaltd.* 的玩家只会看到面向玩家的子命令。

游戏命令

命令发送者当前用途
/etd join <level>玩家从已加载的关卡文件开始新的关卡会话。模板世界在主线程之外复制,因此该命令会先回复 "Preparing world - hang tight!",等实例就绪后再回复 "Created your world! We're ready to go."。在复制进行中再次运行会被拒绝,并提示 "Your level is already being prepared. Please wait!"
/etd start玩家开始活跃会话的第一波
/etd go玩家/etd start 的别名
/etd quit玩家结束你当前的关卡会话
/etd stop玩家/etd quit 的别名
/etd hub玩家将你传送回 EternalTD 大厅出生点。如果在游戏过程中运行,则会先干净地结束活跃会话(恢复物品栏、移除塔、删除实例世界)。需要在 config.yml 中配置大厅出生点;如果服务器拒绝了这次传送,该命令会报告失败,而不是谎称成功。
/etd lobby玩家/etd hub 的别名

调试和管理员游戏命令

命令发送者当前用途
/etd cheat玩家切换活跃会话的作弊模式
/etd setwave <wave>玩家将活跃会话跳转到特定波次

这些不是普通的玩家设置命令。它们是会话/调试工具。

地图创作命令

这些命令仍然存在于当前代码库中,用于地板选择和关卡注册工作。

命令发送者当前用途
/etd selectfloor玩家通过点击开始或停止地板角落选择
/etd selectfloorcoordinates <x1> <y1> <z1> <x2> <y2> <z2>玩家直接从坐标设置选择区域
/etd showselection <level>玩家检查并保留当前地板选区。当前实现已禁用粒子预览。
/etd register <level>玩家检查选区后清除选择。不会显示粒子,也不会保存levelLocations;请手动将地板范围写入关卡YAML。
/etd register <level> start玩家将玩家当前所站的方块添加到关卡的 startLocation 列表中
/etd register <level> end玩家将玩家当前所站的方块添加到关卡的 endLocation 列表中

发布更新日志

MagmaCore 会为每个 Nightbreak 插件额外注册一个顶层命令,命名为根命令加上 changelog

/etdchangelog
/etdchangelog dismiss
/etdchangelog disable
形式效果
/etdchangelog打开你尚未阅读的 EternalTD 版本(及被追踪的内容包)的发布说明
/etdchangelog dismiss把当前显示的版本标记为已读,并跳到下一批未读内容(如果还有的话)
/etdchangelog disable为该玩家永久停止更新日志提示

值得了解的行为:

  • 该命令仅限玩家且仅限管理员使用。这里的“管理员”指的是 op、eternaltd.*,或规范中的任意一种管理员/设置/初始化权限——而这三者 EternalTD 都设为了 eternaltd.*
  • 加入服务器的管理员会在登录约 2 秒后收到一条带有可点击 view 按钮的聊天提示,但仅当确实有未读内容、且他们没有执行过 disable 时才会出现。
  • 已读/已忽略状态、开始追踪时的版本,以及缓存的发布文本都保存在 plugins/EternalTD/nightbreak-changelogs.yml 中。
  • 如果 etdchangelog 这个标签已被其他插件占用,MagmaCore 会改为注册一个带命名空间的回退命令(eternaltd:etdchangelog)。

注意事项

  • EternalTD 的 plugin.yml 只声明根命令和 eternaltd.* 权限。子命令在运行时通过命令管理器注册。
  • /etd reload 是一次真正的插件重启:它调用插件的禁用、加载和启用流程,而不是轻量级的内容重新导入。启动时发生的一切(文件夹迁移、导入器、内容包、波次、关卡、世界模板、NPC、资源包辅助工具)都会再次运行。它不会调用 FreeMinecraftModels 的重新加载流程 —— 源代码中存在会执行该操作的方法,但没有任何地方调用它。
  • joinshowselectionregister 命令的关卡名参数是在你按 Tab 补全时解析的,而不是在插件启动时解析的,因此通过下载或重新加载新增的关卡无需重启即可出现。