Solved StringList problem

Discussion in 'Plugin Development' started by TheFl4me, May 30, 2015.

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

    TheFl4me

    Hi, i am having a problem with a List.

    Basically whenever a player joins a file with the name of his IP is created, and a a list is created with his name in it. Whenever someone joins with that IP and a different name, it adds that name to the list.

    i am getting an error everytime i join with a new name.

    Code:

    Code:
    if(!ip.exists()) {
                    ip.createNewFile();
                    ipcfg.set("IP", Ban.getPlugin().getUtils().getIP(p));
                    ipcfg.set("Location", "https://geoiptool.com/en/?ip=" + Ban.getPlugin().getUtils().getIP(p));
                    ipcfg.set("Accounts", Arrays.asList(p.getName()));
                    ipcfg.set("Status.banstatus.banned", "false");
                    ipcfg.save(ip);
                } else {
                    List <String> accounts = ipcfg.getStringList("Accounts");
                    for (String accountstring : accounts) {
                        if(!accountstring.equalsIgnoreCase(p.getName())) {
                            accounts.add(p.getName());
                            ipcfg.set("Accounts", accounts);
                            ipcfg.save(ip);
                        }
                    }
                }
     

    Attached Files:

  2. Offline

    msnijder30

    @TheFl4me
    If I were you I'd ask a mod to move this thread over to plugin development, this is the wrong place :p
     
  3. Offline

    TheFl4me

    oh lol i misclicked ._.
     
  4. Offline

    mrCookieSlime

    Moved to Plugin Development.
     
  5. Offline

    teej107

  6. Offline

    TheFl4me

  7. You can't edit the ArrayList while iterating through it.
     
  8. Offline

    TheFl4me

    Ok i tried fixing it but still get the same error (I don't know where else to put the accounts.add(p.getName()); )

    Code:
    if(!ip.exists()) {
                    ip.createNewFile();
                    ipcfg.set("IP", Ban.getPlugin().getUtils().getIP(p));
                    ipcfg.set("Location", "https://geoiptool.com/en/?ip=" + Ban.getPlugin().getUtils().getIP(p));
                    ipcfg.set("Accounts", Arrays.asList(p.getName()));
                    ipcfg.set("Status.banstatus.banned", "false");
                    ipcfg.save(ip);
                } else {
                    List <String> accounts = ipcfg.getStringList("Accounts");
                    for (String accountstring : accounts) {
                        if(!accountstring.equalsIgnoreCase(p.getName())) {
                            accounts.add(p.getName());
                        }
                    }
                    ipcfg.set("Accounts", accounts);
                    ipcfg.save(ip);
                }
     
  9. you can iterate through a clone of the List to prevent that:
    Code:
    for (String accountstring : accounts.toArray().clone()) {
     
  10. Offline

    TheFl4me

    When i try that it says:
    "Type mismatch: cannot convert from element type Object to String"
     
  11. Then try either
    Code:
    for (String accountstring : (String[]) accounts.toArray().clone()) {
    or
    Code:
    for (String accountstring : accounts.toArray(new String[accounts.size()]).clone()) {
     
  12. Offline

    TheFl4me

    did that now i get this error:

    Code:
    [20:56:09 ERROR]: Could not pass event PlayerJoinEvent to eBan v1.2.4
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:297) ~[craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.PlayerList.onPlayerJoin(PlayerList.java:282) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.PlayerList.a(PlayerList.java:142) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.LoginListener.b(LoginListener.java:115) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.LoginListener.c(LoginListener.java:53) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.NetworkManager.a(NetworkManager.java:222) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.ServerConnection.c(SourceFile:168) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:742) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:336) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:626) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:534) [craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        at java.lang.Thread.run(Thread.java:745) [?:1.7.0_71]
    Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
        at elite.minecraft.plugin.ban.listeners.JoinQuitEventsListener.onJoin(JoinQuitEventsListener.java:43) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_71]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_71]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_71]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:295) ~[craftbukkit1.8.3.jar:git-Bukkit-30d751b]
        ... 14 more
    
    EDIT: ok i tried the other one and it works fine thanks alot :)
     
    Last edited: May 31, 2015
Thread Status:
Not open for further replies.

Share This Page