added .gitignore
[NeonServV5.git] / ChanNode.h
1 #ifndef _ChanNode_h
2 #define _ChanNode_h
3 #include "main.h"
4
5 struct ChanUser;
6 struct trigger_cache;
7
8 #define CHANFLAG_RECEIVED_USERLIST  0x01
9
10 struct ChanNode {
11     char name[CHANNELLEN+1];
12     char topic[TOPICLEN+1];
13     struct ChanUser *user;
14     unsigned char flags;
15     unsigned int modes;
16     char **mode_str_args;
17     int *mode_int_args;
18     struct UserNode *chanbot;
19     
20     struct trigger_cache *trigger;
21         
22     struct ChanNode *next;
23 };
24
25 void init_ChanNode();
26 void free_ChanNode();
27 int is_valid_chan(const char *name);
28 struct ChanNode* getChanByName(const char *name);
29 struct ChanNode* addChannel(const char *chan);
30 void delChannel(struct ChanNode* chan, int freeChan);
31 void freeChanNode(struct ChanNode* chan);
32 void checkChannelVisibility(struct ChanNode* chan);
33 int isModeSet(struct ChanNode* chan, char modeChar);
34 void* getModeValue(struct ChanNode* chan, char modeChar);
35 void parseModes(struct ChanNode* chan, char *modeStr, char **argv, int argc);
36 void getModeString(struct ChanNode* chan, char *modesStr);
37
38 #endif