diff options
| author | 2021-03-30 17:52:02 +0100 | |
|---|---|---|
| committer | 2021-03-30 18:25:55 +0100 | |
| commit | 49702c621eed54caee6a45c0518d68a33bca8f92 (patch) | |
| tree | 94623f04b8635fbff3f1a90117c32d44fce11075 /src/modules/m_permchannels.cpp | |
| parent | Remove 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.cpp | 18 |
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; |
