Magic

Magic

190k Downloads

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

commented

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

commented

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 🤷‍♂️

commented

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.

commented

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.