diff options
| author | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-06-06 23:33:23 +0000 |
|---|---|---|
| committer | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-06-06 23:33:23 +0000 |
| commit | 9ff6ed2430ed87014846b39456b31b7aba231e48 (patch) | |
| tree | 0f61726fefb323c39696510ac38e5bc30d44fa2b /src/core | |
| parent | 2eae73808355d8a26886bfcf42f03db02e53f1e6 (diff) | |
New events stuff, patch totally by Adam (aka Awesome).
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2313 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/bs_bot.c | 6 | ||||
| -rw-r--r-- | src/core/cs_access.c | 21 | ||||
| -rw-r--r-- | src/core/cs_drop.c | 4 | ||||
| -rw-r--r-- | src/core/cs_forbid.c | 4 | ||||
| -rw-r--r-- | src/core/cs_register.c | 3 | ||||
| -rw-r--r-- | src/core/cs_suspend.c | 6 | ||||
| -rw-r--r-- | src/core/cs_xop.c | 17 | ||||
| -rw-r--r-- | src/core/ns_drop.c | 3 | ||||
| -rw-r--r-- | src/core/ns_forbid.c | 3 | ||||
| -rw-r--r-- | src/core/ns_group.c | 3 | ||||
| -rw-r--r-- | src/core/ns_identify.c | 4 | ||||
| -rw-r--r-- | src/core/ns_logout.c | 2 | ||||
| -rw-r--r-- | src/core/ns_register.c | 3 | ||||
| -rw-r--r-- | src/core/ns_suspend.c | 6 | ||||
| -rw-r--r-- | src/core/os_defcon.c | 4 |
15 files changed, 53 insertions, 36 deletions
diff --git a/src/core/bs_bot.c b/src/core/bs_bot.c index eb2aa2f8b..9999b0c27 100644 --- a/src/core/bs_bot.c +++ b/src/core/bs_bot.c @@ -130,7 +130,7 @@ class CommandBSBot : public Command notice_lang(s_BotServ, u, BOT_BOT_ADDED, bi->nick, bi->user, bi->host, bi->real); - send_event(EVENT_BOT_CREATE, 1, bi->nick); + FOREACH_MOD(I_OnBotCreate, OnBotCreate(bi)); return MOD_CONT; } @@ -310,7 +310,7 @@ class CommandBSBot : public Command notice_lang(s_BotServ, u, BOT_BOT_CHANGED, oldnick, bi->nick, bi->user, bi->host, bi->real); - send_event(EVENT_BOT_CHANGE, 1, bi->nick); + FOREACH_MOD(I_OnBotChange, OnBotChange(bi)); return MOD_CONT; } @@ -337,7 +337,7 @@ class CommandBSBot : public Command return MOD_CONT; } - send_event(EVENT_BOT_DEL, 1, bi->nick); + FOREACH_MOD(I_OnBotDelete, OnBotDelete(bi)); ircdproto->SendQuit(bi, "Quit: Help! I'm being deleted by %s!", u->nick); ircdproto->SendSQLineDel(bi->nick); diff --git a/src/core/cs_access.c b/src/core/cs_access.c index 6a1a1f819..7a4ad8a78 100644 --- a/src/core/cs_access.c +++ b/src/core/cs_access.c @@ -28,7 +28,9 @@ static int access_del(User * u, ChannelInfo *ci, ChanAccess * access, int *perm, nick = access->nc->display; access->nc = NULL; access->in_use = 0; - send_event(EVENT_ACCESS_DEL, 3, ci->name, u->nick, nick); + + FOREACH_MOD(I_OnAccessDel, OnAccessDel(ci, u, nick)); + return 1; } @@ -92,7 +94,6 @@ class CommandCSAccess : public Command const char *cmd = params[1].c_str(); const char *nick = params.size() > 2 ? params[2].c_str() : NULL; const char *s = params.size() > 3 ? params[3].c_str() : NULL; - char event_access[BUFSIZE]; ChannelInfo *ci; NickAlias *na = NULL; @@ -180,8 +181,9 @@ class CommandCSAccess : public Command return MOD_CONT; } access->level = level; - snprintf(event_access, BUFSIZE, "%d", access->level); - send_event(EVENT_ACCESS_CHANGE, 4, ci->name, u->nick, na->nick, event_access); + + FOREACH_MOD(I_OnAccessChange, OnAccessChange(ci, u, na->nick, level)); + alog("%s: %s!%s@%s (level %d) set access level %d to %s (group %s) on channel %s", s_ChanServ, u->nick, u->GetIdent().c_str(), u->host, ulev, access->level, na->nick, nc->display, ci->name); notice_lang(s_ChanServ, u, CHAN_ACCESS_LEVEL_CHANGED, nc->display, chan, level); return MOD_CONT; @@ -195,8 +197,8 @@ class CommandCSAccess : public Command ci->AddAccess(nc, level); - snprintf(event_access, BUFSIZE, "%d", level); - send_event(EVENT_ACCESS_ADD, 4, ci->name, u->nick, na->nick, event_access); + FOREACH_MOD(I_OnAccessAdd, OnAccessAdd(ci, u, na->nick, level)); + alog("%s: %s!%s@%s (level %d) set access level %d to %s (group %s) on channel %s", s_ChanServ, u->nick, u->GetIdent().c_str(), u->host, ulev, level, na->nick, nc->display, ci->name); notice_lang(s_ChanServ, u, CHAN_ACCESS_ADDED, nc->display, ci->name, level); } @@ -278,10 +280,7 @@ class CommandCSAccess : public Command /* We don't know the nick if someone used numbers, so we trigger the event without * nick param. We just do this once, even if someone enters a range. -Certus */ - if (na) - send_event(EVENT_ACCESS_DEL, 3, ci->name, u->nick, na->nick); - else - send_event(EVENT_ACCESS_DEL, 2, ci->name, u->nick); + FOREACH_MOD(I_OnAccessDel, OnAccessDel(ci, u, (na->nick ? na->nick : NULL))); } } else if (!stricmp(cmd, "LIST")) @@ -326,7 +325,7 @@ class CommandCSAccess : public Command ci->ClearAccess(); - send_event(EVENT_ACCESS_CLEAR, 2, ci->name, u->nick); + FOREACH_MOD(I_OnAccessClear, OnAccessClear(ci, u)); notice_lang(s_ChanServ, u, CHAN_ACCESS_CLEAR, ci->name); alog("%s: %s!%s@%s (level %d) cleared access list on %s", diff --git a/src/core/cs_drop.c b/src/core/cs_drop.c index 25f381a37..8e6328607 100644 --- a/src/core/cs_drop.c +++ b/src/core/cs_drop.c @@ -90,7 +90,9 @@ class CommandCSDrop : public Command } notice_lang(s_ChanServ, u, CHAN_DROPPED, chan); - send_event(EVENT_CHAN_DROP, 1, chan); + + FOREACH_MOD(I_OnChanDrop, OnChanDrop(chan)); + return MOD_CONT; } diff --git a/src/core/cs_forbid.c b/src/core/cs_forbid.c index b20e1bc20..86b6aab54 100644 --- a/src/core/cs_forbid.c +++ b/src/core/cs_forbid.c @@ -102,7 +102,9 @@ class CommandCSForbid : public Command alog("%s: %s set FORBID for channel %s", s_ChanServ, u->nick, ci->name); notice_lang(s_ChanServ, u, CHAN_FORBID_SUCCEEDED, chan); - send_event(EVENT_CHAN_FORBIDDEN, 1, chan); + + FOREACH_MOD(I_OnChanForbidden, OnChanForbidden(ci)); + return MOD_CONT; } diff --git a/src/core/cs_register.c b/src/core/cs_register.c index 0d8b38cfd..9c1bc6077 100644 --- a/src/core/cs_register.c +++ b/src/core/cs_register.c @@ -121,7 +121,8 @@ class CommandCSRegister : public Command ircdproto->SendMode(findbot(s_ChanServ), chan, "%s %s", ircd->adminset, u->nick); if (ircd->owner && ircd->ownerset) ircdproto->SendMode(findbot(s_ChanServ), chan, "%s %s", ircd->ownerset, u->nick); - send_event(EVENT_CHAN_REGISTERED, 1, chan); + + FOREACH_MOD(I_OnChanRegistered, OnChanRegistered(ci)); } return MOD_CONT; } diff --git a/src/core/cs_suspend.c b/src/core/cs_suspend.c index f181363dc..7a63a0fe6 100644 --- a/src/core/cs_suspend.c +++ b/src/core/cs_suspend.c @@ -92,7 +92,8 @@ class CommandCSSuspend : public Command alog("%s: %s set SUSPEND for channel %s", s_ChanServ, u->nick, ci->name); notice_lang(s_ChanServ, u, CHAN_SUSPEND_SUCCEEDED, chan); - send_event(EVENT_CHAN_SUSPENDED, 1, chan); + + FOREACH_MOD(I_OnChanSuspend, OnChanSuspend(ci)); } else { @@ -167,7 +168,8 @@ class CommandCSUnSuspend : public Command alog("%s: %s set UNSUSPEND for channel %s", s_ChanServ, u->nick, ci->name); notice_lang(s_ChanServ, u, CHAN_UNSUSPEND_SUCCEEDED, chan); - send_event(EVENT_CHAN_UNSUSPEND, 1, chan); + + FOREACH_MOD(I_OnChanUnsuspend, OnChanUnsuspend(ci)); } else { diff --git a/src/core/cs_xop.c b/src/core/cs_xop.c index e5e547aa4..2a73ce3f6 100644 --- a/src/core/cs_xop.c +++ b/src/core/cs_xop.c @@ -109,7 +109,6 @@ class XOPBase : public Command const char *nick = params.size() > 2 ? params[2].c_str() : NULL; ChanAccess *access; int change = 0; - char event_access[BUFSIZE]; if (!nick) { @@ -174,16 +173,14 @@ class XOPBase : public Command alog("%s: %s!%s@%s (level %d) %s access level %d to %s (group %s) on channel %s", s_ChanServ, u->nick, u->GetIdent().c_str(), u->host, ulev, change ? "changed" : "set", level, na->nick, nc->display, ci->name); - snprintf(event_access, BUFSIZE, "%d", level); - if (!change) { - send_event(EVENT_ACCESS_ADD, 4, ci->name, u->nick, na->nick, event_access); + FOREACH_MOD(I_OnAccessAdd, OnAccessAdd(ci, u, na->nick, level)); notice_lang(s_ChanServ, u, messages[XOP_ADDED], nc->display, ci->name); } else { - send_event(EVENT_ACCESS_CHANGE, 4, ci->name, u->nick, na->nick, event_access); + FOREACH_MOD(I_OnAccessChange, OnAccessChange(ci, u, na->nick, level)); notice_lang(s_ChanServ, u, messages[XOP_MOVED], nc->display, ci->name); } @@ -272,7 +269,9 @@ class XOPBase : public Command notice_lang(s_ChanServ, u, messages[XOP_DELETED], access->nc->display, ci->name); access->nc = NULL; access->in_use = 0; - send_event(EVENT_ACCESS_DEL, 3, ci->name, u->nick, na->nick); + + FOREACH_MOD(I_OnAccessDel, OnAccessDel(ci, u, na->nick)); + deleted = 1; } } @@ -349,7 +348,7 @@ class XOPBase : public Command ci->EraseAccess(i - 1); } - send_event(EVENT_ACCESS_CLEAR, 2, ci->name, u->nick); + FOREACH_MOD(I_OnAccessClear, OnAccessClear(ci, u)); notice_lang(s_ChanServ, u, messages[XOP_CLEAR], ci->name); @@ -531,7 +530,9 @@ int xop_del(User *u, ChannelInfo *ci, ChanAccess *access, int *perm, int uacc, i } access->nc = NULL; access->in_use = 0; - send_event(EVENT_ACCESS_DEL, 3, ci->name, u->nick, nick); + + FOREACH_MOD(I_OnAccessDel, OnAccessDel(ci, u, nick)); + return 1; } diff --git a/src/core/ns_drop.c b/src/core/ns_drop.c index d3454548c..f53142211 100644 --- a/src/core/ns_drop.c +++ b/src/core/ns_drop.c @@ -74,7 +74,8 @@ class CommandNSDrop : public Command alog("%s: %s!%s@%s dropped nickname %s (group %s) (e-mail: %s)", s_NickServ, u->nick, u->GetIdent().c_str(), u->host, na->nick, na->nc->display, na->nc->email ? na->nc->email : "none"); delnick(na); - send_event(EVENT_NICK_DROPPED, 1, my_nick ? my_nick : nick); + + FOREACH_MOD(I_OnNickDrop, OnNickDrop(my_nick ? my_nick : nick)); if (!is_mine) { diff --git a/src/core/ns_forbid.c b/src/core/ns_forbid.c index 7cceb74d9..8525d9c37 100644 --- a/src/core/ns_forbid.c +++ b/src/core/ns_forbid.c @@ -77,7 +77,8 @@ class CommandNSForbid : public Command alog("%s: %s set FORBID for nick %s", s_NickServ, u->nick, nick); notice_lang(s_NickServ, u, NICK_FORBID_SUCCEEDED, nick); - send_event(EVENT_NICK_FORBIDDEN, 1, nick); + + FOREACH_MOD(I_OnNickForbidden, OnNickForbidden(na)); } else { diff --git a/src/core/ns_group.c b/src/core/ns_group.c index eb069bd9f..11030ffcf 100644 --- a/src/core/ns_group.c +++ b/src/core/ns_group.c @@ -155,7 +155,8 @@ class CommandNSGroup : public Command u->nc = na->nc; - send_event(EVENT_GROUP, 1, u->nick); + FOREACH_MOD(I_OnNickGroup, OnNickGroup(u, target)); + alog("%s: %s!%s@%s makes %s join group of %s (%s) (e-mail: %s)", s_NickServ, u->nick, u->GetIdent().c_str(), u->host, u->nick, target->nick, target->nc->display, (target->nc->email ? target->nc->email : "none")); notice_lang(s_NickServ, u, NICK_GROUP_JOINED, target->nick); diff --git a/src/core/ns_identify.c b/src/core/ns_identify.c index 457edb974..526e40ca4 100644 --- a/src/core/ns_identify.c +++ b/src/core/ns_identify.c @@ -86,7 +86,9 @@ class CommandNSIdentify : public Command common_svsmode(u, modes, ""); } ircdproto->SendAccountLogin(u, u->nc); - send_event(EVENT_NICK_IDENTIFY, 1, u->nick); + + FOREACH_MOD(I_OnNickIdentify, OnNickIdentify(u)); + alog("%s: %s!%s@%s identified for nick %s", s_NickServ, u->nick, u->GetIdent().c_str(), u->host, u->nick); notice_lang(s_NickServ, u, NICK_IDENTIFY_SUCCEEDED); if (ircd->vhost) diff --git a/src/core/ns_logout.c b/src/core/ns_logout.c index 0b7345f55..e6985024e 100644 --- a/src/core/ns_logout.c +++ b/src/core/ns_logout.c @@ -77,7 +77,7 @@ class CommandNSLogout : public Command u2->nc = NULL; /* Send out an event */ - send_event(EVENT_NICK_LOGOUT, 1, u2->nick); + FOREACH_MOD(I_OnNickLogout, OnNickLogout(u2)); } return MOD_CONT; } diff --git a/src/core/ns_register.c b/src/core/ns_register.c index 54bb154a8..26d6046e7 100644 --- a/src/core/ns_register.c +++ b/src/core/ns_register.c @@ -86,7 +86,8 @@ class CommandNSConfirm : public Command notice_lang(s_NickServ, u, NICK_REGISTERED_NO_MASK, u->nick); ircdproto->SendAccountLogin(u, u->nc); - send_event(EVENT_NICK_REGISTERED, 1, u->nick); + + FOREACH_MOD(I_OnNickRegister, OnNickRegister(u)); if (enc_decrypt(na->nc->pass, tmp_pass, PASSMAX - 1) == 1) notice_lang(s_NickServ, u, NICK_PASSWORD_IS, tmp_pass); diff --git a/src/core/ns_suspend.c b/src/core/ns_suspend.c index 3c7158f7f..eb4e6547f 100644 --- a/src/core/ns_suspend.c +++ b/src/core/ns_suspend.c @@ -80,7 +80,8 @@ class CommandNSSuspend : public Command alog("%s: %s set SUSPEND for nick %s", s_NickServ, u->nick, nick); notice_lang(s_NickServ, u, NICK_SUSPEND_SUCCEEDED, nick); - send_event(EVENT_NICK_SUSPENDED, 1, nick); + + FOREACH_MOD(I_OnNickSuspended, OnNickSuspend(na)) } else { @@ -147,7 +148,8 @@ class CommandNSUnSuspend : public Command alog("%s: %s set UNSUSPEND for nick %s", s_NickServ, u->nick, nick); notice_lang(s_NickServ, u, NICK_UNSUSPEND_SUCCEEDED, nick); - send_event(EVENT_NICK_UNSUSPEND, 1, nick); + + FOREACH_MOD(I_OnNickUnsuspended, OnNickUnsuspended(na)); } else { diff --git a/src/core/os_defcon.c b/src/core/os_defcon.c index f079c71e3..dfec49a68 100644 --- a/src/core/os_defcon.c +++ b/src/core/os_defcon.c @@ -49,7 +49,9 @@ class CommandOSDEFCON : public Command return MOD_CONT; } DefConLevel = newLevel; - send_event(EVENT_DEFCON_LEVEL, 1, lvl); + + FOREACH_MOD(I_OnDefconLevel, OnDefconLevel(newLevel)); + DefContimer = time(NULL); notice_lang(s_OperServ, u, OPER_DEFCON_CHANGED, DefConLevel); defcon_sendlvls(u); |
