added cmd_op cmd_deop cmd_voice cmd_devoice cmd_opall cmd_deopall cmd_voiceall cmd_de...
[NeonServV5.git] / UserNode.h
1 #ifndef _UserNode_h
2 #define _UserNode_h
3 #include "main.h"
4
5 #define USERFLAG_ISBOT              0x0001
6 #define USERFLAG_ISAUTHED           0x0002
7 #define USERFLAG_ISIRCOP            0x0004
8 #define USERFLAG_ISTMPUSER          0x0008
9 #define USERFLAG_ISSERVER           0x0010
10 #define USERFLAG_FREETMPUSER        0x0020
11 #define USERFLAG_LOADED_SETTINGS    0x0040
12 #define USERFLAG_REPLY_PRIVMSG      0x0080
13 #define USERFLAG_GOD_MODE           0x0100
14
15 struct ChanUser;
16 struct language;
17
18 struct UserNode {
19     char nick[NICKLEN+1];
20     char ident[USERLEN+1];
21     char host[HOSTLEN+1];
22     char realname[REALLEN+1];
23     char auth[AUTHLEN+1];
24     unsigned int flags;
25     time_t created;
26     struct ChanUser *channel;
27     struct language *language;
28     
29     struct UserNode *next;
30 };
31
32 #define isNetworkService(USER) (USER->flags & (USERFLAG_ISBOT | USERFLAG_ISIRCOP))
33
34 void init_UserNode();
35 void free_UserNode();
36 int is_valid_nick(const char *nick);
37 struct UserNode* getUserByNick(const char *nick);
38 struct UserNode* getUserByMask(const char *mask);
39 struct UserNode* searchUserByNick(const char *nick);
40 struct UserNode* addUser(const char *nick);
41 struct UserNode* addUserMask(const char *mask);
42 struct UserNode* createTempUser(const char *mask);
43 int renameUser(struct UserNode* user, const char *new_nick);
44 void delUser(struct UserNode* user, int freeUser);
45 void clearTempUsers();
46
47 #endif