]>
jfr.im git - irc/quakenet/newserv.git/blob - miscreply/privs.c
4 #include "../irc/irc.h"
5 #include "../core/error.h"
9 /* handle remote privs request
11 * <source numeric> PRIVS/PR <target user numeric>
13 * cargv[0] = target user numeric
14 * in the client protocol it is a space separated list of one or more nicks
15 * but in P10 it is always one target user numeric
18 int handleprivsmsg(void *source
, int cargc
, char **cargv
) {
20 nick
*snick
; /* struct nick for source nick */
21 nick
*tnick
; /* struct nick for target nick */
22 char *sourcenum
= (char *)source
; /* source user numeric */
23 char *targetnum
; /* target user numeric */
24 char *privs
= "IDDQD IDKFA IDCLIP IDDT IDCHOPPERS"; /* privileges */
27 * cheat codes from DOOM I & II
30 * IDKFA - maximum ammo
31 * IDCLIP - walk through walls
32 * IDBEHOLD - toggle selected powerup
33 * IDDT - show entire map, show all monsters
34 * IDCHOPPERS - get chainsaw
38 /* check parameters */
40 miscreply_needmoreparams(sourcenum
, "PRIVS");
44 /* get the parameter */
47 /* find source user */
48 if (!(snick
= miscreply_finduser(sourcenum
, "PRIVS")))
51 /* find target user */
52 if (!(tnick
= getnickbynumericstr(targetnum
))) {
53 Error("miscreply", ERR_WARNING
,
54 "PRIVS request from %s [%s] for unknown numeric %s",
55 snick
->nick
, sourcenum
, targetnum
);
64 * 270 RPL_PRIVS "source 270 target nick :privs"
65 * "irc.netsplit.net 270 foobar barfoo :CHAN_LIMIT SHOW_INVIS SHOW_ALL_INVIS KILL"
67 irc_send("%s 270 %s %s :%s", getmynumeric(), sourcenum
, tnick
->nick
, privs
);