diff options
author | attilamolnar <attilamolnar@hush.com> | 2013-09-02 12:33:28 +0200 |
---|---|---|
committer | attilamolnar <attilamolnar@hush.com> | 2013-09-12 14:44:17 +0200 |
commit | 7ba25076818e42b4eac9199477a01101cf57e848 (patch) | |
tree | 35c2c547fc992b58592a3b5f89d63cb53d589cbb /src/modules | |
parent | 52e4d9c96c83ca4bbbeb487966ac2897a384907d (diff) |
Keep lists of mode handlers by type
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/m_autoop.cpp | 8 | ||||
-rw-r--r-- | src/modules/m_exemptchanops.cpp | 8 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/modules/m_autoop.cpp b/src/modules/m_autoop.cpp index d195345ca..a1b72714b 100644 --- a/src/modules/m_autoop.cpp +++ b/src/modules/m_autoop.cpp @@ -36,10 +36,12 @@ class AutoOpList : public ListModeBase { if (mid.length() == 1) return ServerInstance->Modes->FindPrefixMode(mid[0]); - for(char c='A'; c < 'z'; c++) + + const ModeParser::PrefixModeList& pmlist = ServerInstance->Modes->GetPrefixModes(); + for (ModeParser::PrefixModeList::const_iterator i = pmlist.begin(); i != pmlist.end(); ++i) { - PrefixMode* mh = ServerInstance->Modes->FindPrefixMode(c); - if (mh && mh->name == mid) + PrefixMode* mh = *i; + if (mh->name == mid) return mh; } return NULL; diff --git a/src/modules/m_exemptchanops.cpp b/src/modules/m_exemptchanops.cpp index 5d8958665..a733fa475 100644 --- a/src/modules/m_exemptchanops.cpp +++ b/src/modules/m_exemptchanops.cpp @@ -65,10 +65,12 @@ class ExemptHandler : public HandlerBase3<ModResult, User*, Channel*, const std: { if (mid.length() == 1) return ServerInstance->Modes->FindPrefixMode(mid[0]); - for(char c='A'; c < 'z'; c++) + + const ModeParser::PrefixModeList& pmlist = ServerInstance->Modes->GetPrefixModes(); + for (ModeParser::PrefixModeList::const_iterator i = pmlist.begin(); i != pmlist.end(); ++i) { - PrefixMode* mh = ServerInstance->Modes->FindPrefixMode(c); - if (mh && mh->name == mid) + PrefixMode* mh = *i; + if (mh->name == mid) return mh; } return NULL; |