CommandHunger

基本信息

属性 值
类名 squeek.applecore.commands.CommandHunger
类型 class extends CommandBase
命令名 /hunger
权限等级 4
启用版本 Minecraft 1.7.10

功能

直接设置玩家的饱食度值,并按需把饱和度一并压低。

用法

/hunger <0-20>          设置自己的饱食度
/hunger <0-20> <玩家>   设置指定玩家的饱食度

实现要点

  • 目标玩家解析分两支:args.length >= 2 时用 getPlayer(sender, args[0]), args.length == 1 时用 getCommandSenderAsPlayer(sender)。
  • 数值分支:args.length >= 2 时读 args[1],否则读 args[0]; 统一走 parseIntBounded(commandSender, ..., 0, 20),范围锁定 0–20。
  • 写入用 AppleCoreAPI.mutator.setHunger(...);随后仅当 当前饱和度 > newHunger 时才 setSaturation(playerToActOn, newHunger), 把饱和度压到与饱食度相同(避免饱食度低于饱和度的非法态)。
  • 无参数时抛 WrongUsageException,用法取自本地化键 applecore.commands.hunger.usage。
  • 补全仅在 args.length == 1 时提供在线玩家名列表 (MinecraftServer.getServer().getAllUsernames())。
  • 覆写 compareTo / equals / hashCode 三个方法 (1.7.10 的 IComparable 时代写法),hashCode 取命令名的字符串哈希。
  • 本命令不触发任何 AppleCore 事件——它直接写字段, 因此监听 FoodEvent.FoodEaten 的 mod 不会看到这次变化。

相关条目