/stevesaddons 指令
基本信息
| 属性 | 值 |
|---|---|
| 类 | stevesaddons.registry.CommandRegistry |
| 指令名 | stevesaddons |
| 默认用法提示 | /stevesaddons help |
| 无参数时 | 自动执行 help |
| 可见性检查 | canCommandSenderUseCommand 恒返回 true,即指令本身对所有人可见 |
| 权限 | 分级:help、clear = -1(所有人);save、load、pastebin = 2(OP) |
功能
/stevesaddons 指令提供 SFM Drive 布局的保存、加载、清除和 Pastebin 上传/下载功能。
子命令
| 子命令 | 权限等级 | 功能 | 语法 |
|---|---|---|---|
help |
-1 | 显示所有可见子命令,或某个子命令的说明与语法 | /stevesaddons help [command] |
save |
2 | 将手持 SFM Drive 的布局保存为 .nbt 文件 |
/stevesaddons save [filename] |
load |
2 | 将保存的 .nbt 文件读入手持的 SFM Drive |
/stevesaddons load [filename] |
clear |
-1 | 清空手持 SFM Drive 的 NBT | /stevesaddons clear |
pastebin |
2 | 通过 Pastebin 上传/下载布局 | /stevesaddons pastebin put [name] / /stevesaddons pastebin get <id|url> |
pastebin get 的第二参数既接受粘贴 ID,也接受完整 pastebin.com/xxx URL(helpers/Threaded.java:52-53 会做正则剥离);put 的第三参数是可选的粘贴名,写入 Pastebin API 的 api_paste_name(Threaded.java:108)。
注意事项
save、load、clear、pastebin要求玩家手持 SFM Drive(ItemRegistry.duplicator),否则报noDuplicator;help不需要手持任何物品(CommandHelp直接实现ISubCommand,不经过CommandDuplicator.handleCommand)save和load读写路径为<存档根目录>/managers/<name>.nbt;省略<name>时默认取执行者用户名(CommandSave.java:37-43、CommandLoad.java:26-32)。该目录在服务端启动时自动创建(StevesAddons.java:125-126)save会剥离x/y/z并写入Author;load补回 6 个基础键(id、Variables、Components、Timer、ProtocolVersion、ench)pastebin会启动后台线程(helpers/Threaded.java);可见条件为「非专用服务器(单人/局域网)或白名单用户名」,白名单来自配置项General.pastebin_whitelist(默认含hilburn)(CommandPastebin.java:61-64、helpers/Config.java:22-24)- 除
help外,子命令的isVisible需通过sender.canCommandSenderUseCommand(权限等级, 子命令名);CommandRegistry另有一条兜底:权限等级 ≤ 0 时任何服务器玩家均可执行(CommandRegistry.java:60-66)
已订正(审计)
- 权限:原文「所有子命令公开访问(无权限检查)」有误。
CommandDuplicator.getPermissionLevel()返回2(commands/CommandDuplicator.java:64-66),save/load/pastebin均继承它,实际要求 OP 等级 2;help与clear各自覆写为-1(CommandHelp.java:29-32、CommandClear.java:19-21)。权限校验点在CommandRegistry.java:60-67。 - 「所有子命令要求手持 SFM Drive」:
help不经CommandDuplicator.handleCommand,无手持校验,已改为「除help外」。 - 保存路径:原文
<存档目录>/managers/.nbt遗漏了文件名占位。实为<存档目录>/managers/<name>.nbt,缺省<name>为玩家名。 - pastebin 可见性:原文「仅在单人游戏或专用服务器白名单用户名中可见」不准确。判定是「非专用服务器」或「白名单」,即局域网主机也满足前者(
CommandPastebin.java:62-63)。 - pastebin 语法:
put的<name>是可选的(Threaded.java:108);get额外接受完整 URL。已补正。 - 子命令清单(help/save/load/clear/pastebin 共 5 个)与源码注册顺序一致(
registry/CommandRegistry.java:26-32),未改动。