]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_info/core_info.h
Redo OnSetEndPoint logic to fix duplicate clones (#1549).
[user/henk/code/inspircd.git] / src / coremods / core_info / core_info.h
index f5dd9e6483a27116ec6ac98a66b0e1f8bd8dbb6c..5cc619a4afd803377bebb71ee5088cdefecf8475 100644 (file)
 
 #include "inspircd.h"
 
+/** These commands require no parameters, but if there is a parameter it is a server name where the command will be routed to.
+ */
+class ServerTargetCommand : public Command
+{
+ public:
+       ServerTargetCommand(Module* mod, const std::string& Name)
+               : Command(mod, Name)
+       {
+       }
+
+       RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE;
+};
+
 /** Handle /ADMIN.
  */
-class CommandAdmin : public Command
+class CommandAdmin : public ServerTargetCommand
 {
  public:
        /** Holds the admin's name, for output in
@@ -50,8 +63,7 @@ class CommandAdmin : 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);
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /COMMANDS.
@@ -68,12 +80,12 @@ class CommandCommands : 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);
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /INFO.
  */
-class CommandInfo : public Command
+class CommandInfo : public ServerTargetCommand
 {
  public:
        /** Constructor for info.
@@ -85,13 +97,12 @@ class CommandInfo : 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);
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /MODULES.
  */
-class CommandModules : public Command
+class CommandModules : public ServerTargetCommand
 {
  public:
        /** Constructor for modules.
@@ -103,15 +114,16 @@ class CommandModules : 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);
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /MOTD.
  */
-class CommandMotd : public Command
+class CommandMotd : public ServerTargetCommand
 {
  public:
+       ConfigFileCache motds;
+
        /** Constructor for motd.
         */
        CommandMotd(Module* parent);
@@ -121,13 +133,12 @@ class CommandMotd : 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);
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /TIME.
  */
-class CommandTime : public Command
+class CommandTime : public ServerTargetCommand
 {
  public:
        /** Constructor for time.
@@ -139,8 +150,7 @@ class CommandTime : 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);
-       RouteDescriptor GetRouting(User* user, const std::vector<std::string>& parameters);
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };
 
 /** Handle /VERSION.
@@ -157,5 +167,5 @@ class CommandVersion : 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);
+       CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE;
 };