diff options
author | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-10-23 21:38:58 +0000 |
---|---|---|
committer | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-10-23 21:38:58 +0000 |
commit | b928aff22f8f9a458df9aa73a0c6b22b979101bc (patch) | |
tree | 54ff8e37c50210d58c1ccc5e6051bf4545aa934e | |
parent | 65627cc9d9f3227ea6dc091dd62a71fbce41a5e2 (diff) |
Make this un-rehashable due to complications/ugliness involved with keeping it this way (still unusable, please don't use)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10694 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | conf/modules.conf.example | 4 | ||||
-rw-r--r-- | src/modules/m_showwhois.cpp | 28 |
2 files changed, 11 insertions, 21 deletions
diff --git a/conf/modules.conf.example b/conf/modules.conf.example index f739895f2..67d17fbfc 100644 --- a/conf/modules.conf.example +++ b/conf/modules.conf.example @@ -1373,7 +1373,9 @@ #<module name="m_showwhois.so"> # # If you wish, you may also let users set this mode. Only opers with the -# users/auspex priv will see real hosts of people, though. +# users/auspex priv will see real hosts of people, though. This setting +# is not reloadable via /rehash, and will require /reloadmodule, as +# it directly affects the mode object itself. #<showwhois opersonly="yes"> #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# diff --git a/src/modules/m_showwhois.cpp b/src/modules/m_showwhois.cpp index 5d01d5983..fac5d124e 100644 --- a/src/modules/m_showwhois.cpp +++ b/src/modules/m_showwhois.cpp @@ -54,10 +54,14 @@ class ModuleShowwhois : public Module ModuleShowwhois(InspIRCd* Me) : Module(Me) { - sw = NULL; - OnRehash(NULL, ""); - Implementation eventlist[] = { I_OnWhois, I_OnRehash }; - ServerInstance->Modules->Attach(eventlist, this, 2); + ConfigReader conf(ServerInstance); + bool OpersOnly = conf.ReadFlag("showwhois", "opersonly", 0, true); + + sw = new SeeWhois(ServerInstance, OpersOnly); + if (!ServerInstance->Modes->AddMode(sw)) + throw ModuleException("Could not add new modes!"); + Implementation eventlist[] = { I_OnWhois }; + ServerInstance->Modules->Attach(eventlist, this, 1); } ~ModuleShowwhois() @@ -71,22 +75,6 @@ class ModuleShowwhois : public Module return Version("$Id$",VF_COMMON|VF_VENDOR,API_VERSION); } - virtual void OnRehash(User *user, const std::string ¶meter) - { - ConfigReader conf(ServerInstance); - bool OpersOnly = conf.ReadFlag("showwhois", "opersonly", 0, true); - - if (sw) - { - ServerInstance->Modes->DelMode(sw); - delete sw; - } - - sw = new SeeWhois(ServerInstance, OpersOnly); - if (!ServerInstance->Modes->AddMode(sw)) - throw ModuleException("Could not add new modes!"); - } - virtual void OnWhois(User* source, User* dest) { if ((dest->IsModeSet('W')) && (source != dest)) |