Startup Crash with SintryaConnector
JorisDeBeer opened this issue ยท 5 comments
Forgero worked fine before with connector.
It errors on the recently added reach mixin sadly now. There where more problems with this so should make it less intrusive as it is now.
It's coming from this mixin:
/**
* The purpose of this mixin is to cancel the default behaviour of checking if a player is trying to reach beyond 5 blocks or not.
* I assume this has been placed here for anti cheat measures, but this will only allow it to happen if the player actually have longer reach than 4.5.
*/
@Redirect(method = "processBlockBreakingAction",
at = @At(value = "INVOKE", target = "Lnet/minecraft/util/math/Vec3d;squaredDistanceTo(Lnet/minecraft/util/math/Vec3d;)D"))
private double forgero$cancelDistanceCheckIfReachIsHigherThanVanilla(Vec3d instance, Vec3d vec) {
if (StateService.INSTANCE.convert(player.getMainHandStack()).map(state -> ComputedAttribute.apply(state, "forgero:reach")).orElse(0f) > 4.5f) {
return 0.0;
}
return instance.squaredDistanceTo(vec);
}
Its presence is conflicting with Forge's internal mixin for dealing with the same issue. It seems like the issue is coming from the differences in mapping. I tried making the mixin conditionally load if the connector was present, but the fact that the mixin is present in the codebase is enough to cause this issue. That is super wierd. Something smart has to be done here to avoid this issue.
Best things is probably to disable this check for now, but it will make it impossible to extend the range of other tools. But I don't think we have any tools that does this, yet
We think of something smart I am sure, I need this fix to play my 1.20.1 forge modpack sadge
Fixed in v0.12.5
.