]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/builtinmodes.h
Pass an interface to the OnSync hooks
[user/henk/code/inspircd.git] / include / builtinmodes.h
index ba34a3da9d720e5f6e25c7b0e894525c368df6e4..ce73a78171c374cbf3c4f44ee72f2ff7deb63200 100644 (file)
@@ -86,13 +86,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 +124,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
@@ -146,14 +140,28 @@ class ModeUserInvisible : public SimpleUserModeHandler
        }
 };
 
-/** User mode +n
+/** User mode +s
  */
 class ModeUserServerNoticeMask : public ModeHandler
 {
+       /** Process a snomask modifier string, e.g. +abc-de
+        * @param user The target user
+        * @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 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);
 };