[BUG] 加载的mod数量超过64个就会导致注入失败错误
CryJoyYarn opened this issue · 5 comments
准确的说,是mods文件夹里有多于64个mod文件就会出错
minecraft-exported-logs-2024-08-07T14-14-17.log
这是随便拿了64个mod出现的一例,把一部分mod换成相同数量的其他mod(tacz、口渴、冷汗等)也会出现同样的注入失败
只有在cgm存在的时候才有这个bug
我有一个作为外行的设想,只是设想,毕竟我根本没学过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限制成双精度能解决注入失败问题吗?
模组数量根本不可能造成问题,真正原因是 SpongePowered/Mixin#544
数量把mixin的载入排序移动让这个BUG浮现
解决的方法是把 LivingEntityMixin::modifyApplyKnockbackArgs
换成用 @Redirect