CrossplatForms icon indicating copy to clipboard operation
CrossplatForms copied to clipboard

NullPointerException: Profile name must not be null

Open mbenitog opened this issue 5 months ago • 0 comments

When opening a menu which uses textures:

skull:
   textures: <base64 texture>
The game will throw this exception:
[22:07:51] [Server thread/ERROR]: Could not pass event PlayerCommandPreprocessEvent to CrossplatForms v1.5.0
java.lang.NullPointerException: Profile name must not be null
	at java.util.Objects.requireNonNull(Objects.java:235) ~[?:?]
	at com.mojang.authlib.GameProfile.<init>(GameProfile.java:31) ~[authlib-6.0.52.jar:?]
	at dev.kejona.crossplatforms.spigot.v1_8_R3.Adapter_v1_8_R3.setSkullProfile(Adapter_v1_8_R3.java:49) ~[CrossplatForms-Spigot.jar:?]
	at dev.kejona.crossplatforms.spigot.item.SpigotInventoryFactory.skullItem(SpigotInventoryFactory.java:108) ~[CrossplatForms-Spigot.jar:?]
	at dev.kejona.crossplatforms.inventory.ConfiguredItem.convertAndResolve(ConfiguredItem.java:45) ~[CrossplatForms-Spigot.jar:?]
	at dev.kejona.crossplatforms.interfacing.java.JavaMenu.send(JavaMenu.java:73) ~[CrossplatForms-Spigot.jar:?]
	at dev.kejona.crossplatforms.interfacing.Interface.send(Interface.java:70) ~[CrossplatForms-Spigot.jar:?]
	at dev.kejona.crossplatforms.action.InterfaceAction.affectPlayer(InterfaceAction.java:66) ~[CrossplatForms-Spigot.jar:?]
	at dev.kejona.crossplatforms.action.GenericAction.affectPlayer(GenericAction.java:12) ~[CrossplatForms-Spigot.jar:?]
	at dev.kejona.crossplatforms.action.Action.lambda$affectPlayer$0(Action.java:24) ~[CrossplatForms-Spigot.jar:?]
	at java.util.ArrayList.forEach(ArrayList.java:1511) ~[?:?]
	at dev.kejona.crossplatforms.action.Action.affectPlayer(Action.java:24) ~[CrossplatForms-Spigot.jar:?]
	at dev.kejona.crossplatforms.command.custom.CustomCommand.run(CustomCommand.java:55) ~[CrossplatForms-Spigot.jar:?]
	at dev.kejona.crossplatforms.spigot.handler.SpigotHandler.onPreProcessCommand(SpigotHandler.java:155) ~[CrossplatForms-Spigot.jar:?]
	at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor186.execute(Unknown Source) ~[?:?]
	at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
	at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:81) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:git-Paper-405]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
	at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[paper-1.20.4.jar:git-Paper-405]
	at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[paper-1.20.4.jar:git-Paper-405]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:615) ~[paper-api-1.20.4-R0.1-SNAPSHOT.jar:?]
	at net.minecraft.server.network.ServerGamePacketListenerImpl.handleCommand(ServerGamePacketListenerImpl.java:2390) ~[?:?]
	at org.bukkit.craftbukkit.v1_20_R3.entity.CraftPlayer.chat(CraftPlayer.java:660) ~[paper-1.20.4.jar:git-Paper-405]
	at me.RockinChaos.itemjoin.item.ItemCommand.dispatchPlayerCommands(ItemCommand.java:576) ~[ItemJoin.jar:?]
	at me.RockinChaos.itemjoin.item.ItemCommand.lambda$sendDispatch$3(ItemCommand.java:489) ~[ItemJoin.jar:?]
	at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftTask.run(CraftTask.java:101) ~[paper-1.20.4.jar:git-Paper-405]
	at org.bukkit.craftbukkit.v1_20_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:482) ~[paper-1.20.4.jar:git-Paper-405]
	at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1636) ~[paper-1.20.4.jar:git-Paper-405]
	at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:446) ~[paper-1.20.4.jar:git-Paper-405]
	at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1515) ~[paper-1.20.4.jar:git-Paper-405]
	at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1216) ~[paper-1.20.4.jar:git-Paper-405]
	at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:319) ~[paper-1.20.4.jar:git-Paper-405]
	at java.lang.Thread.run(Thread.java:840) ~[?:?]

The issue seems to rely on line 49. When 'textures' is used and is not null, 'name' could be null so it should not be accessed without checking first:

https://github.com/kejonaMC/CrossplatForms/blob/c619f169a221932b73bb0d81383c09811b5e07b8/spigot-common/v1_8_R3/src/main/java/dev/kejona/crossplatforms/spigot/v1_8_R3/Adapter_v1_8_R3.java#L38-L53

mbenitog avatar Jan 27 '24 23:01 mbenitog