小智最好睡觉

小智最好睡觉

一个NeoForge服务端Minecraft模组,允许你在多人服务器上自定义“睡觉跳过夜晚”机制。

XiaoZhi ServerSleep(xiaozhiserversleep)

一个服务器端的 Minecraft 模组,基于 NeoForge,用于在多人服务器上自定义“睡觉跳过夜晚”的机制。

功能简介

  • 睡眠比例 —— 需要入睡的有效玩家百分比,以满足跳过夜晚的条件。默认 50%;允许的值为 10 的倍数(10–100)。
  • 两种跳过模式:
    • instant(瞬间) —— 直接跳到早晨(原版风格)。
    • accelerate(加速) —— 平滑地将时间快进到早晨(可见的延时摄影效果),而非瞬移;速度可调节。
  • 资格统计 —— 仅统计主世界、非旁观模式的玩家,且仅统计真正入睡(在床上躺够时间,符合原版“闭眼”延迟)的玩家。
  • 仅服务器端 —— 无客户端内容;未安装此模组的客户端仍可加入游戏。
  • 中文命令反馈,并提供模式值的Tab 补全支持。

命令(需要 OP 权限等级 3)

命令 描述
/sleep 或 /sleep help 显示帮助信息
/sleep ratio [10–100 倍数] 查看 / 设置睡眠比例
/sleep mode [instant|accelerate] 查看 / 设置跳过模式
/sleep speed [倍数] 查看 / 设置加速速度
/sleep status 显示当前设置

配置

服务器配置文件(自动生成于 config/ 文件夹中):

[sleep]
    sleepPercentage = 50      # 睡眠比例(10 的倍数)
    skipMode = "INSTANT"      # INSTANT 或 ACCELERATE
    accelerateSpeed = 5       # 每服务器 tick 推进的时间刻度数(数值越低越平滑)

通过命令所做的更改会写回该文件,并在重启后依然生效。

技术说明

  • 使用 Mixin 注入 ServerLevel 来禁用原版的自动跳过及唤醒逻辑,并运行自定义的每 tick 处理器(ServerSleepManager),以应用可配置的比例和所选模式。
  • 仅运行于主世界。
  • 模组的版本号和 jar 文件名单一来源于 gradle.properties(mod_id / mod_version / minecraft_version),生成的 jar 文件格式如:<modid>-<modVersion>-neoforge-<gameVersion>.jar。
  • 使用 ModDevGradle 构建;包含一个镜像初始化脚本,使其即使在 maven.neoforged.net 被屏蔽的地区(如中国大陆)也能正常构建。