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

Index 2 out of bounds for length 2

0PandaDEV opened this issue · comments

AnvilGUI Version: 1.9.5-SNAPSHOT
SpigotAPI Version: 1.21-R0.1-SNAPSHOT
Minecraft Server: 1.21 Paper

new AnvilGUI.Builder()
		.onClick((state, text) -> {
			RankAPI.setPrefix((Player) sender, args[1].toLowerCase(), ChatColor.translateAlternateColorCodes('&', " " + text.getText()));
			return Collections.singletonList(AnvilGUI.ResponseAction.close());
		})
		.text(Main.getInstance().getConfig().getString("Ranks." + args[1].toLowerCase() + ".prefix").replace("§", "&"))
		.itemLeft(new ItemStack(Material.NAME_TAG))
		.title("Enter the new prefix")
		.plugin(Main.getInstance())
		.open(player);
[15:32:11 ERROR]: Command exception: /rank prefix owner
org.bukkit.command.CommandException: Unhandled exception executing command 'rank' in plugin Nextron v1.5.7
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        at io.papermc.paper.command.brigadier.bukkit.BukkitCommandNode$BukkitBrigCommand.run(BukkitCommandNode.java:91) ~[paper-1.21.jar:1.21-9-4ea696f]
        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) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:19) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.commands.execution.CommandQueueEntry.execute(CommandQueueEntry.java:5) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:103) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:446) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.commands.Commands.performCommand(Commands.java:353) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.commands.Commands.performCommand(Commands.java:340) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.commands.Commands.performCommand(Commands.java:335) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.performUnsignedChatCommand(ServerGamePacketListenerImpl.java:2147) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$11(ServerGamePacketListenerImpl.java:2121) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:151) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1478) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:201) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:125) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1456) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1449) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:135) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.server.MinecraftServer.managedBlock(MinecraftServer.java:1408) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1529) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1246) ~[paper-1.21.jar:1.21-9-4ea696f]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:329) ~[paper-1.21.jar:1.21-9-4ea696f]
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.ExceptionInInitializerError
        at Nextron-1.5.7.jar/net.pandadev.anvilgui.AnvilGUI$Builder.<init>(AnvilGUI.java:400) ~[Nextron-1.5.7.jar:?]
        at Nextron-1.5.7.jar/net.pandadev.nextron.commands.RankCommand.execute(RankCommand.java:122) ~[Nextron-1.5.7.jar:?]
        at Nextron-1.5.7.jar/net.pandadev.nextron.commands.CommandBase.onCommand(CommandBase.java:50) ~[Nextron-1.5.7.jar:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        ... 27 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 2
        at Nextron-1.5.7.jar/net.pandadev.anvilgui.version.VersionMatcher.match(VersionMatcher.java:29) ~[Nextron-1.5.7.jar:?]
        at Nextron-1.5.7.jar/net.pandadev.anvilgui.AnvilGUI.<clinit>(AnvilGUI.java:42) ~[Nextron-1.5.7.jar:?]
        at Nextron-1.5.7.jar/net.pandadev.anvilgui.AnvilGUI$Builder.<init>(AnvilGUI.java:400) ~[Nextron-1.5.7.jar:?]
        at Nextron-1.5.7.jar/net.pandadev.nextron.commands.RankCommand.execute(RankCommand.java:122) ~[Nextron-1.5.7.jar:?]
        at Nextron-1.5.7.jar/net.pandadev.nextron.commands.CommandBase.onCommand(CommandBase.java:50) ~[Nextron-1.5.7.jar:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.21-R0.1-SNAPSHOT.jar:?]
        ... 27 more

0PandaDEV/Nextron@1a13fa5

commented

Ah, amazing. Another good reason why we should've just gone with my implementation in #331. The version string is 1.21-R0.1-SNAPSHOT, and there is no minor version, which breaks the version parsing code.

Well it would be a pretty simple fix, but yeah I still like the solution in #331 better because it's less complex and so there's less room for bugs like these to hide.

So how do i fix this now?

So how do i fix this now?

If you need an urgent fix, the easiest solution is to use Spigot instead of Paper for now (this issue only affects Paper servers). Or you could build #331 from the source code. But I would probably just wait until a fix such as #331 is merged and a new AnvilGUI build is published to the Maven repository.

I think this issue can be closed now that #331 was merged. The problem is gone for me when using AnvilGUI version 1.9.6-SNAPSHOT.