Skip to content

常见问题

从静谧四季到节气

代码兼容

这个问题可能一言难尽。曾经我有一个计划是做一个Hook中间层。后面担心现有部分模组可能也兼容节气,所以这样反而会有新问题。 不过代码层面偶尔有差别问题也不大,所以我最终是做了一个Ecliptic Seasons: MultiMod Patch。 通过主动提供一些兼容来处理基础问题。

标签兼容

这件事情就好说多了。可以参考数据包基本一章里的季节性作物与湿度条件一节。 如果有模组提供了静谧四季的标签,那么季节性就可以有了。 但是如果你是整合包作者,仍然推荐你使用节气自己的季节标签,出于兼容性考虑,因为有些情况下会仅引用节气的标签来进行判定。 但不管如何,湿度条件总是要自行添加,不过一般也非常简单。

问题检测

检测服务器卡死问题(非节气也可以使用)

  1. 打开命令提示符(CMD)

  2. 列出 Java 进程
    运行命令:


jps -l

找到显示 Minecraft 的那一行,左侧的数字即为 PID(进程ID)。

  1. 生成线程转储

运行命令:


jstack <PID> > a.log

示例:


jstack 42928 > a.log

这将在当前目录生成名为 a.log 的文件。

  1. (可选)指定输出文件路径或文件名

示例:


jstack 42928 > D:\logs\mc\_thread\_dump.txt

  1. 如果出现类似错误 'jstack' 不是内部或外部命令

  2. 找到你的 Java 安装路径,例如: C:\Program Files\Java\jdk-17\bin

  3. 使用 cd 命令进入该目录: cd "C:\Program Files\Java\jdk-17\bin"
  4. 然后重新运行 jstack 命令。

兼容性

某个作物是否根据季节和湿度生长?/ 是否支持特定模组的季节作物?

其实,问法反过来会更好。节气本身并不直接支持特定作物或方块,
因为当所有模组叠加时,方块数量可能达到数万。你可以通过手动添加标签来实现兼容。

如果你使用的模组已经支持静谧四季,且你未关闭兼容设置,那么季节作物的行为将被继承。

至于湿度,则需要单独进行配置。

这个模组和静谧四季是否兼容?

作为一个季节模组,节气与静谧四季有很多相似之处——
两者均用四季表示 Minecraft 年,改变草地和叶子的颜色,修改雨雪效果,控制季节作物生长。
但 Minecraft 已有 15 年历史,我们的目标是进一步推动季节系统的发展。

你也许尝试同时运行这两个模组,发现在下雨时游戏崩溃,就认为是新模组导致的。
实际上问题出在静谧四季使用了不兼容的 @Redirect mixin 来缓存数据,
而没有用本地变量捕获(早期 Mixin 时代也是可行的)。这种设计使代码非常脆弱。

有时没有崩溃,可能是因为你安装了Pretty Rain等模组,它们提供了独立的渲染逻辑,
绕开了风险较高的静谧四季代码,从而防止了崩溃。

命令

Season(季节)

你可以使用如下命令设置当前的天数计数和节气:


/ecliptic solar set 99

如果记得节气名称,也可以使用:


/ecliptic solar setTerm beginning_of_autumn

Weather(天气)

你可以使用:


/weather rain

但这属于 节气的兼容行为,会强制所有群系改变天气状态。

更好的做法是使用:


/ecliptic weather <biome> rain

其中 <biome> 可以是群系标签或群系 ID。

Time(时间)

节气会覆写原版命令,因此:


/time set night

会根据季节动态变化。