Fabricio20 / HubBasics

Bukkit Plugin For Hub Owners

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

1.18 support?

Spiderjockey02 opened this issue · comments

commented
[21:55:41] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to HubBasics v6.11.9
java.lang.NullPointerException: Cannot invoke "java.lang.Boolean.booleanValue()" because the return value of "net.notfab.hubbasics.spigot.nms.nbt.NBTItem.hasKey(String)" is null
	at net.notfab.hubbasics.spigot.listeners.v1_9.ItemListener.onRightClick(ItemListener.java:103) ~[HubBasics-Spigot.jar:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor60.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:git-Paper-36]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.craftbukkit.v1_18_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:543) ~[paper-1.18.jar:git-Paper-36]
	at org.bukkit.craftbukkit.v1_18_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:506) ~[paper-1.18.jar:git-Paper-36]
	at org.bukkit.craftbukkit.v1_18_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:501) ~[paper-1.18.jar:git-Paper-36]
	at org.bukkit.craftbukkit.v1_18_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:497) ~[paper-1.18.jar:git-Paper-36]
	at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItem(ServerGamePacketListenerImpl.java:1806) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:28) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.a(ServerboundUseItemPacket.java:8) ~[?:?]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:56) ~[?:?]
	at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.18.jar:git-Paper-36]
	at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:149) ~[?:?]
	at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[?:?]
	at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1413) ~[paper-1.18.jar:git-Paper-36]
	at net.minecraft.server.MinecraftServer.c(MinecraftServer.java:189) ~[paper-1.18.jar:git-Paper-36]
	at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~[?:?]
	at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1391) ~[paper-1.18.jar:git-Paper-36]
	at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1384) ~[paper-1.18.jar:git-Paper-36]
	at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:132) ~[?:?]
	at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1362) ~[paper-1.18.jar:git-Paper-36]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1268) ~[paper-1.18.jar:git-Paper-36]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:317) ~[paper-1.18.jar:git-Paper-36]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]

Version: This server is running Paper version git-Paper-36 (MC: 1.18) (Implementing API version 1.18-R0.1-SNAPSHOT)

commented

Also for some reason right-clicking the menu item causes you TP at the position u were looking at

Hello, I'll be checking this soon! 1.17 also still not supported. The TP thing is caused by World Edit, right clicking the compass will teleport you if you have World Edit and the appropriate permissions.

Hello, I believe this should be fixed on the latest 6.11.10 version I released a few minutes ago. Let me know if it's fine!

commented

Still the same error:

[16:45:46] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to HubBasics v6.11.10
java.lang.NullPointerException: Cannot invoke "java.lang.Boolean.booleanValue()" because the return value of "net.notfab.hubbasics.spigot.nms.nbt.NBTItem.hasKey(String)" is null
	at net.notfab.hubbasics.spigot.listeners.v1_9.ItemListener.onRightClick(ItemListener.java:103) ~[HubBasics-Spigot.jar:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor67.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:git-Paper-57]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:628) ~[paper-api-1.18-R0.1-SNAPSHOT.jar:?]
	at org.bukkit.craftbukkit.v1_18_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:543) ~[paper-1.18.jar:git-Paper-57]
	at org.bukkit.craftbukkit.v1_18_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:506) ~[paper-1.18.jar:git-Paper-57]
	at org.bukkit.craftbukkit.v1_18_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:501) ~[paper-1.18.jar:git-Paper-57]
	at org.bukkit.craftbukkit.v1_18_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:497) ~[paper-1.18.jar:git-Paper-57]
	at net.minecraft.server.network.ServerGamePacketListenerImpl.handleUseItem(ServerGamePacketListenerImpl.java:1872) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.handle(ServerboundUseItemPacket.java:28) ~[?:?]
	at net.minecraft.network.protocol.game.ServerboundUseItemPacket.a(ServerboundUseItemPacket.java:8) ~[?:?]
	at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:56) ~[?:?]
	at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.18.jar:git-Paper-57]
	at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:149) ~[?:?]
	at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[?:?]
	at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1413) ~[paper-1.18.jar:git-Paper-57]
	at net.minecraft.server.MinecraftServer.c(MinecraftServer.java:189) ~[paper-1.18.jar:git-Paper-57]
	at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~[?:?]
	at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1391) ~[paper-1.18.jar:git-Paper-57]
	at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1384) ~[paper-1.18.jar:git-Paper-57]
	at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:132) ~[?:?]
	at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1362) ~[paper-1.18.jar:git-Paper-57]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1268) ~[paper-1.18.jar:git-Paper-57]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:317) ~[paper-1.18.jar:git-Paper-57]
	at java.lang.Thread.run(Thread.java:833) ~[?:?]

Version: Paper version git-Paper-57 (MC: 1.18) (Implementing API version 1.18-R0.1-SNAPSHOT)

Hm, I'll take another look at this maybe today, it should be fixed though as I was unable to reproduce the issue yesterday after changing the nbt classes location.

commented

I can send my list of plugins if u want, to see if it's conflicting anything?

commented

Also for some reason right-clicking the menu item causes you TP at the position u were looking at

You can remove this by holding the compass and typing /none in chat

Looks like Spigot stopped remapping Mojang classes in 1.17 and that completely broke NBT in 1.18, I thought 1.17 had finally added proper NBT support but looks like they just made it even harder to use in 1.18. Not sure why Spigot still doesn't have an abstracted API for adding NBT tags to items.

Anyhow, the way NBT works in 1.18 is EXTREMELY complex and requires me tinkering with the build system for remapping the classes myself and then back, this is too much work and would likely be a pain to make functional without crippling older versions.

With that said I've opted to use NBTAPI for 1.18 and above as a soft dependency. In 1.17 HubBasics will use net.minecraft.nbt as available and below 1.17 it will just use the reflection method that has worked since the beginning of time. This means that for HubBasics to work properly in 1.18 (Item-related features) you MUST install NBTAPI.

HubBasics will throw a custom Unsupported Minecraft Version error if you attempt to run on 1.18 without NBTAPI installed.

This should now be fixed in release 6.11.11, don't forget to install NBTAPI.