]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/builtinmodes.h
m_spanningtree Use the value of StartBurst to determine whether a server is bursting...
[user/henk/code/inspircd.git] / include / builtinmodes.h
index 31b208d52bc3ed756a2e91c9ec0ac87ff846fd3e..e78e68b1124376cddc4397c3aaac21a1aacac9f7 100644 (file)
@@ -47,21 +47,24 @@ class ModeChannelInviteOnly : public SimpleChannelModeHandler
 
 /** Channel mode +k
  */
-class ModeChannelKey : public ModeHandler
+class ModeChannelKey : public ParamMode<ModeChannelKey, LocalStringExt>
 {
  public:
        ModeChannelKey();
        ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
+       void SerializeParam(Channel* chan, const std::string* key, std::string& out);
+       ModeAction OnSet(User* source, Channel* chan, std::string& param);
 };
 
 /** Channel mode +l
  */
-class ModeChannelLimit : public ParamChannelModeHandler
+class ModeChannelLimit : public ParamMode<ModeChannelLimit, LocalIntExt>
 {
  public:
        ModeChannelLimit();
-       bool ParamValidate(std::string& parameter);
        bool ResolveModeConflict(std::string &their_param, const std::string &our_param, Channel* channel);
+       void SerializeParam(Channel* chan, intptr_t n, std::string& out);
+       ModeAction OnSet(User* source, Channel* channel, std::string& parameter);
 };
 
 /** Channel mode +m
@@ -86,13 +89,10 @@ class ModeChannelNoExternal : public SimpleChannelModeHandler
 
 /** Channel mode +o
  */
-class ModeChannelOp : public ModeHandler
+class ModeChannelOp : public PrefixMode
 {
- private:
  public:
        ModeChannelOp();
-       ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
-       unsigned int GetPrefixRank();
 };
 
 /** Channel mode +p
@@ -127,13 +127,10 @@ class ModeChannelTopicOps : public SimpleChannelModeHandler
 
 /** Channel mode +v
  */
-class ModeChannelVoice : public ModeHandler
+class ModeChannelVoice : public PrefixMode
 {
- private:
  public:
        ModeChannelVoice();
-       ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
-       unsigned int GetPrefixRank();
 };
 
 /** User mode +i
@@ -150,32 +147,24 @@ class ModeUserInvisible : public SimpleUserModeHandler
  */
 class ModeUserServerNoticeMask : public ModeHandler
 {
-       /** Create a displayable mode string for this users snomasks
-        * @param user The user whose notice masks to format
-        * @return The notice mask character sequence
-        */
-       std::string FormatNoticeMasks(User* user);
-
        /** Process a snomask modifier string, e.g. +abc-de
         * @param user The target user
-        * @param sm A sequence of notice mask characters
+        * @param input A sequence of notice mask characters
         * @return The cleaned mode sequence which can be output,
         * e.g. in the above example if masks c and e are not
         * valid, this function will return +ab-d
         */
-       std::string ProcessNoticeMasks(User* user, const char *sm);
-
-       /** Changed a specific notice mask value
-        * @param user The target user
-        * @param sm The server notice mask to change
-        * @param value An on/off value for this mask
-        */
-       void SetNoticeMask(User* user, unsigned char sm, bool value);
+       std::string ProcessNoticeMasks(User* user, const std::string& input);
 
  public:
        ModeUserServerNoticeMask();
        ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
        void OnParameterMissing(User* user, User* dest, Channel* channel);
+
+       /** Create a displayable mode string of the snomasks set on a given user
+        * @param user The user whose notice masks to format
+        * @return The notice mask character sequence
+        */
        std::string GetUserParameter(User* user);
 };
 
@@ -187,13 +176,3 @@ class ModeUserOperator : public ModeHandler
        ModeUserOperator();
        ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string &parameter, bool adding);
 };
-
-/** User mode +w
- */
-class ModeUserWallops : public SimpleUserModeHandler
-{
- public:
-       ModeUserWallops() : SimpleUserModeHandler(NULL, "wallops", 'w')
-       {
-       }
-};