DO NOT WORK with purpur 1.18.2
chinese-wzq opened this issue · 10 comments
Server version:
[Server] [11:08:18 INFO]: Current: git-Purpur-1632 (MC: 1.18.2)*
[Server] Previous: git-Paper-"df630a2" (MC: 1.18.2)
Error(server):
[Server] [11:05:48 WARN]: [Beenfo] Plugin Beenfo v1.3.3 generated an exception whilst handling plugin message
[Server] java.lang.NoClassDefFoundError: org/bukkit/craftbukkit/v1_18_R1/CraftWorld
[Server] at de.guntram.bukkit.Beenfo.Main.onPluginMessageReceived(Main.java:112) ~[beenfo-1.18.2-fabric0.47.10-1.3.3.jar:?]
[Server] at org.bukkit.plugin.messaging.StandardMessenger.dispatchIncomingMessage(StandardMessenger.java:455) ~[purpur-api-1.18.2-R0.1-SNAPSHOT.jar:?]
[Server] at net.minecraft.server.network.ServerGamePacketListenerImpl.handleCustomPayload(ServerGamePacketListenerImpl.java:3333) ~[?:?]
[Server] at net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket.handle(ServerboundCustomPayloadPacket.java:37) ~[?:?]
[Server] at net.minecraft.network.protocol.game.ServerboundCustomPayloadPacket.handle(ServerboundCustomPayloadPacket.java:15) ~[?:?]
[Server] at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51) ~[?:?]
[Server] at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.18.2.jar:git-Purpur-1632]
[Server] at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
[Server] at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
[Server] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1427) ~[purpur-1.18.2.jar:git-Purpur-1632]
[Server] at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:188) ~[purpur-1.18.2.jar:git-Purpur-1632]
[Server] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
[Server] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1404) ~[purpur-1.18.2.jar:git-Purpur-1632]
[Server] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1397) ~[purpur-1.18.2.jar:git-Purpur-1632]
[Server] at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[?:?]
[Server] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1531) ~[purpur-1.18.2.jar:git-Purpur-1632]
[Server] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1247) ~[purpur-1.18.2.jar:git-Purpur-1632]
[Server] at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:321) ~[purpur-1.18.2.jar:git-Purpur-1632]
[Server] at java.lang.Thread.run(Thread.java:833) ~[?:?]
[Server] Caused by: java.lang.ClassNotFoundException: org.bukkit.craftbukkit.v1_18_R1.CraftWorld
[Server] ... 19 more
Thank you for your work!
Are you sure you don't have an older plugin in your plugin folder that's for 1.18 or 1.18.1?
Those versions try to access the org.bukkit.craftbukkit.v1_18_R1.CraftWorld class, which is renamed to org/bukkit/craftbukkit/v1_18_R2/CraftWorld in 1.18.2. I just verified the 1.18.2 version and it indeed accesses the org/bukkit/craftbukkit/v1_18_R2/CraftWorld class.
If you updated from an older version of the server, maybe you added the new plugin, but didn't delete the old one?
server/plugins $ ls
backup Dynmap-3.6-spigot.jar Graves-4.9.jar PluginMetrics spark
beenfo-1.18.2-fabric0.47.10-1.3.3.jar Essentials GroupManager ProtocolLib spark-1.10.34.jar
bStats EssentialsX-2.20.0.jar GroupManager.jar ProtocolLib.jar TogglePvp
ChestSort EssentialsXAntiBuild-2.20.0.jar LWC SensibleToolbox TogglePvp-8.1.jar
ChestSort-13.6.3.jar EssentialsXChat-2.20.0.jar LWCExtended-2.3.0.jar SkinsRestorer update
CoreProtect EssentialsXProtect-2.20.0.jar OpenInv SkinsRestorer-14.2.12.jar Vault.jar.bak
CoreProtect-22.2.jar EssentialsXSpawn-2.20.0.jar OpenInv.jar Slimefun voicechat
dynmap Graves Orebfuscator Slimefun-fe3bb7f-canary.jar voicechat-bukkit-2.4.19.jar
No, I mean that you probably had an 1.18.1 server with the 1.18.1 version of Beenfo, and when you updated the server to 1.18.2, you downloaded Beenfo-1.18.2 but you didn't remove Beenfo-1.18.1. And that Beenfo-1.18.1 is still in your plugins folder and causes the problem.
No, I assure you that the Beenfo plugin I downloaded with the filename beenfo-1.18.2-fabric0.47.10-1.3.3.jar definitely matches the server's version of the game! It's in the plugins folder! The server has never been upgraded either.
Yes, but I'm convinced that there is ALSO another version of Beenfo, that is for a previous version of Minecraft, in your plugin folder.
Look, I just downloaded the 1.18.2 version of Purpur, added Beenfo and nothing else to plugins, and started the server.
gbl@natascha$ ls
banned-ips.json libraries purpur-1.18.2-1632.jar whitelist.json
banned-players.json logs purpur.yml world
bukkit.yml ops.json server.properties world_nether
cache paper.yml spigot.yml world_the_end
commands.yml permissions.yml usercache.json
eula.txt plugins version_history.json
help.yml pufferfish.yml versions
gbl@natascha$ ls plugins/
beenfo-1.18.2-fabric0.47.10-1.3.3-spigot.jar bStats
gbl@natascha$ java -jar purpur-1.18.2-1632.jar
Starting org.bukkit.craftbukkit.Main
System Info: Java 17 (OpenJDK 64-Bit Server VM 17.0.9+9-Ubuntu-122.04) Host: Linux 6.2.0-39-generic (amd64)
Loading libraries, please wait...
[09:16:28 INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD'
[09:16:29 INFO]: Loaded 7 recipes
[09:16:30 INFO]: Starting minecraft server version 1.18.2
[09:16:30 INFO]: Loading properties
[09:16:30 INFO]: This server is running Purpur version git-Purpur-1632 (MC: 1.18.2) (Implementing API version 1.18.2-R0.1-SNAPSHOT) (Git: dc4a29b on HEAD)
[09:16:30 INFO]: Server Ping Player Sample Count: 12
[09:16:30 INFO]: Using 4 threads for Netty based IO
[09:16:30 WARN]: [Pufferfish] To improve performance, timings have been disabled by default
[09:16:30 WARN]: [Pufferfish] You can still use timings by using /timings on, but they will not start on server startup unless you set timings.really-enabled to true in paper.yml
[09:16:30 WARN]: [Pufferfish] If you would like to disable this message, either set timings.really-enabled to true or timings.enabled to false.
[09:16:30 WARN]: [Pufferfish] SIMD operations are available for your server, but are not configured!
[09:16:30 WARN]: [Pufferfish] To enable additional optimizations, add "--add-modules=jdk.incubator.vector" to your startup flags, BEFORE the "-jar".
[09:16:30 WARN]: [Pufferfish] If you have already added this flag, then SIMD operations are not supported on your JVM or CPU.
[09:16:30 WARN]: [Pufferfish] Debug: Java: 17.0.9, test run: true
[09:16:30 INFO]: Default game type: SURVIVAL
[09:16:30 INFO]: Generating keypair
[09:16:30 INFO]: Starting Minecraft server on *:25565
[09:16:30 INFO]: Using epoll channel type
[09:16:30 INFO]: Paper: Using libdeflate (Linux x86_64) compression from Velocity.
[09:16:30 INFO]: Paper: Using OpenSSL 1.1.x (Linux x86_64) cipher from Velocity.
[09:16:31 INFO]: [Beenfo] Loading Beenfo v1.3.3
[09:16:31 INFO]: Server permissions file permissions.yml is empty, ignoring it
[09:16:31 INFO]: Preparing level "world"
It loads Beenfo without a problem.
If you respond to this, please include a list of all files in your plugins folder.
Ah. That's it. Your version of the plugin is the one that works for Fabric, but not Spigot, it doesn't have the -spigot in its name.
Please download this file, and remove the one you have, this should fix it.
If you're running a Spigot/Paper server, you can support players with the client-side mod as well - just throw the fabric jar file into your plugins folder. Yes, the single jar is a Fabric mod and a Spigot plugin at the same time, and will work with clients with the mod, no matter if they're using Forge or Fabric.
What's wrong?
Well, I messed up with that version, because it has exactly the problem you're describing. That's why I published a new, fixed version in May last year, but it seems like I only published it on Curseforge, never on Modrinth. Which basically means you never had a chance to find the fix when you're only using Modrinth. Sorry.
Do you mean that there are old plugins in my server (only support 1.18.1), which makes the Beenfo plugin somehow affected and tries to access org.bukkit.craftbukkit.v1_18_R1.CraftWorld?Why does it only affect Beenfo and the other plugins don't encounter any effect occasionally?
That is, should I find the old plugins in the server and upgrade them?