diff options
-rw-r--r-- | include/builtinmodes.h | 70 | ||||
-rw-r--r-- | src/mode.cpp | 25 |
2 files changed, 18 insertions, 77 deletions
diff --git a/include/builtinmodes.h b/include/builtinmodes.h index e78e68b11..26e38204a 100644 --- a/include/builtinmodes.h +++ b/include/builtinmodes.h @@ -35,16 +35,6 @@ class ModeChannelBan : public ListModeBase } }; -/** Channel mode +i - */ -class ModeChannelInviteOnly : public SimpleChannelModeHandler -{ - public: - ModeChannelInviteOnly() : SimpleChannelModeHandler(NULL, "inviteonly", 'i') - { - } -}; - /** Channel mode +k */ class ModeChannelKey : public ParamMode<ModeChannelKey, LocalStringExt> @@ -67,26 +57,6 @@ class ModeChannelLimit : public ParamMode<ModeChannelLimit, LocalIntExt> ModeAction OnSet(User* source, Channel* channel, std::string& parameter); }; -/** Channel mode +m - */ -class ModeChannelModerated : public SimpleChannelModeHandler -{ - public: - ModeChannelModerated() : SimpleChannelModeHandler(NULL, "moderated", 'm') - { - } -}; - -/** Channel mode +n - */ -class ModeChannelNoExternal : public SimpleChannelModeHandler -{ - public: - ModeChannelNoExternal() : SimpleChannelModeHandler(NULL, "noextmsg", 'n') - { - } -}; - /** Channel mode +o */ class ModeChannelOp : public PrefixMode @@ -95,36 +65,6 @@ class ModeChannelOp : public PrefixMode ModeChannelOp(); }; -/** Channel mode +p - */ -class ModeChannelPrivate : public SimpleChannelModeHandler -{ - public: - ModeChannelPrivate() : SimpleChannelModeHandler(NULL, "private", 'p') - { - } -}; - -/** Channel mode +s - */ -class ModeChannelSecret : public SimpleChannelModeHandler -{ - public: - ModeChannelSecret() : SimpleChannelModeHandler(NULL, "secret", 's') - { - } -}; - -/** Channel mode +t - */ -class ModeChannelTopicOps : public SimpleChannelModeHandler -{ - public: - ModeChannelTopicOps() : SimpleChannelModeHandler(NULL, "topiclock", 't') - { - } -}; - /** Channel mode +v */ class ModeChannelVoice : public PrefixMode @@ -133,16 +73,6 @@ class ModeChannelVoice : public PrefixMode ModeChannelVoice(); }; -/** User mode +i - */ -class ModeUserInvisible : public SimpleUserModeHandler -{ - public: - ModeUserInvisible() : SimpleUserModeHandler(NULL, "invisible", 'i') - { - } -}; - /** User mode +s */ class ModeUserServerNoticeMask : public ModeHandler diff --git a/src/mode.cpp b/src/mode.cpp index 7deeb9b32..bd7adbd65 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -925,13 +925,13 @@ void PrefixMode::RemoveMode(Channel* chan, irc::modestacker& stack) struct builtin_modes { - ModeChannelSecret s; - ModeChannelPrivate p; - ModeChannelModerated m; - ModeChannelTopicOps t; + SimpleChannelModeHandler s; + SimpleChannelModeHandler p; + SimpleChannelModeHandler m; + SimpleChannelModeHandler t; - ModeChannelNoExternal n; - ModeChannelInviteOnly i; + SimpleChannelModeHandler n; + SimpleChannelModeHandler i; ModeChannelKey k; ModeChannelLimit l; @@ -939,10 +939,21 @@ struct builtin_modes ModeChannelOp o; ModeChannelVoice v; - ModeUserInvisible ui; + SimpleUserModeHandler ui; ModeUserOperator uo; ModeUserServerNoticeMask us; + builtin_modes() + : s(NULL, "secret", 's') + , p(NULL, "private", 'p') + , m(NULL, "moderated", 'm') + , t(NULL, "topiclock", 't') + , n(NULL, "noextmsg", 'n') + , i(NULL, "inviteonly", 'i') + , ui(NULL, "invisible", 'i') + { + } + void init() { ServiceProvider* modes[] = { &s, &p, &m, &t, &n, &i, &k, &l, &b, &o, &v, |