-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Load Order Conflict: Who Even Knows Who Is At Fault? #430
Comments
I'm not sure either to be honest. This seems to be a duplicate of #428, but I'll keep this one open instead as it's more detailed. I'll have a look at it in detail. Did you report this to any other plugins as well? |
Reported to SimplePets and NPC Police. Either seem to be causing the problem but only in the presence of each other, perhaps? According to NPC Police's developer: Nah, whatever the orders are. They need to wait for citizens to load it's npc database. Until that happens, its not going to work. EDIT: Actually, it looks like removing ANY plugin in the dependency graph causes the crash to be fixed. |
I also can well imagine that the issue is caused by DungeonsXL, but I'm not sure why. A "loadafter" option does not exist in Bukkit (see here). To my knowledge, this is what the dependency / softdependency lists are supposed to do. You might have mixed that up with "loadbefore", which quasi adds the plugin as a dependency to a different plugin. DungeonsXL does include Citizens as a softdependency. I can't imagine why it still loads before Citizens. It usually does not. I'll need to do some testing to isolate the plugin(s) that force(s) DungeonsXL to load before / Citizens to load after DungeonsXL for some reason. If there's no way to fix the order, I'll just find a solution to make it so that DXL doesn't reference the NPC registry on startup. |
Lol, you are right on the loadafter. Who knows what I was thinking on that. If i recall, there was some discussion a while ago that depends/softdepends does not promise the load order will be honored. With so many plugins that rely on others, it may not follow the correct order. If anything else, maybe a scheduled sync that hits on the first tick, that should get it going. |
@nearlyNonexistent I think I've found a fix, but I don't have time to test it right now. Would you mind doing so? https://erethon.de/resources/dungeonsxl-0.16-SNAPSHOT.jar |
Testing the build now. EDIT: Works fine, no errors, even fixes Denizen loading before Citizens. I'm curious; what was the fix? |
Removing the reference to Citizens' NPC registry on startup and calling it directly instead in the methods that use it. The reference was made for code clarity only anyway so it won't have any influence on how DXL or Citizens work. It actually didn't take more than removing a single line and Ctrl.+H. Sometimes, the weirdest problems have the simplest solutions... I still have no idea how this could affect the load order of Bukkit - but it works, so I'll just call it a day ¯_(ツ)_/¯ |
Expected behavior
Should load fine with other plugins installed, and Denizen should be able to access Citizens API.
Actual behavior
Doesn't load properly and disables itself, while giving this startup log with a stacktrace:
https://cdn.discordapp.com/attachments/326844192510705664/460516641852096512/latest.log
It also causes Denizen to load before CitizensAPI.
Steps to reproduce
Install these plugins at the same time with DungeonsXL:
https://cdn.discordapp.com/attachments/243948414226661376/460527261704126486/unknown.png
This itself is a dependency graph; yellow representing soft dependencies and red representing hard. Green represents load befores and afters.
Here is a dependency graph with SimplePets disabled but DungeonsXL enabled:
https://cdn.discordapp.com/attachments/243948414226661376/460527534388543490/unknown.png
Not sure if this is on DungeonsXL's side, SimplePets's side, or something else.
The text was updated successfully, but these errors were encountered: