/foodlist 命令
基本信息
| 属性 | 值 |
|---|---|
| 命令名 | foodlist |
| 参数 | <size|sync> [player] |
| 完整用法 | /foodlist <size|sync> [player] |
| 权限等级 | 0(getRequiredPermissionLevel() 显式返回 0) |
| 注册方式 | FMLServerStartingEvent → event.registerServerCommand |
[!WARNING] 已订正(本轮源码审计)
size的描述完全错:原文写"显示食物历史当前长度(食物数量)"。实际size打印的是四行:标题 + Half-Shanks(半格数,食物点数) + Bonus Hearts + Half-Shanks until next bonus heart(距下一里程碑的点数)。它读的是ProgressInfo,与food.history.length(最近历史条数)毫无关系(CommandFoodList.java:71-90)。[player]参数的权限语义漏写:只有发送者具备权限等级 4(OP)时该参数才生效;否则静默回落为自己,不报错也不提示(CommandFoodList.java:66-68)。- 补上 Tab 补全行为(
CommandFoodList.java:33-40)与参数错误时的WrongUsageException(:98)。
功能
查看或同步玩家的食物历史与里程碑进度。
子命令
| 子命令 | 说明 |
|---|---|
size |
打印该玩家的食物点数(Half-Shanks)、已达成的额外心形数、以及距离下一里程碑还差多少点数 |
sync |
强制把该玩家的食物历史同步到客户端 |
size 的实际输出(CommandFoodList.java:77-89):
<玩家名>'s food stats:
Half-Shanks worth eaten: <已累计食物点数>
Bonus Hearts: <已达里程碑数 × hearts.milestones.reward>
Half-Shanks until next bonus heart: <距下一里程碑的点数>
Bonus Hearts 一行输出的是里程碑数 × 每次奖励心形数(默认 1),不是生命点数。
权限与目标玩家
| 发送者权限等级 4 | [player] 参数的效果 |
|---|---|
| 是 | 查询指定玩家 |
| 否 | 静默查询自己(该参数被忽略,不报错) |
参数
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
action |
字符串 | 是 | size 或 sync;其它值抛用法错误 |
player |
玩家名 | 否 | 目标玩家,默认为命令执行者;仅在发送者为 OP 时生效 |
使用示例
/foodlist size -- 查看自己的食物点数与里程碑进度
/foodlist size Steve -- OP 专用:查看玩家 Steve 的数据;非 OP 时仍显示自己
/foodlist sync -- 强制同步自己的食物历史到客户端
/foodlist sync Steve -- OP 专用:强制同步玩家 Steve 的食物历史
Tab 补全:第一个参数补 size / sync,第二个参数补在线玩家名(CommandFoodList.java:33-40)。
相关条目
- /spiceoflife reset 命令 - 重置食物历史
- Extra Hearts - 里程碑额外心形
- Diminishing Returns - 递减收益机制