]> 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 894616cf71f910f4cc77e4fb46c041baa1722240..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
+        * the /ADMIN command.
+        */
+       std::string AdminName;
+
+       /** Holds the email address of the admin,
+        * for output in the /ADMIN command.
+        */
+       std::string AdminEmail;
+
+       /** Holds the admin's nickname, for output
+        * in the /ADMIN command
+        */
+       std::string AdminNick;
+
        /** Constructor for admin.
         */
        CommandAdmin(Module* parent);
@@ -35,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.
@@ -53,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.
@@ -70,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.
@@ -88,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);
@@ -106,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.
@@ -124,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.
@@ -142,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;
 };