diff options
Diffstat (limited to 'src/bots.cpp')
-rw-r--r-- | src/bots.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/bots.cpp b/src/bots.cpp index 487cc6dc7..29f51f0e0 100644 --- a/src/bots.cpp +++ b/src/bots.cpp @@ -45,3 +45,32 @@ void BotInfo::RejoinAll() if (ci->bi == this && ci->c && (ci->c->usercount >= BSMinUsers)) bot_join(ci); } + +void BotInfo::Assign(User *u, ChannelInfo *ci) +{ + if (ci->bi) + { + if (u) + ci->bi->UnAssign(u, ci); + else + ci->bi->UnAssign(NULL, ci); + } + + ci->bi = this; + this->chancount++; + if (ci->c && ci->c->usercount >= BSMinUsers) + bot_join(ci); +} + +void BotInfo::UnAssign(User *u, ChannelInfo *ci) +{ + send_event(EVENT_BOT_UNASSIGN, 2, ci->name, ci->bi->nick); + + if (u && ci->c && ci->c->usercount >= BSMinUsers) + anope_cmd_part(ci->bi->nick, ci->name, "UNASSIGN from %s", u->nick); + + ci->bi->chancount--; + ci->bi = NULL; +} + + |