changed Makefile; build all commands as an own file
[NeonServV5.git] / ChanUser.h
index 71aba8c4705e0bce0a12524f4a9c1e40f636cb7c..076b7f79d76177472513ee58dd15439d382d75ae 100644 (file)
@@ -1,29 +1,35 @@
 #ifndef _ChanUser_h
 #define _ChanUser_h
+#include "main.h"
 
-#define CHANUSERFLAG_OPPED  0x01;
-#define CHANUSERFLAG_VOICED 0x02;
+#define CHANUSERFLAG_OPPED  0x01
+#define CHANUSERFLAG_VOICED 0x02
+#define CHANUSERFLAG_INVISIBLE 0x04
 
-
-#define CHANUSERFLAG_OPPED_OR_VOICED (CHANUSERFLAG_OPPED | CHANUSERFLAG_VOICED);
+#define CHANUSERFLAG_OPPED_OR_VOICED (CHANUSERFLAG_OPPED | CHANUSERFLAG_VOICED)
 
 struct ChanNode;
 struct UserNode;
 
 struct ChanUser {
-    char flags;
-    struct ChanNode *channel;
+    unsigned char flags;
+    struct ChanNode *chan;
     struct UserNode *user;
     
+    int chageEvents;
+    time_t changeTime;
+    
     struct ChanUser *next_user;
     struct ChanUser *next_chan;
 };
 
 struct ChanUser* addChanUser(struct ChanNode *chan, struct UserNode *user);
+struct ChanUser* addInvisibleChanUser(struct ChanNode *chan, struct UserNode *user);
 int isUserOnChan(struct UserNode *user, struct ChanNode *chan);
 struct ChanUser* getChanUser(struct UserNode *user, struct ChanNode *chan);
 struct ChanUser* getChannelUsers(struct ChanNode *chan, struct ChanUser *last);
 struct ChanUser* getUserChannels(struct UserNode *user, struct ChanUser *last);
 void delChanUser(struct ChanUser *chanuser, int freeChanUser);
+void removeChanUserFromLists(struct ChanUser *chanuser, int remove_from_userlist, int remove_from_channellist, int freeChanUser);
 
 #endif
\ No newline at end of file