+ /* Enumerations */
+ enum Type {
+ OTHER, // Unknown message type
+ PRIVMSG, // Private message
+ TOPIC, // Display current topic
+ NAMES, // Display user names
+ ERROR, // Error message from server
+ CAP, // Server capabilities
+ AUTH, // Authentication message
+ AUTHOK, // Authentication succeeded
+ AUTHFAIL, // Authentication failed
+ };
+
+ enum How {
+ OTHER, // Unknown message type
+ CHANNEL, // Normal message to a channel
+ MENTION, // User was mentioned in message text
+ DIRECT, // Message directed towards user
+ PRIVMSG // Private message to user only
+ };
+
+ /* Constants */
+ private final String reMsg = "(:([^ ]+) +)?(([A-Z0-9]+) +)(([^ ]+)[= ]+)?(([^: ]+) *)?(:(.*))?";