1
0
mirror of https://github.com/anope/anope.git synced 2026-07-10 04:03:13 +02:00

added a new event OnUserQuit, changed OnPartChannel and OnUserKicked to send the part/kick message and fixed OnUserNickChange

git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2539 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
DukePyrolator
2009-10-07 10:33:28 +00:00
parent fb5356ccbc
commit dd3cce64c3
3 changed files with 19 additions and 10 deletions
+3 -3
View File
@@ -551,7 +551,7 @@ void do_join(const char *source, int ac, const char **av)
channame = sstrdup(c->chan->name);
FOREACH_MOD(I_OnPrePartChannel, OnPrePartChannel(user, c->chan));
chan_deluser(user, c->chan);
FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, c->chan));
FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, c->chan, ""));
delete [] channame;
delete c;
c = nextc;
@@ -640,7 +640,7 @@ void do_kick(const char *source, int ac, const char **av)
c = c->next);
if (c)
{
FOREACH_MOD(I_OnUserKicked, OnUserKicked(c->chan, user, merge_args(ac - 2, av + 2)));
FOREACH_MOD(I_OnUserKicked, OnUserKicked(c->chan, user, source, merge_args(ac - 2, av + 2)));
chan_deluser(user, c->chan);
if (c->next)
c->next->prev = c->prev;
@@ -698,7 +698,7 @@ void do_part(const char *source, int ac, const char **av)
chan_deluser(user, c->chan);
FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, c->chan));
FOREACH_MOD(I_OnPartChannel, OnPartChannel(user, c->chan, av[1] ? av[1] : ""));
if (c->next)
c->next->prev = c->prev;
+4 -1
View File
@@ -577,6 +577,7 @@ User *do_nick(const char *source, const char *nick, const char *username, const
int status = 0; /* Status to apply */
char mask[USERMAX + HOSTMAX + 2];
char *logrealname;
std::string oldnick; /* stores the old nick of the user, so we can pass it to OnUserNickChange */
if (!*source) {
char ipbuf[16];
@@ -766,8 +767,9 @@ User *do_nick(const char *source, const char *nick, const char *username, const
cancel_user(user);
}
oldnick = user->nick;
user->SetNewNick(nick);
FOREACH_MOD(I_OnUserNickChange, OnUserNickChange(user, source));
FOREACH_MOD(I_OnUserNickChange, OnUserNickChange(user, oldnick.c_str()));
if ((old_na ? old_na->nc : NULL) == user->nc)
nc_changed = 0;
@@ -895,6 +897,7 @@ void do_quit(const char *source, int ac, const char **av)
if (LimitSessions && !is_ulined(user->server->name)) {
del_session(user->host);
}
FOREACH_MOD(I_OnUserQuit, OnUserQuit(user, *av[0] ? av[0] : ""));
delete user;
}