summaryrefslogtreecommitdiff
path: root/helpserv.c
diff options
context:
space:
mode:
Diffstat (limited to 'helpserv.c')
-rw-r--r--helpserv.c83
1 files changed, 83 insertions, 0 deletions
diff --git a/helpserv.c b/helpserv.c
new file mode 100644
index 000000000..d3f49ca5c
--- /dev/null
+++ b/helpserv.c
@@ -0,0 +1,83 @@
+/* HelpServ functions
+ *
+ * (C) 2003 Anope Team / GeniusDex
+ * Contact us at info@anope.org
+ *
+ * Please read COPYING and README for furhter details.
+ *
+ * Based on the original code of Epona by Lara.
+ * Based on the original code of Services by Andy Church.
+ *
+ * $Id: helpserv.c,v 1.2 2004/01/18 04:33:25 dane Exp $
+ *
+ */
+
+/*************************************************************************/
+#include "services.h"
+#include "pseudo.h"
+
+#define HELP_VERSION 1
+
+void helpserv_init(void);
+static int do_help(User * u);
+void moduleAddHelpServCmds(void);
+
+/*************************************************************************/
+void moduleAddHelpServCmds(void)
+{
+ Command *c;
+ c = createCommand("HELP", do_help, NULL, -1, -1, -1, -1, -1);
+ addCoreCommand(HELPSERV, c);
+}
+
+/*************************************************************************/
+
+/*************************************************************************/
+/* HelpServ initialization. */
+void helpserv_init(void)
+{
+ moduleAddHelpServCmds();
+}
+
+/*************************************************************************/
+/* Main HelpServ routine. */
+void helpserv(User * u, char *buf)
+{
+ char *cmd, *s;
+
+ cmd = strtok(buf, " ");
+
+ if (!cmd) {
+ return;
+ } else if (stricmp(cmd, "\1PING") == 0) {
+ if (!(s = strtok(NULL, "")))
+ s = "\1";
+ notice(s_HelpServ, u->nick, "\1PING %s", s);
+ } else {
+ mod_run_cmd(s_HelpServ, u, HELPSERV, cmd);
+ }
+}
+
+/*************************************************************************/
+/* Display the HelpServ help. */
+/* This core function has been embed in the source for a long time, but */
+/* it moved into it's own file so we now all can enjoy the joy of */
+/* modules for HelpServ. */
+
+static int do_help(User * u)
+{
+ char *cmd = strtok(NULL, "");
+
+ if (!cmd) {
+ notice_help(s_HelpServ, u, HELP_HELP, s_NickServ, s_ChanServ,
+ s_MemoServ);
+ if (s_BotServ)
+ notice_help(s_HelpServ, u, HELP_HELP_BOT, s_BotServ);
+ if (s_HostServ)
+ notice_help(s_HelpServ, u, HELP_HELP_HOST, s_HostServ);
+ moduleDisplayHelp(7, u);
+ } else {
+ mod_help_cmd(s_HelpServ, u, HELPSERV, cmd);
+ }
+ return MOD_CONT;
+}