summaryrefslogtreecommitdiff
path: root/modules/commands/cs_flags.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/commands/cs_flags.cpp')
-rw-r--r--modules/commands/cs_flags.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/modules/commands/cs_flags.cpp b/modules/commands/cs_flags.cpp
index 64ecb7323..5ead6f2d9 100644
--- a/modules/commands/cs_flags.cpp
+++ b/modules/commands/cs_flags.cpp
@@ -390,15 +390,21 @@ class CSFlags : public Module
void OnReload()
{
ConfigReader config;
- std::vector<Privilege> &privs = PrivilegeManager::GetPrivileges();
+ defaultFlags.clear();
- for (unsigned i = 0; i < privs.size(); ++i)
+ for (int i = 0; i < config.Enumerate("privilege"); ++i)
{
- Privilege &p = privs[i];
- const Anope::string &value = config.ReadValue("chanserv", "flag_" + p.name, "", 0);
+ const Anope::string &pname = config.ReadValue("privilege", "name", "", i);
+
+ Privilege *p = PrivilegeManager::FindPrivilege(pname);
+ if (p == NULL)
+ continue;
+
+ const Anope::string &value = config.ReadValue("privilege", "flag", "", i);
if (value.empty())
continue;
- defaultFlags[p.name] = value[0];
+
+ defaultFlags[p->name] = value[0];
}
}
};