energy-sync / BeaconWaypoints

Minecraft Spigot plugin that turns beacons into fast travel points
MIT License
6 stars 3 forks source link

Support 1.21.0 #25

Open dasdev20 opened 3 weeks ago

dasdev20 commented 3 weeks ago

I tried to run the plugin on the 1.21.0 test server and got a loading error. Cannot invoke "Object.toString()" because "username" is null

You can see the full text of the error below.

[09:51:47] [Server thread/INFO]: [BeaconWaypoints] Enabling BeaconWaypoints v1.7
[09:51:47] [Server thread/INFO]: [BeaconWaypoints] Loading module for version 1.21-R0.1-SNAPSHOT
[09:51:47] [Server thread/ERROR]: Error occurred while enabling BeaconWaypoints v1.7 (Is it up to da>
java.lang.NullPointerException: Cannot invoke "Object.toString()" because "username" is null
        at BeaconWaypoints-1.7.jar/com.github.dawsonvilamaa.beaconwaypoint.Main.loadData(Main.java:1>
        at BeaconWaypoints-1.7.jar/com.github.dawsonvilamaa.beaconwaypoint.Main.onEnable(Main.java:1>
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:288) ~[paper-api-1.21-R0.1-S>
        at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstan>
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImp>
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:520) ~[paper->
        at org.bukkit.craftbukkit.CraftServer.enablePlugin(CraftServer.java:629) ~[paper-1.21.jar:1.>
        at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:578) ~[paper-1.21.jar:1>
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:752) ~[paper-1.21.ja>
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:514) ~[paper-1.21.jar>
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:327) ~[pap>
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1219) ~[paper-1.21.ja>
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:329) ~[paper-1.21>
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]

Since the author has already added a class for version 1.21, I think the problem may be with the raw version of the paper assembly.

But if this is not the case please add support for version 1.21

energy-sync commented 2 weeks ago

Can you post your json file for your waypoints? I think this an error from reading it

dasdev20 commented 2 weeks ago

@energy-sync, Thank you, for your answer.

Indeed, there is a problem with the files of private user portals. As I understand it, the record format has changed and the username column has been added. Old format: {"uuid":"0d5bb9a4-054e-3dea-a26b-65fe26774771","waypoints":[]} New Format: {"uuid":"0d5bb9a4-054e-3dea-a26b-65fe26774771","waypoints":[],"username":"Username"}

After adding the appropriate column, I launched the plugin on experimental 1.21

energy-sync commented 2 weeks ago

I added a new release with changes to account for the username field not being there. Could you download it and test to make sure the issue is resolved? https://github.com/energy-sync/BeaconWaypoints/releases/tag/v1.7.1

dasdev20 commented 2 weeks ago

@energy-sync, Thank you for your prompt work. Resolved.

I used the private user portal file from version 1.6.5, and ran it with the plugin version 1.7.1. Now the username column has been auto added to the file and the plugin has launched.