#ifndef _ChanUser_h
#define _ChanUser_h
+#include "main.h"
#define CHANUSERFLAG_OPPED 0x01
#define CHANUSERFLAG_VOICED 0x02
-
+#define CHANUSERFLAG_INVISIBLE 0x04
#define CHANUSERFLAG_OPPED_OR_VOICED (CHANUSERFLAG_OPPED | CHANUSERFLAG_VOICED)
struct UserNode;
struct ChanUser {
- char flags;
+ 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);
+void removeChanUserFromLists(struct ChanUser *chanuser, int remove_from_userlist, int remove_from_channellist, int freeChanUser);
#endif
\ No newline at end of file