Solved What did I do wrong?

Discussion in 'Plugin Development' started by yPedx, Mar 25, 2017.

Thread Status:
Not open for further replies.
  1. Offline

    yPedx

    Error in console:​
    Code:
    [14:14:41 ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'punish' in plugin SuchBans v1.0
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Bukkit-b105298]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:140) ~[craftbukkit.jar:git-Bukkit-b105298]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:619) ~[craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1079) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:939) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(SourceFile:37) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(SourceFile:9) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [craftbukkit.jar:git-Bukkit-b105298]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_121]
            at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_121]
            at net.minecraft.server.v1_8_R3.SystemUtils.a(SystemUtils.java:19) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:672) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:335) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:628) [craftbukkit.jar:git-Bukkit-b105298]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:536) [craftbukkit.jar:git-Bukkit-b105298]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
            at me.developer.kriss.GUI.onCommand(GUI.java:104) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Bukkit-b105298]
            ... 15 more
    Code: (Cut out)​
    Code:
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
      
                Player player = (Player) sender;
                if(label.equalsIgnoreCase("punish")); {
                    if (args.length == 2 || args.length < 1)
                        sender.sendMessage(String.format("%s[%sSuch %sBans%s] %sInvalid information! Usage: /punish <player>", ChatColor.DARK_GRAY, ChatColor.RED, ChatColor.GRAY, ChatColor.DARK_GRAY, ChatColor.RED));
                }
                if (args.length == 1) {
                    map.put(player.getUniqueId(), args[1]);
                    sender.sendMessage(String.format("%s[%sSuch %sBans%s] %sLet the punishing begin!", ChatColor.DARK_GRAY, ChatColor.RED, ChatColor.GRAY, ChatColor.DARK_GRAY, ChatColor.RED));
    }
                return true;
    }
    }
    at me.developer.kriss.GUI.onCommand(GUI.java:104) ~[?:?] is: map.put(player.getUniqueId(), args[1]);

    When I do /punish name something
    upload_2017-3-25_14-29-55.png
    - Does what it should do -

    When I do /punish
    upload_2017-3-25_14-29-44.png
    - Does what it should do -

    But when I do /punish name
    upload_2017-3-25_14-30-30.png
    - Where did I go wrong in the code? -​
     
  2. Online

    timtower Administrator Administrator Moderator

    @yPedx Java starts counting at 0, not at 1.
     
  3. Offline

    yPedx

    I decreased them all with 1:
    Code:
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
       
                Player player = (Player) sender;
                if(label.equalsIgnoreCase("punish")); {
                    if (args.length == 1 || args.length < 0)
                        sender.sendMessage(String.format("%s[%sSuch %sBans%s] %sInvalid information! Usage: /punish <player>", ChatColor.DARK_GRAY, ChatColor.RED, ChatColor.GRAY, ChatColor.DARK_GRAY, ChatColor.RED));
                }
                if (args.length == 0) {
                    map.put(player.getUniqueId(), args[0]);
                    sender.sendMessage(String.format("%s[%sSuch %sBans%s] %sLet the punishing begin!", ChatColor.DARK_GRAY, ChatColor.RED, ChatColor.GRAY, ChatColor.DARK_GRAY, ChatColor.RED));
    }
                return true;
    }
    }
    Now it sends invalid information message when I do the correct command ( /punish player ), internal error when I do /punish and nothing upon /punish player extra

    Am I being a goldfish now? xD
     
  4. Online

    timtower Administrator Administrator Moderator

    @yPedx The length is a normal length, that never starts counting at 0.
     
  5. Offline

    yPedx

    Thank you! It works now :D
     
    timtower likes this.
Thread Status:
Not open for further replies.

Share This Page