
法术修复
停止由仍使用旧版法术引擎效果渲染器签名的RPG类模组引起的AbstractMethodError崩溃。仅客户端,无需配置,除非安装了受影响模组,否则不执行任何操作。
此模组修复的内容
法术引擎 1.9.10 更改了其
CustomModelStatusEffect.Renderer 接口上的唯一方法——renderEffect 增加了一个参数,且该接口没有提供默认实现。
任何仍基于旧签名构建的类模组,因此都不实现这两种形式。Fabric 会正常加载它们,因为这些模组只声明了宽松的依赖关系,如
spell_engine >=1.5.0,然后在客户端绘制这些状态效果于任何实体上时会立即崩溃:
java.lang.AbstractMethodError: Receiver class net.berserker_rpg.client.effect.RageRenderer
does not define or inherit an implementation of the resolved method
'abstract void renderEffect(long, int, LivingEntity, float, MatrixStack, VertexConsumerProvider, int)'
of interface net.spell_engine.api.effect.CustomModelStatusEffect$Renderer
降级法术引擎通常不是一个选项,因为那些已经重新构建的模组需要更新版本——因此你会被困在整合包的两半之间。
Spell Fix 将当前的重载方法添加回受影响的渲染器中,并将其转发到它们已包含的方法。 效果会像以前一样渲染,而不是崩溃。
此版本涵盖的模组
| 模组 | 渲染器 |
|---|---|
| 狂战士 | RageRenderer |
| 力量法师 | ArcaneOverDriveRenderer |
| 誓约圣骑士 | SmiteRenderer, MarkRenderer, DivineInterventionRenderer |
| 巫师 | QuenActiveShieldRenderer |
已经为当前签名重建的模组——弓箭手、吟游诗人、元素法师、More RPG 库、法师——不受影响,并会继续正常工作。
注意事项
- 仅限客户端。 在专用服务器上不会添加任何内容,那里也不需要它。
- 不依赖法术引擎或上述任何模组。 每个补丁都宽松地针对其类,因此如果该模组未安装,Spell Fix 就不会执行任何操作。
- 没有配置、没有命令、没有内容。 它的存在纯粹是为了阻止崩溃。
- 唯一丢失的是新参数所携带的值,而旧渲染器代码本来就不会读取它。
要求
- Minecraft 1.21.1
- Fabric Loader 0.16.0 或更高版本
- 法术引擎 1.9.10 或更新版本(正是该版本的变化导致了此问题)
如果你的崩溃未在列表中
请提交一个包含崩溃报告的问题。如果是在
CustomModelStatusEffect$Renderer 上出现的相同的 AbstractMethodError,但来自上述表格之外的模组,通常只需几行代码即可添加。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。