]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_permchannels.cpp
Add {To,From}{Human,Internal,Network} to ExtensionItem.
[user/henk/code/inspircd.git] / src / modules / m_permchannels.cpp
index 898d7aed8207d79a16254ac2367e27f234b45fb0..4e365d0abe48ba5fcd37bd7471b78d4974c0bc3f 100644 (file)
@@ -156,7 +156,10 @@ static bool WriteDatabase(PermChannel& permchanmode, Module* mod, bool save_list
        return true;
 }
 
-class ModulePermanentChannels : public Module
+class ModulePermanentChannels
+       : public Module
+       , public Timer
+
 {
        PermChannel p;
        bool dirty;
@@ -165,7 +168,10 @@ class ModulePermanentChannels : public Module
 public:
 
        ModulePermanentChannels()
-               : p(this), dirty(false), loaded(false)
+               : Timer(0, true)
+               , p(this)
+               , dirty(false)
+               , loaded(false)
        {
        }
 
@@ -174,6 +180,7 @@ public:
                ConfigTag* tag = ServerInstance->Config->ConfValue("permchanneldb");
                permchannelsconf = tag->getString("filename");
                save_listmodes = tag->getBool("listmodes");
+               SetInterval(tag->getDuration("saveperiod", 5));
 
                if (!permchannelsconf.empty())
                        permchannelsconf = ServerInstance->Config->Paths.PrependConfig(permchannelsconf);
@@ -265,11 +272,12 @@ public:
                        dirty = true;
        }
 
-       void OnBackgroundTimer(time_t) CXX11_OVERRIDE
+       bool Tick(time_t) CXX11_OVERRIDE
        {
                if (dirty)
                        WriteDatabase(p, this, save_listmodes);
                dirty = false;
+               return true;
        }
 
        void Prioritize() CXX11_OVERRIDE