nikosgram / gringotts

Gringotts is an item-based economy plugin for the Bukkit Minecraft server platform. Unlike earlier economy plugins, all currency value and money transactions are based on actual items in Minecraft, per default emeralds.
https://www.spigotmc.org/resources/gringotts.42071/
BSD 2-Clause "Simplified" License
43 stars 36 forks source link

fix MC 1.21 plugin load failure - issue #176 #178

Closed DocSplinters closed 1 month ago

DocSplinters commented 2 months ago

call ItemStack constructor with amount 1 instead of 0

Shepelzz commented 2 months ago

@DocSplinters It starts but on addind money to created vault it throws

[21:24:03 ERROR]: Command exception: /moneyadm add MrShmel 111 org.bukkit.command.CommandException: Unhandled exception executing command 'moneyadm' in plugin Gringotts v2.12.6-SNAPSHOT at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[pufferfish-api-1.21-R0.1-SNAPSHOT.jar:?] at io.papermc.paper.command.brigadier.bukkit.BukkitCommandNode$BukkitBrigCommand.run(BukkitCommandNode.java:91) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.2.9.jar:?] at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:31) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.commands.execution.CommandQueueEntry.execute(CommandQueueEntry.java:5) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:103) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:443) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.commands.Commands.performCommand(Commands.java:350) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.commands.Commands.performCommand(Commands.java:337) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.commands.Commands.performCommand(Commands.java:332) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.server.network.ServerGamePacketListenerImpl.performUnsignedChatCommand(ServerGamePacketListenerImpl.java:2148) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$11(ServerGamePacketListenerImpl.java:2122) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.server.TickTask.run(TickTask.java:18) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1544) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:201) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1521) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1514) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:114) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1636) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1305) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:331) ~[pufferfish-1.21.jar:1.21-6-bdb56f1] at java.base/java.lang.Thread.run(Thread.java:1570) ~[?:?] Caused by: org.gestern.gringotts.GringottsException: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.bukkit.inventory.InventoryHolder.getInventory()" because the return value of "org.gestern.gringotts.AccountChest.chest()" is null at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.GringottsAccount.getTimeout(GringottsAccount.java:488) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.GringottsAccount.add(GringottsAccount.java:249) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.api.impl.GringottsEco$ValidAccount.add(GringottsEco.java:644) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.commands.MoneyAdminExecutor.onCommand(MoneyAdminExecutor.java:92) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[pufferfish-api-1.21-R0.1-SNAPSHOT.jar:?] ... 26 more Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.bukkit.inventory.InventoryHolder.getInventory()" because the return value of "org.gestern.gringotts.AccountChest.chest()" is null at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:396) ~[?:?] at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2096) ~[?:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.GringottsAccount.getTimeout(GringottsAccount.java:486) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.GringottsAccount.add(GringottsAccount.java:249) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.api.impl.GringottsEco$ValidAccount.add(GringottsEco.java:644) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.commands.MoneyAdminExecutor.onCommand(MoneyAdminExecutor.java:92) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[pufferfish-api-1.21-R0.1-SNAPSHOT.jar:?] ... 26 more Caused by: java.lang.NullPointerException: Cannot invoke "org.bukkit.inventory.InventoryHolder.getInventory()" because the return value of "org.gestern.gringotts.AccountChest.chest()" is null at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.GringottsAccount.lambda$add$1(GringottsAccount.java:168) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.GringottsAccount.lambda$callSync$0(GringottsAccount.java:53) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.GringottsAccount.callSync(GringottsAccount.java:60) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.GringottsAccount.add(GringottsAccount.java:249) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.api.impl.GringottsEco$ValidAccount.add(GringottsEco.java:644) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at gringotts-2.12.6-SNAPSHOT.jar/org.gestern.gringotts.commands.MoneyAdminExecutor.onCommand(MoneyAdminExecutor.java:92) ~[gringotts-2.12.6-SNAPSHOT.jar:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[pufferfish-api-1.21-R0.1-SNAPSHOT.jar:?] ... 26 more

DocSplinters commented 2 months ago

@Shepelzz Don't know enough about all this to make a solid statement but I did notice that for me, the Gringotts version shows as v2.12.7-SNAPSHOT whereas in your stack trace it appears as gringotts-2.12.6-SNAPSHOT. Have you possibly applied my changes to an older version of nikosgram's repository?

I did try "moneyadm add DocSplinters 1" at the server console and got this: [22:15:03 INFO]: Added 1 Tater to account DocSplinters

Relaxing9 commented 2 months ago

Can you upload a jar that I can use for 1.20.6+ servers?

DocSplinters commented 2 months ago

Not sure how to target a specific Minecraft version, this is what's working for me with v1.21 and v1.21.1 ... I've scanned it with BitDefender before uploading so it should be clean. gringotts.zip