Spigot 1.21.9-1.21.11, Paper 1.21.9-1.21.10 support
All of the bukkit mappings are updated for 1.21.9/1/21.10. There were a lot of obfuscated method changes, as usual. No major api changes this time.
I did some initial testing and it loads / renders fine. Once the corresponding Fabric PR #4240 is merged, it will also render The Copper Age blocks.
I put a jar download on my fork for anyone that needs it before this PR is merged. (it's a combination of my and reusteur73's PRs so will render the new blocks).
Edit: Updated to 1.21.11. See my note on that down below
Update: Someone tested it on paper and it doesn't work. It gives this error:
java.lang.NoClassDefFoundError: net/minecraft/core/HolderLookup$a
at java.base/java.lang.Class.forName0(Native Method) ~[?:?]
at java.base/java.lang.Class.forName(Class.java:578) ~[?:?]
at java.base/java.lang.Class.forName(Class.java:557) ~[?:?]
at io.papermc.reflectionrewriter.runtime.AbstractDefaultRulesReflectionProxy.forName(AbstractDefaultRulesReflectionProxy.java:68) ~[reflection-rewriter-runtime-0.0.3.jar:?]
at io.papermc.paper.pluginremap.reflect.PaperReflectionHolder.forName(Unknown Source) ~[paper-1.21.9.jar:1.21.9-38-27f926e]
at Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar/org.dynmap.bukkit.Helper.loadVersionHelper(Helper.java:13) ~[Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar:?]
at Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar/org.dynmap.bukkit.Helper.getHelper(Helper.java:59) ~[Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar:?]
at Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar/org.dynmap.bukkit.DynmapPlugin.onLoad(DynmapPlugin.java:900) ~[Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar:?]
at io.papermc.paper.plugin.storage.ServerPluginProviderStorage.processProvided(ServerPluginProviderStorage.java:59) ~[paper-1.21.9.jar:1.21.9-38-27f926e]
at io.papermc.paper.plugin.storage.ServerPluginProviderStorage.processProvided(ServerPluginProviderStorage.java:18) ~[paper-1.21.9.jar:1.21.9-38-27f926e]
at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:39) ~[paper-1.21.9.jar:1.21.9-38-27f926e]
at io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.enter(LaunchEntryPointHandler.java:39) ~[paper-1.21.9.jar:1.21.9-38-27f926e]
at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:554) ~[paper-1.21.9.jar:1.21.9-38-27f926e]
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:323) ~[paper-1.21.9.jar:1.21.9-38-27f926e]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1096) ~[paper-1.21.9.jar:1.21.9-38-27f926e]
at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:317) ~[paper-1.21.9.jar:1.21.9-38-27f926e]
at java.base/java.lang.Thread.run(Thread.java:1575) ~[?:?]
Caused by: java.lang.ClassNotFoundException: net.minecraft.core.HolderLookup$a
at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:205) ~[paper-api-1.21.9-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:172) ~[paper-api-1.21.9-R0.1-SNAPSHOT.jar:?]
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:528) ~[?:?]
... 17 more
Not sure what it means yet. Paper 1.21.9 isn't officially released yet so if it's on their end, maybe it will be resolved.
Paper 1.21.9 build 41 is here https://papermc.io/downloads/paper . Paper is now a Hard Fork and new versions are developed along with the snapshots , that is why Paper gets releases on the same day as a Mojang release. 1.21.9 has been available for weeks for developers on the dev/1.21.9branch as was 1.21.8 Developers From Microsoft and Mojang contribute to the Code and to plugins Example Worldgard, worldedit Multicore Essentials etc..
Thanks Jacob for updating .
I guess I was looking in the wrong places, then. I see now they have a button to show the 1.21.9 builds.
Maybe someone that knows more about paper internals could chime in about what this means. Do I just need to target the paper api instead of the spigot api? My server is Spigot though, so I don't want to drop compatibility with that. It's not my decision to make to drop Spigot support either. My end goal was to switch my server over to fabric once the hard fork started forcing me to choose between spigot / paper plugins.
I'd like to support both, but I know that will get harder over time.
Just include the Paper API . Its enough just to import to main java and then in your Listening code . Scenerios could be as simple as a name change or KennyTV may have found a optimized way of inputing and exporting data . Mike has a lot of experience with Dynmap and Im sure he looks at the PR's often
I asked on the PaperMC discord and got this response
[8:39 PM] remapping from spigot mappings is not available on paper just yet, as we released the update before spigot was out [8:39 PM] keep in mind that this won't be maintained forever and one day the mechanism will be dropped entirely [8:39 PM] so you should keep separate modules for spigot v paper, or just drop spigot support entirely
So give it time, it should start working in paper in future versions.
Migrating to paper-api, and using paperweight to get Mojang mappings would definitely make it far easier to update to new versions. And it would avoid problems like this, which will be unavoidable for a certain amount of days after every new MC update. I tried for a bit to handle it (for the 1.21.9 helper) but it's not something I want to spend too much time on.
Now works on Paper again, if you download the latest paper jar from today or newer https://papermc.io/downloads/paper
I updated this to 1.21.10, and renamed the directories to 1.21.10 (1.21.9 is now a dead version, quickly obsoleted by 1.21.10)
Thanks! ♥️ This works on the latest Paper release. For others, you can download the .jar file of the unofficial dynmap update here.
Unfortunately, this PR doesn't support the latest Purpur version
v1_21_R6 - 1.21.10 - purpur 1.21.10-2531-b7b7ba2 (MC: 1.21.10).
I will leave the error log here if it is in the interest to correct this error.
[18:07:57 INFO]: [dynmap] Enabling dynmap v3.7-beta-11-1.21.9-spigot-Dev
[18:07:57 ERROR]: Error occurred while enabling dynmap v3.7-beta-11-1.21.9-spigot-Dev (Is it up to date?)
java.lang.NoSuchMethodError: 'net.minecraft.core.RegistryAccess$Frozen net.minecraft.server.MinecraftServer.bg()'
at Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar/org.dynmap.bukkit.helper.v121_10.BukkitVersionHelperSpigot121_10.getBiomeReg(BukkitVersionHelperSpigot121_10.java:104) ~[Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar:?]
at Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar/org.dynmap.bukkit.helper.v121_10.BukkitVersionHelperSpigot121_10.getBiomeBaseList(BukkitVersionHelperSpigot121_10.java:117) ~[Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar:?]
at Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar/org.dynmap.bukkit.DynmapPlugin.loadExtraBiomes(DynmapPlugin.java:851) ~[Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar:?]
at Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar/org.dynmap.bukkit.DynmapPlugin.onEnable(DynmapPlugin.java:936) ~[Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:279) ~[purpur-api-1.21.10-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:202) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:109) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:520) ~[purpur-api-1.21.10-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.CraftServer.enablePlugin(CraftServer.java:653) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2]
at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:610) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2]
at net.minecraft.server.MinecraftServer.initPostWorld(MinecraftServer.java:641) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2]
at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:402) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1272) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2]
at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:388) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
[18:07:57 INFO]: [dynmap] Disabling dynmap v3.7-beta-11-1.21.9-spigot-Dev
[18:07:57 INFO]: [dynmap] Disabled
Thanks! ♥️ This works on the latest Paper release. For others, you can download the .jar file of the unofficial dynmap update here.
Unfortunately, this PR doesn't support the latest Purpur version
v1_21_R6 - 1.21.10 - purpur 1.21.10-2531-b7b7ba2 (MC: 1.21.10). I will leave the error log here if it is in the interest to correct this error.[18:07:57 INFO]: [dynmap] Enabling dynmap v3.7-beta-11-1.21.9-spigot-Dev [18:07:57 ERROR]: Error occurred while enabling dynmap v3.7-beta-11-1.21.9-spigot-Dev (Is it up to date?) java.lang.NoSuchMethodError: 'net.minecraft.core.RegistryAccess$Frozen net.minecraft.server.MinecraftServer.bg()' at Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar/org.dynmap.bukkit.helper.v121_10.BukkitVersionHelperSpigot121_10.getBiomeReg(BukkitVersionHelperSpigot121_10.java:104) ~[Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar:?] at Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar/org.dynmap.bukkit.helper.v121_10.BukkitVersionHelperSpigot121_10.getBiomeBaseList(BukkitVersionHelperSpigot121_10.java:117) ~[Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar:?] at Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar/org.dynmap.bukkit.DynmapPlugin.loadExtraBiomes(DynmapPlugin.java:851) ~[Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar:?] at Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar/org.dynmap.bukkit.DynmapPlugin.onEnable(DynmapPlugin.java:936) ~[Dynmap-3.7-beta-11-1.21.9-spigot-spigot.jar:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:279) ~[purpur-api-1.21.10-R0.1-SNAPSHOT.jar:?] at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:202) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2] at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:109) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:520) ~[purpur-api-1.21.10-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.CraftServer.enablePlugin(CraftServer.java:653) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2] at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:610) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2] at net.minecraft.server.MinecraftServer.initPostWorld(MinecraftServer.java:641) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2] at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:402) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1272) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2] at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:388) ~[purpur-1.21.10.jar:1.21.10-2531-b7b7ba2] at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?] [18:07:57 INFO]: [dynmap] Disabling dynmap v3.7-beta-11-1.21.9-spigot-Dev [18:07:57 INFO]: [dynmap] Disabled
It seems to work fine for me, do you have anything else running besides dynmap on Purpur?
@jbm11208 thanks for the message. I downloaded the latest Purpur build again, and it works. Idk what happened there
I updated this PR to support 1.21.11 as well. Lots of obfuscation changes as usual, but nothing too different.
This will probably be the last PR I send in for spigot, for a few reasons:
- I've been sending PRs recently because I like to upgrade my personal server ASAP, but I'm going to switch it to Fabric starting with 1.21.11
- Mojang will deobfuscate their jars starting in 26.1, so the build architecture will need work
- Paper hard fork means we can't maintain compat with both versions forever. It might be manageable in 26.1 but won't be forever.
- Version number change to 26.1 could break things around the plugin that check version numbers
Basically, I just do this for my own use because it's easy. But the next update will be hard, and I don't have the time or need to do that.
I'm also hoping that if I say now I'm not updating for 26.1, someone else will come along and figure out the right way to handle that update. I know enough to see that targetting obfuscated method names like this is unsustainable. I think targetting Spigot is unsustainable as well. I'd like to see the next update target Paper, drop support for legacy versions, and modernize the build infrastructure. But I'm not the one to do that, this isn't my personal project and who knows what will be merged.
Edit: Forgot to mention one important bit. This PR WILL NOT WORK IN PAPER YET, until https://github.com/PaperMC/Paper/pull/13388 is merged. At that point you'll also have to download a new version of paper. The Paper team is actively reviewing the Spigot -> Paper obfuscation mappings now but it probably won't be ready for a few days to a week like last time. With some build infra updates it would be possible to support now, but not planning on that (see the rest of this comment).
Oh no that's a bad news for community. You are the only person now updating this for spigot, while fabric versions are maintained by so many people. But anyway, thank you for your continuously updating for spigot❤️
Oh no that's a bad news for community. You are the only person now updating this for spigot, while fabric versions are maintained by so many people. But anyway, thank you for your continuously updating for spigot❤️
To me it always seemed Spigot is a dead-end by comparison (no thanks to md-5), especially to Paper (not to mention the upcoming Folia), so I reckon Spigot will only spiral after Paper hard-forked away, and likewise I wouldn't think losing Spigot support will be a loss to anyone, except md-5 himself.