TODOs
===
- [x] Fix the increment id mapping bug
- [x] Add timestamp before each msg(maybe by wrapping the socket.write)
- [x] Add account subsystem, such as same ip with same id
- [ ] [?]Refactor user specifing by name rather than id, update whisper
- [ ] Finish :nick, check if the nick has been taken(config.serverName also can't be taken)
- [ ] Finsih /tap
- [ ] Add chat log subsystem
- [ ] Add custom config on content type sent/received[?], to work as interfaces for bot

TODOs
===
- [x] Fix the increment id mapping bug
- [x] Add timestamp before each msg(maybe by wrapping the socket.write)
- [x] Add account subsystem, such as same ip with same id
- [ ] Refactor code structure
- [ ] [?]Refactor user specifing by name rather than id, update whisper
- [ ] Finish :nick, check if the nick has been taken(config.serverName also can't be taken)
- [ ] Finsih /tap
- [ ] Add chat log subsystem
- [ ] Add custom config on content type sent/received[?], to work as interfaces for bot

Add the first thing to do after leaving this code for a month.
Add the first thing to do after leaving this code for a month.
