-
+ |
chanrec::chanrec |
( |
- |
- ) |
+ |
+ ) |
|
@@ -94,36 +112,36 @@ Definition at line 70 of
-Creates a channel record and initialises it with default values.
+Creates a channel record and initialises it with default values.
-Definition at line 6 of file channels.cpp.
+Definition at line 113 of file channels.cpp.
-References c_private, created, inviteonly, limit, moderated, noexternal, secret, topiclock, and topicset.
+References c_private, created, custom_modes, inviteonly, key, limit, moderated, name, noexternal, secret, setby, topic, topiclock, and topicset.
- |
-
-
+
+
-
+ |
Member Function Documentation
+
+
+
+
+
+
+ std::string chanrec::GetModeParameter |
+ ( |
+ char |
+ mode |
+ ) |
+ |
+
+
+
+ |
+
+
+
+
+
+
+ |
+
+
+
+Returns the parameter for a custom mode on a channel.
+
+For example if "+L #foo" is set, and you pass this method 'L', it will return '#foo'. If the mode is not set on the channel, or the mode has no parameters associated with it, it will return an empty string.
+
+Definition at line 186 of file channels.cpp.
+
+References custom_mode_params.
+
+ 00187 {
+00188 if (custom_mode_params.size())
+00189 {
+00190 for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
+00191 {
+00192 if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
+00193 {
+00194 return std::string(i->parameter);
+00195 }
+00196 }
+00197 }
+00198 return std::string("");
+00199 }
+ |
+
+
+
+
+
+
+
+
+ bool chanrec::IsCustomModeSet |
+ ( |
+ char |
+ mode |
+ ) |
+ |
+
+
+
+ |
+
+
+
+
+
+
+ |
+
+
+
+Returns true if a custom mode is set on a channel.
+
+
+
+Definition at line 180 of file channels.cpp.
+
+References DEBUG.
+
+ 00181 {
+00182 log(DEBUG,"Checking ISCustomModeSet: %c %s",mode,this->custom_modes);
+00183 return (strchr(this->custom_modes,mode) != 0);
+00184 }
+ |
+
+
-
+
-
+ |
void chanrec::SetCustomMode |
( |
char |
- mode, |
+ mode, |
|
|
bool |
- mode_on |
+ mode_on |
|
@@ -183,39 +292,61 @@ Definition at line 148 o
-Sets or unsets a custom mode in the channels info.
+Sets or unsets a custom mode in the channels info.
-Definition at line 17 of file channels.cpp.
+Definition at line 124 of file channels.cpp.
+
+References custom_modes, DEBUG, and SetCustomModeParam().
- 00018 {
-00019 }
+00125 {
+00126 if (mode_on) {
+00127 char m[3];
+00128 m[0] = mode;
+00129 m[1] = '\0';
+00130 if (!strchr(this->custom_modes,mode))
+00131 {
+00132 strlcat(custom_modes,m,MAXMODES);
+00133 }
+00134 log(DEBUG,"Custom mode %c set",mode);
+00135 }
+00136 else {
+00137
+00138 std::string a = this->custom_modes;
+00139 int pos = a.find(mode);
+00140 a.erase(pos,1);
+00141 strncpy(this->custom_modes,a.c_str(),MAXMODES);
+00142
+00143 log(DEBUG,"Custom mode %c removed: modelist='%s'",mode,this->custom_modes);
+00144 this->SetCustomModeParam(mode,"",false);
+00145 }
+00146 }
|
-
+
-
+ |
void chanrec::SetCustomModeParam |
( |
char |
- mode, |
+ mode, |
|
|
char * |
- parameter, |
+ parameter, |
|
|
bool |
- mode_on |
+ mode_on |
|
@@ -235,25 +366,56 @@ Definition at line 17
-Sets or unsets the parameterrs for a custom mode in a channels info.
+Sets or unsets the parameters for a custom mode in a channels info.
-Definition at line 21 of file channels.cpp.
+Definition at line 149 of file channels.cpp.
- 00022 {
-00023 }
+References ModeParameter::channel, custom_mode_params, DEBUG, ModeParameter::mode, and ModeParameter::parameter.
+
+Referenced by SetCustomMode().
+
+ 00150 {
+00151
+00152 log(DEBUG,"SetCustomModeParam called");
+00153 ModeParameter M;
+00154 M.mode = mode;
+00155 strlcpy(M.channel,this->name,CHANMAX);
+00156 strlcpy(M.parameter,parameter,MAXBUF);
+00157 if (mode_on)
+00158 {
+00159 log(DEBUG,"Custom mode parameter %c %s added",mode,parameter);
+00160 custom_mode_params.push_back(M);
+00161 }
+00162 else
+00163 {
+00164 if (custom_mode_params.size())
+00165 {
+00166 for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
+00167 {
+00168 if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
+00169 {
+00170 log(DEBUG,"Custom mode parameter %c %s removed",mode,parameter);
+00171 custom_mode_params.erase(i);
+00172 return;
+00173 }
+00174 }
+00175 }
+00176 log(DEBUG,"*** BUG *** Attempt to remove non-existent mode parameter!");
+00177 }
+00178 }
|
Member Data Documentation
-
-
+
+
-
+ |
|
@@ -266,20 +428,20 @@ Definition at line 21
-The list of all bans set on the channel.
+The list of all bans set on the channel.
-Definition at line 134 of file channels.h. |
+Definition at line 159 of file channels.h.
-
-
+
+
-
-
+
+
-
-
+
+
-
+ |
|
@@ -348,20 +510,22 @@ Referenced by chanrec()
-Custom modes for the channel.
+Custom modes for the channel.
Plugins may use this field in any way they see fit.
-Definition at line 79 of file channels.h.
+Definition at line 103 of file channels.h.
+
+Referenced by chanrec(), and SetCustomMode().
-
-
+
+
-
+ |
|
@@ -374,22 +538,22 @@ Definition at line 79 of
-Nonzero if the mode +i is set.
+Nonzero if the mode +i is set.
-Definition at line 116 of file channels.h.
+Definition at line 141 of file channels.h.
-Referenced by chanrec(). |
+Referenced by chanrec().
-
-
+
+
-
+ |
|
@@ -402,20 +566,22 @@ Referenced by chanrec()
-Contains the channel key.
+Contains the channel key.
If this value is an empty string, there is no channel key in place.
-Definition at line 104 of file channels.h.
+Definition at line 129 of file channels.h.
+
+Referenced by chanrec().
-
-
+
+
-
+ |
|
@@ -428,22 +594,22 @@ Definition at line 104 o
-Contains the channel user limit.
+Contains the channel user limit.
If this value is zero, there is no limit in place.
-Definition at line 99 of file channels.h.
+Definition at line 124 of file channels.h.
-Referenced by chanrec(). |
+Referenced by chanrec().
-
-
+
+
-
-
+
+
-
-
+
+
-
+ |
|
@@ -510,22 +678,22 @@ Definition at line 75 of
-Nonzero if the mode +n is set.
+Nonzero if the mode +n is set.
-Definition at line 112 of file channels.h.
+Definition at line 137 of file channels.h.
-Referenced by chanrec(). |
+Referenced by chanrec().
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+ |
|
@@ -618,22 +790,22 @@ Definition at line 83 of
-Nonzero if the mode +t is set.
+Nonzero if the mode +t is set.
-Definition at line 108 of file channels.h.
+Definition at line 133 of file channels.h.
-Referenced by chanrec(). |
+Referenced by chanrec().
-
-
+
+
The documentation for this class was generated from the following files:
- Generated on Fri Apr 2 13:37:35 2004 for InspIRCd by
+ Generated on Wed Apr 13 13:07:01 2005 for InspIRCd by
-1.3-rc3
+
+1.3.3
| | | |