1
0
mirror of https://github.com/anope/anope.git synced 2026-07-04 05:53:12 +02:00

Move some stuff to BotInfo methods.

git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1232 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
Robin Burchell w00t@inspircd.org
2008-09-30 18:45:11 +00:00
parent 76cc8d0462
commit c4d520b465
6 changed files with 43 additions and 25 deletions
+12
View File
@@ -44,5 +44,17 @@ class BotInfo
* Used on /kill, rename, etc.
*/
void RejoinAll();
/** Assign this bot to a given channel, removing the existing assigned bot if one exists.
* @param u The user assigning the bot, or NULL
* @param ci The channel registration to assign the bot to.
*/
void Assign(User *u, ChannelInfo *ci);
/** Remove this bot from a given channel.
* @param u The user requesting the unassign, or NULL.
* @param ci The channel registration to remove the bot from.
*/
void UnAssign(User *u, ChannelInfo *ci);
};
-1
View File
@@ -74,7 +74,6 @@ E void save_bs_rdb_dbase(void);
E BotInfo *findbot(const char *nick);
E void bot_join(ChannelInfo *ci);
E char *normalizeBuffer(const char *);
E void unassign(User * u, ChannelInfo * ci);
E void insert_bot(BotInfo * bi);
E void bot_raw_ban(User * requester, ChannelInfo * ci, char *nick, char *reason);
+29
View File
@@ -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;
}
-16
View File
@@ -617,22 +617,6 @@ BotInfo *findbot(const char *nick)
/*************************************************************************/
/* Unassign a bot from a channel. Assumes u, ci and ci->bi are not NULL */
void unassign(User * u, ChannelInfo * ci)
{
send_event(EVENT_BOT_UNASSIGN, 2, ci->name, ci->bi->nick);
if (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;
}
/*************************************************************************/
/* Returns ban data associated with an user if it exists, allocates it
otherwise. */
+1 -7
View File
@@ -88,13 +88,7 @@ int do_assign(User * u)
|| (!check_access(u, ci, CA_ASSIGN) && !is_services_admin(u)))
notice_lang(s_BotServ, u, PERMISSION_DENIED);
else {
if (ci->bi)
unassign(u, ci);
ci->bi = bi;
bi->chancount++;
if (ci->c && ci->c->usercount >= BSMinUsers) {
bot_join(ci);
}
notice_lang(s_BotServ, u, BOT_ASSIGN_ASSIGNED, bi->nick, ci->name);
send_event(EVENT_BOT_ASSIGN, 2, ci->name, bi->nick);
}
+1 -1
View File
@@ -82,7 +82,7 @@ int do_unassign(User * u)
else if (!ci->bi)
notice_help(s_BotServ, u, BOT_NOT_ASSIGNED);
else {
unassign(u, ci);
ci->bi->UnAssign(u, ci);
notice_lang(s_BotServ, u, BOT_UNASSIGN_UNASSIGNED, ci->name);
}
return MOD_CONT;