Thermoo Neoforge 4.8.1-neoforge
on 2026 Mar 09Thermoo 4.8.1 适用于 Minecraft 1.21.1
- 新增了可使用命令
/thermoo temperature effect set_enabled为每个实体动态启用或禁用温度效果的功能。 - 修复了部分温度效果未被正确移除的问题。
- Hotfix 4.8.1:将接口注入数据作为分类构件发布
Thermoo Neoforge 4.8.0-neoforge
on 2026 Mar 09Thermoo 4.8.0 for Minecraft 1.21.1
- 新增了按实体动态启用或禁用温度效果的功能,可使用命令
/thermoo temperature effect set_enabled。 - 修复了部分温度效果未能被正确移除的问题。
Thermoo 10.0.0-alpha.1
on 2026 Mar 06适用于 Minecraft 26.1-snapshot-11 的 Thermoo 10.0.0 Alpha 1
这是 Thermoo 10 在 Minecraft 26.1 上的首个预发布版本。这是一个 alpha 版本,API 目前仍然极不稳定,因为后续还计划进行进一步的破坏性改动。 因此,文档也尚未更新! Thermoo Docs 将在 26.1 的 API 改动最终确定后完整更新。
这个版本主要是为了让我能抢先开始更新霜冻和焦土,同时也向任何愿意参与的人开放 Thermoo 的公开 Bug 测试。
- 已开始为 API 包添加版本号。
- 目前已影响以下包:
com.github.thedeathlycow.thermoo.api.command->com.github.thedeathlycow.thermoo.api.command.v1com.github.thedeathlycow.thermoo.api.temperature.effect->com.github.thedeathlycow.thermoo.api.temperature.status.v2
- 在 26.1 正式完整发布前,还会有更多包被迁移。
- 目前已影响以下包:
- 已从 API 中移除命令定义类。
- 这些现在属于实现类。
- 已将命令 API 中的
*ArgumentType类重命名为*Argument。 - 已将温度效果 API 替换为温度状态 API(#104)。
- 已添加温度状态标签(#106)。
温度状态 API
温度效果 API 已被重写并重命名为温度状态 API,以便更好地区分 JSON 文件(状态)与实际执行工作的效果类型。这个 API 整体上完成的事情基本相同,不过以下是改动总结:
- 将
thermoo/temperature_effect注册表替换为thermoo/temperature_status注册表 - 新的状态注册表现在是真正的注册表,支持标签、同步、
Holder等等。 - 用直接的
effects列表项替换了config对象。 - 将类型委托移动到效果条目中,而不是注册表对象的根级别。
- 将
attribute_modifier和scaling_attribute_modifier合并为单一类型,并通过字段加以区分。 - 移除了
empty和sequence类型,它们已不再需要。 - 添加了通过
thermoo:application_order温度状态标签来定义状态应用顺序的方法。
这也移除了一些功能:
- 温度状态不再支持“热重载”;你必须重启服务器才能重新加载它们。
loading_priority字段已被移除。这个字段原本的设计目的是让 Thermoo Patches 能通过检查起源来覆盖霜冻/焦土的效果。这个用途后来被启用 API 取代了。目前尚不清楚是否还有其他人将其用于某些确实必要的功能,因此它将被移除。
迁移示例
旧效果
{
"type": "thermoo:damage",
"temperature_scale_range": {
"max": -0.99
},
"config": {
"amount": 1,
"damage_interval": 20,
"damage_type": "minecraft:freeze"
}
}
新状态
{
"temperature_scale_range": {
"max": -0.99
},
"interval": 20,
"effects": [
{
"type": "thermoo:damage",
"amount": 1,
"damage_type": "minecraft:freeze"
}
]
}
Thermoo 4.8.0
on 2026 Mar 03Thermoo 4.8.0 for Minecraft 1.21.1
- 新增通过命令
/thermoo temperature effect set_enabled动态按实体单独启用或禁用体温效果的功能。 - 修复了部分体温效果未能正确移除的问题。
Thermoo 9.1.0
on 2026 Feb 21Thermoo 9.1:大气压
- 新增通过命令
/thermoo temperature effect set_enabled动态按实体启停温度效果的功能。 - 在
ConfiguredTemperatureEffect类中新增 Java API,用于动态按实体启停温度效果。 - 在 F3 调试画面中新增 Thermoo 专属条目,默认处于禁用状态。
- 新增一种大气压环境组件类型。
- 此组件以毫巴(mbar)为单位存储局部大气压。
- 新增一个大气压游戏环境属性。
- 该属性用作环境组件映射的默认值。
- 在
/thermoo environment命令中新增子命令,用于获取指定方块位置的大气压数值。 - 新增
thermoo:set_temperature_from_pressure环境提供器类型。 - 新增
thermoo:set_pressure_from_altitude环境提供器类型。 - 现在可通过
/thermoo environment relative_humidity查询相对湿度。- 旧命令
/thermoo environment relativehumidity仍可使用,但已弃用。
- 旧命令
Thermoo Neoforge 4.7.1+neoforge
on 2025 Dec 22Thermoo for Neoforge 1.21.1
Thermoo 现已通过 Forgified Fabric API 移植至 Neoforge 1.21.1。此移植版本可能尚未完全稳定,因此以 Alpha 版本发布。不过,该版本不再需要 Connector,因而运行表现应会更佳。
请注意,此移植版本未包含 Polymer 补丁,因为 Polymer 是仅限 Fabric 的模组。若您希望在服务端结合 Polymer 使用 Thermoo,则仍需使用通过 Connector 适配的 Fabric 版 Thermoo。
我目前不计划将此移植版本更新至除 1.21.1 以外的任何其他游戏版本。 FFAPI 目前尚无适用于更高版本的支持,且我个人对 1.20.1 版本亦无更新兴趣(更不用说还需将 Thermoo 1.20.1 转译为 Mojmap 映射)。若将来 FFAPI 更新支持更高版本的 Minecraft,我也将重新制作对应版本的移植版。
相较于 Thermoo 4.7.0+neoforge 的变更:
- 4.7.1:发布接口注入数据
Thermoo Neoforge 4.7.0+neoforge
on 2025 Dec 22Thermoo for Neoforge 1.21.1
Thermoo 现已通过 Forgified Fabric API 移植到 Neoforge 1.21.1。此版本目前可能尚未完全稳定,因此以 Alpha 版本发布。不过,它 不 需要 Connector,因此运行效果应会更好一些。
服务器管理员请注意,此移植版本不包含 Polymer 补丁,因为 Polymer 是仅限 Fabric 的模组。如果你希望在服务端使用 Polymer 搭配 Thermoo,仍需通过 Connector 使用 Thermoo 的 Fabric 版本。
我并不计划将此移植版本更新至除 1.21.1 以外的任何其他游戏版本。 目前 FFAPI 尚未支持更高版本,而我对 1.20.1 版本也毫无兴趣(更不用说我还得将 Thermoo 1.20.1 转换为 Mojmap 映射)。如果/当 FFAPI 更新支持更高版本的 Minecraft 时,我也会为对应版本重新制作该移植版。
Thermoo 9.0.0
on 2025 Dec 19膳魔师保温杯 9.0.0
此更新将膳魔师保温杯(Thermoo)升级至 Minecraft 1.21.11。根据长期支持(LTS)政策,本版本标志着对 Minecraft 1.21.9-10 的支持正式结束。
- 更新至 Minecraft 1.21.11。
- 新增环境属性以控制季节与温度。
- 重构了季节 API,以更好地支持环境属性的集成。这对所有使用 Java 端 Seasons API 的用户来说是一次重大破坏性变更。详见下文说明。JSON API 应保持完全不变。
- 新增一种
mild(温和)热带季节。
环境属性
膳魔师保温杯现在提供了多个新的环境属性,将这一新的原版系统与季节和温度相集成。这些新属性已在 Thermoo 维基 上详细记录。
季节 API 重构
季节 API 已被重构,总体上有两项主要变更,旨在支持更好的未来可扩展性:
第一,ThermooSeason 枚举已转换为一个接口,由两个独立的枚举分别实现:用于温带的 TemperateSeason 和用于热带的 TropicalSeason。此次变更还新增了一种 mild 热带季节,用以表示从雨季到旱季之间的过渡阶段。
第二,季节事件返回的类型已从“可选的季节”更改为“可选的季节状态”(season state),该状态不仅包含原始的季节信息,还新增了一个 progress(进度)值。这能够捕捉某一时刻下季节的“状态”。新的 progress 值是一个范围在 [0, 1] 之间的数字,表示当前季节的推进程度。
以下是基本迁移概览:
ThermooSeason.SPRING→TemperateSeason.SPRINGThermooSeason.AUTUMN→TemperateSeason.AUTUMNThermooSeason.SUMMER→TemperateSeason.SUMMERThermooSeason.WINTER→TemperateSeason.WINTERThermooSeason.TROPICAL_DRY→TropicalSeason.DRYThermooSeason.TROPICAL_WET→TropicalSeason.WET- 新增
TropicalSeason.MILD ThermooSeason#getCurrentSeason(Level)→TemperateSeason#getCurrentState(Level, BlockPos)(注意增加了BlockPos参数)ThermooSeason#getCurrentTropicalSeason(Level, BlockPos)→TropicalSeason#getCurrentState(Level, BlockPos).map()
示例:
-Optional<ThermooSeason> season = ThermooSeason#getCurrentSeason(level);
+Optional<TemperateSeason> season = TemperateSeason#getCurrentState(level, pos).map(ThermooSeasonState::season);
ThermooSeasonEvents.GET_CURRENT_TROPICAL_SEASON.register(
(level, pos) -> {
- return Optional.of(ThermooSeason.TROPICAL_WET);
+ return Optional.of(TropicalSeason.WET.createState());
}
);
Thermoo 8.1.1
on 2025 Nov 22- 环境刻上下文所选的实体位置现在基于实体的根载具,而非其实际位置。
- 此更改修复了 Frostiful 中的一些衍生问题,例如玩家在船中时不会回暖。参见 #90。
Thermoo 4.7.1
on 2025 Nov 22- 环境刻(environment tick)上下文中所选的实体位置现在基于实体的根载具(root vehicle),而非其实体实际位置。
- 此更改修复了 Frostiful 中的一些衍生问题,例如玩家在船中时无法正常预热。详见 #90。
Thermoo 4.7.0
on 2025 Nov 05迁移至 Mojang 映射
这是 Thermoo 8.1.0 针对 Minecraft 1.21.1 的回退版本
由于 Mojang 正在推进取消代码混淆,并预计 Fabric 将转向使用 MojMap,我已将 Thermoo 重映射为 MojMap。这对 Thermoo 的代码层面是一次重大变更,但得益于 intermediary 的存在,公共 API 不应出现任何破坏性变化。不过,我可能仍遗漏了一些问题,因此此版本将最初以测试版(beta)形式发布。
尽管目前暂无计划引入破坏性更改,但部分字段和方法已重命名,以更好地符合官方映射标准。具体变更如下:
EnvironmentProvider.ENTRY_CODEC→EnvironmentProvider.HOLDER_CODECLightThresholdLightProvider#lightType→LightThresholdLightProvider#lightLayerAttributeModifierTemperatureEffect$Config#id→AttributeModifierTemperatureEffect$Config#locationScalingAttributeModifierTemperatureEffect$Config#id→ScalingAttributeModifierTemperatureEffect$Config#locationEnvironmentTickContext#world→EnvironmentTickContext#levelTemperatureEffects.STATUS_EFFECT→TemperatureEffects.MOB_EFFECT
温度效果类型的资源位置由 thermoo:status_effect 更改为 thermoo:mob_effect,但已添加别名,以确保现有的数据包仍可正常运行。
所有旧的字段和方法均已标记为弃用(deprecated),并直接重定向至新的字段和方法,因此不会造成任何 API 层面的破坏。
当 Minecraft 完全切换到使用非混淆 JAR(即“五月山丘”更新之后的版本)时,旧的字段将被移除,同时其他此前因会破坏公共 API 而难以更改的名称(尤其是类名)也将一并修改。
Thermoo 8.1.0
on 2025 Nov 05迁移至 Mojang 映射表
由于 Mojang 正在逐步移除混淆,并预计 Fabric 将不可避免地转向使用 MojMap,我已将 Thermoo 重映射到 MojMap。这对 Thermoo 的代码端是一次较大的变更,但得益于 intermediary 的支持,这不应对其公共 API 造成任何破坏性更改。不过,我可能仍存在疏漏,因此此版本将先以 beta 版本发布。
尽管目前暂无计划引入破坏性变更,但部分字段和方法已被重命名,以更好地符合官方映射标准。具体变更如下:
EnvironmentProvider.ENTRY_CODEC→EnvironmentProvider.HOLDER_CODECLightThresholdLightProvider#lightType→LightThresholdLightProvider#lightLayerAttributeModifierTemperatureEffect$Config#id→AttributeModifierTemperatureEffect$Config#locationScalingAttributeModifierTemperatureEffect$Config#id→ScalingAttributeModifierTemperatureEffect$Config#locationEnvironmentTickContext#world→EnvironmentTickContext#levelTemperatureEffects.STATUS_EFFECT→TemperatureEffects.MOB_EFFECT
温度效果类型 thermoo:status_effect 的资源位置已更改为 thermoo:mob_effect,但已添加别名以确保现有数据包仍可正常运行。
所有旧的字段和方法均已标记为 @Deprecated(弃用),并直接指向新的实现,因此不会造成任何破坏性变更。
当 Minecraft 完全切换至非混淆版 JAR 文件(即“五月风暴”更新之后的版本)时,这些旧字段将被彻底移除,届时一些此前因可能破坏公共 API 而未能轻易更改的名称(尤其是类名)也将一并更新。
Thermoo 8.0.2
on 2025 Nov 05- 已更新以原生支持 Minecraft 1.21.10,此版本在 1.21.9 上仍可正常运行。
Thermoo 8.0.1
on 2025 Oct 08- Thermoo 现在直接以 1.21.9 为目标版本
- 模组元数据现在要求至少 1.21.9 版本才能加载
Thermoo 8.0.0
on 2025 Oct 08Thermoo for MC 1.21.9
- 已更新至 1.21.9-rc1,此版本很可能适用于 1.21.9 的正式发布版。根据长期支持(LTS)策略,此次发布标志着对 1.21.6-8 版本支持的结束。
- 尽管 Thermoo 本身没有引入破坏性变更,但由于 Minecraft 中
Entity#getWorld()方法的更改,导致此版本与 1.21.6-8 不再保持二进制兼容,因此 Thermoo 进行了主版本号升级。 - 更新了阿根廷西班牙语翻译(感谢 Texaliuz!)
Thermoo 7.1.1
on 2025 Oct 08- 更新了阿根廷西班牙语翻译(感谢 Texaliuz!)
Thermoo 7.1.0
on 2025 Aug 29适用于 Minecraft 1.21.6-8 的 Thermoo 7.1.0:聚合物集成
Thermoo 现在可以再次在服务器端完全运行,但前提是安装了聚合物。 一些翻译将缺失,自定义命令参数将不会自动填充,但它将与 vanilla 客户端或未使用 Thermoo 的客户端兼容。这仅适用于专用服务器,不适用于单人游戏中的局域网世界。
此更新的发布不应被视为意味着我将在此时为 Frostiful 或 Scorchful 制作聚合物补丁,我主要这样做是为了使 Thermoo 可用于服务器上的自定义数据包(这曾经是 Thermoo 的一个功能)。
Thermoo 现在也在针对 1.21.8 而不是 1.21.6 进行编译,但仍应适用于 1.21.6-8。
Thermoo 4.6.0
on 2025 Aug 29适用于 Minecraft 1.21.1 的 Thermoo 4.6.0:聚合物集成
Thermoo 现在再次可以在服务器端完全运行,但前提是安装了聚合物。
一些翻译将缺失,自定义命令参数将不会自动填充,但它将与 vanilla 客户端或未使用 Thermoo 的客户端兼容。这仅适用于专用服务器,不适用于单人游戏中的局域网世界。
此更新的发布不应被视为意味着我将在此时为 Frostiful 或 Scorchful 制作聚合物补丁,我主要这样做是为了使 Thermoo 可用于服务器上的自定义数据包(这曾经是 Thermoo 的一项功能)。
Thermoo 7.0.0
on 2025 Jun 27适用于 Minecraft 1.21.6 的 Thermoo 7
此更新将 Thermoo 带到 1.21.6 版本。根据长期支持 (LTS) 政策,此版本也代表 1.21.5 版本的支持结束。当 1.21.7 版本发布时,此版本可能也能正常工作。
此更新中有一个显著的破坏性更改:状态栏叠加事件已进行重构,以降低复杂性、防止错误,并在未来更新(如果需要)时更具可扩展性。有关详细信息,请参阅 #82。
总结来说,主要更改如下所示:
-状态栏叠加渲染事件.健康条之后注册(
- (绘制上下文 ctx, 玩家实体 player, 向量 2i[] 位置, 显示健康 int, 最大显示健康 int) -> {
- // 渲染代码
- });
+状态栏叠加渲染事件.健康条之后注册(
+ (绘制上下文 ctx, 玩家实体 player, 心脏条上下文 heartBarContext) -> {
+ 序列集合<向量 2i> 位置 = heartBarContext.位置();
+ 显示健康 int = heartBarContext.当前显示半心();
+ 最大显示健康 int = heartBarContext.最大显示半心();
+
+ // 渲染代码
+ });
Thermoo 6.0.4
on 2025 Jun 19- 添加了一条消息,以帮助用户在需要时找到模组“热修补丁(Thermoo Patches)”
- 在“thermoo.properties”中添加了一个新的配置文件,可用于禁用此消息


