MrCrayfish's Gun Mod [Unofficial]

MrCrayfish's Gun Mod [Unofficial]

664k Downloads

[BUG] 加载的mod数量超过64个就会导致注入失败错误

CryJoyYarn opened this issue · 5 comments

commented

准确的说,是mods文件夹里有多于64个mod文件就会出错
minecraft-exported-logs-2024-08-07T14-14-17.log
这是随便拿了64个mod出现的一例,把一部分mod换成相同数量的其他mod(tacz、口渴、冷汗等)也会出现同样的注入失败
只有在cgm存在的时候才有这个bug

commented

1.4.18给相应mixin加了failsoft机制。不过我很好奇为什么模组数量会影响注入。

commented

实测还是不行(悲
image
会不会和哪个mod有关系?我自己测试还是任意mod总数多于64就出错。
image

commented

any updates to this, its really fucking annoying

commented

我有一个作为外行的设想,只是设想,毕竟我根本没学过java(
报错里面的expect D on xxx 是不是指需要双精度?如果是的话,会不会是因为下面这段的问题?
[LivingEntityMixin.java]
private double modifyApplyKnockbackArgs(double original)
{
if(this.cgm$source.getDirectEntity() instanceof ProjectileEntity)
{
if(!Config.COMMON.gameplay.enableKnockback.get())
{
return 0;
}
double strength = Config.COMMON.gameplay.knockbackStrength.get();
if(strength > 0)
{
return strength;
}
}
return original;
}
这一块里面的return 0返回的值会不会因为某些情况而不是双精度,导致报错?如果把这个返回值0限制成双精度能解决注入失败问题吗?

commented

模组数量根本不可能造成问题,真正原因是 SpongePowered/Mixin#544
数量把mixin的载入排序移动让这个BUG浮现

解决的方法是把 LivingEntityMixin::modifyApplyKnockbackArgs 换成用 @Redirect