I have a problem, please help me!

Discussion in 'Plugin Development' started by KR4T05, Dec 21, 2014.

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

    KR4T05

    Hello Everyone!
    I am developing a Bukkit Plugin for another economy (for me).
    I have arguments [3] /mt add <username> <money>
    /mt add PepitoPerez 200
    When I go to add an Integer number and a string converted to int, compiles all well, but when I open the server, jumps an strange crash, can you help me please?

    Code:
     @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
         if (label.equals("mt"))
            {
            if (!(sender instanceof Player))
            {
                return true;
            } else {
           
              if (args.length == 0)
              {
                  sender.sendMessage(ChatColor.DARK_GREEN + "Tus MT: " + Total);
                  return true;
              } else if (args[0].equalsIgnoreCase("help")) {
                  //Te muestra la ayuda
                  sender.sendMessage(ChatColor.GREEN + "--------------------------------------------");
                  sender.sendMessage(ChatColor.DARK_RED + "M" + ChatColor.DARK_GRAY + "T" + ChatColor.GOLD + " Sistema de economía");
                  sender.sendMessage(ChatColor.GOLD + "Desarrollado por KR4T05_, Franco1990 y Desqui");
                  sender.sendMessage(ChatColor.GREEN + "--------------------------------------------");
                  sender.sendMessage(ChatColor.DARK_GREEN + "/mt help: " + ChatColor.GOLD + "Muestra esta pantalla de ayuda.");
              if (sender.hasPermission("mt.veradmincmds") || sender.isOp())
              {
                  sender.sendMessage(ChatColor.DARK_GREEN + "/mt add: " + ChatColor.GOLD + "Agrega MT a un usuario");
                  sender.sendMessage(ChatColor.DARK_GREEN + "/mt remove: " + ChatColor.GOLD + "Quita MT a un usuario");
              }
                  sender.sendMessage(ChatColor.DARK_GREEN + "/mt buy: " + ChatColor.GOLD + "Compra beneficios con la MT");
                  sender.sendMessage(ChatColor.DARK_GREEN + "/mt page: " + ChatColor.GOLD + "Muestra página y métodos de pago.");
                  sender.sendMessage(ChatColor.GREEN + "--------------------------------------------");
                  return true;
              } else if (args[0].equalsIgnoreCase("add")) {
                  if (sender.isOp())
                  {
                      if (args.length == 3)
                      {
                          Player sumado = Bukkit.getServer().getPlayerExact(args[2]);
                      
                        String suma = args[3];
    
                        try {
                            int suma2 = Integer.parseInt(suma);
                              Total = Total + suma2;
                              sender.sendMessage(ChatColor.GREEN + sumado.getName());
                              sender.sendMessage(ChatColor.GREEN + Integer.toString(Total));
                        } catch (CommandException e){
                            return true;
                        }
                          if (sumado==null)
                          {
                            sender.sendMessage(Economy.Firma + ChatColor.RED + "Este usuario no está conectado.");
                            return true;
                          }
                          
    Code:
    [13:02:44] [Server thread/ERROR]: null
    org.bukkit.command.CommandException: Unhandled exception executing command 'mt' in plugin MTMoney v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:175) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:683) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerConnection.java:952) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:814) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 3
        at minecraftania.mtmoney.MTMoney.onCommand(MTMoney.java:84) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
        ... 13 more
     
    Last edited: Dec 21, 2014
  2. Offline

    JordyPwner

    the Error would be nice
    EDIT2: Whats our MTMoney class? @KR4T05
     
    Last edited: Dec 21, 2014
  3. Offline

    KR4T05

    What's the error?
     
  4. Offline

    Rocoty

    Here's the problem. You're checking if the amount of arguments is equal to 3, and then you try to retrieve index 3. Remember, Java arrays start at 0, so index 3 is actually the 4th index. Since you've already made sure the array has a length of 3, there is no 4th index, and your code fails.

    I think you might want to access index 2 at line 37 and index 1 at line 35.
     
    Last edited: Dec 21, 2014
  5. Offline

    KR4T05

Thread Status:
Not open for further replies.

Share This Page