summaryrefslogtreecommitdiff
path: root/src/bots.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bots.cpp')
-rw-r--r--src/bots.cpp29
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;
+}
+
+