cloudnode-pro / EnchantBookPlus

Combine enchantment books to achieve levels above vanilla
GNU General Public License v3.0
2 stars 0 forks source link

Could not pass event PrepareAnvilEvent to EnchantBookPlus v1.0.2 #13

Closed Folas1337 closed 1 week ago

Folas1337 commented 1 week ago

From time to time I am getting this error and I'm not entirely sure why:

[04:16:39 ERROR]: Could not pass event PrepareAnvilEvent to EnchantBookPlus v1.0.2
java.lang.NullPointerException: null
    at java.base/java.util.Objects.requireNonNull(Unknown Source) ~[?:?]
    at EnchantBookPlus.jar/pro.cloudnode.smp.enchantbookplus.event.PrepareAnvil.onPrepareAnvil(PrepareAnvil.java:28) ~[EnchantBookPlus.jar:?]
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor197.execute(Unknown Source) ~[?:?]
    at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:77) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:1.21-46-2fa5e0e]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
    at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:131) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.event.Event.callEvent(Event.java:45) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
    at org.bukkit.craftbukkit.event.CraftEventFactory.callPrepareResultEvent(CraftEventFactory.java:1800) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.world.inventory.AnvilMenu.setItemName(AnvilMenu.java:330) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.server.network.ServerGamePacketListenerImpl.handleRenameItem(ServerGamePacketListenerImpl.java:979) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.network.protocol.game.ServerboundRenameItemPacket.handle(ServerboundRenameItemPacket.java:33) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.network.protocol.game.ServerboundRenameItemPacket.handle(ServerboundRenameItemPacket.java:15) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:36) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1541) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:201) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1518) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1511) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:135) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.server.MinecraftServer.managedBlock(MinecraftServer.java:1470) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1477) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1322) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:329) ~[paper-1.21.jar:1.21-46-2fa5e0e]
    at java.base/java.lang.Thread.run(Unknown Source) ~[?:?]
zefir-git commented 1 week ago

Does this error crash the server?

What might be causing this issue is when the 3rd anvil slot has a result, but the 2nd anvil slot is empty. Possibly occurs when renaming an item on the anvil.

Caused on: https://github.com/cloudnode-pro/EnchantBookPlus/blob/a52f0d849c705fe79d306eb74a70e8fa943eb99c/src/main/java/pro/cloudnode/smp/enchantbookplus/event/PrepareAnvil.java#L28

Should be a simple fix with a nullability check.

Folas1337 commented 1 week ago

It does not crash the server, thanks for responding so quickly.

Looking forward to the fix :)

zefir-git commented 1 week ago

Fixed and released in 1.0.3