summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-01-29 21:43:34 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-01-29 21:43:34 +0000
commit3ba6fa6d7f81cc1c20a3ad4a7d2aa9521e9b36a8 (patch)
treeff08611cfb296239a377b1100168526882d69751 /src/modules
parent4e0b300c989087428e78c624437c8c2596d0525a (diff)
Created OnPostOper that can be gauranteed to be called *after* opering (by ALL modules) is done
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2973 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/extra/m_sqloper.cpp1
-rw-r--r--src/modules/m_operjoin.cpp10
-rw-r--r--src/modules/m_opermodes.cpp10
3 files changed, 17 insertions, 4 deletions
diff --git a/src/modules/extra/m_sqloper.cpp b/src/modules/extra/m_sqloper.cpp
index 14c373f28..aefc8528d 100644
--- a/src/modules/extra/m_sqloper.cpp
+++ b/src/modules/extra/m_sqloper.cpp
@@ -172,6 +172,7 @@ class ModuleSQLOper : public Module
WriteServ(user->fd,"MODE %s :+o",user->nick);
FOREACH_MOD(I_OnOper,OnOper(user,rowresult->GetField("type")));
AddOper(user);
+ FOREACH_MOD(I_OnPostOper,OnPostOper(user,rowresult->GetField("type")));
log(DEFAULT,"OPER: %s!%s@%s opered as type: %s",user->nick,user->ident,user->host,rowresult->GetField("type").c_str());
}
break;
diff --git a/src/modules/m_operjoin.cpp b/src/modules/m_operjoin.cpp
index 1e767bd86..01be11587 100644
--- a/src/modules/m_operjoin.cpp
+++ b/src/modules/m_operjoin.cpp
@@ -27,7 +27,13 @@ class ModuleOperjoin : public Module
void Implements(char* List)
{
- List[I_OnOper] = 1;
+ List[I_OnPostOper] = List[I_OnRehash] = 1;
+ }
+
+ virtual void OnRehash(std::string parameter)
+ {
+ delete Conf;
+ Conf = new ConfigReader;
}
virtual ~ModuleOperjoin()
@@ -40,7 +46,7 @@ class ModuleOperjoin : public Module
return Version(1,0,0,1,VF_VENDOR);
}
- virtual void OnOper(userrec* user, std::string opertype)
+ virtual void OnPostOper(userrec* user, std::string opertype)
{
if(operChan != "")
{
diff --git a/src/modules/m_opermodes.cpp b/src/modules/m_opermodes.cpp
index a49cb34e8..c7ca62a69 100644
--- a/src/modules/m_opermodes.cpp
+++ b/src/modules/m_opermodes.cpp
@@ -40,7 +40,13 @@ class ModuleModesOnOper : public Module
void Implements(char* List)
{
- List[I_OnOper] = 1;
+ List[I_OnPostOper] = List[I_OnRehash] = 1;
+ }
+
+ virtual void OnRehash(std::string parameter)
+ {
+ delete Conf;
+ Conf = new ConfigReader;
}
virtual ~ModuleModesOnOper()
@@ -53,7 +59,7 @@ class ModuleModesOnOper : public Module
return Version(1,0,0,1,VF_VENDOR);
}
- virtual void OnOper(userrec* user, std::string opertype)
+ virtual void OnPostOper(userrec* user, std::string opertype)
{
// whenever a user opers, go through the oper types, find their <type:modes>,
// and if they have one apply their modes. The mode string can contain +modes