A (semi incomplete) list of things currently implemented/unimplemented. will definitely be adding additions.
- Server Operators
- Server Bans
- Server Kicks
- TLS
- Ping everyone after a certain amount of time and kick those that haven't responded by the next ping
- Scan and delete/warn inactive channels
- Save current server details (channels, banlists, etc)
- Load server details previously saved on server restart
- Setup.py
- Logging
- MOTD
- Server Title
- Server Welcome
- Server Description
- Configuration file
- ISUPPORT
- CAP
- CTCPs
- Server OP alerts
- Server monitoring console/command for ops
- ^On that note, have a module, irc_console, with neat formatting things for printing to the console.
- NickServ/CrowBot (maybe)
- Store things in a database and not a text file...
- Set modes on user when they connect. Get the modes to use from the config file.
- Owners
- Expiration
- Operators
- Change/Set/Lookup Modes
- Invites
- Deletion (Deletion works by expiration - still need to let owners delete their own channel)
- Anti-Spam (to be a mode)
- Topics
- Bans
- Kicks
- Mutes
- Hash Owner + Oper passwords instead of using plaintext
- NOOPERHOST
- Sub-Channels (might be a dumb idea)
- Change Channel Name Command for owners
- Co-Owners
- Join channels
- Change nicknames
- Random Nick Generation after 3 failed nick change attempts during initial connection
- Message Channels + Users
- Nickname Registering
- Max registered nicks
- Change/Set/Lookup Modes
- Leave/Disconnect
- Leave/Disconnect Messages
- WHO
- WHOIS
- WHOWAS
- MaxUsernameLength
- MaxNicknameLength
- MaxClients
- If user is a server operator, add a * next to their nick in WHOIS/WHO
- If a user is a channel operator, add an @ next to their nick in WHOIS/WHO
- Unknown Command error
- Minimum parameter enforcement
- Rate limits
- ACTION
- NOTICE
- Do all the unimplemented commands in commands.MD
- 'o' - server operator
- 'D' - disable private messages
- 'i' - hide from who and names + online time in whois + what channels user is in
- 'z' - connected via tls
- 'W' - see when someone does a WHOIS on you
- 'R' - using a registered nick
- 'S' - slow flood
- 'I' - invite only
- 'P' - passworded More to be decided...