Help with fix error

Discussion in 'Plugin Development' started by Sicka_gp, May 27, 2013.

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

    Sicka_gp

    Hi, does anyone know how to fix?
    Code:
    public void setKits(Player p){
            try{
                String items = plugin.getconfig().getString("Newbies.items");
                String[] iitems = items.split(",");
                for(String s1 : iitems){
                    String[] itemamoutStrings = s1.split("-");
                    for(String s2 : itemamoutStrings){
                        String[] itembyte = s2.split(":");
                        int a = Integer.valueOf(itembyte[0]);
                        int b = Integer.valueOf(itembyte[1]);
                        int c = Integer.valueOf(itemamoutStrings[1]);
                        ItemStack is = new ItemStack(a, c, (byte)b);
                        p.sendMessage("Giving " + a + c + "amout " + b);
                        p.getInventory().addItem(is);
                       
                    }
                }
            }catch(Exception e){
                e.printStackTrace();
            }
            
    Error:
    Code:
    2013-05-27 18:39:30 [SEVERE] java.lang.ArrayIndexOutOfBoundsException: 1
    2013-05-27 18:39:30 [SEVERE]    at cz.Sicka_gp.ConfigurableMessages.ConfigurableMessagesListener.setKits(ConfigurableMessagesListener.java:118)
    2013-05-27 18:39:30 [SEVERE]    at cz.Sicka_gp.ConfigurableMessages.ConfigurableMessagesListener.onPlayerJoin(ConfigurableMessagesListener.java:30)
    2013-05-27 18:39:30 [SEVERE]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    2013-05-27 18:39:30 [SEVERE]    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    2013-05-27 18:39:30 [SEVERE]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    2013-05-27 18:39:30 [SEVERE]    at java.lang.reflect.Method.invoke(Unknown Source)
    2013-05-27 18:39:30 [SEVERE]    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
    2013-05-27 18:39:30 [SEVERE]    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    2013-05-27 18:39:30 [SEVERE]    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
    2013-05-27 18:39:30 [SEVERE]    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
    2013-05-27 18:39:30 [SEVERE]    at net.minecraft.server.v1_5_R3.PlayerList.c(PlayerList.java:204)
    2013-05-27 18:39:30 [SEVERE]    at net.minecraft.server.v1_5_R3.PlayerList.a(PlayerList.java:100)
    2013-05-27 18:39:30 [SEVERE]    at net.minecraft.server.v1_5_R3.PendingConnection.d(PendingConnection.java:129)
    2013-05-27 18:39:30 [SEVERE]    at net.minecraft.server.v1_5_R3.PendingConnection.c(PendingConnection.java:44)
    2013-05-27 18:39:30 [SEVERE]    at net.minecraft.server.v1_5_R3.DedicatedServerConnectionThread.a(DedicatedServerConnectionThread.java:41)
    2013-05-27 18:39:30 [SEVERE]    at net.minecraft.server.v1_5_R3.DedicatedServerConnection.b(SourceFile:29)
    2013-05-27 18:39:30 [SEVERE]    at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:581)
    2013-05-27 18:39:30 [SEVERE]    at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226)
    2013-05-27 18:39:30 [SEVERE]    at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477)
    2013-05-27 18:39:30 [SEVERE]    at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410)
    2013-05-27 18:39:30 [SEVERE]    at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
    
     
  2. Offline

    Nitnelave

    Which one is line 118?
    It looks like one of your "split" gave you only one element (the separator was not found), so the array generated is only one element, and you can't access the second one (index 1).
     
  3. Offline

    Sicka_gp

    line 118 = int b = Integer.valueOf(itembyte[1]);

    The code works, I get the item that I have entered into the config but I receive only one (wool)

    Code:
    Newbies:
      items: 35:2-35,17:1-32
     
  4. Offline

    Nitnelave

    What you're doing in your code is splitting along the commas to get the elements, and then looping over the elements. Then you're splitting those into data part (id and data) and amount part, so why are you looping over that?

    Note: As long as you're using the config, why not do something like:
    Code:
    items:
      - id:35
        data: 2
        amount: 10
      - id:17
        data:1
        amount:32
    
    it will be easier to read...
     
  5. Offline

    Sicka_gp

    True, thank you for your help :)
     
Thread Status:
Not open for further replies.

Share This Page