McMMO concoctions from the alchemy skill can be added to tradeshops as a cost and/or product, and traded as the player would with any other item.
Observed/Actual behavior
Alchemy concoctions can be added to a trade shop as a cost or product, and they appear on the sign. Performing any other commands after doing so results in the 'internal error has occured' message and the null pasted below.
Steps/models to reproduce
Create potions with mcMMO alchemy
Attempt to create a TradeShop buying or selling these items.
I have the command aliased on my server using MyCommand, but the alias just executes /ts commands as the player
TradeShop version and Minecraft version (CraftBukkit/Spigot/Paper/...)
Purpur #1967 - 1.19.4
TradeShop 2.6.0-STABLE
Agreements
[X] I have searched for and ensured there isn't already an open issue regarding this.
[X] My version of Minecraft and TradeShop are supported by the TradeShop Dev Team (when in doubt, first ask on the Discord).
Other
org.bukkit.command.CommandException: Unhandled exception executing command 'ts' in plugin TradeShop v2.6.0-STABLE
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[purpur-api-1.19.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) ~[purpur-api-1.19.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_19_R3.CraftServer.dispatchCommand(CraftServer.java:920) ~[purpur-1.19.4.jar:git-Purpur-1967]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleCommand(ServerGamePacketListenerImpl.java:2609) ~[?:?]
at org.bukkit.craftbukkit.v1_19_R3.entity.CraftPlayer.chat(CraftPlayer.java:718) ~[purpur-1.19.4.jar:git-Purpur-1967]
at it.emmerrei.mycommand.execute.types.AliasType.ExecuteAliasForPlayer(AliasType.java:42) ~[MyCommand-5.7.3.jar:?]
at it.emmerrei.mycommand.execute.DispatchCommands.ExecuteMyCommandCommands(DispatchCommands.java:547) ~[MyCommand-5.7.3.jar:?]
at it.emmerrei.mycommand.commands.CmdCustomCommands.onCommand(CmdCustomCommands.java:145) ~[MyCommand-5.7.3.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[purpur-api-1.19.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) ~[purpur-api-1.19.4-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_19_R3.CraftServer.dispatchCommand(CraftServer.java:920) ~[purpur-1.19.4.jar:git-Purpur-1967]
at org.bukkit.craftbukkit.v1_19_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[purpur-1.19.4.jar:git-Purpur-1967]
at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:264) ~[purpur-1.19.4.jar:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:330) ~[?:?]
at net.minecraft.commands.Commands.performCommand(Commands.java:314) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2382) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$21(ServerGamePacketListenerImpl.java:2342) ~[?:?]
at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.19.4.jar:git-Purpur-1967]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1369) ~[purpur-1.19.4.jar:git-Purpur-1967]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[purpur-1.19.4.jar:git-Purpur-1967]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1346) ~[purpur-1.19.4.jar:git-Purpur-1967]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1339) ~[purpur-1.19.4.jar:git-Purpur-1967]
at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[?:?]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1455) ~[purpur-1.19.4.jar:git-Purpur-1967]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1195) ~[purpur-1.19.4.jar:git-Purpur-1967]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:325) ~[purpur-1.19.4.jar:git-Purpur-1967]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "org.bukkit.configuration.serialization.ConfigurationSerializable.toString()" because the return value of "org.shanerx.tradeshop.utils.gsonprocessing.typeadapters.ConfigurationSerializableAdapter.deserialize(com.google.gson.JsonElement, java.lang.reflect.Type, com.google.gson.JsonDeserializationContext)" is null
at org.shanerx.tradeshop.utils.gsonprocessing.typeadapters.ConfigurationSerializableAdapter.deserialize(ConfigurationSerializableAdapter.java:65) ~[TradeShop-2.6.0-STABLE.jar:?]
at org.shanerx.tradeshop.utils.gsonprocessing.typeadapters.ConfigurationSerializableAdapter.deserialize(ConfigurationSerializableAdapter.java:45) ~[TradeShop-2.6.0-STABLE.jar:?]
at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:76) ~[gson-2.10.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.readIntoField(ReflectiveTypeAdapterFactory.java:212) ~[gson-2.10.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$FieldReflectionAdapter.readField(ReflectiveTypeAdapterFactory.java:431) ~[gson-2.10.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:391) ~[gson-2.10.jar:?]
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40) ~[gson-2.10.jar:?]
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82) ~[gson-2.10.jar:?]
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61) ~[gson-2.10.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.readIntoField(ReflectiveTypeAdapterFactory.java:212) ~[gson-2.10.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$FieldReflectionAdapter.readField(ReflectiveTypeAdapterFactory.java:431) ~[gson-2.10.jar:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:391) ~[gson-2.10.jar:?]
at com.google.gson.Gson.fromJson(Gson.java:1214) ~[gson-2.10.jar:?]
at com.google.gson.Gson.fromJson(Gson.java:1319) ~[gson-2.10.jar:?]
at com.google.gson.Gson.fromJson(Gson.java:1290) ~[gson-2.10.jar:?]
at org.shanerx.tradeshop.utils.gsonprocessing.GsonProcessor.fromJson(GsonProcessor.java:61) ~[TradeShop-2.6.0-STABLE.jar:?]
at org.shanerx.tradeshop.data.storage.Json.JsonShopConfiguration.load(JsonShopConfiguration.java:90) ~[TradeShop-2.6.0-STABLE.jar:?]
at org.shanerx.tradeshop.data.storage.DataStorage.loadShopFromSign(DataStorage.java:58) ~[TradeShop-2.6.0-STABLE.jar:?]
at org.shanerx.tradeshop.shop.Shop.loadShop(Shop.java:169) ~[TradeShop-2.6.0-STABLE.jar:?]
at org.shanerx.tradeshop.shop.Shop.loadShop(Shop.java:179) ~[TradeShop-2.6.0-STABLE.jar:?]
at org.shanerx.tradeshop.commands.commandrunners.CommandRunner.findShop(CommandRunner.java:76) ~[TradeShop-2.6.0-STABLE.jar:?]
at org.shanerx.tradeshop.commands.commandrunners.ShopItemCommand.addSide(ShopItemCommand.java:200) ~[TradeShop-2.6.0-STABLE.jar:?]
at org.shanerx.tradeshop.commands.CommandCaller.onCommand(CommandCaller.java:101) ~[TradeShop-2.6.0-STABLE.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[purpur-api-1.19.4-R0.1-SNAPSHOT.jar:?]
... 31 more
Expected behavior
McMMO concoctions from the alchemy skill can be added to tradeshops as a cost and/or product, and traded as the player would with any other item.
Observed/Actual behavior
Alchemy concoctions can be added to a trade shop as a cost or product, and they appear on the sign. Performing any other commands after doing so results in the 'internal error has occured' message and the null pasted below.
Steps/models to reproduce
Plugin list
ajLeaderboards, Autorank, BlueBridgeCore, BlueBridgeGP, BlueBridgeWB, BlueMap, BlueMapFloodgate, BossBarTimer, ChatControlRed, CoreProtect, CraftingStore, DiscordSRV, Essentials, EssentialsChat, EssentialsSpawn, ExplodingCats, ExploitFixer, floodgate, Geyser-Spigot, GriefPrevention, GSit, HamsterAPI, HeadDatabase, InventoryRollbackPlus, InvSeePlusPlus, InvSeePlusPlus_Clear, InvSeePlusPlus_Give, JetsAntiAFKPro, LuckPerms, mcMMO, MineableSpawners, Multiverse-Core, MyCommand, PlaceholderAPI, PlayerParticles, PlayerWarps, ProtocolLib, RedstoneDetector, spark, TAB, Themis, ToolStats, TradeShop, Vault, VoidGen, WorldEdit, WorldGuard
TradeShop version and Minecraft version (CraftBukkit/Spigot/Paper/...)
Purpur #1967 - 1.19.4 TradeShop 2.6.0-STABLE
Agreements
Other
org.bukkit.command.CommandException: Unhandled exception executing command 'ts' in plugin TradeShop v2.6.0-STABLE at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[purpur-api-1.19.4-R0.1-SNAPSHOT.jar:?] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) ~[purpur-api-1.19.4-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.v1_19_R3.CraftServer.dispatchCommand(CraftServer.java:920) ~[purpur-1.19.4.jar:git-Purpur-1967] at net.minecraft.server.network.ServerGamePacketListenerImpl.handleCommand(ServerGamePacketListenerImpl.java:2609) ~[?:?] at org.bukkit.craftbukkit.v1_19_R3.entity.CraftPlayer.chat(CraftPlayer.java:718) ~[purpur-1.19.4.jar:git-Purpur-1967] at it.emmerrei.mycommand.execute.types.AliasType.ExecuteAliasForPlayer(AliasType.java:42) ~[MyCommand-5.7.3.jar:?] at it.emmerrei.mycommand.execute.DispatchCommands.ExecuteMyCommandCommands(DispatchCommands.java:547) ~[MyCommand-5.7.3.jar:?] at it.emmerrei.mycommand.commands.CmdCustomCommands.onCommand(CmdCustomCommands.java:145) ~[MyCommand-5.7.3.jar:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[purpur-api-1.19.4-R0.1-SNAPSHOT.jar:?] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) ~[purpur-api-1.19.4-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.v1_19_R3.CraftServer.dispatchCommand(CraftServer.java:920) ~[purpur-1.19.4.jar:git-Purpur-1967] at org.bukkit.craftbukkit.v1_19_R3.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[purpur-1.19.4.jar:git-Purpur-1967] at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:264) ~[purpur-1.19.4.jar:?] at net.minecraft.commands.Commands.performCommand(Commands.java:330) ~[?:?] at net.minecraft.commands.Commands.performCommand(Commands.java:314) ~[?:?] at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2382) ~[?:?] at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$21(ServerGamePacketListenerImpl.java:2342) ~[?:?] at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?] at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?] at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.19.4.jar:git-Purpur-1967] at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?] at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1369) ~[purpur-1.19.4.jar:git-Purpur-1967] at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[purpur-1.19.4.jar:git-Purpur-1967] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1346) ~[purpur-1.19.4.jar:git-Purpur-1967] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1339) ~[purpur-1.19.4.jar:git-Purpur-1967] at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[?:?] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1455) ~[purpur-1.19.4.jar:git-Purpur-1967] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1195) ~[purpur-1.19.4.jar:git-Purpur-1967] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:325) ~[purpur-1.19.4.jar:git-Purpur-1967] at java.lang.Thread.run(Thread.java:833) ~[?:?] Caused by: java.lang.NullPointerException: Cannot invoke "org.bukkit.configuration.serialization.ConfigurationSerializable.toString()" because the return value of "org.shanerx.tradeshop.utils.gsonprocessing.typeadapters.ConfigurationSerializableAdapter.deserialize(com.google.gson.JsonElement, java.lang.reflect.Type, com.google.gson.JsonDeserializationContext)" is null at org.shanerx.tradeshop.utils.gsonprocessing.typeadapters.ConfigurationSerializableAdapter.deserialize(ConfigurationSerializableAdapter.java:65) ~[TradeShop-2.6.0-STABLE.jar:?] at org.shanerx.tradeshop.utils.gsonprocessing.typeadapters.ConfigurationSerializableAdapter.deserialize(ConfigurationSerializableAdapter.java:45) ~[TradeShop-2.6.0-STABLE.jar:?] at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:76) ~[gson-2.10.jar:?] at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.readIntoField(ReflectiveTypeAdapterFactory.java:212) ~[gson-2.10.jar:?] at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$FieldReflectionAdapter.readField(ReflectiveTypeAdapterFactory.java:431) ~[gson-2.10.jar:?] at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:391) ~[gson-2.10.jar:?] at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40) ~[gson-2.10.jar:?] at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82) ~[gson-2.10.jar:?] at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61) ~[gson-2.10.jar:?] at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.readIntoField(ReflectiveTypeAdapterFactory.java:212) ~[gson-2.10.jar:?] at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$FieldReflectionAdapter.readField(ReflectiveTypeAdapterFactory.java:431) ~[gson-2.10.jar:?] at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:391) ~[gson-2.10.jar:?] at com.google.gson.Gson.fromJson(Gson.java:1214) ~[gson-2.10.jar:?] at com.google.gson.Gson.fromJson(Gson.java:1319) ~[gson-2.10.jar:?] at com.google.gson.Gson.fromJson(Gson.java:1290) ~[gson-2.10.jar:?] at org.shanerx.tradeshop.utils.gsonprocessing.GsonProcessor.fromJson(GsonProcessor.java:61) ~[TradeShop-2.6.0-STABLE.jar:?] at org.shanerx.tradeshop.data.storage.Json.JsonShopConfiguration.load(JsonShopConfiguration.java:90) ~[TradeShop-2.6.0-STABLE.jar:?] at org.shanerx.tradeshop.data.storage.DataStorage.loadShopFromSign(DataStorage.java:58) ~[TradeShop-2.6.0-STABLE.jar:?] at org.shanerx.tradeshop.shop.Shop.loadShop(Shop.java:169) ~[TradeShop-2.6.0-STABLE.jar:?] at org.shanerx.tradeshop.shop.Shop.loadShop(Shop.java:179) ~[TradeShop-2.6.0-STABLE.jar:?] at org.shanerx.tradeshop.commands.commandrunners.CommandRunner.findShop(CommandRunner.java:76) ~[TradeShop-2.6.0-STABLE.jar:?] at org.shanerx.tradeshop.commands.commandrunners.ShopItemCommand.addSide(ShopItemCommand.java:200) ~[TradeShop-2.6.0-STABLE.jar:?] at org.shanerx.tradeshop.commands.CommandCaller.onCommand(CommandCaller.java:101) ~[TradeShop-2.6.0-STABLE.jar:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[purpur-api-1.19.4-R0.1-SNAPSHOT.jar:?] ... 31 more