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_services_account.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_services_account.cpp')
| -rw-r--r-- | src/modules/m_services_account.cpp | 52 |
1 files changed, 23 insertions, 29 deletions
diff --git a/src/modules/m_services_account.cpp b/src/modules/m_services_account.cpp index 446fd61a3..6271b35a0 100644 --- a/src/modules/m_services_account.cpp +++ b/src/modules/m_services_account.cpp @@ -52,54 +52,48 @@ enum /** Channel mode +r - mark a channel as identified */ -class Channel_r : public ModeHandler +class RegisteredChannel final + : public SimpleChannelMode { public: - Channel_r(Module* Creator) : ModeHandler(Creator, "c_registered", 'r', PARAM_NONE, MODETYPE_CHANNEL) { } + RegisteredChannel(Module* Creator) + : SimpleChannelMode(Creator, "c_registered", 'r') + { + } ModeAction OnModeChange(User* source, User* dest, Channel* channel, Modes::Change& change) override { - // Only a U-lined server may add or remove the +r mode. - if (!IS_LOCAL(source)) - { - // Only change the mode if it's not redundant - if (change.adding != channel->IsModeSet(this)) - { - channel->SetMode(this, change.adding); - return MODEACTION_ALLOW; - } - } - else + if (IS_LOCAL(source)) { source->WriteNumeric(ERR_NOPRIVILEGES, "Only a server may modify the +r channel mode"); + return MODEACTION_DENY; } - return MODEACTION_DENY; + + return SimpleChannelMode::OnModeChange(source, dest, channel, change); } }; /** User mode +r - mark a user as identified */ -class User_r : public ModeHandler +class RegisteredUser final + : public SimpleUserMode { public: - User_r(Module* Creator) : ModeHandler(Creator, "u_registered", 'r', PARAM_NONE, MODETYPE_USER) { } + RegisteredUser(Module* Creator) + : SimpleUserMode(Creator, "u_registered", 'r') + { + } ModeAction OnModeChange(User* source, User* dest, Channel* channel, Modes::Change& change) override { - if (!IS_LOCAL(source)) + if (IS_LOCAL(source)) { - if (change.adding != dest->IsModeSet(this)) - { - dest->SetMode(this, change.adding); - return MODEACTION_ALLOW; - } - } - else - { - source->WriteNumeric(ERR_NOPRIVILEGES, "Only a server may modify the +r user mode"); + source->WriteNumeric(ERR_NOPRIVILEGES, "Only a server may modify the +r channel mode"); + return MODEACTION_DENY; } - return MODEACTION_DENY; + + return SimpleUserMode::OnModeChange(source, dest, channel, change); } }; @@ -193,8 +187,8 @@ class ModuleServicesAccount SimpleChannelMode reginvitemode; SimpleChannelMode regmoderatedmode; SimpleUserMode regdeafmode; - Channel_r chanregmode; - User_r userregmode; + RegisteredChannel chanregmode; + RegisteredUser userregmode; AccountExtItemImpl accountname; AccountExtBan accountextban; UnauthedExtBan unauthedextban; |
