Open Vlurk opened 5 months ago
Yes, getMinecraftVersion()
is a Paper-added method. Do you mind if I ask why you're using Spigot instead of the much improved fork? (https://github.com/papermc/paper)
I don't mind at all.
Odds are that most servers could be switched to Paper without any negative impacts. But that will need to be verified on a server by server basis.
Realistically, I host only one server that I would be concerned about. +4 years old, many thousands of hours, automations like you wouldn't believe. And Paper has been known to implement more fixes and optimizations, notably patch some duping techniques. I know some stuff can be restored through plugin though: https://forums.papermc.io/threads/gravitycontrol-sand-dupe-enabler-for-paper-servers.12/
I am afraid that in such instances, Paper wouldn't be a drop-in replacement.
But honestly, I am just a server operator, and not a good player myself. I am amongst the players that couldn't tell the difference, and for which Paper just looks superior.
If you tell me the project is going to drop supports for Spigot/Bukkit and become a Paper-only plugin, I could realistically contact the owner of that server, and convince them to give Paper a shot. If I assist her in the migration process. I would probably have better feedback at that point.
Upgrade a working environment with older release and Spigot 1.20.4 to:
TCPShield=2.8.0 Spigot=1.20.6 ProtocolLib=5.3.0 Java=jdk-21.0.3+9
Server starts just fine, but the plugin doesn't log the IP of the clients, just the TCPShield proxies. In the server log, I get the following error:
Just a quick check, and getMinecraftVersion is not a valid method with Spigot API: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Server.html
NoSuchMethodError would be pretty much expected in these circumstances. Looking at GitHub, I see that a new routine was added with commit 554d6c300e531e5cfc386bf354f19b3d6835c749, creating the error.
As a last resort, I tried to downgrade to the previous release, 2.7.0, I can confirm this error does not exist and everything work as expected: I get the client IPs in the logs.