mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 11:09:04 -04:00
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@753 e03df62e-2008-0410-955e-edbf42e46eb7
315 lines
9.5 KiB
Groff
315 lines
9.5 KiB
Groff
.TH "chanrec" 3 "30 Apr 2004" "InspIRCd" \" -*- nroff -*-
|
|
.ad l
|
|
.nh
|
|
.SH NAME
|
|
chanrec \- Holds all relevent information for a channel.
|
|
|
|
.PP
|
|
.SH SYNOPSIS
|
|
.br
|
|
.PP
|
|
\fC#include <channels.h>\fP
|
|
.PP
|
|
Inherits \fBExtensible\fP.
|
|
.PP
|
|
.SS "Public Member Functions"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "void \fBSetCustomMode\fP (char mode, bool mode_on)"
|
|
.br
|
|
.RI "\fISets or unsets a custom mode in the channels info.\fP"
|
|
.ti -1c
|
|
.RI "void \fBSetCustomModeParam\fP (char mode, char *parameter, bool mode_on)"
|
|
.br
|
|
.RI "\fISets or unsets the parameters for a custom mode in a channels info.\fP"
|
|
.ti -1c
|
|
.RI "bool \fBIsCustomModeSet\fP (char mode)"
|
|
.br
|
|
.RI "\fIReturns true if a custom mode is set on a channel.\fP"
|
|
.ti -1c
|
|
.RI "std::string \fBGetModeParameter\fP (char mode)"
|
|
.br
|
|
.RI "\fIReturns the parameter for a custom mode on a channel.\fP"
|
|
.ti -1c
|
|
.RI "\fBchanrec\fP ()"
|
|
.br
|
|
.RI "\fICreates a channel record and initialises it with default values.\fP"
|
|
.ti -1c
|
|
.RI "virtual \fB~chanrec\fP ()"
|
|
.br
|
|
.in -1c
|
|
.SS "Public Attributes"
|
|
|
|
.in +1c
|
|
.ti -1c
|
|
.RI "char \fBname\fP [CHANMAX]"
|
|
.br
|
|
.RI "\fIThe channels name.\fP"
|
|
.ti -1c
|
|
.RI "char \fBcustom_modes\fP [MAXMODES]"
|
|
.br
|
|
.RI "\fICustom modes for the channel.\fP"
|
|
.ti -1c
|
|
.RI "char \fBtopic\fP [MAXBUF]"
|
|
.br
|
|
.RI "\fIChannel topic.\fP"
|
|
.ti -1c
|
|
.RI "time_t \fBcreated\fP"
|
|
.br
|
|
.RI "\fICreation time.\fP"
|
|
.ti -1c
|
|
.RI "time_t \fBtopicset\fP"
|
|
.br
|
|
.RI "\fITime topic was set.\fP"
|
|
.ti -1c
|
|
.RI "char \fBsetby\fP [NICKMAX]"
|
|
.br
|
|
.RI "\fIThe last user to set the topic.\fP"
|
|
.ti -1c
|
|
.RI "long \fBlimit\fP"
|
|
.br
|
|
.RI "\fIContains the channel user limit.\fP"
|
|
.ti -1c
|
|
.RI "char \fBkey\fP [32]"
|
|
.br
|
|
.RI "\fIContains the channel key.\fP"
|
|
.ti -1c
|
|
.RI "short int \fBtopiclock\fP"
|
|
.br
|
|
.RI "\fINonzero if the mode +t is set.\fP"
|
|
.ti -1c
|
|
.RI "short int \fBnoexternal\fP"
|
|
.br
|
|
.RI "\fINonzero if the mode +n is set.\fP"
|
|
.ti -1c
|
|
.RI "short int \fBinviteonly\fP"
|
|
.br
|
|
.RI "\fINonzero if the mode +i is set.\fP"
|
|
.ti -1c
|
|
.RI "short int \fBmoderated\fP"
|
|
.br
|
|
.RI "\fINonzero if the mode +m is set.\fP"
|
|
.ti -1c
|
|
.RI "short int \fBsecret\fP"
|
|
.br
|
|
.RI "\fINonzero if the mode +s is set.\fP"
|
|
.ti -1c
|
|
.RI "short int \fBc_private\fP"
|
|
.br
|
|
.RI "\fINonzero if the mode +p is set.\fP"
|
|
.ti -1c
|
|
.RI "\fBBanList\fP \fBbans\fP"
|
|
.br
|
|
.RI "\fIThe list of all bans set on the channel.\fP"
|
|
.in -1c
|
|
.SH "Detailed Description"
|
|
.PP
|
|
Holds all relevent information for a channel.
|
|
|
|
This class represents a channel, and contains its name, modes, time created, topic, topic set time, etc, and an instance of the BanList type.
|
|
.PP
|
|
Definition at line 83 of file channels.h.
|
|
.SH "Constructor & Destructor Documentation"
|
|
.PP
|
|
.SS "chanrec::chanrec ()"
|
|
.PP
|
|
Creates a channel record and initialises it with default values.Definition at line 12 of file channels.cpp.
|
|
.PP
|
|
References c_private, created, inviteonly, limit, moderated, noexternal, secret, topiclock, and topicset.
|
|
.PP
|
|
.nf
|
|
13 {
|
|
14 strcpy(name,'');
|
|
15 strcpy(custom_modes,'');
|
|
16 strcpy(topic,'');
|
|
17 strcpy(setby,'');
|
|
18 strcpy(key,'');
|
|
19 created = topicset = limit = 0;
|
|
20 topiclock = noexternal = inviteonly = moderated = secret = c_private = false;
|
|
21 }
|
|
.fi
|
|
.SS "virtual chanrec::~chanrec ()\fC [inline, virtual]\fP"
|
|
.PP
|
|
Definition at line 174 of file channels.h.
|
|
.PP
|
|
.nf
|
|
174 { /* stub */ }
|
|
.fi
|
|
.SH "Member Function Documentation"
|
|
.PP
|
|
.SS "std::string chanrec::GetModeParameter (char mode)"
|
|
.PP
|
|
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 87 of file channels.cpp.
|
|
.PP
|
|
References custom_mode_params.
|
|
.PP
|
|
.nf
|
|
88 {
|
|
89 if (custom_mode_params.size())
|
|
90 {
|
|
91 for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
|
|
92 {
|
|
93 if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
|
|
94 {
|
|
95 return std::string(i->parameter);
|
|
96 }
|
|
97 }
|
|
98 }
|
|
99 return std::string('');
|
|
100 }
|
|
.fi
|
|
.SS "bool chanrec::IsCustomModeSet (char mode)"
|
|
.PP
|
|
Returns true if a custom mode is set on a channel.Definition at line 81 of file channels.cpp.
|
|
.PP
|
|
.nf
|
|
82 {
|
|
83 log(DEBUG,'Checking ISCustomModeSet: %c %s',mode,this->custom_modes);
|
|
84 return (strchr(this->custom_modes,mode) != 0);
|
|
85 }
|
|
.fi
|
|
.SS "void chanrec::SetCustomMode (char mode, bool mode_on)"
|
|
.PP
|
|
Sets or unsets a custom mode in the channels info.Definition at line 23 of file channels.cpp.
|
|
.PP
|
|
References custom_modes, and SetCustomModeParam().
|
|
.PP
|
|
.nf
|
|
24 {
|
|
25 if (mode_on) {
|
|
26 char m[3];
|
|
27 m[0] = mode;
|
|
28 m[1] = '\0';
|
|
29 if (!strchr(this->custom_modes,mode))
|
|
30 {
|
|
31 strncat(custom_modes,m,MAXMODES);
|
|
32 }
|
|
33 log(DEBUG,'Custom mode %c set',mode);
|
|
34 }
|
|
35 else {
|
|
36 char temp[MAXBUF];
|
|
37 int count = 0;
|
|
38 for (int q = 0; q < strlen(custom_modes); q++) {
|
|
39 if (custom_modes[q] != mode) {
|
|
40 temp[count++] = mode;
|
|
41 }
|
|
42 }
|
|
43 temp[count] = '\0';
|
|
44 strncpy(custom_modes,temp,MAXMODES);
|
|
45 log(DEBUG,'Custom mode %c removed',mode);
|
|
46 this->SetCustomModeParam(mode,'',false);
|
|
47 }
|
|
48 }
|
|
.fi
|
|
.SS "void chanrec::SetCustomModeParam (char mode, char * parameter, bool mode_on)"
|
|
.PP
|
|
Sets or unsets the parameters for a custom mode in a channels info.Definition at line 50 of file channels.cpp.
|
|
.PP
|
|
References ModeParameter::channel, custom_mode_params, ModeParameter::mode, and ModeParameter::parameter.
|
|
.PP
|
|
Referenced by SetCustomMode().
|
|
.PP
|
|
.nf
|
|
51 {
|
|
52
|
|
53 log(DEBUG,'SetCustomModeParam called');
|
|
54 ModeParameter M;
|
|
55 M.mode = mode;
|
|
56 strcpy(M.channel,this->name);
|
|
57 strcpy(M.parameter,parameter);
|
|
58 if (mode_on)
|
|
59 {
|
|
60 log(DEBUG,'Custom mode parameter %c %s added',mode,parameter);
|
|
61 custom_mode_params.push_back(M);
|
|
62 }
|
|
63 else
|
|
64 {
|
|
65 if (custom_mode_params.size())
|
|
66 {
|
|
67 for (vector<ModeParameter>::iterator i = custom_mode_params.begin(); i < custom_mode_params.end(); i++)
|
|
68 {
|
|
69 if ((i->mode == mode) && (!strcasecmp(this->name,i->channel)))
|
|
70 {
|
|
71 log(DEBUG,'Custom mode parameter %c %s removed',mode,parameter);
|
|
72 custom_mode_params.erase(i);
|
|
73 return;
|
|
74 }
|
|
75 }
|
|
76 }
|
|
77 log(DEBUG,'*** BUG *** Attempt to remove non-existent mode parameter!');
|
|
78 }
|
|
79 }
|
|
.fi
|
|
.SH "Member Data Documentation"
|
|
.PP
|
|
.SS "\fBBanList\fP chanrec::bans"
|
|
.PP
|
|
The list of all bans set on the channel.Definition at line 148 of file channels.h.
|
|
.SS "short int chanrec::c_private"
|
|
.PP
|
|
Nonzero if the mode +p is set.This value cannot be set at the same time as \fBchanrec::secret\fPDefinition at line 144 of file channels.h.
|
|
.PP
|
|
Referenced by chanrec().
|
|
.SS "time_t chanrec::created"
|
|
.PP
|
|
Creation time.Definition at line 100 of file channels.h.
|
|
.PP
|
|
Referenced by chanrec().
|
|
.SS "char chanrec::custom_modes[MAXMODES]"
|
|
.PP
|
|
Custom modes for the channel.Plugins may use this field in any way they see fit.Definition at line 92 of file channels.h.
|
|
.PP
|
|
Referenced by SetCustomMode().
|
|
.SS "short int chanrec::inviteonly"
|
|
.PP
|
|
Nonzero if the mode +i is set.Definition at line 130 of file channels.h.
|
|
.PP
|
|
Referenced by chanrec().
|
|
.SS "char chanrec::key[32]"
|
|
.PP
|
|
Contains the channel key.If this value is an empty string, there is no channel key in place.Definition at line 118 of file channels.h.
|
|
.SS "long chanrec::limit"
|
|
.PP
|
|
Contains the channel user limit.If this value is zero, there is no limit in place.Definition at line 113 of file channels.h.
|
|
.PP
|
|
Referenced by chanrec().
|
|
.SS "short int chanrec::moderated"
|
|
.PP
|
|
Nonzero if the mode +m is set.Definition at line 134 of file channels.h.
|
|
.PP
|
|
Referenced by chanrec().
|
|
.SS "char chanrec::name[CHANMAX]"
|
|
.PP
|
|
The channels name.Definition at line 88 of file channels.h.
|
|
.SS "short int chanrec::noexternal"
|
|
.PP
|
|
Nonzero if the mode +n is set.Definition at line 126 of file channels.h.
|
|
.PP
|
|
Referenced by chanrec().
|
|
.SS "short int chanrec::secret"
|
|
.PP
|
|
Nonzero if the mode +s is set.This value cannot be set at the same time as \fBchanrec::c_private\fPDefinition at line 139 of file channels.h.
|
|
.PP
|
|
Referenced by chanrec().
|
|
.SS "char chanrec::setby[NICKMAX]"
|
|
.PP
|
|
The last user to set the topic.If this member is an empty string, no topic was ever set.Definition at line 108 of file channels.h.
|
|
.SS "char chanrec::topic[MAXBUF]"
|
|
.PP
|
|
Channel topic.If this is an empty string, no channel topic is set.Definition at line 97 of file channels.h.
|
|
.SS "short int chanrec::topiclock"
|
|
.PP
|
|
Nonzero if the mode +t is set.Definition at line 122 of file channels.h.
|
|
.PP
|
|
Referenced by chanrec().
|
|
.SS "time_t chanrec::topicset"
|
|
.PP
|
|
Time topic was set.If no topic was ever set, this will be equal to \fBchanrec::created\fPDefinition at line 104 of file channels.h.
|
|
.PP
|
|
Referenced by chanrec().
|
|
|
|
.SH "Author"
|
|
.PP
|
|
Generated automatically by Doxygen for InspIRCd from the source code.
|