00001 /* 00002 00003 00004 */ 00005 00006 #include "inspircd_config.h" 00007 #include "base.h" 00008 #include <time.h> 00009 #include <vector> 00010 00011 #ifndef __CHANNELS_H__ 00012 #define __CHANNELS_H__ 00013 00017 class HostItem : public classbase 00018 { 00019 public: 00020 time_t set_time; 00021 char set_by[NICKMAX]; 00022 char data[MAXBUF]; 00023 00024 HostItem() { /* stub */ } 00025 virtual ~HostItem() { /* stub */ } 00026 }; 00027 00028 // banlist is inherited from HostList mainly for readability 00029 // reasons only 00030 00033 class BanItem : public HostItem 00034 { 00035 }; 00036 00037 // same with this... 00038 00041 class ExemptItem : public HostItem 00042 { 00043 }; 00044 00045 // and this... 00046 00049 class InviteItem : public HostItem 00050 { 00051 }; 00052 00053 00056 typedef std::vector<BanItem> BanList; 00057 00060 typedef std::vector<ExemptItem> ExemptList; 00061 00064 typedef std::vector<InviteItem> InviteList; 00065 00070 class chanrec : public classbase 00071 { 00072 public: 00075 char name[CHANMAX]; /* channel name */ 00079 char custom_modes[MAXMODES]; /* modes handled by modules */ 00083 char topic[MAXBUF]; 00086 time_t created; 00090 time_t topicset; 00094 char setby[NICKMAX]; 00095 00099 long limit; 00100 00104 char key[32]; 00105 00108 short int topiclock; 00109 00112 short int noexternal; 00113 00116 short int inviteonly; 00117 00120 short int moderated; 00121 00125 short int secret; 00126 00130 short int c_private; 00131 00134 BanList bans; 00135 00138 void SetCustomMode(char mode,bool mode_on); 00139 00142 void SetCustomModeParam(char mode,char* parameter,bool mode_on); 00143 00146 chanrec(); 00147 00148 virtual ~chanrec() { /* stub */ } 00149 }; 00150 00151 /* used to hold a channel and a users modes on that channel, e.g. +v, +h, +o 00152 * needs to come AFTER struct chanrec */ 00153 00154 #define UCMODE_OP 1 00155 #define UCMODE_VOICE 2 00156 #define UCMODE_HOP 4 00157 #define UCMODE_PROTECT 8 00158 #define UCMODE_FOUNDER 16 00159 00165 class ucrec : public classbase 00166 { 00167 public: 00171 long uc_modes; 00172 00176 chanrec *channel; 00177 00178 ucrec() { /* stub */ } 00179 virtual ~ucrec() { /* stub */ } 00180 }; 00181 00182 #endif 00183