]>
jfr.im git - irc/rizon/acid.git/blob - acid/src/main/java/net/rizon/acid/core/Message.java
8e66aed29efe06d229f1e650a2fc1da73b8ea6a9
1 package net
.rizon
.acid
.core
;
3 import java
.util
.HashMap
;
4 import net
.rizon
.acid
.plugins
.ClassLoader
;
5 import org
.slf4j
.Logger
;
6 import org
.slf4j
.LoggerFactory
;
8 public abstract class Message
10 private static final Logger log
= LoggerFactory
.getLogger(Message
.class);
12 public static final char BOLD
= 2;
14 private static final String messageBase
= "net.rizon.acid.messages";
15 private static final String
[] messageClasses
= {
16 "Encap", "EOB", "Error", "Join", "Kick", "Kill", "Mode", "Nick",
17 "Notice", "Part", "Pass", "Ping", "Privmsg", "Quit", "Server", "SID",
18 "SJoin", "SQuit", "Stats", "TMode", "UID", "Whois", "Operwall", "Invite",
27 protected Message(String name
)
29 messages
.put(name
.toUpperCase(), this);
33 * TS6 spec says that if the TS in the message is greater, the
34 * message should be dropped. do that check here. this is here
35 * to mostly support TS checks in TMODE and BMASK without
38 protected boolean shouldDropTsMessage(Integer oldTS
, String newTS
) {
41 return (Integer
.parseInt(newTS
) > oldTS
);
43 catch (NumberFormatException ex
)
50 public void onUser(User source
, String
[] params
) { }
51 public void onServer(Server source
, String
[] params
) { }
52 public void on(String source
, String
[] params
) { }
54 private static HashMap
<String
, Message
> messages
;
56 public static Message
findMessage(String name
)
58 return messages
.get(name
.toUpperCase());
61 public static void reload()
63 messages
= new HashMap
<String
, Message
>();
67 ClassLoader loader
= new ClassLoader("net.rizon.acid.messages.");
69 for (String s
: messageClasses
)
70 loader
.loadClass(messageBase
+ "." + s
).newInstance();
74 log
.error("Error initializing messages", ex
);