跳到正文
烈焰甘蔗Wiki

/spiceoflife reset 命令

基本信息

属性 值
命令名 spiceoflife
子命令 reset
完整用法 /spiceoflife reset [player]
权限等级 0(未重写 getRequiredPermissionLevel(),沿用 CommandBase 默认 0)
注册方式 FMLServerStartingEvent → event.registerServerCommand

[!WARNING] 已订正(本轮源码审计)

  • 权限描述错:原文写"带玩家参数时,重置指定玩家的数据(需要服务器权限)"。实际没有任何权限检查 —— 该类既未重写 getRequiredPermissionLevel() 也未重写 canCommandSenderUseCommand(),而 getPlayer(sender, name) 只做在线玩家名匹配、不校验权限。因此任何玩家都能重置他人数据(CommandResetHistory.java:16-55)。这与同分类的 /foodlist 命令 行为不一致(那边显式判了等级 4),疑似源码缺陷。
  • 补记 reset() 实际清空的字段范围:最近历史、全量历史、累计食用次数、日志发放标记、活跃 tick 数(FoodHistory.java:166-173)。
  • 补记 Tab 补全与用法错误分支(CommandResetHistory.java:20-27, 67)。

功能

重置指定玩家(或命令执行者)的所有食物历史数据,并在完成后立刻把历史重新同步给该玩家。

  • 不带玩家参数时,重置命令执行者自身的数据
  • 带玩家参数时,重置指定玩家的数据(无需服务器权限)

被重置的字段

字段 含义 是否清零
recentHistory 最近 N 条食物历史(默认 12) 是
fullHistory 曾经吃过的唯一食物全集(里程碑数据源) 是
totalFoodsEatenAllTime 累计食用次数(受 new.player.food.eaten.threshold 影响) 是
wasGivenFoodJournal 是否已发放过食物日志 是
ticksActive 玩家活跃 tick 计数 是

额外心形不会立即被扣除:fullHistory 清空后 ProgressInfo 缓存失效,额外生命值要等下一次 MaxHealthHandler.updateFoodHPModifier() 被调用时才重算并回落(FoodHistory.java:166-177、MaxHealthHandler.java:28-41)。

参数

参数 类型 必需 说明
reset 字符串 是 子命令标识,其它值抛用法错误
player 玩家名 否 目标玩家,默认命令执行者;不校验权限

使用示例

/spiceoflife reset          -- 重置自己的食物历史
/spiceoflife reset Steve    -- 重置玩家 Steve 的食物历史(任何玩家均可执行)

Tab 补全:第一个参数补 reset,第二个参数补在线玩家名(CommandResetHistory.java:20-27)。

相关条目

浏览全部模组