diff options
| author | 2013-08-04 19:13:52 +0200 | |
|---|---|---|
| committer | 2013-08-04 19:13:52 +0200 | |
| commit | 30935599479bd102db16842a8bc614d905a2ec60 (patch) | |
| tree | 87ea9f49f2129d206448e9b4a8c59539340cbe3b /src/modules | |
| parent | FakeUsers are only inserted into UserManager::uuidlist; don't try to erase() ... (diff) | |
Call ModeParser::Process() directly instead of going through the CommandParser
Simplify the way how m_conn_umodes assembles the modes it sets
Diffstat (limited to 'src/modules')
| -rw-r--r-- | src/modules/m_conn_umodes.cpp | 20 | ||||
| -rw-r--r-- | src/modules/m_samode.cpp | 2 | ||||
| -rw-r--r-- | src/modules/m_timedbans.cpp | 6 |
3 files changed, 8 insertions, 20 deletions
diff --git a/src/modules/m_conn_umodes.cpp b/src/modules/m_conn_umodes.cpp index bae9317d5..1e3ea1a49 100644 --- a/src/modules/m_conn_umodes.cpp +++ b/src/modules/m_conn_umodes.cpp @@ -51,26 +51,14 @@ class ModuleModesOnConnect : public Module std::string buf; std::stringstream ss(ThisModes); - std::vector<std::string> tokens; - - // split ThisUserModes into modes and mode params - while (ss >> buf) - tokens.push_back(buf); - std::vector<std::string> modes; modes.push_back(user->nick); - modes.push_back(tokens[0]); - if (tokens.size() > 1) - { - // process mode params - for (unsigned int k = 1; k < tokens.size(); k++) - { - modes.push_back(tokens[k]); - } - } + // split ThisUserModes into modes and mode params + while (ss >> buf) + modes.push_back(buf); - ServerInstance->Parser->CallHandler("MODE", modes, user); + ServerInstance->Modes->Process(modes, user); } memcpy(ServerInstance->Config->DisabledUModes, save, 64); diff --git a/src/modules/m_samode.cpp b/src/modules/m_samode.cpp index cd0417aba..a549f89a7 100644 --- a/src/modules/m_samode.cpp +++ b/src/modules/m_samode.cpp @@ -44,7 +44,7 @@ class CommandSamode : public Command return CMD_FAILURE; } this->active = true; - ServerInstance->Parser->CallHandler("MODE", parameters, user); + ServerInstance->Modes->Process(parameters, user); if (ServerInstance->Modes->GetLastParse().length()) ServerInstance->SNO->WriteGlobalSno('a', user->nick + " used SAMODE: " +ServerInstance->Modes->GetLastParse()); this->active = false; diff --git a/src/modules/m_timedbans.cpp b/src/modules/m_timedbans.cpp index afb042da0..29691b338 100644 --- a/src/modules/m_timedbans.cpp +++ b/src/modules/m_timedbans.cpp @@ -79,9 +79,9 @@ class CommandTban : public Command mask.append("!*@*"); setban.push_back(mask); - // use CallHandler to make it so that the user sets the mode - // themselves - ServerInstance->Parser->CallHandler("MODE",setban,user); + // Pass the user (instead of ServerInstance->FakeClient) to ModeHandler::Process() to + // make it so that the user sets the mode themselves + ServerInstance->Modes->Process(setban, user); if (ServerInstance->Modes->GetLastParse().empty()) { user->WriteNotice("Invalid ban mask"); |
