自定义时间周期

自定义时间周期

允许自定义Minecraft昼夜时长,而不改变游戏刻速度。

游戏机制

自定义时间循环

Modrinth 版本 Modrinth 游戏版本 Modrinth 下载量 Discord 徽章 Github 徽章 GitHub 许可证 适用于 Fabric 适用于 NeoForge

自定义时间循环是一款允许通过简单命令改变 Minecraft 白天和黑夜时长的模组,无需改变游戏刻速度。它同时支持 Fabric 和 NeoForge。可用于服务器(客户端无需安装),也支持单人游戏。

自 Minecraft 26.1 起,自定义时间循环允许更改时钟上每个时间标记之间的持续时间/变化速率,这些标记是数据驱动的。这让你可以非常精细地控制时钟时间的推进速率。

该模组还对村民行为进行了小幅修复,使其在白天/黑夜时长比原版更长的情况下仍能正常生成铁傀儡。

许可证

本模组采用 GNU LGPLv3 许可证。

捐赠

如果你喜欢这个模组,请考虑捐赠。

Discord

如需支持或有任何疑问,欢迎加入我的 Discord。

版本支持

Minecraft 版本 状态
26.2.x ✅ 当前版本
26.1.x ✔️ 可用
1.21.11 ✔️ 可用
1.21.9+10 ✔️ 可用
1.21.6+7+8 ✔️ 可用
1.21.5 ✔️ 可用
1.21.4 ✔️ 可用
1.21.2+3 ✔️ 可用
1.21+1 ✔️ 可用
1.20.5+6 ✔️ 可用
1.20.4 ✔️ 可用
1.20.1 ✔️ 可用

我会尽量保持对 Minecraft 最新版本的支持。由于我并非总能立即更新我的模组,对新版 Minecraft 的更新有时可能会延迟。

不受支持的版本仍可下载,但不会获得新功能或错误修复。

NeoForge 移植版适用于 Minecraft 1.21+1 及 Minecraft 1.21.9 以上版本。

使用方法

在 Fabric 上,需要安装 Fabric API。当模组仅在服务端安装时,客户端无需安装。时间标记的时长可为每个周期性世界时钟进行配置,并会在服务器重启/世界保存后保留。

对于客户端,可在创建世界时配置时间循环,方法是选择顶部的"更多"选项卡,然后点击"时间循环"按钮。你也可以在模组的全局配置界面中为所有新建世界配置默认的时间循环时长。在 Fabric 上可通过 ModMenu 模组访问,在 NeoForge 上可使用内置的模组菜单。全局配置存储于 .minecraft/config/customtimecyle.json。

该模组还添加了一个简单命令 /timecycle,可用于在服务器和已有的单人世界中更改时间循环。其用法如下:

  • /timecycle status
    • 显示一条简单的状态信息,展示当前维度当前使用的时间时长和速率。
  • /timecycle set <白天时长> <夜晚时长>
    • 修改当前维度中 Minecraft 白天和夜晚的时长。
  • /timecycle set from <起始> to <结束> duration <时长>
    • 修改当前维度中 2 个时间标记之间的时长(以游戏刻为单位)。
  • /timecycle set from <起始> to <结束> rate <速率>
    • 修改当前维度中 2 个时间标记之间的时间推进速率。
  • /timecycle reset
    • 重置当前维度中所有时间标记的速率。
  • /timecycle of <时钟> ...
    • 允许运行上述所有命令,但针对该特定时钟而非当前维度的时钟。

该模组所做的速率修改叠加于原版 /time rate 命令之上。

使用 /timecycle 命令需要 timecycle.command 权限或操作员等级 2。

整合包开发者还可以在 config 文件夹中包含以下文件来为服务器或客户端的世界预配置时间循环时长:

{
  "daytime": <白天时间游戏刻>,
  "nighttime": <夜晚时间游戏刻>
}

工作原理(技术说明)

自 Minecraft 26.1 起,游戏引入了"时钟"概念。在原版中只有 2 个时钟,其中与本模组相关的主要是 1 个:用于主世界维度的 minecraft:overworld 时钟。

Minecraft 中的时钟控制时间线,可以以自定义速率推进,但默认情况下,它们以与服务器游戏刻速率相同的速度推进:每秒 20 游戏刻。在原版中,可以使用 /time rate 命令为整个时钟配置该速率。

本模组允许基于时间标记配置时钟推进的速率。时间标记标明了时钟上的特定时刻,例如 minecraft:day 表示白天的开始,或 minecraft:midnight 表示午夜。你在 /time set 命令中也见过这些标记。该模组为原版 minecraft:overworld 时钟添加了 2 个自定义时间标记:customtimecycle:sunrise 和 customtimecycle:sunset。这些主要用于兼容旧版本,并用于 /timecycle set <白天时长> <夜晚时长> 命令。

如前所述,该模组可作用于任何周期性时钟,如 minecraft:overworld。这使其能很好地与使用自定义时钟的数据包/模组添加的自定义维度配合使用。