]> jfr.im git - irc/rizon/acid.git/commitdiff
Update aciduser's plugin reference when plugins are unloaded and reloaded
authorAdam <redacted>
Sat, 16 Aug 2014 04:58:52 +0000 (00:58 -0400)
committerAdam <redacted>
Sat, 16 Aug 2014 04:58:52 +0000 (00:58 -0400)
acid/src/main/java/net/rizon/acid/core/Acidictive.java
acid/src/main/java/net/rizon/acid/core/Plugin.java
acid/src/main/java/net/rizon/acid/core/User.java

index eb43ad2009ef920e42a50c4aa1b14c432c4c56ff..ad8601eb793dc175cc616aa0eb3235d109680ab8 100644 (file)
@@ -705,8 +705,9 @@ public class Acidictive extends AcidCore
                                {
                                        AcidUser au = (AcidUser) u;
                                        
-                                       // update config
+                                       // update config and plugin
                                        au.client = c;
+                                       au.pkg = pkg;
                                }
                                continue;
                        }
index ff28c301f90fa6296cf3c408e5cf86566457f141..40f5f16763baa10cea78c1a1cb9bdd9721af9955 100644 (file)
@@ -19,6 +19,14 @@ public abstract class Plugin
        
        public void remove()
        {
+               for (User u : User.getUsersC())
+                       if (u instanceof AcidUser)
+                       {
+                               AcidUser au = (AcidUser) u;
+                               if (au.pkg == this)
+                                       au.pkg = null;
+                       }
+
                this.stop();
                plugins.remove(this);
        }
index ada49e84efe421cf1c2dd96a21a950c97285aa29..5807b90981691fa9a1df549f8f081896fb8218f4 100644 (file)
@@ -4,6 +4,7 @@ import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
@@ -457,6 +458,8 @@ public class User implements Comparable<User>
                return nickMap.keySet();
        }
 
+       public static Collection<User> getUsersC() { return nickMap.values(); }
+
        public static final String toName(final String uid)
        {
                User u = findUser(uid);