diff options
| author | Adam <Adam@anope.org> | 2012-04-23 05:08:26 -0400 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2012-04-23 05:08:26 -0400 |
| commit | 573e49a7ead331219eb6f0d3ca9cf83e793a5c9c (patch) | |
| tree | e145e04fa3d041cf92ce46da4ac790b63231059c /modules/pseudoclients/nickserv.cpp | |
| parent | 63c639e108a00d7dbb0d7ac9891684fc83a3b207 (diff) | |
Reworked live SQL support yet again
Diffstat (limited to 'modules/pseudoclients/nickserv.cpp')
| -rw-r--r-- | modules/pseudoclients/nickserv.cpp | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/modules/pseudoclients/nickserv.cpp b/modules/pseudoclients/nickserv.cpp index 9dc517fd1..dd0501cd4 100644 --- a/modules/pseudoclients/nickserv.cpp +++ b/modules/pseudoclients/nickserv.cpp @@ -14,8 +14,6 @@ #include "module.h" #include "nickserv.h" -static BotInfo *NickServ; - class NickServCollide; class NickServRelease; @@ -80,6 +78,7 @@ class MyNickServService : public NickServService NickAlias *na = findnick(u->nick); if (!na) return; + const BotInfo *NickServ = findbot(Config->NickServ); if (na->nc->HasFlag(NI_SUSPENDED)) { @@ -148,7 +147,7 @@ class ExpireCallback : public CallBack if (noexpire || readonly) return; - for (nickalias_map::const_iterator it = NickAliasList.begin(), it_end = NickAliasList.end(); it != it_end; ) + for (nickalias_map::const_iterator it = NickAliasList->begin(), it_end = NickAliasList->end(); it != it_end; ) { NickAlias *na = it->second; ++it; @@ -176,7 +175,7 @@ class ExpireCallback : public CallBack extra = "suspended "; Log(LOG_NORMAL, "expire") << "Expiring " << extra << "nickname " << na->nick << " (group: " << na->nc->display << ") (e-mail: " << (na->nc->email.empty() ? "none" : na->nc->email) << ")"; FOREACH_MOD(I_OnNickExpire, OnNickExpire(na)); - delete na; + na->destroy(); } } } @@ -192,8 +191,7 @@ class NickServCore : public Module { this->SetAuthor("Anope"); - NickServ = findbot(Config->NickServ); - if (NickServ == NULL) + if (!findbot(Config->NickServ)) throw ModuleException("No bot named " + Config->NickServ); Implementation i[] = { I_OnDelNick, I_OnDelCore, I_OnChangeCoreDisplay, I_OnNickIdentify, I_OnNickGroup, @@ -207,14 +205,14 @@ class NickServCore : public Module if (u && u->Account() == na->nc) { ircdproto->SendLogout(u); - u->RemoveMode(NickServ, UMODE_REGISTERED); + u->RemoveMode(findbot(Config->NickServ), UMODE_REGISTERED); u->Logout(); } } void OnDelCore(NickCore *nc) anope_override { - Log(NickServ, "nick") << "deleting nickname group " << nc->display; + Log(findbot(Config->NickServ), "nick") << "deleting nickname group " << nc->display; /* Clean up this nick core from any users online using it * (ones that /nick but remain unidentified) @@ -223,7 +221,7 @@ class NickServCore : public Module { User *user = *it++; ircdproto->SendLogout(user); - user->RemoveMode(NickServ, UMODE_REGISTERED); + user->RemoveMode(findbot(Config->NickServ), UMODE_REGISTERED); user->Logout(); FOREACH_MOD(I_OnNickLogout, OnNickLogout(user)); } @@ -232,14 +230,16 @@ class NickServCore : public Module void OnChangeCoreDisplay(NickCore *nc, const Anope::string &newdisplay) anope_override { - Log(LOG_NORMAL, "nick", NickServ) << "Changing " << nc->display << " nickname group display to " << newdisplay; + Log(LOG_NORMAL, "nick", findbot(Config->NickServ)) << "Changing " << nc->display << " nickname group display to " << newdisplay; } void OnNickIdentify(User *u) anope_override { + const BotInfo *NickServ = findbot(Config->NickServ); + if (!Config->NoNicknameOwnership) { - NickAlias *this_na = findnick(u->nick); + const NickAlias *this_na = findnick(u->nick); if (this_na && this_na->nc == u->Account() && u->Account()->HasFlag(NI_UNCONFIRMED) == false) u->SetMode(NickServ, UMODE_REGISTERED); } @@ -266,7 +266,7 @@ class NickServCore : public Module if (u->Account()->HasFlag(NI_UNCONFIRMED)) { u->SendMessage(NickServ, _("Your email address is not confirmed. To confirm it, follow the instructions that were emailed to you when you registered.")); - NickAlias *this_na = findnick(u->Account()->display); + const NickAlias *this_na = findnick(u->Account()->display); time_t time_registered = Anope::CurTime - this_na->time_registered; if (Config->NSUnconfirmedExpire > time_registered) u->SendMessage(NickServ, _("Your account will expire, if not confirmed, in %s"), duration(Config->NSUnconfirmedExpire - time_registered).c_str()); @@ -276,7 +276,7 @@ class NickServCore : public Module void OnNickGroup(User *u, NickAlias *target) anope_override { if (target->nc->HasFlag(NI_UNCONFIRMED) == false) - u->SetMode(NickServ, UMODE_REGISTERED); + u->SetMode(findbot(Config->NickServ), UMODE_REGISTERED); } void OnNickUpdate(User *u) anope_override @@ -292,7 +292,8 @@ class NickServCore : public Module void OnUserNickChange(User *u, const Anope::string &oldnick) anope_override { - NickAlias *na = findnick(u->nick); + const NickAlias *na = findnick(u->nick); + const BotInfo *NickServ = findbot(Config->NickServ); /* If the new nick isnt registerd or its registerd and not yours */ if (!na || na->nc != u->Account()) { @@ -305,7 +306,7 @@ class NickServCore : public Module { ircdproto->SendLogin(u); if (!Config->NoNicknameOwnership && na->nc == u->Account() && na->nc->HasFlag(NI_UNCONFIRMED) == false) - u->SetMode(findbot(Config->NickServ), UMODE_REGISTERED); + u->SetMode(NickServ, UMODE_REGISTERED); Log(NickServ) << u->GetMask() << " automatically identified for group " << u->Account()->display; } } @@ -313,7 +314,7 @@ class NickServCore : public Module void OnUserModeSet(User *u, UserModeName Name) anope_override { if (Name == UMODE_REGISTERED && !u->IsIdentified()) - u->RemoveMode(NickServ, Name); + u->RemoveMode(findbot(Config->NickServ), Name); } EventReturn OnPreHelp(CommandSource &source, const std::vector<Anope::string> ¶ms) anope_override @@ -353,8 +354,8 @@ class NickServCore : public Module void OnUserConnect(dynamic_reference<User> &u, bool &exempt) anope_override { - if (!Config->NoNicknameOwnership && !Config->NSUnregisteredNotice.empty() && u && findnick(u->nick) == NULL) - u->SendMessage(NickServ, Config->NSUnregisteredNotice); + if (!Config->NoNicknameOwnership && !Config->NSUnregisteredNotice.empty() && u && !findnick(u->nick)) + u->SendMessage(findbot(Config->NickServ), Config->NSUnregisteredNotice); } }; |
