aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/m_permchannels.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2021-06-01 02:30:31 +0100
committerGravatar Sadie Powell2021-06-01 02:36:14 +0100
commit1f421861e6cc5d6e497ebb5aabba8d04d74fd4e5 (patch)
treeafea11b6ecfd11f0ee01838baacb29507b568e10 /src/modules/m_permchannels.cpp
parentRename Simple{Channel,User}ModeHandler to match other mode handlers. (diff)
downloadinspircd++-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.cpp19
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;
}
};