diff options
| author | 2021-06-01 02:30:31 +0100 | |
|---|---|---|
| committer | 2021-06-01 02:36:14 +0100 | |
| commit | 1f421861e6cc5d6e497ebb5aabba8d04d74fd4e5 (patch) | |
| tree | afea11b6ecfd11f0ee01838baacb29507b568e10 /src/modules/m_permchannels.cpp | |
| parent | Rename Simple{Channel,User}ModeHandler to match other mode handlers. (diff) | |
| download | inspircd++-1f421861e6cc5d6e497ebb5aabba8d04d74fd4e5.tar.gz inspircd++-1f421861e6cc5d6e497ebb5aabba8d04d74fd4e5.tar.bz2 inspircd++-1f421861e6cc5d6e497ebb5aabba8d04d74fd4e5.zip | |
Convert simple modes to use Simple{Channel,User}Mode.
Diffstat (limited to 'src/modules/m_permchannels.cpp')
| -rw-r--r-- | src/modules/m_permchannels.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/modules/m_permchannels.cpp b/src/modules/m_permchannels.cpp index 33c8abbe1..dc3fbd0d1 100644 --- a/src/modules/m_permchannels.cpp +++ b/src/modules/m_permchannels.cpp @@ -32,25 +32,26 @@ /** Handles the +P channel mode */ -class PermChannel : public ModeHandler +class PermChannel final + : public SimpleChannelMode { public: PermChannel(Module* Creator) - : ModeHandler(Creator, "permanent", 'P', PARAM_NONE, MODETYPE_CHANNEL) + : SimpleChannelMode(Creator, "permanent", 'P', true) { - oper = true; } ModeAction OnModeChange(User* source, User* dest, Channel* channel, Modes::Change& change) override { - if (change.adding == channel->IsModeSet(this)) - return MODEACTION_DENY; + if (SimpleChannelMode::OnModeChange(source, dest, channel, change)) + { + if (!change.adding) + channel->CheckDestroy(); - channel->SetMode(this, change.adding); - if (!change.adding) - channel->CheckDestroy(); + return MODEACTION_ALLOW; + } - return MODEACTION_ALLOW; + return MODEACTION_DENY; } }; |
