From 30935599479bd102db16842a8bc614d905a2ec60 Mon Sep 17 00:00:00 2001 From: attilamolnar Date: Sun, 4 Aug 2013 19:13:52 +0200 Subject: Call ModeParser::Process() directly instead of going through the CommandParser Simplify the way how m_conn_umodes assembles the modes it sets --- src/modules/m_conn_umodes.cpp | 20 ++++---------------- src/modules/m_samode.cpp | 2 +- src/modules/m_timedbans.cpp | 6 +++--- 3 files changed, 8 insertions(+), 20 deletions(-) (limited to 'src/modules') 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 tokens; - - // split ThisUserModes into modes and mode params - while (ss >> buf) - tokens.push_back(buf); - std::vector 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"); -- cgit v1.2.3