diff options
Diffstat (limited to 'modules/pseudoclients/nickserv.cpp')
-rw-r--r-- | modules/pseudoclients/nickserv.cpp | 18 |
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 |