]>
Commit | Line | Data |
---|---|---|
2438b4f0 CP |
1 | #include <string.h> |
2 | ||
2a26f457 CP |
3 | #include "../nick/nick.h" |
4 | #include "../core/hooks.h" | |
240bbd21 | 5 | #include "../lib/version.h" |
2a26f457 CP |
6 | #include "usercount.h" |
7 | ||
240bbd21 CP |
8 | MODULE_VERSION("") |
9 | ||
2a26f457 CP |
10 | int servercount[MAXSERVERS]; |
11 | ||
12 | static void uc_newserver(int hook, void *arg); | |
13 | static void uc_newnick(int hook, void *arg); | |
14 | static void uc_lostnick(int hook, void *arg); | |
15 | ||
16 | void _init(void) { | |
2438b4f0 CP |
17 | nick *np; |
18 | int i; | |
19 | ||
20 | memset(servercount, 0, sizeof(servercount)); | |
21 | ||
22 | for(i=0;i<NICKHASHSIZE;i++) | |
23 | for(np=nicktable[i];np;np=np->next) | |
24 | servercount[homeserver(np->numeric)]++; | |
25 | ||
2a26f457 CP |
26 | registerhook(HOOK_SERVER_NEWSERVER, uc_newserver); |
27 | registerhook(HOOK_NICK_NEWNICK, uc_newnick); | |
28 | registerhook(HOOK_NICK_LOSTNICK, uc_lostnick); | |
29 | } | |
30 | ||
31 | void _fini(void) { | |
32 | deregisterhook(HOOK_SERVER_NEWSERVER, uc_newserver); | |
33 | deregisterhook(HOOK_NICK_NEWNICK, uc_newnick); | |
34 | deregisterhook(HOOK_NICK_LOSTNICK, uc_lostnick); | |
35 | } | |
36 | ||
37 | static void uc_newserver(int hook, void *arg) { | |
38 | long num = (long)arg; | |
39 | ||
40 | servercount[num] = 0; | |
41 | } | |
42 | ||
43 | static void uc_newnick(int hook, void *arg) { | |
44 | nick *np = (nick *)arg; | |
45 | ||
46 | if(np) | |
47 | servercount[homeserver(np->numeric)]++; | |
48 | } | |
49 | ||
50 | static void uc_lostnick(int hook, void *arg) { | |
51 | nick *np = (nick *)arg; | |
52 | ||
53 | if(np) | |
54 | servercount[homeserver(np->numeric)]--; | |
55 | } |