血魔法
此版本是Blood Magic从Minecraft 1.20.1到Minecraft 1.21.1使用NeoForge的非官方社区移植版。这不是Blood Magic的官方发布,与原始Blood Magic开发者无关联,也不受其官方支持。
介绍
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
此移植版基于原版 Blood Magic 源代码,并对其进行了修改。
Blood Magic 采用知识共享署名 4.0 国际许可协议(CC BY 4.0)授权,本移植版也采用相同许可协议发布。
本项目并非官方版本,也不隶属于原版 Blood Magic 开发者,亦未获得其官方支持。
此移植版的改动包括适配 Minecraft 1.21.1 和 NeoForge、API 迁移、兼容性修复、配方与数据生成变更、网络通信变更、数据组件迁移,以及多项玩法修复。
许可协议:
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 的数据组件架构
-
更新物品、方块、配方、附魔、战利品和注册表 API
-
清理模组元数据和 NeoForge 依赖声明
网络通信
-
将旧版网络通信实现替换为完善的基于 NeoForge 载荷的网络通信系统
-
更新客户端/服务器数据包注册
-
重构 Minecraft 1.21.1 的网络兼容代码
-
验证载荷在专用服务器和客户端上的加载情况
涂药
涂药系统经过了大量改进。
-
将涂药物品属性处理迁移至DataComponents.ATTRIBUTE_MODIFIERS
-
应用涂药时,现在会保留物品已有的属性修饰符
-
需要时,现在可以正确移除涂药修饰符
-
重构与采集相关的涂药处理逻辑
-
更新涂药的耐久度消耗时机
-
恢复通过现代 NeoForge
BlockDropsEvent -
改进与 Minecraft 1.21 采集流程的兼容性
战利品相关涂药
已恢复并适配:
-
时运
-
精准采集
-
抢夺
-
烧炼
-
虚空
时运、精准采集和抢夺现在使用 Minecraft 1.21 的附魔与注册表系统,而不再使用已移除的 1.20.1 行为。
Blood Magic 在内部重新生成战利品表时,也保留了防递归保护。
血之宝珠配方材料
自定义血之宝珠配方材料已完成全面迁移。
-
IngredientBloodOrb现在使用 NeoForge 现代化的ICustomIngredient系统 -
已添加正确的
IngredientType注册 -
已保留血珠等级匹配行为
-
保留通用
IBloodOrb支持,以兼容其他血珠实现 -
该材料现已重新包含在运行时构建中
配方与配方序列化
血魔法的大部分自定义配方基础设施已迁移至 Minecraft 1.21.1。
-
更新了血魔法自定义配方构建器
-
已将配方提供器迁移至新的
RecipeOutputAPI -
已更新材料序列化,改用现代
Ingredient.CODEC -
已重构旧版血魔法配方序列化器
-
已为兼容性配方编解码器添加运行时解码支持
-
已更新配方生成逻辑,以适配新的 1.21.1 数据包格式
-
已修复生成的配方使用过时路径或格式的问题
-
已修复服务器与客户端之间的配方同步兼容性问题
近期修复
已修复:
Failed to encode packet 'clientbound/minecraft:update_recipes'
问题源于 RecipeAnointmentApply,当时 JSON 编解码器和网络编解码器使用的配方实例不兼容。
此问题已在当前构建中修正。
战利品系统
血魔法的自定义战利品基础设施已重新启用并完成迁移。
自定义战利品函数
已移植至 Minecraft 1.21 的 MapCodec 系统:
-
set_will_range -
set_will_fraction -
set_living_upgrade
自定义战利品条目
-
已迁移
bloodmagic:loot_table -
已恢复对外部/原版战利品表的解析
-
已更新战利品表引用,改用现代
ResourceKey<LootTable>处理方式 -
已重新启用此前被排除的血魔法战利品包
-
已将随机处理更新为 Minecraft 的
RandomSource
全局战利品修饰器
-
已将全局战利品修饰器数据迁移至:
data/neoforge/loot_modifiers
-
已移除过时的旧版路径
-
已验证全局战利品修饰器可在服务器上加载
数据生成
血魔法的数据生成系统进行了重大迁移与清理。
-
已重新启用此前禁用的数据生成源
-
已将提供器迁移至 Minecraft 1.21.1 API
-
已更新方块/物品标签
-
已更新配方提供器
-
已更新战利品表提供器
-
已更新精灵图源生成
-
已更新附魔注册表查询
-
已更新药水/效果处理
-
已更新
DeferredHolder泛型 -
已更新战利品表,改用 ResourceKeys
-
已将条件配方更新为现代 NeoForge 条件格式
-
已更新生成的数据包文件夹结构
数据包路径迁移
旧版路径已迁移至 Minecraft 1.21 格式,包括:
data/bloodmagic/recipes/
→data/bloodmagic/recipe/
以及以下项目对应的现代路径:
-
配方
-
进度
-
战利品表
-
标签
通用标签
旧版 Forge 标签已逐步迁移至现代 c: 通用标签命名空间(适用时)。
当前状态
runData 现已成功完成。
NBT / 数据组件
血魔法中的一些旧系统仍然直接依赖可变 ItemStack NBT。
这些内容已适配 Minecraft 1.21 的数据组件系统。
-
改进 Blood Magic
NBTHelper -
添加了更安全的 CustomData 处理
-
修复了空 NBT 复合标签可能消失的问题
-
恢复了 Living Armor / Living Container 代码所需的行为
-
减少了由旧版
getTag().put(...)假设导致的潜在 NullPointerException
Demon Will
-
恢复了客户端的
will_type物品属性 -
添加了以下检测:
-
腐蚀
-
破坏
-
复仇
-
坚定
-
这恢复了 Demon Will 相关模型和物品所需的行为。
霜行符印
霜行符印已恢复。
Minecraft 1.21 中已不再支持旧的直接 FrostWalkerEnchantment 调用,因此该符印已适配现代附魔效果系统。
符印激活时,现在会触发现代版 Frost Walker 位置效果。
Bleeding Edge 唱片
Bleeding Edge唱片已迁移至 Minecraft 1.21 的全新唱片机系统。
-
添加了正确的
jukebox_song注册表条目 -
添加了现代唱片机可播放物品组件
-
保留了原始音频
-
保留了原始比较器输出
-
保留了原始曲目时长
炼金反应室
改进了炼金反应室端口。
-
恢复了重命名后放置的物品所带的自定义名称
-
添加了自定义名称的保存与加载
-
将自定义名称存储迁移至 Minecraft 1.21 的组件/NBT API
-
方块菜单和显示名称现在会使用自定义名称
Modopedia
在 1.21.1 移植版本中,已用 Modopedia 替代旧版 Patchouli 前置库。
-
添加了基础的 Modopedia 兼容支持
-
添加了 Blood Magic 书籍条目
-
添加了所需的文本格式化器
-
更新了指南书配方
-
更新模组元数据,使其依赖 Modopedia 而非 Patchouli
-
从分发的 jar 中移除了过时的 Patchouli 前置库
重要
完整的原版 Patchouli 书籍尚未全部转换当前的 Modopedia 集成为指南奠定了基础,但可能仍需迁移更多书籍内容和模板。
元数据与打包
-
修复了移植版本中残留的过时 Forge 元数据
-
已将项目迁移至
neoforge.mods.toml -
修复了 NeoForge 版本范围声明
-
添加了正确的 Modopedia 前置库
-
移除了一个被意外打包的过时
mods.tomlForge 文件 -
修复了 Gradle 资源占位符展开
-
清理了最终 jar 中旧版数据包/资源路径
当前验证状态
当前移植版本已通过以下开发测试:
-
compileJava— 通过 -
runData— 通过 -
数据生成 — 已处理 2685 个文件
-
专用服务器启动 — 通过
-
已加载 2079 个配方
-
已加载 1693 个进度
-
服务器运行至 Done
-
客户端模组加载 — 通过
-
客户端资源重载 — 通过
-
纹理图集 — 通过
-
NeoForge 载荷加载 — 正常
-
Gradle 干净构建 — 正常
当前开发版 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 地图、附属模组或整合包完全兼容。
欢迎提交 Bug 报告,尤其是附带以下信息的报告:
-
latest.log -
崩溃报告
-
NeoForge 版本
-
已安装的模组列表
-
问题复现步骤
本移植版的目标是尽可能恢复Blood Magic 在 Minecraft 1.21.1 上的 1.20.1 原有行为,同时逐步将过时的 Forge/Minecraft 系统替换为现代 NeoForge 对应方案。
在此移植版达到完全稳定之前,仍需进行更多修复、兼容性处理和游戏测试。
常见问题
血魔法 支持哪些 Minecraft 版本?
血魔法 支持 Minecraft Java 版 1.21.1,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。
血魔法 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
Olexandre 的其他作品
查看全部 →Arcane School Skill Trees
为Iron的法术的多个魔法学派添加自定义Puffish技能树,赋予每个学派自己的RPG风格 progression、加成和视觉标识。
Extended Silence: Reforged
An unofficial community continuation of Extended Silence, expanding Silent Gear with mythical materials, resources, and Forge 1.20.1 compatibility fixes.
Iron’s Spell Aventure
A magic-focused adventure modpack built for multiplayer. Explore dangerous lands, discover powerful spells and gear, fight challenging enemies and bosses, and progress together with friends in a heavily modded Minecraft world.
评论
登录后评论和评分