-
Notifications
You must be signed in to change notification settings - Fork 0
Lithium incompatibility - java.lang.IllegalAccessError: tried to access field EntityTracker.entity from class ThreadedAnvilChunkStorage #1
Comments
Source of error while(var2.hasNext()) {
ThreadedAnvilChunkStorage.EntityTracker entityTracker = (ThreadedAnvilChunkStorage.EntityTracker)var2.next();
if (entityTracker.entity == player) {
entityTracker.updateCameraPosition(this.world.getPlayers());
} else {
entityTracker.updateCameraPosition(player);
}
} |
Isn't that a Minecraft problem or is OptiFabric changing something with Vanilla Minecraft's chunk storage? |
Optifine is touching the class, and from what I understand, Optifabric is applying some access widener or so stuff to allow private methods and fields to be accessible publically. The problem is that lithium is also making some changes to the class, and is applying access wideners to it as well, which causes conflict. |
remapped error stacktrace
|
hmm. Is it possible you could change something so that when Lithium is installed, you could disable OF's class changes and access wideners? |
yes. But I don't yet know how as of today, I am still learning how this mod's architecture works. |
you could add an "if("mod-id":"lithium"){...}" and change the quote fields to their actual names, maybe even make some functions that cover the changes and stuff and put them in a group, and make it so that the brackets have something similar to a goto statement in them. |
I think that a similar approach to this may work: 70c0be2 |
Preferably, I would like to preserve the mod's structure & methodology as much as possible until I understand it better. The fix would probably go here: |
Would it be worth it to add the lithium compatibility as a configurable option in a "compatibility.txt" file whose true/false value is read upon each startup? |
Perhaps. At some point we will have to incorporate a config file somewhere as Optifine makes more and more invasive changes. Still, it would be preferable to make optifabric compatible with other mods without configuring it for simplicity's sake. As with this case, since its a relatively simple access conflict, I think it will be possible to resolve the conflict without compromises. |
Lithium hasn't been released on 1.16.2. The curseforge release is 1.16.1, and the sources are still being worked on for 1.16.2 |
Yep. This was an issue with optifabric 1.16.1 that I just posted here. The issue has been reproduced with 1.16.2 lithium built from the source. |
For reference: modmuss50#237 |
From OptifineInstaller.java: "// Lets make every class we touch public" |
Looking at the lithium wiki, there are configuration settings for:
Maybe just turning these off would help. |
I tested lithium-fabric-mc1.16.2-0.5.2.jar and it seems to work fine. |
The text was updated successfully, but these errors were encountered: