]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_channel/core_channel.h
Alphabetically sort the modes in MAXLIST tokens.
[user/henk/code/inspircd.git] / src / coremods / core_channel / core_channel.h
index c500add07277331fe86a5ad67ffc503a2798a38b..59a41779055e1ade7df7d2546dcfab8995976b3b 100644 (file)
@@ -34,6 +34,22 @@ namespace Topic
 namespace Invite
 {
        class APIImpl;
+
+       /** Used to indicate who we announce invites to on a channel. */
+       enum AnnounceState
+       {
+               /** Don't send invite announcements. */
+               ANNOUNCE_NONE,
+
+               /** Send invite announcements to all users. */
+               ANNOUNCE_ALL,
+
+               /** Send invite announcements to channel operators and higher. */
+               ANNOUNCE_OPS,
+
+               /** Send invite announcements to channel half-operators (if available) and higher. */
+               ANNOUNCE_DYNAMIC
+       };
 }
 
 /** Handle /INVITE.
@@ -43,6 +59,8 @@ class CommandInvite : public Command
        Invite::APIImpl& invapi;
 
  public:
+       Invite::AnnounceState announceinvites;
+
        /** Constructor for invite.
         */
        CommandInvite(Module* parent, Invite::APIImpl& invapiimpl);
@@ -52,8 +70,8 @@ class CommandInvite : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /JOIN.
@@ -70,7 +88,7 @@ class CommandJoin : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /TOPIC.
@@ -91,7 +109,7 @@ class CommandTopic : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /NAMES.
@@ -112,7 +130,7 @@ class CommandNames : public SplitCommand
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user) CXX11_OVERRIDE;
+       CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE;
 
        /** Spool the NAMES list for a given channel to the given user
         * @param user User to spool the NAMES list to
@@ -136,8 +154,8 @@ class CommandKick : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User* user) CXX11_OVERRIDE;
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters) CXX11_OVERRIDE;
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Channel mode +b
@@ -155,8 +173,8 @@ class ModeChannelBan : public ListModeBase
  */
 class ModeChannelKey : public ParamMode<ModeChannelKey, LocalStringExt>
 {
-       static const std::string::size_type maxkeylen = 32;
  public:
+       static const std::string::size_type maxkeylen;
        ModeChannelKey(Module* Creator);
        ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string& parameter, bool adding) CXX11_OVERRIDE;
        void SerializeParam(Channel* chan, const std::string* key, std::string& out)    ;