Implement the second tier of IRC channel features: 1. Ban system (+b): Add/remove/list bans with wildcard matching. Bans prevent both joining and sending messages. Schema: channel_bans table with mask, set_by, created_at. 2. Invite-only (+i): Channel mode requiring invitation to join. INVITE command for operators. Invites stored in DB and cleared after successful JOIN. 3. Secret (+s): Hides channel from LIST for non-members and from WHOIS channel lists when querier is not in same channel. 4. Channel key (+k): Password-protected channels. Key required on JOIN, set/cleared by operators. 5. User limit (+l): Maximum member count enforcement. Rejects JOIN when channel is at capacity. Updated ISUPPORT CHANMODES to b,k,Hl,imnst. Updated RPL_MYINFO available modes to ikmnostl. Comprehensive tests for all features at both DB and handler levels. README updated with full documentation of all new modes. closes #86
98 KiB
98 KiB