aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_permchannels.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2021-03-30 17:52:02 +0100
committerGravatar Sadie Powell2021-03-30 18:25:55 +0100
commit49702c621eed54caee6a45c0518d68a33bca8f92 (patch)
tree94623f04b8635fbff3f1a90117c32d44fce11075 /src/modules/m_permchannels.cpp
parentRemove multi-line FJOIN and FMODE logic. (diff)
Convert various mode methods to take Mode::Change.
- AccessCheck - AfterMode - BeforeMode - OnModeChange - OnRawMode
Diffstat (limited to 'src/modules/m_permchannels.cpp')
-rw-r--r--src/modules/m_permchannels.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/modules/m_permchannels.cpp b/src/modules/m_permchannels.cpp
index 6d5180bb8..f91ed43c3 100644
--- a/src/modules/m_permchannels.cpp
+++ b/src/modules/m_permchannels.cpp
@@ -41,13 +41,13 @@ class PermChannel : public ModeHandler
oper = true;
}
- ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string& parameter, bool adding) override
+ ModeAction OnModeChange(User* source, User* dest, Channel* channel, Modes::Change& change) override
{
- if (adding == channel->IsModeSet(this))
+ if (change.adding == channel->IsModeSet(this))
return MODEACTION_DENY;
- channel->SetMode(this, adding);
- if (!adding)
+ channel->SetMode(this, change.adding);
+ if (!change.adding)
channel->CheckDestroy();
return MODEACTION_ALLOW;
@@ -253,20 +253,22 @@ public:
else
par.clear();
- mode->OnModeChange(ServerInstance->FakeClient, ServerInstance->FakeClient, c, par, true);
+ Modes::Change modechange(mode, true, par);
+ mode->OnModeChange(ServerInstance->FakeClient, ServerInstance->FakeClient, c, modechange);
}
}
// We always apply the permchannels mode to permanent channels.
par.clear();
- p.OnModeChange(ServerInstance->FakeClient, ServerInstance->FakeClient, c, par, true);
+ Modes::Change modechange(&p, true, par);
+ p.OnModeChange(ServerInstance->FakeClient, ServerInstance->FakeClient, c, modechange);
}
}
}
- ModResult OnRawMode(User* user, Channel* chan, ModeHandler* mh, const std::string& param, bool adding) override
+ ModResult OnRawMode(User* user, Channel* chan, const Modes::Change& change) override
{
- if (chan && (chan->IsModeSet(p) || mh == &p))
+ if (chan && (chan->IsModeSet(p) || change.mh == &p))
dirty = true;
return MOD_RES_PASSTHRU;