BotServ: BOT CHANGE

BOT CHANGE <oldnick> <newnick> [user [host [gecos]]] renames or
re-identifies a bot; omitted fields keep the current values. A rename
moves every channel the bot was assigned to onto the new nick. reconcile
now tracks each live bot's identity hash, so a change that keeps the nick
but alters user/host/gecos quits the stale pseudo-client and reintroduces
it (rejoining its channels) — a rename does the same via the registry.
This commit is contained in:
Jean Chevronnet 2026-07-13 17:30:27 +00:00
parent ec3205bf75
commit 1cc438f4ed
No known key found for this signature in database
4 changed files with 132 additions and 3 deletions

View file

@ -570,6 +570,7 @@ pub trait Store {
fn channel_suspension(&self, channel: &str) -> Option<SuspensionView>;
// BotServ registry (oper-only at the command layer).
fn bot_add(&mut self, nick: &str, user: &str, host: &str, gecos: &str) -> Result<(), ChanError>;
fn bot_change(&mut self, old: &str, new_nick: &str, user: &str, host: &str, gecos: &str) -> Result<(), ChanError>;
fn bot_del(&mut self, nick: &str) -> Result<bool, ChanError>;
fn bots(&self) -> Vec<BotView>;
fn assign_bot(&mut self, channel: &str, bot: &str) -> Result<(), ChanError>;