added cmd_kick, cmd_kickban & all the functions depending on
[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 #define CHANFLAG_REQUESTED_CHANINFO 0x02
10 #define CHANFLAG_CHAN_REGISTERED    0x04
11
12 struct ChanNode {
13     char name[CHANNELLEN+1];
14     char topic[TOPICLEN+1];
15     struct ChanUser *user;
16     unsigned int usercount;
17     unsigned char flags;
18     unsigned int modes;
19     char **mode_str_args;
20     int *mode_int_args;
21     struct UserNode *chanbot;
22     
23     struct trigger_cache *trigger;
24     int channel_id;
25         
26     struct ChanNode *next;
27 };
28
29 void init_ChanNode();
30 void free_ChanNode();
31 int is_valid_chan(const char *name);
32 struct ChanNode* getChanByName(const char *name);
33 struct ChanNode* addChannel(const char *chan);
34 void delChannel(struct ChanNode* chan, int freeChan);
35 void freeChanNode(struct ChanNode* chan);
36 void checkChannelVisibility(struct ChanNode* chan);
37 int isModeSet(struct ChanNode* chan, char modeChar);
38 void* getModeValue(struct ChanNode* chan, char modeChar);
39 void parseModes(struct ChanNode* chan, char *modeStr, char **argv, int argc);
40 void getModeString(struct ChanNode* chan, char *modesStr);
41
42 #endif