added language system
[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
14 struct ChanUser;
15 struct language;
16
17 struct UserNode {
18     char nick[NICKLEN+1];
19     char ident[USERLEN+1];
20     char host[HOSTLEN+1];
21     char realname[REALLEN+1];
22     char auth[AUTHLEN+1];
23     unsigned int flags;
24     time_t created;
25     struct ChanUser *channel;
26     struct language *language;
27     
28     struct UserNode *next;
29 };
30
31 void init_UserNode();
32 void free_UserNode();
33 int is_valid_nick(const char *nick);
34 struct UserNode* getUserByNick(const char *nick);
35 struct UserNode* getUserByMask(const char *mask);
36 struct UserNode* searchUserByNick(const char *nick);
37 struct UserNode* addUser(const char *nick);
38 struct UserNode* addUserMask(const char *mask);
39 struct UserNode* createTempUser(const char *mask);
40 int renameUser(struct UserNode* user, const char *new_nick);
41 void delUser(struct UserNode* user, int freeUser);
42 void clearTempUsers();
43
44 void load_user_settings(struct UserNode* user);
45
46 #endif