summaryrefslogtreecommitdiff
path: root/src/mode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mode.cpp')
-rw-r--r--src/mode.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/mode.cpp b/src/mode.cpp
index 9c38afaad..1e1c7a25c 100644
--- a/src/mode.cpp
+++ b/src/mode.cpp
@@ -134,10 +134,6 @@ ModeAction ParamChannelModeHandler::OnModeChange(User* source, User* dest, Chann
std::string now = channel->GetModeParameter(this);
if (parameter == now)
return MODEACTION_DENY;
- if (adding)
- channel->SetModeParam(this, parameter);
- else
- channel->SetModeParam(this, "");
return MODEACTION_ALLOW;
}
@@ -320,6 +316,9 @@ ModeAction ModeParser::TryMode(User* user, User* targetuser, Channel* chan, bool
if (ma != MODEACTION_ALLOW)
return ma;
+ if ((!mh->IsListMode()) && (mh->GetNumParams(true)) && (chan))
+ chan->SetModeParam(mh, (adding ? parameter : ""));
+
itpair = modewatchermap.equal_range(mh->name);
for (ModeWatchIter i = itpair.first; i != itpair.second; ++i)
{