跳到正文
烈焰甘蔗Wiki

/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),未改动。
浏览全部模组