aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_deaf.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_deaf.cpp
parentRename Simple{Channel,User}ModeHandler to match other mode handlers. (diff)
Convert simple modes to use Simple{Channel,User}Mode.
Diffstat (limited to 'src/modules/m_deaf.cpp')
-rw-r--r--src/modules/m_deaf.cpp36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/modules/m_deaf.cpp b/src/modules/m_deaf.cpp
index e8644298c..7702e2225 100644
--- a/src/modules/m_deaf.cpp
+++ b/src/modules/m_deaf.cpp
@@ -29,42 +29,46 @@
#include "modules/ctctags.h"
// User mode +d - filter out channel messages and channel notices
-class DeafMode : public ModeHandler
+class DeafMode final
+ : public SimpleUserMode
{
public:
- DeafMode(Module* Creator) : ModeHandler(Creator, "deaf", 'd', PARAM_NONE, MODETYPE_USER) { }
+ DeafMode(Module* Creator)
+ : SimpleUserMode(Creator, "deaf", 'd')
+ {
+ }
ModeAction OnModeChange(User* source, User* dest, Channel* channel, Modes::Change& change) override
{
- if (change.adding == dest->IsModeSet(this))
- return MODEACTION_DENY;
-
- if (change.adding)
+ if (SimpleUserMode::OnModeChange(source, dest, channel, change) == MODEACTION_ALLOW)
+ {
dest->WriteNotice("*** You have enabled user mode +d, deaf mode. This mode means you WILL NOT receive any messages from any channels you are in. If you did NOT mean to do this, use /mode " + dest->nick + " -d.");
+ return MODEACTION_ALLOW;
+ }
- dest->SetMode(this, change.adding);
- return MODEACTION_ALLOW;
+ return MODEACTION_DENY;
}
};
// User mode +D - filter out user messages and user notices
-class PrivDeafMode : public ModeHandler
+class PrivDeafMode final
+ : public SimpleUserMode
{
public:
- PrivDeafMode(Module* Creator) : ModeHandler(Creator, "privdeaf", 'D', PARAM_NONE, MODETYPE_USER)
+ PrivDeafMode(Module* Creator)
+ : SimpleUserMode(Creator, "privdeaf", 'D')
{
}
ModeAction OnModeChange(User* source, User* dest, Channel* channel, Modes::Change& change) override
{
- if (change.adding == dest->IsModeSet(this))
- return MODEACTION_DENY;
-
- if (change.adding)
+ if (SimpleUserMode::OnModeChange(source, dest, channel, change) == MODEACTION_ALLOW)
+ {
dest->WriteNotice("*** You have enabled user mode +D, private deaf mode. This mode means you WILL NOT receive any messages and notices from any nicks. If you did NOT mean to do this, use /mode " + dest->nick + " -D.");
+ return MODEACTION_ALLOW;
+ }
- dest->SetMode(this, change.adding);
- return MODEACTION_ALLOW;
+ return MODEACTION_DENY;
}
};