]> jfr.im git - irc/quakenet/newserv.git/blob - usercount/usercount.c
f032b0fcb58a865e6634fe7a26506df7bf3df6fb
[irc/quakenet/newserv.git] / usercount / usercount.c
1 #include "../nick/nick.h"
2 #include "../core/hooks.h"
3 #include "usercount.h"
4
5 int servercount[MAXSERVERS];
6
7 static void uc_newserver(int hook, void *arg);
8 static void uc_newnick(int hook, void *arg);
9 static void uc_lostnick(int hook, void *arg);
10
11 void _init(void) {
12 registerhook(HOOK_SERVER_NEWSERVER, uc_newserver);
13 registerhook(HOOK_NICK_NEWNICK, uc_newnick);
14 registerhook(HOOK_NICK_LOSTNICK, uc_lostnick);
15 }
16
17 void _fini(void) {
18 deregisterhook(HOOK_SERVER_NEWSERVER, uc_newserver);
19 deregisterhook(HOOK_NICK_NEWNICK, uc_newnick);
20 deregisterhook(HOOK_NICK_LOSTNICK, uc_lostnick);
21 }
22
23 static void uc_newserver(int hook, void *arg) {
24 long num = (long)arg;
25
26 servercount[num] = 0;
27 }
28
29 static void uc_newnick(int hook, void *arg) {
30 nick *np = (nick *)arg;
31
32 if(np)
33 servercount[homeserver(np->numeric)]++;
34 }
35
36 static void uc_lostnick(int hook, void *arg) {
37 nick *np = (nick *)arg;
38
39 if(np)
40 servercount[homeserver(np->numeric)]--;
41 }