diff options
author | attilamolnar <attilamolnar@hush.com> | 2013-04-11 23:47:45 +0200 |
---|---|---|
committer | attilamolnar <attilamolnar@hush.com> | 2013-07-01 19:21:08 +0200 |
commit | f2cdf27dd9c45f91f4184b81ea3b9be7c5d88173 (patch) | |
tree | 2af494a7cf74fc8731e6cae695ae37a2267b6d5e /src/modules/m_deaf.cpp | |
parent | 93b12896dab1692800c4b6d2d9f35e1a23102028 (diff) |
Replace hardcoded mode letters passed to IsModeSet() and GetModeParameter() with ModeHandlers, part 1
Diffstat (limited to 'src/modules/m_deaf.cpp')
-rw-r--r-- | src/modules/m_deaf.cpp | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/src/modules/m_deaf.cpp b/src/modules/m_deaf.cpp index 65591f070..a76f96b61 100644 --- a/src/modules/m_deaf.cpp +++ b/src/modules/m_deaf.cpp @@ -32,24 +32,14 @@ class User_d : public ModeHandler ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string ¶meter, bool adding) { + if (adding == dest->IsModeSet(this)) + return MODEACTION_DENY; + if (adding) - { - if (!dest->IsModeSet('d')) - { - dest->WriteNotice("*** You have enabled usermode +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."); - dest->SetMode('d',true); - return MODEACTION_ALLOW; - } - } - else - { - if (dest->IsModeSet('d')) - { - dest->SetMode('d',false); - return MODEACTION_ALLOW; - } - } - return MODEACTION_DENY; + dest->WriteNotice("*** You have enabled usermode +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."); + + dest->SetMode(this, adding); + return MODEACTION_ALLOW; } }; @@ -124,7 +114,7 @@ class ModuleDeaf : public Module for (UserMembCIter i = ulist->begin(); i != ulist->end(); i++) { /* not +d ? */ - if (!i->first->IsModeSet('d')) + if (!i->first->IsModeSet(m1)) continue; /* deliver message */ /* matched both U-line only and regular bypasses */ if (is_bypasschar && is_bypasschar_uline) |