]> jfr.im git - irc/quakenet/newserv.git/blame - raw/raw.c
Merge pull request #1 from meeb/meeb
[irc/quakenet/newserv.git] / raw / raw.c
CommitLineData
440fddc7
P
1#include <stdio.h>
2#include <stdlib.h>
3#include <stdarg.h>
4#include <string.h>
5#include <strings.h>
6#include <time.h>
7
8#include "../control/control.h"
9#include "../nick/nick.h"
10#include "../lib/irc_string.h"
11#include "../lib/strlfunc.h"
12#include "../localuser/localuserchannel.h"
13#include "../lib/version.h"
14#include "../core/modules.h"
15
16MODULE_VERSION("");
17
18int controlraw(void *sender, int cargc, char **cargv);
19
20void _init() {
21 registercontrolhelpcmd("raw", NO_OPER, 2, &controlraw, "Usage: raw <type> <text>\ntype is one of client,server,raw\nUSE THIS COMMAND WITH CAUTION, YOU WILL MOST LIKELY CORRUPT NEWSERV STATE.");
22}
23
24void _fini() {
25 deregistercontrolcmd("raw", controlraw);
26}
27
28int controlraw(void *sender, int cargc, char **cargv) {
29 nick *np=(nick *)sender;
30 if (cargc<2)
31 return CMD_USAGE;
32
33 controlreply(sender, "Sending Raw.. %s", cargv[1]);
34 if (strcmp(cargv[0], "server") == 0) {
35 irc_send("%s %s",mynumeric->content,cargv[1]);
36 controlwall(NO_DEVELOPER, NL_OPERATIONS, "%s/%s sent SERVER RAW for %s", np->nick, np->authname, cargv[1]);
37 } else if (strcmp( cargv[0], "client") == 0) {
38 controlwall(NO_DEVELOPER, NL_OPERATIONS, "%s/%s sent CLIENT RAW for %s", np->nick, np->authname, cargv[1]);
39 irc_send("%s %s",longtonumeric(mynick->numeric,5),cargv[1]);
40 } else if (strcmp( cargv[0], "raw") == 0) {
41 controlwall(NO_DEVELOPER, NL_OPERATIONS, "%s/%s sent RAW for %s", np->nick, np->authname, cargv[1]);
42 irc_send("%s", cargv[1]);
43 } else {
44 controlreply(sender, "Invalid Mode - server or client");
45 return CMD_ERROR;
46 }
47
48 controlreply(sender, "RAW sent.");
49
50 return CMD_OK;
51}