00001 /* 00002 00003 00004 */ 00005 00006 #include "inspircd_config.h" 00007 #include "channels.h" 00008 #include "connection.h" 00009 00010 #include <string> 00011 00012 #ifndef __USERS_H__ 00013 #define __USERS_H__ 00014 00015 #define STATUS_OP 4 00016 #define STATUS_HOP 2 00017 #define STATUS_VOICE 1 00018 #define STATUS_NORMAL 0 00019 00020 #define CC_ALLOW 0 00021 #define CC_DENY 1 00022 00025 class Invited : public classbase 00026 { 00027 public: 00028 char channel[CHANMAX]; 00029 }; 00030 00031 00034 class ConnectClass : public classbase 00035 { 00036 public: 00039 int type; 00042 int registration_timeout; 00045 int flood; 00048 char host[MAXBUF]; 00051 char pass[MAXBUF]; 00052 00053 ConnectClass() 00054 { 00055 registration_timeout = 0; 00056 flood = 0; 00057 strcpy(host,""); 00058 strcpy(pass,""); 00059 } 00060 }; 00061 00064 typedef std::vector<Invited> InvitedList; 00065 00066 00067 00070 typedef std::vector<ConnectClass> ClassVector; 00071 00078 class userrec : public connection 00079 { 00080 private: 00081 00084 InvitedList invites; 00085 public: 00086 00091 char nick[NICKMAX]; 00092 00095 char ident[64]; 00096 00100 char dhost[256]; 00101 00104 char fullname[128]; 00105 00110 char modes[MAXBUF]; 00111 00112 ucrec chans[MAXCHANS]; 00113 00116 char server[256]; 00117 00121 char awaymsg[512]; 00122 00126 char result[256]; 00127 00132 int flood; 00133 00138 unsigned long timeout; 00139 00145 char oper[NICKMAX]; 00146 00147 userrec(); 00148 00149 virtual ~userrec() { } 00150 00155 virtual char* GetFullHost(); 00156 00162 virtual char* GetFullRealHost(); 00163 00166 virtual bool IsInvited(char* channel); 00167 00170 virtual void InviteTo(char* channel); 00171 00176 virtual void RemoveInvite(char* channel); 00177 00182 virtual bool HasPermission(char* command); 00183 00184 }; 00185 00186 00187 #endif