jonahisadev / TreeMe

A competent timber plugin for Minecraft servers
MIT License
3 stars 2 forks source link

Hot-enabling plugin causes it to fail with `NullPointerException` #11

Open mlodybercik opened 2 years ago

mlodybercik commented 2 years ago

Throwing the plugin into plugins/ folder and then reloading the server with /reload causes the plugin to fail with

java.lang.NullPointerException: Cannot read field "enabled" because the return value of "me.jonahisadev.treeme.PlayerStore.state(java.util.UUID)" is null

Fully stopping the server and then starting it again solves the issue.

Stack trace(s) + info

``` [12:08:47] [Server thread/INFO]: Krzesu0 issued server command: /treeme toggle [12:08:47] [Server thread/ERROR]: null org.bukkit.command.CommandException: Unhandled exception executing command 'treeme' in plugin TreeMe v1.4.3 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[spigot-api-1.18-R0.1-SNAPSHOT.jar:?] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) ~[spigot-api-1.18-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.v1_18_R1.CraftServer.dispatchCommand(CraftServer.java:800) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:1937) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:1776) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:1757) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.network.protocol.game.PacketPlayInChat.a(PacketPlayInChat.java:46) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.network.protocol.game.PacketPlayInChat.a(PacketPlayInChat.java:1) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.network.protocol.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:30) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.TickTask.run(SourceFile:18) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.util.thread.IAsyncTaskHandler.c(SourceFile:151) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.c(SourceFile:23) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1157) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.c(MinecraftServer.java:1) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.util.thread.IAsyncTaskHandler.y(SourceFile:125) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.bf(MinecraftServer.java:1136) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.y(MinecraftServer.java:1129) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.util.thread.IAsyncTaskHandler.c(SourceFile:134) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1113) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1037) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:303) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at java.lang.Thread.run(Thread.java:833) [?:?] Caused by: java.lang.NullPointerException: Cannot read field "enabled" because "val" is null at me.jonahisadev.treeme.PlayerStore.toggle(PlayerStore.java:34) ~[?:?] at me.jonahisadev.treeme.ChopCommand.onCommand(ChopCommand.java:41) ~[?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[spigot-api-1.18-R0.1-SNAPSHOT.jar:?] ... 21 more [12:10:06] [Server thread/ERROR]: Could not pass event BlockBreakEvent to TreeMe v1.4.3 org.bukkit.event.EventException: null at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-api-1.18-R0.1-SNAPSHOT.jar:?] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-api-1.18-R0.1-SNAPSHOT.jar:?] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot-api-1.18-R0.1-SNAPSHOT.jar:?] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot-api-1.18-R0.1-SNAPSHOT.jar:?] at net.minecraft.server.level.PlayerInteractManager.a(PlayerInteractManager.java:346) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.level.PlayerInteractManager.a(PlayerInteractManager.java:306) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.level.PlayerInteractManager.a(PlayerInteractManager.java:276) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:1472) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.network.protocol.game.PacketPlayInBlockDig.a(SourceFile:34) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.network.protocol.game.PacketPlayInBlockDig.a(SourceFile:8) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.network.protocol.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:30) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.TickTask.run(SourceFile:18) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.util.thread.IAsyncTaskHandler.c(SourceFile:151) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.c(SourceFile:23) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:1157) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.c(MinecraftServer.java:1) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.util.thread.IAsyncTaskHandler.y(SourceFile:125) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.bf(MinecraftServer.java:1136) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.y(MinecraftServer.java:1129) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.util.thread.IAsyncTaskHandler.c(SourceFile:134) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1113) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:1037) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:303) ~[spigot-1.18-R0.1-SNAPSHOT.jar:3336-Spigot-a5dea1c-a008701] at java.lang.Thread.run(Thread.java:833) [?:?] Caused by: java.lang.NullPointerException: Cannot read field "enabled" because the return value of "me.jonahisadev.treeme.PlayerStore.state(java.util.UUID)" is null at me.jonahisadev.treeme.ChopListener.onChop(ChopListener.java:38) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-api-1.18-R0.1-SNAPSHOT.jar:?] ... 23 more ``` ``` >ver [12:28:16] [Server thread/INFO]: This server is running CraftBukkit version 3336-Spigot-a5dea1c-a008701 (MC: 1.18) (Implementing API version 1.18-R0.1-SNAPSHOT) ```

jonahisadev commented 2 years ago

Ooh, I haven't worked on this plugin in a while! This weekend and next week are my finals for the semester, so it will probably be some time before I can get around to looking at this