指令
VisualProspecting 注册 2 棵 Brigadier 命令树 + 1 条客户端指令。全部通过 GTNHLib 的 BrigadierApi.getCommandDispatcher() 注册(commands/VPCommand.java、commands/VPAdminCommand.java),不是 1.7.10 原版的 ICommand / CommandBase 体系。
/vp — 所有玩家可用
VPCommand.register()(VPCommand.java:17-26):
| 指令 | 作用 |
|---|---|
/vp |
显示用法(visualprospecting.command.vp.root.usage) |
/vp team |
显示用法(visualprospecting.command.vp.team.usage) |
/vp team info |
本队勘探数据概况(VPTeamCommand.cmdInfo(ctx, false)) |
/vp team info detailed |
本队勘探数据详情(VPTeamCommand.cmdInfo(ctx, true)) |
/vp_admin — 权限等级 2;servercache / debug 子树要求等级 4
VPAdminCommand.register()(VPAdminCommand.java:19-67)。根命令用 canCommandSenderUseCommand(2, "vp_admin") 判定,servercache 与 debug 两个子树额外要求等级 4。
| 指令 | 权限 | 作用 |
|---|---|---|
/vp_admin |
2 | 显示用法 |
/vp_admin team |
2 | 显示用法 |
/vp_admin team info |
2 | 显示用法(需带玩家名参数才执行) |
/vp_admin team info <玩家> |
2 | 查看指定玩家数据(cmdInfo(ctx, false)) |
/vp_admin team info <玩家> detailed |
2 | 查看指定玩家数据详情(cmdInfo(ctx, true)) |
/vp_admin team upload <玩家> |
2 | 强制上传指定玩家数据 |
/vp_admin team clear <玩家> |
2 | 清除指定玩家数据 |
/vp_admin servercache |
4 | 显示用法 |
/vp_admin servercache rebuild |
4 | 显示用法 |
/vp_admin servercache rebuild all |
4 | 重建全部维度的矿脉缓存 |
/vp_admin servercache rebuild spawn |
4 | 只重建出生点附近的缓存 |
/vp_admin debug |
4 | 显示用法 |
/vp_admin debug vein |
4 | 调试矿脉数据(VPAdminDebugCommand::cmdDebugOreVein) |
中文服务器注意:servercache 与 debug 要求的是原版 op 等级 4,不是 2。在只有 1–2 级 op 的服务器上,非满级管理员无法执行重建缓存。
vp_client_cache_reset — 客户端指令
ResetClientCacheCommand(commands/ResetClientCacheCommand.java),用法字符串是本地化键 visualprospecting.command.client.resetcache.usage。功能是清空客户端本地缓存,用于数据不同步时手动重置。
参数辅助
CommandHelpers(commands/CommandHelpers.java)提供两个工具:
sendUsage(ctx, key)— 发送本地化用法文本playerNameArg(ARG_PLAYER)— 生成玩家名参数节点,供VPAdminTeamCommand的info/upload/clear复用
已知缺陷
-
servercache与debug的权限等级 4 偏高。servercache rebuild all是最常用的运维指令(修复矿脉缓存不同步),却与纯调试指令debug vein共享等级 4。类注释只说 “available to ops and from console”(VPAdminCommand.java:12),与实际的等级 4 门槛不符。 -
/vp team只有 info 一条子命令。/vp team本身只sendUsage,不提供任何操作入口,玩家无法从/vp team层面切换共享(该功能在配置项enableTeamSharing)。