summaryrefslogtreecommitdiff
path: root/src/commands/cmd_rules.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/commands/cmd_rules.cpp')
-rw-r--r--src/commands/cmd_rules.cpp38
1 files changed, 23 insertions, 15 deletions
diff --git a/src/commands/cmd_rules.cpp b/src/commands/cmd_rules.cpp
index e01ca2a3e..78b3235fb 100644
--- a/src/commands/cmd_rules.cpp
+++ b/src/commands/cmd_rules.cpp
@@ -13,17 +13,6 @@
#include "inspircd.h"
-#ifndef __CMD_RULES_H__
-#define __CMD_RULES_H__
-
-// include the common header files
-
-#include <string>
-#include <vector>
-#include "inspircd.h"
-#include "users.h"
-#include "channels.h"
-
/** Handle /RULES. These command handlers can be reloaded by the core,
* and handle basic RFC1459 commands. Commands within modules work
* the same way, however, they can be fully unloaded, where these
@@ -42,14 +31,33 @@ class CommandRules : public 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)
+ {
+ if (parameters.size() > 0)
+ return ROUTE_UNICAST(parameters[0]);
+ return ROUTE_LOCALONLY;
+ }
};
-#endif
-
-
CmdResult CommandRules::Handle (const std::vector<std::string>& parameters, User *user)
{
- user->ShowRULES();
+ if (parameters.size() > 0 && parameters[0] != ServerInstance->Config->ServerName)
+ return CMD_SUCCESS;
+
+ if (!ServerInstance->Config->RULES.size())
+ {
+ user->SendText(":%s %03d %s :RULES file is missing.",
+ ServerInstance->Config->ServerName.c_str(), ERR_NORULES, user->nick.c_str());
+ return CMD_SUCCESS;
+ }
+ user->SendText(":%s %03d %s :%s server rules:", ServerInstance->Config->ServerName.c_str(),
+ RPL_RULESTART, user->nick.c_str(), ServerInstance->Config->ServerName.c_str());
+
+ for (file_cache::iterator i = ServerInstance->Config->RULES.begin(); i != ServerInstance->Config->RULES.end(); i++)
+ user->SendText(":%s %03d %s :- %s", ServerInstance->Config->ServerName.c_str(), RPL_RULES, user->nick.c_str(),i->c_str());
+
+ user->SendText(":%s %03d %s :End of RULES command.", ServerInstance->Config->ServerName.c_str(), RPL_RULESEND, user->nick.c_str());
+
return CMD_SUCCESS;
}