Rewritten stop code. Maybe it will work and everything :)
Some cleaning.Added starting rejected users emptier (again)?
Strip the extraneous control character before logging an incoming IRC message.
Added .attack command.
Fixed Attack.Made Attack and Wtf public commands.
Added !dice command, non public for now.
Added shortcut = for !dice.
Redirect !say and !action to the channel by default.
Switched input processing and join/part/nick triggers to parsing.
(Re?)Added QUIT message processing.
Switched PING processing to parsing.
Switched the remaining triggers to parsing. Now all input handling is done in InputHandler.
Terminate rejected users emptier process when finalizing.
Abstracted some handler functionality into IRCHandler superclass.
Rewrote some methods on IRCUserDatabase.
Renamed userdb to userDatabase.
A bit of cleaning.
More cleaning, removed superfluous method.
Refactored Commands instance creation, now we also pass the issuer.Added isPublic/isPrivate/aliases to IRCCommand.
Added isCooling method to IRCCommandHandler.