#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 std::vector<std::string>& parameters);
+};
+
/** 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);
* @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);
};
/** Handle /COMMANDS.
/** Handle /INFO.
*/
-class CommandInfo : public Command
+class CommandInfo : public ServerTargetCommand
{
public:
/** Constructor for info.
* @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);
};
/** Handle /MODULES.
*/
-class CommandModules : public Command
+class CommandModules : public ServerTargetCommand
{
public:
/** Constructor for modules.
* @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);
};
/** Handle /MOTD.
*/
-class CommandMotd : public Command
+class CommandMotd : public ServerTargetCommand
{
public:
/** Constructor for motd.
* @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);
};
/** Handle /TIME.
*/
-class CommandTime : public Command
+class CommandTime : public ServerTargetCommand
{
public:
/** Constructor for time.
* @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);
};
/** Handle /VERSION.