Solved Console error! Help :3!

Discussion in 'Plugin Development' started by Jetsinsu, Apr 24, 2014.

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

    Jetsinsu

    Hey guys! So when I was testing my plugin, I got this error after the players in an arraylist was teleported! Any idea what the error is? I can't understand this kind of error but it does tell what line!

    Code:
    Code:
    ID2 = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable(){
                                    int iii = 1;
                                 
                                    public void run(){
                                        if (iii > 0){
                                            iii--;
                                        }else{
                                            for (String playername : join){ // This is 386
                                                Player players = getServer().getExactPlayer(playername);
                                                join.remove(players.getName());
                                                Bukkit.getScheduler().cancelTask(ID2);
                                            }
                                        }
                                    }
                                }, 0, 20L);
    Error:
    Code:
    [20:52:04 WARN]: [Game] Task #172 for EnderPearlsGame v1 generated an
    exception
    java.util.ConcurrentModificationException
            at java.util.ArrayList$Itr.checkForComodification(Unknown Source) ~[?:1.
    7.0_55]
            at java.util.ArrayList$Itr.next(Unknown Source) ~[?:1.7.0_55]
            at me.jetsinsu.theendersgame.TheEndersGame$1$1$1.run(TheEndersGame.java:
    386) ~[?:?]
            at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftTask.run(CraftTask.java
    :53) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftScheduler.mainThreadHea
    rtbeat(CraftScheduler.java:345) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks
    ]
            at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:5
    87) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:2
    50) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:5
    45) [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:6
    17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks]
     
  2. Offline

    rfsantos1996

    You can't remove from a list you're using "for () {", use Iterable

    Took me 3 days to realize it. Also, use:
    new BukkitRunnable() {
    // your variables
    public void run() {
    // your run method
    }
    }.runTimer(plugin, delay, delay);
    it is more efficient than getScheduler().schedule, and you can cancel by doing this.cancelTask()
     
  3. Offline

    Jetsinsu

    rfsantos1996
    Wait a minute, I can do "join.clear();" right?
     
  4. Offline

    rfsantos1996

    yeah, right, but just to you know, you can iterate if you want just some entries to be removed (;
     
  5. Offline

    Jetsinsu

    Ok. :3
     
Thread Status:
Not open for further replies.

Share This Page