WesJD / AnvilGUI

Capture user input in Minecraft through an anvil GUI in under 20 lines of code

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AnvilGUI throws error

ItsHarshXD opened this issue · comments

ERROR:
[02:03:23 ERROR]: null org.bukkit.command.CommandException: Unhandled exception executing command 'headstealplus' in plugin HeadStealPlus v1.0.0a at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:155) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?] at org.bukkit.craftbukkit.v1_20_R2.CraftServer.dispatchCommand(CraftServer.java:991) ~[paper-1.20.2.jar:git-Paper-292] at org.bukkit.craftbukkit.v1_20_R2.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[paper-1.20.2.jar:git-Paper-292] at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:265) ~[paper-1.20.2.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:2208) ~[?:?] at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$19(ServerGamePacketListenerImpl.java:2168) ~[?:?] 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) ~[paper-1.20.2.jar:git-Paper-292] 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:1324) ~[paper-1.20.2.jar:git-Paper-292] at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:193) ~[paper-1.20.2.jar:git-Paper-292] at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?] at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1301) ~[paper-1.20.2.jar:git-Paper-292] at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1294) ~[paper-1.20.2.jar:git-Paper-292] at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?] at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1272) ~[paper-1.20.2.jar:git-Paper-292] at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1160) ~[paper-1.20.2.jar:git-Paper-292] at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:315) ~[paper-1.20.2.jar:git-Paper-292] at java.lang.Thread.run(Thread.java:840) ~[?:?] Caused by: java.lang.IllegalArgumentException: click handler cannot be null at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[commons-lang-2.6.jar:2.6] at org.itsharshxd.premium.anvilgui.AnvilGUI$Builder.open(AnvilGUI.java:619) ~[HeadStealPlus-1.0.0.jar:?] at org.itsharshxd.premium.HeadStealPlus.openAnvilGUI(HeadStealPlus.java:230) ~[HeadStealPlus-1.0.0.jar:?] at org.itsharshxd.premium.HeadStealPlus.onCommand(HeadStealPlus.java:117) ~[HeadStealPlus-1.0.0.jar:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.20.2-R0.1-SNAPSHOT.jar:?] ... 23 more

CODE:
if (args[0].equalsIgnoreCase("revivalcore") && args[1].equalsIgnoreCase("bind")) { Player player = (Player) sender; ItemStack item = player.getInventory().getItemInMainHand(); ItemMeta itemMeta = item.getItemMeta(); String name = config.getString("revivalcore.name").replaceAll("&", "§"); if (itemMeta.getDisplayName().equals(IridiumColorAPI.process(name))) { openAnvilGUI(player); } else { sender.sendMessage("nodisplayname"); }
openAnvilGUI Code:
public void openAnvilGUI(Player player) { ItemStack stack = new ItemStack(Material.BARRIER); ItemMeta meta = stack.getItemMeta(); meta.setDisplayName("§r"); stack.setItemMeta(meta); new AnvilGUI.Builder() .onClose(stateSnapshot -> { if (!stateSnapshot.getText().equalsIgnoreCase("None")) { String bindData = stateSnapshot.getText(); config.set("pInteract", bindData); saveConfig(); player.sendMessage(IridiumColorAPI.process(config.getString("bindMessage", "&aThe Revival Core has been bound to &f%player%&a.").replaceAll("%player%", bindData).replaceAll("&", "§"))); } }) .title("Enter eliminated player name.") .text("None") .interactableSlots(AnvilGUI.Slot.INPUT_LEFT, AnvilGUI.Slot.INPUT_RIGHT, AnvilGUI.Slot.OUTPUT) .itemRight(stack) .plugin(instance) .open(player); }

Can you please help?

you need to set a clickHandler by calling AnvilGUI#onClick.

Thanks, its work now anyhow.