]> jfr.im git - irc/rizon/acid.git/commitdiff
Allow message handlers to be reloaded
authorAdam <redacted>
Wed, 26 Nov 2014 20:37:28 +0000 (15:37 -0500)
committerAdam <redacted>
Wed, 26 Nov 2014 20:37:28 +0000 (15:37 -0500)
acid/src/main/java/net/rizon/acid/commands/Reload.java
acid/src/main/java/net/rizon/acid/core/Message.java

index ce02c6ba3692bfab59cbf8b765c0baf99fccf7f9..ff79884f871585e5e22c9a26e8534b6390e0fe65 100644 (file)
@@ -6,6 +6,7 @@ import net.rizon.acid.core.Acidictive;
 import net.rizon.acid.core.Channel;
 import net.rizon.acid.core.Command;
 import net.rizon.acid.core.Event;
+import net.rizon.acid.core.Message;
 import net.rizon.acid.core.Plugin;
 import net.rizon.acid.core.User;
 import net.rizon.acid.util.ClassLoader;
@@ -27,10 +28,22 @@ public class Reload extends Command
                {
                        if (args.length > 0)
                        {
+                               if (args[0].equals("messages"))
+                               {
+                                       Message.reload();
+                                       Acidictive.reply(x, to, ch, "Messages reloaded");
+                                       return;
+                               }
+
                                Plugin p = Plugin.findPlugin(args[0]);
                                if (p == null)
+                               {
+                                       Acidictive.reply(x, to, ch, "No such plugin " + args[0]);
                                        return;
+                               }
+
                                p.reload();
+                               Acidictive.reply(x, to, ch, "Plugin " + p.getName() + " reloaded");
                                return;
                        }
 
index c9020a19d4bb898d399e39e7a072c8b8f71820bb..37c829751e08c70a45810a716e600121fe7dffe1 100644 (file)
@@ -3,6 +3,8 @@ package net.rizon.acid.core;
 import java.util.HashMap;
 import java.util.logging.Level;
 
+import net.rizon.acid.util.ClassLoader;
+
 public abstract class Message
 {
        public static final char BOLD = 2;
@@ -16,18 +18,7 @@ public abstract class Message
 
        static
        {
-               messages = new HashMap<String, Message>();
-
-               try
-               {
-                       for (String s : messageClasses)
-                               Class.forName(messageBase + "." + s).newInstance();
-               }
-               catch (Exception ex)
-               {
-                       AcidCore.log.log(Level.SEVERE, "Error initializing messages", ex);
-                       System.exit(-1);
-               }
+               reload();
        }
 
        protected Message(String name)
@@ -45,4 +36,22 @@ public abstract class Message
        {
                return messages.get(name.toUpperCase());
        }
+
+       public static void reload()
+       {
+               messages = new HashMap<String, Message>();
+
+               try
+               {
+                       ClassLoader loader = new ClassLoader("messages");
+
+                       for (String s : messageClasses)
+                               loader.loadClass(messageBase + "." + s).newInstance();
+               }
+               catch (Exception ex)
+               {
+                       AcidCore.log.log(Level.SEVERE, "Error initializing messages", ex);
+                       System.exit(-1);
+               }
+       }
 }
\ No newline at end of file