protocol: learn channel-mode arity + prefix modes (incl custom Y/ojoin) from CAPAB CHANMODES; services MODE uses the authoritative set

This commit is contained in:
Jean Chevronnet 2026-07-18 01:15:23 +00:00
parent d313ca3523
commit e6f05a3ede
No known key found for this signature in database
9 changed files with 163 additions and 26 deletions

View file

@ -1110,6 +1110,12 @@ impl Engine {
self.db.set_live_extbans(entries);
Vec::new()
}
NetEvent::ChanModeRegistry { modes } => {
let prefixes = modes.iter().filter(|c| c.is_prefix()).map(|c| c.letter).collect::<String>();
tracing::info!(count = modes.len(), prefixes = %prefixes, "learned ircd channel-mode set");
self.db.set_live_chanmodes(modes);
Vec::new()
}
NetEvent::UserConnect { uid, nick, host, ip } => {
let arriving_nick = nick.clone();
self.network.user_connect(uid.clone(), nick, host, ip.clone());