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:
@@ -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);
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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. */
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user