From 95593de52c9b89dd3dae8d79a2c76efc81d9d353 Mon Sep 17 00:00:00 2001 From: attilamolnar Date: Thu, 13 Jun 2013 19:00:01 +0200 Subject: Call Channel::SetModeParam() from the mode parser when needed instead of requiring mode handlers to do it --- src/mode.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'src/mode.cpp') 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) { -- cgit v1.3.1-10-gc9f91