![血魔法 [非官方移植版]](https://cdn8.newbeebox.com/nbbnext/2026/09/11/99a843025c2995afc73c7fea426338aa.jpeg)
血魔法 [非官方移植版]
这是血魔法模组由Minecraft 1.20.1版本非官方社区移植至Minecraft 1.21.1版本的使用NeoForge的版本。这不是血魔法的官方发布,与原始血魔法开发者无关,也未获得其官方支持。
Blood Magic 3.4.0-46-alpha
Minecraft 1.21.1 非官方移植版
⚠️ 非官方移植版 —— ALPHA / 开发中
本版本是 Blood Magic 从 Minecraft 1.20.1 到 Minecraft 1.21.1 的社区非官方移植版,使用 NeoForge。
许可证与署名
本项目是 Blood Magic 到 Minecraft 1.21.1 的非官方移植版。
原版 Blood Magic 项目由 WayofTime 及 Blood Magic 贡献者 创建。
原项目:
https://github.com/WayofTime/BloodMagic
本移植版基于并修改了原版 Blood Magic 源代码。
Blood Magic 采用 Creative Commons Attribution 4.0 International (CC BY 4.0) 许可证,本移植版同样在此许可证下分发。
本项目 并非官方发布,与原版 Blood Magic 开发者无关联,也不受其官方支持。
本移植版中所做的更改包括针对 Minecraft 1.21.1 和 NeoForge 的适配、API 迁移、兼容性修复、配方/数据生成更改、网络更改、Data Component 迁移以及各种游戏性修复。
许可证:
https://creativecommons.org/licenses/by/4.0/
该移植版已达到可游玩且更为稳定的状态,但 仍处于开发中。部分功能、集成和边缘情况仍需要额外测试和修复。
主要移植更改
Minecraft 1.21.1 / NeoForge 迁移
将 Blood Magic 1.20.1 代码库移植到 Minecraft 1.21.1
将项目迁移到现代的 NeoForge 1.21.1 API
针对新的 NeoForge 系统更新了注册表处理
更新了已弃用的 Forge 时代代码,并移除了若干过时的兼容层
将多个系统迁移到 Minecraft 1.21 的 Data Components 架构
更新了物品、方块、配方、附魔、战利品和注册表 API
清理了模组元数据和 NeoForge 依赖声明
网络
将旧的网络实现替换为合适的 NeoForge 基于 payload 的网络系统
更新了客户端/服务端数据包注册
针对 Minecraft 1.21.1 重做了网络兼容代码
在专用服务端和客户端上验证了 payload 加载
涂油(Anointments)
涂油系统进行了大量工作。
将涂油物品属性处理迁移到 DataComponents.ATTRIBUTE_MODIFIERS
应用涂油时现在会保留现有物品修饰符
需要时可再次正确移除涂油修饰符
重做了与收获相关的涂油处理
更新了涂油耐久消耗时机
通过现代 NeoForge 的
BlockDropsEvent恢复了 XP 修改改进了与 Minecraft 1.21 收获流程的兼容性
与战利品相关的涂油
已恢复并适配:
Fortune
Silk Touch
Looting
Smelting
Voiding
Fortune、Silk Touch 和 Looting 现在使用 Minecraft 1.21 的附魔/注册表系统,而非已移除的 1.20.1 行为。
当 Blood Magic 在内部重新生成战利品表时,防递归保护也得以保留。
血珠合成材料(Blood Orb Ingredient)
自定义血珠配方材料已完全迁移。
IngredientBloodOrb现在使用 NeoForge 现代的 ICustomIngredient 系统添加了正确的
IngredientType注册血珠等级匹配行为得以保留
保留了通用的
IBloodOrb支持,以兼容其他血珠实现该材料现在重新包含在运行时构建中
配方与配方序列化
Blood Magic 自定义配方基础设施的大部分已迁移到 Minecraft 1.21.1。
更新了自定义 Blood Magic 配方构建器
将配方提供器迁移到新的
RecipeOutputAPI更新了材料序列化以使用现代的
Ingredient.CODEC重做了旧的 Blood Magic 配方序列化器
为兼容配方 codec 添加了运行时解码支持
针对新的 1.21.1 数据包格式更新了配方生成
修复了生成配方使用过时路径或格式的问题
修复了服务端与客户端之间的配方同步兼容性
近期修复
修复了:
Failed to encode packet 'clientbound/minecraft:update_recipes'
问题源于 RecipeAnointmentApply,其中 JSON codec 和网络 codec 未使用兼容的配方实例。
此问题已在当前构建中修正。
战利品系统
Blood Magic 的自定义战利品基础设施已重新启用并迁移。
自定义战利品函数
已移植到 Minecraft 1.21 的 MapCodec 系统:
set_will_rangeset_will_fractionset_living_upgrade
自定义战利品条目
迁移了
bloodmagic:loot_table恢复了外部/原版战利品表的解析
更新了战利品表引用以使用现代的
ResourceKey<LootTable>处理重新启用了此前被排除的 Blood Magic 战利品包
将随机处理更新为 Minecraft 的
RandomSource
全局战利品修饰符
- 将全局战利品修饰符数据迁移到:
data/neoforge/loot_modifiers
移除了过时的旧路径
在服务端验证了全局战利品修饰符加载
数据生成(Datagen)
Blood Magic 的数据生成系统进行了重大迁移和清理。
重新启用了此前被禁用的数据生成源
将提供器迁移到 Minecraft 1.21.1 API
更新了方块/物品标签
更新了配方提供器
更新了战利品表提供器
更新了 sprite 源生成
更新了附魔注册表查找
更新了药水/效果处理
更新了
DeferredHolder泛型更新了战利品表以使用 ResourceKeys
将条件配方更新为现代 NeoForge 条件格式
更新了生成的数据包文件夹结构
数据包路径迁移
旧路径已迁移到 Minecraft 1.21 格式,包括:
data/bloodmagic/recipes/
→data/bloodmagic/recipe/
以及以下内容对应的现代路径:
配方
进度
战利品表
标签
通用标签
旧版 Forge 标签已在适当位置迁移到现代的 c: 通用标签命名空间。
当前状态
runData 现在可成功完成。
NBT / Data Components
若干旧的 Blood Magic 系统仍直接期望可变 ItemStack NBT。
这些已适配到 Minecraft 1.21 的 Data Components 系统。
改进了 Blood Magic 的
NBTHelper添加了更安全的 CustomData 处理
修复了空 NBT 复合标签可能消失的情况
恢复了活性盔甲 / 活性容器代码所期望的行为
减少了旧的
getTag().put(...)假设可能导致的 NullPointerException
恶魔意志(Demon Will)
恢复了客户端
will_type物品属性添加了对以下类型的检测:
Corrosive
Destructive
Vengeful
Steadfast
这恢复了恶魔意志相关模型和物品所期望的行为。
冰霜符文(Frost Sigil)
冰霜符文 已恢复。
旧的直接 FrostWalkerEnchantment 调用在 Minecraft 1.21 中已不存在,因此该符文已适配到现代的附魔效果系统。
现在当符文激活时,它会触发现代的 Frost Walker 位置效果。
Bleeding Edge 音乐唱片
Bleeding Edge 唱片已迁移到 Minecraft 1.21 的新唱片机系统。
添加了正确的
jukebox_song注册表条目添加了现代唱片机可播放物品组件
保留了原始音频
保留了原始比较器输出
保留了原始曲目时长
炼金反应室(Alchemical Reaction Chamber)
改进了 炼金反应室 的移植。
恢复了来自重命名已放置物品的自定义名称
添加了自定义名称的保存/加载
将自定义名称存储迁移到 Minecraft 1.21 的组件/NBT API
自定义名称现在用于方块的菜单/显示名称
Modopedia
旧的 Patchouli 依赖已替换为 Modopedia 以适配 1.21.1 移植版。
添加了基本的 Modopedia 兼容性
添加了 Blood Magic 书籍条目
添加了所需的文本格式化器
更新了指南书配方
更新了模组元数据以依赖 Modopedia 而非 Patchouli
从分发的 jar 中移除了过时的 Patchouli 依赖
重要
完整的原版 Patchouli 书籍尚未完全转换。
当前的 Modopedia 集成为指南提供了基础,但可能仍需要迁移额外的书籍内容/模板。
元数据与打包
修复了移植版中残留的过时 Forge 元数据
将项目迁移到
neoforge.mods.toml修复了 NeoForge 版本范围声明
添加了正确的 Modopedia 依赖
移除了被意外打包的过时
mods.tomlForge 文件修复了 Gradle 资源占位符扩展
从最终 jar 中清理了旧的数据库/资源路径
当前验证状态
当前移植版已通过以下开发测试:
compileJava—— OKrunData—— OK数据生成 —— 已处理 2685 个文件
专用服务端启动 —— OK
已加载 2079 个配方
已加载 1693 个进度
服务端达到 Done
客户端模组加载 —— OK
客户端资源重载 —— OK
纹理图集 —— OK
NeoForge payload 加载 —— OK
干净的 Gradle 构建 —— OK
当前开发 jar:
bloodmagic-3.4.0-46-alpha.jar
已知问题 / 剩余工作
本移植版 尚未被视为完成。
尽管编译、数据生成、服务端启动和客户端资源加载均已正常工作,但 Blood Magic 是一个大型模组,并非每个机制都已接受完整的游戏内回归测试。
剩余领域包括:
所有 Blood Magic 系统的完整游戏性测试
仪式和复杂多方块行为的额外测试
活性盔甲和升级交互的额外测试
所有涂油在实际游戏中的额外测试
自定义配方和配方同步的额外测试
额外的多人/客户端-服务端测试
将原版 Patchouli 文档完全转换为 Modopedia
仍需验证或额外工作的可选模组集成
与 Agricraft 相关的兼容性
与 Mystical Agriculture 相关的兼容性
其他尚未完全验证的第三方兼容模块
与原始 1.20.1 版本相比可能存在的视觉、渲染或行为差异
最近的配方同步修复在进入世界和将客户端连接到服务端时也需要额外的实际测试。
来自 Modopedia、Curios、NeoForge、原版渲染或着色器的一些非阻塞性开发警告可能仍会出现。
重要提示
这是一个实验性的非官方移植版。
使用前请备份你的世界。
请勿假设其与现有 Blood Magic 世界、附属模组或整合包完全兼容。
漏洞报告很有用,尤其是附带以下内容时:
latest.log崩溃报告
NeoForge 版本
已安装模组列表
问题复现步骤
本移植版的目标是在 Minecraft 1.21.1 上尽可能恢复原始的 Blood Magic 1.20.1 行为,同时逐步用现代 NeoForge 等效系统替换过时的 Forge/Minecraft 系统。
在本移植版被视为完全稳定之前,仍需要更多修复、兼容性工作和游戏性测试。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。