Repository navigation
Commands and Map Tools
FPSMatch 的主命令是 /fpsm。/fpsm 与 /fpsm help 对普通玩家开放,用于显示当前执行者实际可用的指令;地图创建、数据保存、调试和配置修改等管理分支仍要求权限等级 2。
/fpsm
/fpsm help
/fpsm mapselect
/fpsm camera
-
/fpsm与/fpsm help从 Brigadier 的实际注册树生成帮助,自动显示参数和子分支,并按执行者权限隐藏不可用节点。 - 帮助节点可以在聊天中点击展开或折叠;展开状态按玩家分别保存,服务端重新注册指令后旧链接会失效。
-
/fpsm mapselect是客户端指令,用来打开地图选择界面;仍会检查服务端同步的访问权限。 -
/fpsm camera是客户端调试指令,显示当前镜头所有者、优先级、时间轴 tick 或基础观战模式。
扩展模组监听 RegisterFPSMCommandEvent 时,addChild(...) 添加的是权限等级 2 的管理分支;只有明确面向普通玩家的指令才使用 addPlayerChild(...)。扩展应同时通过事件的 registerHelp(...) 提供说明。
/fpsm map create <gameType> <mapName> <from> <to>
这个命令会根据 gameType 找到通过 RegisterFPSMapEvent 注册的地图构造器,然后用 mapName 和 AreaData 创建地图实例。
参数说明:
-
<gameType>:地图类型 ID,例如example_arena。 -
<mapName>:地图实例名称。 -
<from>:地图区域第一个角点。 -
<to>:地图区域第二个角点。
示例:
/fpsm map create example_arena test_map ~ ~ ~ ~30 ~20 ~30
/fpsm map modify <gameType> <mapName> debug <action>
调用 BaseMap.start()。如果 FPSMapEvent.StartEvent 没有被取消,地图进入启动流程。
/fpsm map modify example_arena test_map debug start
调用 BaseMap.reset()。适合测试地图能否恢复到初始状态。
/fpsm map modify example_arena test_map debug reset
调用 BaseMap.startNewRound()。适合回合制玩法测试新回合逻辑。
/fpsm map modify example_arena test_map debug new_round
调用 BaseMap.cleanupMap()。适合测试清理掉落物、投掷物、临时实体或临时方块的逻辑。
/fpsm map modify example_arena test_map debug cleanup
切换地图调试显示。适合查看地图区域、状态或调试信息。
/fpsm map modify example_arena test_map debug switch
/fpsm map modify <gameType> <mapName> team join [targets]
/fpsm map modify <gameType> <mapName> team leave [targets]
targets 是 Minecraft 实体选择器。如果不传,通常表示命令执行者。
示例:
/fpsm map modify example_arena test_map team join @s
玩家加入时,FPSMatch 会尝试分配可加入队伍。如果地图不允许中途加入、队伍已满或事件被取消,加入会失败。
/fpsm map modify <gameType> <mapName> team teams <teamName> players <targets> <action>
这个分支用于对指定队伍执行玩家操作。teamName 是地图中注册的队伍名,例如 red、blue 或 spectator。
旁观队伍也按普通队伍路径访问:
/fpsm map modify example_arena test_map team teams spectator players @s <action>
地图配置来自 BaseMap.addSetting(...)。
/fpsm map modify <gameType> <mapName> settings list
用于确认当前地图有哪些配置项。
/fpsm map modify <gameType> <mapName> settings get <setting>
示例:
/fpsm map modify example_arena test_map settings get allowJoinInProgress
/fpsm map modify <gameType> <mapName> settings set <setting> <value>
示例:
/fpsm map modify example_arena test_map settings set allowJoinInProgress false
value 会交给 Setting<T> 中的 parser 解析。解析失败时,配置不会成功修改。
/fpsm map modify <gameType> <mapName> settings save
/fpsm map modify <gameType> <mapName> settings load
save 把当前配置写入持久化数据。load 从已保存数据恢复配置。
/fpsm map modify <gameType> <mapName> settings reset <setting>
/fpsm map modify <gameType> <mapName> settings reset all
前者只恢复一个配置项的默认值,后者恢复该地图全部设置项的默认值。两者只改运行时值;要持久化修改仍需再执行 settings save。
能力可以提供自己的命令分支。FPSMatch 会根据能力类型把它挂到不同位置。
/fpsm map modify <gameType> <mapName> capability <capabilityCommand>
适合操作地图级能力,例如地图倒计时、全局规则、结束传送等。
/fpsm map modify <gameType> <mapName> team teams <teamName> capability <capabilityCommand>
适合操作队伍级能力,例如出生点、商店、暂停、队伍经济等。
- 注册地图类型。
- 用
/fpsm map create创建地图区域。 - 用
team join确认玩家能进入地图。 - 用
settings list检查配置项是否注册成功。 - 用
debug start测试启动流程。 - 用
debug reset测试重置流程。 - 如果是回合制玩法,用
debug new_round测试新回合流程。 - 如果实现了清理逻辑,用
debug cleanup单独测试清理行为。