- Reorganize the modules a bit more... we should have a src/irc/dcc/send.lua, src/irc/ctcp/base.lua, src/irc/ctcp/dcc.lua, etc. also, most (all?) of the handlers should be moved out of irc.lua into, say, src/irc/base.lua - Separate out the DCC module some more so that the callbacks aren't registered unless the module is loaded - Also separate out all of the CTCP commands/callbacks into the CTCP module - Rework the way irc.lua uses things from modules - the whole underscore but public thing... do i want to keep that? i suppose it's not horrible... look into this more - Implement callbacks for user mode changes (need to figure out how to represent users in the callback info) - Allow a server parameter in whois() so that the returned data can include the user's idle time - chan:ban()/chan:unban() should take a usermask, not a nick, or be able to generate a usermask from a nick, or something like that - Clean up misc.split - Implement DCC CHAT - Implement DCC XMIT/OFFER - Implement some more of the newer CTCP commands - Implement more information requests - who - whowas - info - stats - links - trace (not freenode supported) - Implement XDCC (?) - Handle endianness in the IP address conversion functions