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_deaf.cpp | |
| parent | Rename 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.cpp | 36 |
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; } }; |
