]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/channels.h
Merge pull request #607 from SaberUK/master+match
[user/henk/code/inspircd.git] / include / channels.h
index 566eb5cfb54d392200bf0ee4e55b12f3dafe44f2..fbb38d5da9e4f53e0a9ae225dafb43f52cd46c11 100644 (file)
@@ -110,7 +110,6 @@ class CoreExport Channel : public Extensible, public InviteBase
         * @param value True if you want to set the mode or false if you want to remove it
         */
        void SetMode(ModeHandler* mode, bool value);
-       void SetMode(char mode,bool mode_on);
 
        /** Sets or unsets a custom mode in the channels info
         * @param mode The mode character to set or unset
@@ -118,15 +117,14 @@ class CoreExport Channel : public Extensible, public InviteBase
         * If it is empty, the mode is unset; if it is nonempty, the mode is set.
         */
        void SetModeParam(ModeHandler* mode, const std::string& parameter);
-       void SetModeParam(char mode, const std::string& parameter);
 
        /** Returns true if a mode is set on a channel
          * @param mode The mode character you wish to query
          * @return True if the custom mode is set, false if otherwise
          */
-       inline bool IsModeSet(char mode) { return modes[mode-'A']; }
        inline bool IsModeSet(ModeHandler* mode) { return modes[mode->GetModeChar()-'A']; }
-
+       bool IsModeSet(ModeHandler& mode) { return IsModeSet(&mode); }
+       bool IsModeSet(ChanModeReference& mode);
 
        /** Returns the parameter for a custom mode on a channel.
          * @param mode The mode character you wish to query
@@ -138,8 +136,8 @@ class CoreExport Channel : public Extensible, public InviteBase
          *
          * @return The parameter for this mode is returned, or an empty string
          */
-       std::string GetModeParameter(char mode);
        std::string GetModeParameter(ModeHandler* mode);
+       std::string GetModeParameter(ChanModeReference& mode);
 
        /** Sets the channel topic.
         * @param user The user setting the topic.
@@ -218,7 +216,7 @@ class CoreExport Channel : public Extensible, public InviteBase
         * @param user The user to join to the channel
         * @param privs Priviliges (prefix mode letters) to give to this user, may be NULL
         * @param bursting True if this join is the result of a netburst (passed to modules in the OnUserJoin hook)
-        * @param created True if this channel was just created by a local user (passed to modules in the OnUserJoin hook)
+        * @param created_by_local True if this channel was just created by a local user (passed to modules in the OnUserJoin hook)
         */
        void ForceJoin(User* user, const std::string* privs = NULL, bool bursting = false, bool created_by_local = false);
 
@@ -368,3 +366,17 @@ inline bool Channel::HasUser(User* user)
 {
        return (userlist.find(user) != userlist.end());
 }
+
+inline std::string Channel::GetModeParameter(ChanModeReference& mode)
+{
+       if (!mode)
+               return "";
+       return GetModeParameter(*mode);
+}
+
+inline bool Channel::IsModeSet(ChanModeReference& mode)
+{
+       if (!mode)
+               return false;
+       return IsModeSet(*mode);
+}