aboutsummaryrefslogtreecommitdiffstats
path: root/src/mode.cpp
diff options
context:
space:
mode:
authorGravatar attilamolnar2013-05-26 23:23:47 +0200
committerGravatar attilamolnar2013-05-27 01:07:30 +0200
commit3406c7234ac15b6a2fc52afa770fb851da25c215 (patch)
treea772480ea9d1d01f038ea4f7704630831ca35541 /src/mode.cpp
parentDeduplicate RemoveMode() implementations (diff)
downloadinspircd++-3406c7234ac15b6a2fc52afa770fb851da25c215.tar.gz
inspircd++-3406c7234ac15b6a2fc52afa770fb851da25c215.tar.bz2
inspircd++-3406c7234ac15b6a2fc52afa770fb851da25c215.zip
Simplify user mode removal via ModeHandler::RemoveMode()
The function does not need to be virtual because the core can remove any user mode using the default logic The optional modestack parameter was always NULL, so remove it
Diffstat (limited to 'src/mode.cpp')
-rw-r--r--src/mode.cpp22
1 files changed, 7 insertions, 15 deletions
diff --git a/src/mode.cpp b/src/mode.cpp
index 3d0edb185..a9ac006ae 100644
--- a/src/mode.cpp
+++ b/src/mode.cpp
@@ -838,24 +838,16 @@ bool ModeParser::DelModeWatcher(ModeWatcher* mw)
return true;
}
-/** This default implementation can remove simple user modes
- */
-void ModeHandler::RemoveMode(User* user, irc::modestacker* stack)
+void ModeHandler::RemoveMode(User* user)
{
+ // Remove the mode if it's set on the user
if (user->IsModeSet(this->GetModeChar()))
{
- if (stack)
- {
- stack->Push(this->GetModeChar());
- }
- else
- {
- std::vector<std::string> parameters;
- parameters.push_back(user->nick);
- parameters.push_back("-");
- parameters[1].push_back(this->GetModeChar());
- ServerInstance->Modes->Process(parameters, ServerInstance->FakeClient);
- }
+ std::vector<std::string> parameters;
+ parameters.push_back(user->nick);
+ parameters.push_back("-");
+ parameters[1].push_back(this->GetModeChar());
+ ServerInstance->Modes->Process(parameters, ServerInstance->FakeClient);
}
}