Paper just enforced new rule regarding cyclic loading, and Magic was part of the chain of a cyclic load error on my server
malonnnn opened this issue · 3 comments
Relevant Paper PR:
PaperMC/Paper#8873
My Error:
[19:20:57] [Server thread/ERROR]: [io.papermc.paper.plugin.storage.SimpleProviderStorage] Circular load order:
[19:20:57] [Server thread/ERROR]: [io.papermc.paper.plugin.storage.SimpleProviderStorage] CMI -> Magic -> MythicMobs -> CMI
[19:20:57] [Server thread/ERROR]: [io.papermc.paper.plugin.storage.SimpleProviderStorage] Magic -> MythicMobs -> Heroes -> Magic
[19:20:57] [Server thread/ERROR]: [io.papermc.paper.plugin.storage.SimpleProviderStorage] Please report this to the plugin authors of the first plugin of each loop or join the PaperMC Discord server for further help.
[19:20:57] [Server thread/ERROR]: [io.papermc.paper.plugin.storage.SimpleProviderStorage] If you would like to still load these plugins, acknowledging that there may be unexpected plugin loading issues, run the server with -Dpaper.useLegacyPluginLoading=true
[19:20:57] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.IllegalStateException: Circular plugin loading from plugins CMI, Magic
at io.papermc.paper.plugin.storage.SimpleProviderStorage.handleCycle(SimpleProviderStorage.java:70) ~[paper-1.19.3.jar:git-Paper-412]
at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:39) ~[paper-1.19.3.jar:git-Paper-412]
at io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.enter(LaunchEntryPointHandler.java:37) ~[paper-1.19.3.jar:git-Paper-412]
at org.bukkit.craftbukkit.v1_19_R2.CraftServer.loadPlugins(CraftServer.java:429) ~[paper-1.19.3.jar:git-Paper-412]
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:273) ~[paper-1.19.3.jar:git-Paper-412]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1101) ~[paper-1.19.3.jar:git-Paper-412]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316) ~[paper-1.19.3.jar:git-Paper-412]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
I resolved it by adding this flag to PaperMC startup:
-Dpaper.useLegacyPluginLoading=true
It should be noted I do not use CMI on my server, nor heroes, despite those being in the chain of issues for some reason
Why does CMI depend on Magic, I wonder?
Magic only has CMI in a loadbefore
block- if CMI has Magic in softdepends then seems like it should be ok? Maybe a case that paper's check doesn't handle?
Unfortunately I think CMI is closed source so I can't really tell.
I'm going to just take CMI out of Magic's plugin.yml for now. Git tells me I put it in there to fix an inventory saving issue of some kind, which sounds kind of bad- so hopefully CMI has magic in softdepends and so loads after either way 🤷♂️
I think it was spell inventory related, found this in Discord: https://discord.com/channels/580099743875727363/580101207364861954/812449317897502721
Kinda remember it for myself as well but will keep an eye on it.
This whole thing was handled rather poorly IMO, but here we are. I just rolled back to Paper b404 for now because a lot of other weird behaviors started cropping up with a lot of plugins. And all they say is "get better plugins lolz". It's exceedingly dumb. As much as I'd rather not I'm even considering going back to Spigot come 1.20 if they don't fix this.
But yeah, Magic (and loads of other plugins) will encounter a lot of errors on anything beyond Paper b404 regardless of the flag use.