Skip to content

作用

NoHunger 用于冻结玩家的原版饥饿系统,并按配置持续同步:

  • 饥饿值
  • 饱和度
  • 疲劳值
  • 登录后是否先补满再同步

默认配置:GroovyConfig/NoHunger.yml

如果你在 config.yml -> feature-scripts.config-directory 中改过脚本配置目录,请以实际目录为准。

配置示例

yml
# 是否启用该脚本
# 开启后会冻结原版饥饿值,不再自然变化
enabled: true

# 生效世界列表
# 留空 [] 表示所有世界都生效
# 示例:
# worlds:
#   - world
#   - world_nether
worlds: []

# 固定饥饿值
# 范围 0 ~ 20,默认 20 表示始终满饥饿
food-level: 20

# 固定饱和度
# 建议不要高于 food-level
saturation: 20.0

# 固定疲劳值
# 默认 0 表示不让原版饥饿机制继续累计
exhaustion: 0.0

# 玩家登录时是否先补满饥饿
# 仅在命中 worlds 配置的世界中生效
# 开启后会先设置为 20/20/0,再在下一 tick 按下面配置同步
fill-on-join: true

关键项说明

worlds

限定脚本生效的世界。

  • []:所有世界生效
  • 填世界名列表:只在这些世界生效

food-level

固定后的饥饿值,范围 0 ~ 20

saturation

固定后的饱和度。当前脚本会把它限制在不高于 food-level 的范围内。

exhaustion

固定后的疲劳值。默认 0.0,用于避免原版饥饿机制继续累计。

fill-on-join

玩家登录时是否先补满饥饿值,再在下一 tick 按配置同步。

实际行为

当前脚本会在这些时机同步玩家状态:

  • FoodLevelChangeEvent
  • PlayerJoinEvent
  • PlayerRespawnEvent
  • PlayerChangedWorldEvent

也就是说,只要玩家进入命中的世界,脚本就会尝试把饥饿相关数值拉回到配置值。

启用与重载

修改这个脚本的配置文件后,通常执行:

text
/hncore reload scripts

如果你改的是 config.yml 中的脚本目录名、脚本系统总开关等核心配置,则应执行:

text
/hncore reload

当前版本里,NoHunger 在脚本注册完成后还会立即同步当前在线玩家;因此 reload 之后,在线玩家通常会马上看到数值变化。

注意事项

  • NoHunger 只处理饥饿相关数值,不负责回血、无敌或其他战斗逻辑
  • saturation 建议不要配置得高于 food-level
  • 如果某些世界不希望受影响,优先使用 worlds 精确限制范围

联动说明

HN 系列插件文档