summaryrefslogtreecommitdiff
path: root/modules/pseudoclients/nickserv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/pseudoclients/nickserv.cpp')
-rw-r--r--modules/pseudoclients/nickserv.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/modules/pseudoclients/nickserv.cpp b/modules/pseudoclients/nickserv.cpp
index 0efb1d261..744339f7d 100644
--- a/modules/pseudoclients/nickserv.cpp
+++ b/modules/pseudoclients/nickserv.cpp
@@ -185,20 +185,24 @@ class NickServCore : public Module
{
this->SetAuthor("Anope");
- BotInfo *bi = BotInfo::Find(Config->NickServ);
- if (!bi)
+ NickServ = BotInfo::Find(Config->NickServ);
+ if (!NickServ)
throw ModuleException("No bot named " + Config->NickServ);
- Implementation i[] = { I_OnDelNick, I_OnDelCore, I_OnChangeCoreDisplay, I_OnNickIdentify, I_OnNickGroup,
- I_OnNickUpdate, I_OnUserNickChange, I_OnPreHelp, I_OnPostHelp, I_OnUserConnect };
+ Implementation i[] = { I_OnBotDelete, I_OnDelNick, I_OnDelCore, I_OnChangeCoreDisplay, I_OnNickIdentify, I_OnNickGroup,
+ I_OnNickUpdate, I_OnUserNickChange, I_OnPreHelp, I_OnPostHelp, I_OnUserConnect };
ModuleManager::Attach(i, this, sizeof(i) / sizeof(Implementation));
-
- Service::AddAlias("BotInfo", "NickServ", bi->nick);
}
~NickServCore()
{
- Service::DelAlias("BotInfo", "NickServ");
+ NickServ = NULL;
+ }
+
+ void OnBotDelete(BotInfo *bi) anope_override
+ {
+ if (bi == NickServ)
+ NickServ = NULL;
}
void OnDelNick(NickAlias *na) anope_override