ChanServ.suspend duration
[srvx.git] / src / chanserv.help
1 "<INDEX>" ("$b$C Help$b",
2         "$b$C$b is a channel service bot, intended primarily to prevent and defend against channel takeovers. It also includes convenience features aimed at making it easier to maintain control over all aspects of your channel.",
3         "$b$C$b command categories:",
4         "  USER            User management.",
5         "  CHANNEL         Channel management.",
6         "  BAN MANAGEMENT  Ban management.",
7         "  INFORMATION     Informative commands.",
8         "  OPER            Helper/IRC Operator commands."
9 );
10 "USER" ("$bUser Management Commands:$b",
11         "  ACCESS      Check someone's access in a channel.",
12         "  MYACCESS    Show all channels where you have access.",
13         "  ADDCOOWNER  Give another person coowner status in a channel.",
14         "  ADDMASTER                       master status in a channel.",
15         "  ADDOP                           op status in a channel.",
16         "  ADDPEON                         peon status in a channel.",
17         "  GIVEOWNERSHIP    Give ownership to another user in the channel.",
18         "  CLVL        Change a person's access level in a channel.",
19         "  ADDUSER     Give another person access in a channel.",
20         "  DELUSER     Remove a person's access from a channel.",
21         "  DELETEME    Remove your own access from a channel.",
22         "  MDELCOOWNER Remove coowners with accounts matching a mask.",
23         "  MDELMASTER         masters with accounts matching a mask.",
24         "  MDELOP             ops with accounts matching a mask.",
25         "  MDELPEON           peons with accounts matching a mask.",
26         "  TRIM        Remove users inactive for a certain period.",
27         "  UP          Give you ops in a channel you have access to.",
28         "  DOWN        Remove your ops in a channel.",
29         "  UPALL       Give you ops in all channels you have access to.",
30         "  DOWNALL     Remove your ops in all channels.",
31         "  OP          Give ops to the specified user.",
32         "  DEOP        Remove ops from the specified user.",
33         "  VOICE       Give voice to the specified user.",
34         "  DEVOICE     Remove voice from the specified user.",
35         "  USET        Set channel user options.",
36         "  SUSPEND     Suspend a user's access to a channel.",
37         "  UNSUSPEND   Restore a user's access to a channel.",
38         "  WIPEINFO    Remove a lower-ranked user's infoline."
39 );
40 "BAN MANAGEMENT" ("$bBan Management Commands:$b",
41         "  KICK        Kick a user from a channel.",
42         "  BAN         Ban a user from a channel.",
43         "  KICKBAN     Kick and ban a user from a channel.",
44         "  BANS        List lasting bans in a channel.",
45         "  ADDBAN      Add a permanent ban for a user.",
46         "  ADDTIMEDBAN Add a ban that expires in the specified time.",
47         "  UNBAN       Remove the specified ban from the channel.",
48         "  DELBAN      Remove the specified permanent ban from memory.",
49         "  TRIM        Remove bans inactive for a certain period.",
50         "  UNBANME     Remove a ban matching your hostmask from specified channel.",
51         "  UNBANALL    Remove all bans from a channel."
52 );
53 "CHANNEL" ("$bChannel Management Commands:$b",
54         "  OPEN        Remove +ilk channel modes and any bans on you from a channel.",
55         "  USERS       List all users of a channel.",
56         "  CLIST                coowners of a channel.",
57         "  MLIST                masters of a channel.",
58         "  OLIST                ops of a channel.",
59         "  PLIST                peons of a channel.",
60         "  BANS        List all the bans for a channel.",
61         "  TOPIC       Set the current topic, or reset it to the default topic.",
62         "  MODE        Change a channel mode.",
63         "  INVITE      Invite new users to your channel.",
64         "  INFO        Show numerical information about the users in a channel.",
65         "  SET         Change various channel settings.",
66         "  EVENTS      View a list of events relevant to a channel.",
67         "  NOTE        Set a note on a channel.",
68         "  DELNOTE     Remove a note from a channel.",
69         "  RESYNC      Synchronize ops and voice with the channel userlist."
70 );
71 "INFORMATION" ("$bInformative Commands:$b",
72         "  VERSION     Check the current running version of $C.",
73         "  NETINFO     Check current network-wide information.",
74         "  STAFF       Get a list of all the current staff.",
75         "  IRCOPS                                    IRC operators.",
76         "  HELPERS                                   support helpers.",
77         "  PEEK        Reveal information on a channel's modes, topic and ops.",
78         "  SEEN        Find out the last time a user was in a channel.",
79         "  COMMAND     Display some information about a command."
80 );
81 "OPER" ("$bHelper/IRC Operator commands:$b",
82         "  SAY         Have $C say a message in a channel.",
83         "  EMOTE       Equivalent to $C doing a /me in a channel.",
84         "  GOD         Turn security override on/off.",
85         "  EXPIRE      Automatically unregister old channels.",
86         "  CSUSPEND    Remove $C from a channel (preserving user data).",
87         "  CUNSUSPEND  Restore $C to a channel that was suspended.",
88         "  UNVISITED   List all channels that have not been visited in specified duration.",
89         "  MERGE       Merges a source and target channels' registration, users, bans, and other data into the target channel.",
90         "  MOVE        Transition one channel's registration to a new channel name.",
91         "  OPCHAN      Force $C to op itself in a channel.",
92         "  REGISTER    Register a new channel with $C.",
93         "  NOREGISTER  Add a channel to the do-not-register list.",
94         "  ALLOWREGISTER Remove a channel from the do-not-register list.",
95         "  DNRSEARCH   Search the do-not-register list.",
96         "  UNREGISTER  Remove $C from a registered channel.",
97         "  SEARCH      Find registered channel matching criteria.",
98         "  ADDOWNER    Add a new owner to a channel.",
99         "  DELOWNER    Remove a current owner from a channel.",
100         "  MDELOWNER   Remove multiple owners by account mask from a channel.",
101         "  CREATENOTE  Create a new note type.",
102         "  REMOVENOTE  Remove an existing note type."
103 );
104 "MYACCESS" ("/msg $S MYACCESS [<nick|*account>]",
105         "Lists channels where you have access and infolines in each.",
106         "Network staff may specify a nickname or *account to view the list for another user.",
107         "Your access level in the channel may be followed by a comma and one of the following characters:",
108         "  s     Your access in the channel has been suspended.",
109         "  o     AutoOp is active.",
110         "  v     AutoVoice is active.",
111         "  i     AutoInvite is active.",
112         "$uSee Also:$u access, users");
113 "8BALL" ("/msg $S 8BALL <question>",
114         "Asks your question to a 'Magic 8 Ball'.  Your mileage may vary.  Results not guaranteed in all states or countries.  For entertainment purposes only.");
115 "ACCESS" ("/msg $S ACCESS <#channel> [<nick|*account>]",
116         "Reports various pieces of information about a channel user, including channel and network access level, and the user's info line. If no nick or account is provided, $S returns your own information.",
117         "$uSee Also:$u myaccess, users");
118 "ADDBAN" ("/msg $C ADDBAN <#channel> <mask|nick> [Reason]",
119         "Adds a ban to the channels permanent ban list, remaining in effect until removed with the DELBAN command. If it exactly matches an existing ban already in the list, the reason will be updated. If the existing ban was a timed ban, it will be extended into a permanent ban.",
120         "$uSee Also:$u bans, delban, mdelban");
121 "ADDUSER" ("/msg $C ADDUSER <#channel> <nick|*account> <level>",
122         "This command adds someone to the channel user list with the specified access level.  (You may only add users to levels less than your own.)",
123         "The level may be one of $bpeon$b, $bop$b, $bmaster$b, $bcoowner$b, $bowner$b, or a number between 1 and 500.  Only network staff may add level 500 users (owners).",
124         "$uSee Also:$u deluser, users");
125 "ADDTIMEDBAN" ("/msg $C ADDTIMEDBAN <#channel> <mask|nick> <Duration> [Reason]",
126         "Adds an automatically expiring ban to the channel ban list. This command behaves in the exact same fashion as ADDBAN with the exception that the bans are automatically removed after the user-supplied duration. If it exactly matches an existing ban already in the list, the reason will be updated. If the existing ban was a timed ban, it will be extended. Timed bans can be removed with the DELBAN command, as with permanent bans.",
127         "$uSee Also:$u addban, bans, delban, durations");
128 "ALLOWREGISTER" ("/msg $C ALLOWREGISTER <#channel|*Account>",
129         "Removes the named channel (or channel mask) from the do-not-register list.",
130         "$uSee Also:$u register, noregister, dnrsearch, unregister");
131 "BAN" ("/msg $C BAN <#channel> <mask|nick>",
132         "This command will temporarily add a ban for the user specified as the parameter. Masks are to be supplied in the format <Nick>!<Ident>@<Host> and usually contain wildcards. If a nick is specified, a mask is automatically generated (though not completely foolproof). This ban is removed either by removing it from the channel ban list using any irc client, or sending the UNBAN or UNBANALL commands. If you are banned with this method, the UNBANME command can be used.",
133         "$uFor assistance, please join #support$u",
134         "Example: *!*serv@*.gamesurge.net would ban anyone with ident 'serv' and a gamesurge.net hostname from joining the channel.",
135         "$uSee Also:$u unban, unbanall, unbanme");
136 "BANS" ("/msg $C BANS <#channel> [mask|nick]",
137         "This command lists all permanent and timed bans in the channel.",
138         "If a nickname is specified, lists any bans that visibly match that user.",
139         "If a hostmask with no wildcards is specified, lists any bans that match that hostmask.",
140         "If a hostmask with wildcards is specified, lists any bans included in that mask.",
141         "$uSee Also:$u addban, delban, mdelban");
142 "CLIST" ("/msg $C CLIST <#channel> [mask]",
143         "This command lists all users of level $bCoowner$b on a channel's userlist. If a mask is supplied, only coowners matching the mask will be shown.",
144         "$uSee Also:$u addcoowner, delcoowner, mdelcoowner, users");
145 "CLVL" ("/msg $C CLVL <#channel> <nick|*account> <level>",
146         "Modifies a channel user's access level. You cannot give users access greater than or equal to your own.",
147         "You may use *Account instead of Nick as the name argument; the * makes $C use the name of a account directly (useful if the user is not online).",
148         "$uSee Also:$u access, users, giveownership");
149 "CREATENOTE" ("/msg $S CREATENOTE <typename> <set-access> [access-arg] <view-access> <max-length>",
150         "Defines a new note type.  $btypename$b is the name of the note type.  $bset-access$b is one of:",
151         "  $bPRIVILEGED$b with required $baccess-arg$b being the minimum OpServ level to set",
152         "  $bCHANNEL   $b with required $baccess-arg$b being the channel access level to set",
153         "  $bSETTER    $b (with no access-arg) to allow anyone who can !set to set",
154         "$bview-access$b is one of $bPRIVILEGED$b, $bCHANNEL_USERS$b, or $bALL$b, that determines who can see the note (if it is set).",
155         "$bmax-length$b is the maximum length for this kind of note.",
156         "If the note type already exists, it is modified with the new values you specify.",
157         "$uSee Also:$u removenote");
158 "GIVEOWNERSHIP" ("/msg $C GIVEOWNERSHIP <#channel> <nick|*account>",
159         "Transfer ownership of the channel from you to another user on the channel's userlist.  You are demoted to co-owner, and he or she is promoted to owner.",
160         "You may use *Account instead of Nick as the name argument; the * makes $C use the name of a account directly (useful if the user is not online).",
161         "$uSee Also:$u clvl, access, users");
162 "CSUSPEND" ("/msg $C CSUSPEND <#channel> [!]<duration> <reason>",
163         "This command will temporarily remove $b$C$b from a channel and suspend its registration.",
164         "The duration may be \"0\" to make it never expire; otherwise, $C will automatically unsuspend the channel after $uduration$u.",
165         "If you wish to modify a currently existing suspension, add a ! before the duration.",
166         "$uSee Also:$u unregister, cunsuspend, durations");
167 "CUNSUSPEND" ("/msg $C CUNSUSPEND <#channel>",
168         "Restores a channel's $b$C$b registration.",
169         "$uSee Also:$u csuspend, unregister");
170 "D" ("/msg $S D <die>",
171         "Throws a (pseudo-random) die or several dice.  !d 6 will roll one six-sided die.  !d 5d4 will roll five four-sided dice and report the sum.");
172 "DELBAN" ("/msg $C DELBAN <#channel> <mask|nick>",
173         "Deletes a ban from the channel ban list. This command works for both permanent and timed bans alike.",
174         "$uSee Also:$u addban, addtimedban, bans");
175 "DELNOTE" ("/msg $C DELNOTE <#channel> <note-name>",
176         "Deletes a note from the channel.  To do this, you must be able to set the note.",
177         "$uSee Also:$u note, note types");
178 "DELUSER" ("/msg $C DELUSER <#channel> <nick|*account>",
179         "Deletes a user from the channel user list.",
180         "You may use *Account instead of Nick as the name argument; the * makes $C use the name of a account directly (useful if the user is not online).",
181         "$uSee Also:$u adduser, deleteme, users");
182 "DELETEME" ("/msg $C DELETEME <#channel> [<secret>]",
183         "If you have less than owner access in a channel, $bdeleteme$b removes your access from the channel.  $bIf you do this by mistake, you must find a higher-ranked user to re-add you.$b",
184         "The secret value changes for each channel and each user.  If you do not include the secret value, $C will tell you what it should be.",
185         "$uSee Also:$u adduser, deluser, giveownership, users");
186 "DEOP" ("/msg $C DEOP <#channel> <nick> [nick]...",
187         "Deops the specified user[s].",
188         "$uSee Also:$u down, op");
189 "DEVOICE" ("/msg $C DEVOICE <#channel> <nick> [nick]...",
190         "This command will make $C devoice the selected user[s].",
191         "$uSee Also:$u addpeon, delpeon, deop, voice");
192 "DNRSEARCH" ("/msg $C DNRSEARCH <action> <criteria> <value> [<criteria> <value> ...]",
193         "Searches through the current do-not-register list for those matching the specified criteria, and applies the specified action to them.  A list of actions can be found in $bhelp dnrsearch action$b and a list of criteria in $bhelp dnrsearch criteria$b.",
194         "$uSee Also:$u allowregister, dnrsearch action, dnrsearch criteria, noregister");
195 "DNRSEARCH ACTION" ("$bDNRSEARCH ACTION$b",
196         "Options for the action in $bdnrsearch$b are:",
197         "$bPRINT: $b      Display the do-not-register entry.",
198         "$bREMOVE:$b      Remove the do-not-register entry.",
199         "$bCOUNT: $b      Count the number of matching do-not-register entries.",
200         "$uSee Also:$u dnrsearch, dnrsearch criteria");
201 "DNRSEARCH CRITERIA" ("$bDNRSEARCH CRITERIA$b",
202         "Options for the criteria in $bdnrsearch$b are:",
203         "$bCHANNEL:$b     Channel name, channel mask, or \*account (note the backslash).",
204         "$bSETTER: $b     Staff member who issued the do-not-register.",
205         "$bREASON: $b     Mask for the do-not-register reason or note.",
206         "$bLIMIT:  $b     Maximum entries to operate upon (default 50).",
207         "$bSET:    $b     Age limit for entry (defaults to minimum age).",
208         "$bEXPIRES:$b     Expiration limit for entry (defaults to minimum time).",
209         "Note: If you use the $blimit$b criteria, the full count of matching do-not-register entries will be shown at the end of the $bdnrsearch$b output, but only the first $blimit$b entries will be affected by the action.",
210         "$uSee Also:$u dnrsearch, dnrsearch action");
211 "DOWN" ("/msg $C DOWN <#channel>",
212         "This command will devoice/deop you in the selected channel.",
213         "$uSee Also:$u downall, up, upall");
214 "DOWNALL" ("/msg $C DOWNALL",
215         "Executes the $bdown$b command for each channel you have access to.",
216         "$uSee Also:$u down, up, upall");
217 "DURATIONS" ("[<n>y][<n>M][<n>w][<n>d][<n>h][<n>m][<n>[s]]",
218         "There is a standard syntax for durations that let you easily specify longer periods of time.  A duration consists of one or more \"duration parts\", which are sequences of digits, separated by duration letters.",
219         "The valid duration letters are $by$b (for year, or 365 days), $bM$b (for month, or 31 days), $bw$b (for week, or 7 days), $bd$b (for day, or 24 hours), $bh$b (for hour, or 60 minutes), $bm$b (for minute, or 60 seconds), and $bs$b (for second).  We know not all years are 365 days and not all months are 31 days, but we pretend they are for parsing durations.",
220         "If the last duration part does not have any letter to indicate the units, seconds are assumed.",
221         "$uExamples$u: 1y1M is 365 days plus 31 days; 1y1m is 365 days plus 1 minute; 1h30m45 is ninety minutes and forty-five seconds; and so forth.");
222 "EMOTE" ("/msg $C EMOTE <#channel|nick|*account> <text>",
223         "Makes $b$C$b send a CTCP ACTION message to the specified channel/nick or all users on the account.",
224         "$uSee Also:$u say");
225 "EVENTS" ("/msg $C EVENTS <#channel> [limit [pattern]]",
226         "Allows channel coowners to view a list of events related to their channel. If a pattern is provided, only events with a matching description will be displayed.",
227         "$bNote:$b You must specify a limit if you want to use a pattern to match against.");
228 "EXPIRE" ("/msg $C EXPIRE",
229         "Expires any channels that have not been visited within the configured duration. Channel registrations are automatically expired, so you only need to use this command if the duration has been changed.",
230         "$uSee Also:$u unvisited");
231 "HELPERS" ("/msg $C HELPERS",
232         "Lists all the helpers currently online. Nicknames enclosed in parentheses are away, and likely unavailable.",
233         "$uSee Also:$u staff");
234 "HUGGLE" ("/msg $S HUGGLE",
235         "Asks $S to give you a huggle.");
236 "INFO" ("/msg $C INFO <#channel>",
237         "This command responds with various pieces of information about a channel's users, status, and registration.");
238 "INVITE" ("/msg $C INVITE <#channel> [nick [reason]]",
239         "Invites a user into the channel, sending them a reason if one is provided. However, unless you have at least $bmaster$b access, you can only invite yourself with this command. If no nick is provided, the user issuing the command will be invited.");
240 "INVITEME" ("/msg $S INVITEME <#channel>",
241         "Invites you into the channel.");
242 "IRCOPS" ("/msg $C IRCOPS",
243         "Lists all the IRC operators currently online. Nicknames enclosed in parentheses are away, and likely unavailable.",
244         "$uSee Also:$u staff");
245 "KICK" ("/msg $C KICK <#channel> <mask|nick> [reason]",
246         "Kicks the users matching the given nick or mask with the specified reason. If no reason is provided, a default will be used.",
247         "$uSee Also:$u kickban");
248 "KICKBAN" ("/msg $C KICKBAN <#channel> <mask|nick> [reason]",
249         "Kicks and bans with the specified reason any users with a matching nick or hostmask. If no reason is provided, a default one will be used.",
250         "$uSee Also:$u addban, kick");
251 "MDELCOOWNER" ("/msg $C MDELCOOWNER <#channel> <pattern>",
252         "Deletes all coowners with accounts matching the given pattern from the channel user list.",
253         "$uSee Also:$u clist, delcoowner");
254 "MDELMASTER" ("/msg $C MDELMASTER <#channel> <pattern>",
255         "Deletes all masters with accounts matching the given pattern from the channel user list.",
256         "$uSee Also:$u mdelban, mdelcoowner, mdelop, mdelowner, mdelpeon");
257 "MDELOP" ("/msg $C MDELOP <#channel> <pattern>",
258         "Deletes all ops with accounts matching the given pattern from the channel user list.");
259 "MDELOWNER" ("/msg $C MDELOWNER <#channel> <pattern>",
260         "Deletes all owners with accounts matching the given pattern from the channel user list.",
261         "$uSee Also:$u addowner, mdelcoowner, mdelmaster, mdelop, mdelpeon");
262 "MDELPEON" ("/msg $C MDELPEON <#channel> <pattern>",
263         "Deletes all peons with accounts matching the given pattern from the channel user list.",
264         "$uSee Also:$u addpeon, mdelcoowner, mdelmaster, mdelop");
265 "MERGE" ("/msg $C MERGE <#channel> <destination>",
266         "Merges the source channel's registration, users, bans, and other data into the target channel. Users with access to both the source and target channels will retain the higher access level; if the access levels are the same, the more recent seen time is kept. Bans are also merged, with bans expiring later taking precedence.",
267         "$uSee Also:$u register, move, unregister");
268 "MLIST" ("/msg $C MLIST <#channel> [mask]",
269         "This command lists all users of level $bMaster$b on a channel's userlist. If a mask is supplied, only masters matching the mask will be shown.",
270         "$uSee Also:$u addmaster, delmaster, mdelmaster, users");
271 "MODE" ("/msg $C MODE <#channel>",
272         "Resets the modes in the channel to their default.",
273         "$uSee Also:$u open, set");
274 "MOVE" ("/msg $C MOVE <#channel> <destination>",
275         "Transfers a channel's registration to a different channel along with the settings and user/ban lists. All the restrictions that apply for the $bregister$b command apply to $bmove$b.",
276         "$uSee Also:$u register, merge, unregister");
277 "NETINFO" ("/msg $C NETINFO",
278         "Displays some assorted pieces of information about network-wide $b$C$b statistics.",
279         "$uSee Also:$u info, staff");
280 "NOREGISTER" ("/msg $C NOREGISTER <#channel|*Account> <duration> <reason>",
281         "With no arguments, lists the current do-not-register channels.",
282         "With arguments, adds a do-not-register channel (or account) with the specified reason.  In this case, the channel name may include * or ? wildcards.",
283         "The duration may be \"0\" to make it never expire; otherwise, the do-not-register entry will be automatically removed after $uduration$u.",
284         "$uSee Also:$u allowregister, dnrsearch, register, unregister");
285 "NOTE" ("/msg $C NOTE <#channel> [<type> [new-note-text]]",
286         "With no arguments, lists all visible notes on the specified channel.",
287         "With one argument, lists the note type you name (if it is visible to you).",
288         "With two arguments, sets the note type (if you can set it).",
289         "$uSee Also:$u delnote, note types");
290 "NOTE TYPES" ("$bNOTE TYPES$b",
291         "${notes}",
292         "$uSee Also:$u note, delnote");
293 "OLIST" ("/msg $C OLIST <#channel> [mask]",
294         "This command lists all users of level $bOp$b on a channel's userlist.  If a mask is supplied, only ops matching the mask will be shown.",
295         "$uSee Also:$u addop, delop, mdelop, users");
296 "OP" ("/msg $C OP <#channel> <nick> [nick]...",
297         "This command makes $C op the specified user.",
298         "$uSee Also:$u addop, delop, deop");
299 "OPCHAN" ("/msg $C OPCHAN <#channel>",
300         "This command makes $C op itself in the specified channel.");
301 "OPEN" ("/msg $C OPEN <#channel>",
302         "This command will make $C remove all modes preventing a user from the specified channel, and remove all bans matching the users hostmask.",
303         "$uSee Also:$u unbanme");
304 "PEEK" ("/msg $C PEEK <#channel>",
305         "Displays the current topic, modes, and ops of the specified channel. Unlike $binfo$b, $bpeek$b displays channel information unrelated to $b$C$b.",
306         "$uSee Also:$u info");
307 "PING" ("/msg $S PING",
308         "Asks $S to send a pong back to you.  Can be used to check for lag in the IRC network, but is more commonly used just for fun.");
309 "PLIST" ("/msg $C PLIST <#channel>",
310         "This command lists all users of level $bPeon$b on a channel's userlist. If a mask is supplied, only peons matching the mask will be shown.",
311         "$uSee Also:$u addpeon, delpeon, mdelpeon, users");
312 "REGISTER" ("/msg $C REGISTER <#channel> [user|*account] [force]",
313         "Registers a channel with $b$C$b, automatically granting owner access to the specified user. If no user is provided, $b$C$b gives owner access to the user executing the command.",
314         "If the registrar is on the network staff and provides the third argument, $bforce$b, it will allow a do-not-register channel to be registered anyway.",
315         "In addition, $bregister$b will only allow one user to own a certain number of channels without the $bforce$b argument.",
316         "$uSee Also:$u addowner, noregister, unregister");
317 "REMOVENOTE" ("/msg $S REMOVENOTE <typename> [FORCE]",
318         "Permanently deletes a note type.  Without the argument $bFORCE$b, it will only delete an unused note type.  With the argument $bFORCE$b, it will delete the note from all channels and then delete the note type.",
319         "$uSee Also:$u createnote");
320 "RESYNC" ("/msg $S RESYNC <#channel>",
321         "Synchronizes users in the channel with the userlist.  This means that if the user can normally get ops, $S makes sure the user has ops.  Otherwise, if the user normally gets voice, $S makes sure the user has voice but not ops.  Otherwise, $S makes sure the user has neither voice nor ops.");
322 "SAY" ("/msg $C SAY <#channel|nick|*account> <text>",
323         "Makes $b$C$b send a message to the specified channel/nick or all users on the account.",
324         "$uSee Also:$u emote");
325 "SEARCH CRITERIA" ("$bSEARCH CRITERIA$b",
326         "The following criteria may be used:",
327         "  NAME        Channels whose names match the given mask",
328         "  REGISTRAR   Channels whose registrar's account matches the given mask",
329         "  UNVISITED   Channels that have not been visited in at least the given duration",
330         "  REGISTERED  Channels that have been registered for less than the given duration",
331         "  FLAGS       Matches channels with the specified flag set",
332         "  LIMIT       Limit the number of channels returned by the search",
333         "Flags that can be matched against are: nodelete, suspended and unreviewed.",
334         "$uSee Also:$u search, search actions");
335 "SEARCH ACTIONS" ("$bSEARCH ACTIONS$b",
336         "The following are valid $bsearch$b actions:",
337         "  PRINT       Prints matching channels",
338         "  COUNT       Prints the number of matching channels",
339         "$uSee Also:$u search, search criteria");
340 "SEARCH" ("/msg $C SEARCH <action> <criteria> <value> [<criteria> <value>]...",
341         "Searches for channels which match the specified criteria. For a list of search actions, see $bsearch actions$b. For a list of the criteria, see $bsearch criteria$b.",
342         "$uSee Also:$u search actions, search criteria");
343 "SEEN" ("/msg $C SEEN <#channel> <account>",
344         "This command will tell you if the selected user is in the channel, or when was the last time the user was seen in the channel.",
345         "$uSee Also:$u access, users");
346 "SET" ("/msg $C SET <#channel> [<parameter> [setting]]",
347         "This command will set various channel options.  With no arguments, it will show the current values of all channel options.",
348         "DEFAULTTOPIC: The channel's default topic.",
349         "TOPICMASK:    A pattern that topics must match.",
350         "GREETING:     A greeting message for visitors to the channel.",
351         "USERGREETING: A greeting message for users on the channel's userlist.",
352         "MODES:        The channel's default modes.",
353         "PUBCMD:       Restrictions to use commands in public.",
354         "INVITEME:     Minimum level for users to use INVITEME or AUTOINVITE.",
355         "USERINFO:     Minimum level for users to show an infoline on join.",
356         "GIVEVOICE:    The users that $b$C$b will autovoice.",
357         "GIVEOPS:      The users that $b$C$b will autoop.",
358         "ENFOPS:       Restrictions for opping users.",
359         "ENFMODES:     Restrictions to change the default modes.",
360         "ENFTOPIC:     Restrictions on changing the topic.",
361         "TOPICSNARF:   Topics set manually (by /TOPIC #channel ...) by users this level and above change the default $b$C$b topic.",
362         "SETTERS:      Who may change channel settings (using $bSET$b).",
363         "CTCPUSERS:    Who is allowed to send CTCPs to the channel.",
364         "CTCPREACTION: What happens when a disallowed CTCP is sent to the channel.",
365         "PROTECT:      The protection level $b$C$b provides.",
366         "TOYS:         Toggles how $b$C$b will respond to toy commands (!8ball etc).",
367         "TOPICREFRESH: Controls if (and how often) $b$C$b will reset the topic.",
368         "DYNLIMIT:     Adjusts user limit (+l channel mode) to prevent join floods.",
369         "$bIRCOP ONLY$b:",
370         "NODELETE:     Prevents channel deletion.",
371         "UNREVIEWED:   Indicates channels that have not been manually reviewed.",
372         "If you wish to reset your channel to the default settings, you can use the $bSET DEFAULTS$b command.",
373         "$uSee Also:$u set pubcmd, set giveops, set enfops, set enfmodes, set enftopic, set protect, set toys, set setters, set topicrefresh, set ctcpusers, set ctcpreaction, set defaults");
374 "SET DEFAULTTOPIC" ("/msg $C SET <#channel> DEFAULTTOPIC <New default topic>",
375         "This changes the default topic for the channel.  $C will set the IRC topic to this value when the $btopic$b command is used with no arguments, when the topic refresh happens (if you have $bset topicrefresh$b), or when an unauthorized user changes the topic to something else.",
376         "$uSee Also:$u set, set topicrefresh, set enftopic, set topicmask");
377 "SET TOPICMASK" ("/msg $C SET <#channel> TOPICMASK <Topic mask with * and ?>",
378         "This sets a pattern that $C allows for the topic.  A $b*$b will match any number of characters (including 0); a $b?$b will match any single character -- the same as with IRC hostmasks.  A user may set a topic if either $btopicmask$b or $benftopic$b allow it.",
379         "For example, $b!set topicmask Hello *$b allows anyone to set the topic to be $bHello world$b, but they must be able to override the topic (according to the $bEnfTopic$b setting) to set the topic to $bGoodbye world$b.",
380         "You may \"escape\" those characters by putting a \\ before them in the topic mask; for example, $b!set topicmask Whassup\\?$b would only allow the topic to be $bWhassup?$b, while leaving out the \\ would allow the topic to be $bWhassup!$b (among other things).",
381         "For ease of use, if the TopicMask has only one * and no ?, then using $b!topic something$b will (if $bsomething$b does not match the TopicMask and you cannot override the topic lock) replace the * with the text $bsomething$b.  If there is more than one * or any ? at all, $b!topic something$b will not work like that.",
382         "$uSee Also:$u set, set topic, set enftopic");
383 "SET TOYS" ("/msg $C SET <#channel> TOYS <value>",
384         "This setting changes how $C will respond to commands like !8ball, or whether it responds at all.  Valid settings are:",
385         "$b0$b  Toys are completely disabled.",
386         "$b1$b  Toys will only reply privately.",
387         "$b2$b  Toys will reply publicly.",
388         "$uSee Also:$u set");
389 "SET PUBCMD" ("/msg $C SET <#channel> PUBCMD <value>",
390         "This setting restricts the access necessary to use in-channel commands.  It is a numeric user level, or 501 to mean no one may use public commands.",
391         "$uSee Also:$u set");
392 "SET ENFOPS" ("/msg $C SET <#channel> ENFOPS <value>",
393         "This setting restricts who may op users who are not at least ops on the userlist.  If $C sees someone with access below the specified access op someone not on the userlist (or who is a peon), it will deop the second user.  It is a numeric user level, or 501 to mean no one may op unrecognized users.",
394         "$uSee Also:$u set");
395 "SET GIVEOPS" ("/msg $C SET <#channel> GIVEOPS <value>",
396         "This setting restricts the minimum access someone must be to be automatically op'ed by $C.  It is a numeric user level.",
397         "$uSee Also:$u set");
398 "SET ENFMODES" ("/msg $C SET <#channel> ENFMODES <value>",
399         "This setting restricts the minimum access someone must have to change the channel modes from what is specified in the channel settings.  It is a numeric user level, or 501 to mean no one may override the default modes.",
400         "$uSee Also:$u set");
401 "SET ENFTOPIC" ("/msg $C SET <#channel> ENFTOPIC <value>",
402         "This setting restricts the minimum access someone must have to change the channel topic.  It is a numeric user level, or 501 to mean no one may override the default topic.",
403         "If a topic mask is set, then a person may change the topic as long as it matches that mask $bor$b they have the above access.",
404         "If no topic mask is set, then a person must have the above access to change the topic from the default.",
405         "$uSee Also:$u set, set topic, set topicmask");
406 "SET PROTECT" ("/msg $C SET <#channel> PROTECT <value>",
407         "This setting restricts the protection that $C enforces.  Valid settings are:",
408         "$b0$b  Non-users and users will be protected from those of equal or lower access",
409         "$b1$b  Users will be protected from those of equal or lower access.",
410         "$b2$b  Users will be protected from those of lower access.",
411         "$b3$b  No users will be protected.",
412         "$uSee Also:$u set");
413 "SET SETTERS" ("/msg $C SET <#channel> SETTERS <value>",
414         "Users with at least this user level can use the $bset$b command for $C.",
415         "$uSee Also:$u set");
416 "SET TOPICREFRESH" ("/msg $C SET <#channel> TOPICREFRESH <value>",
417         "This setting controls if (and how often) $C refreshes the topic to the default value.  Valid settings are:",
418         "$b0$b  Never refresh topic.",
419         "$b1$b  Refresh every 3 hours.",
420         "$b2$b  Refresh every 6 hours.",
421         "$b3$b  Refresh every 12 hours.",
422         "$b4$b  Refresh every 24 hours.",
423         "$uSee Also:$u set, set topic");
424 "SET CTCPUSERS" ("/msg $C SET <#channel> CTCPUSERS <value>",
425         "This setting controls who is allowed to send CTCPs to the channel.  CTCP ACTION, the way that /me is implemented, are always allowed.  For any other CTCP, the user must have this access level.  501 indicates no users may use CTCPs in the channel.",
426         "If a user below the specified level sends a CTCP (besides ACTION) to the channel, the enforcement is specified by the $bCTCPReaction$b setting.",
427         "$uSee Also:$u set, set ctcpreaction");
428 "SET CTCPREACTION" ("/msg $C SET <#channel> CTCPREACTION <value>",
429         "This setting controls what happens to those who send disallowed CTCPs to the channel:",
430         "$b0$b  Kick on disallowed CTCPs.",
431         "$b1$b  Kickban on disallowed CTCPs.",
432         "$b2$b  Short timed ban (defaults to 3 minutes) on disallowed CTCPs.",
433         "$b3$b  Long timed ban (defaults to 1 hour) on disallowed CTCPs.",
434         "$uSee Also:$u set, set ctcpusers");
435 "SET DEFAULTS" ("/msg $C SET <#channel> DEFAULTS [<confirmation>]",
436         "With the proper confirmation string, resets all the options for the channel to their default values.",
437         "With no confirmation string, displays the appropriate confirmation string.",
438         "$uSee Also:$u set");
439 "STAFF" ("/msg $C STAFF",
440         "Lists all the IRC operators and helpers currently online. Nicknames enclosed in parentheses are away, and likely unavailable.",
441         "$uSee Also:$u helpers, ircops, netinfo");
442 "SUSPEND" ("/msg $C SUSPEND <#channel> <nick|*account> <duration>",
443         "This disables the target's access to the channel.  That access can be restored using the unsuspend command.",
444         "The duration may be \"0\" to make it never expire; otherwise, $C will automatically unsuspend the user after $uduration$u.",
445         "$uSee Also:$u unsuspend, deluser");
446 "TOPIC" ("/msg $C TOPIC <#channel> [topic]",
447         "Sets the current topic for the specified channel.  If no topic is specified, then set the current topic to the default topic.");
448 "TRIM" ("/msg $C TRIM <#channel> <target> <duration> [vacation]",
449         "The trim command removes target objects inactive for more than a certain duration from a channel. The target must be a channel access level, a range of access levels (for example, \"300-399\"), \"users\" or \"bans\". The duration argument specifies the amount of time the target has been inactive for to be removed.",
450         "If the vacation argument is given for the users target, users who are on vacation will be trimmed.  By default they are skipped.",
451         "$uSee Also:$u durations");
452 "UNBAN" ("/msg $C UNBAN <#channel> <mask|nick>",
453         "Unbans the specified nick or hostmask. If a nick is given, $b$C$b determines what hostmask(s) to unban.",
454         "$uSee Also:$u ban, kick, kickban");
455 "UNBANALL" ("/msg $C UNBANALL <#channel>",
456         "Clears the specified channel's banlist. If the channel is omitted, then $bunbanall$b will be done in the channel where the command was given.",
457         "$uSee Also:$u ban, unban, unbanme");
458 "UNBANME" ("/msg $C UNBANME <#channel>",
459         "Unbans your hostmask from the specified channel.",
460         "$uSee Also:$u ban, unban");
461 "UNF" ("/msg $S UNF",
462         "[This help message has been removed by the Coalition For A Family-Safe Internet.]");
463 "UNREGISTER" ("/msg $C UNREGISTER <#channel> [<confirmation>]",
464         "Unregisters a channel that is registered with $b$C$b. $bIMPORTANT$b: Once the channel is unregistered, the userlist $bcannot$b be recovered.",
465         "If you are not network staff, you must add a confimation string to the end of your line to confirm the unregistration.  If you leave it out, $C will show the proper confirmation string.",
466         "$uSee Also:$u register");
467 "UNSUSPEND" ("/msg $C UNSUSPEND <#channel> <nick|*account>",
468         "This restores the target's access to the channel (after it has been suspended).",
469         "$uSee Also:$u suspend, deluser");
470 "UNVISITED" ("/msg $C UNVISITED [duration] [limit]",
471         "Displays up to a certain limit, all channels registered with $b$C$b that have not been visited within a certain duration. If a duration is not provided, a default will be used.",
472         "$uSee Also:$u expire, search, durations");
473 "UP" ("/msg $C UP <#channel>",
474         "Grants you your normal channel privileges.  If your access in the channel is less than the GiveVoice setting, this does nothing.  Otherwise, if your access is less than the GiveOps setting, $b$C$b will give you voice.  If your access is at least GiveOps, $b$C$b will give you ops.");
475 "UPALL" ("/msg $C UPALL",
476         "Executes the $bup$b command for each channel you have access in.",
477         "$uSee Also:$u up, down, downall");
478 "USET"  ("/msg $C USET <#channel> [<option> [<setting>]]",
479          "The $buset$b command allows you to toggle various channel user settings. With no arguments, it will print the current values of all channel user options.",
480          "$bOptions:$b",
481          "INFO:       Sets the infoline that $C sends when you join the channel.",
482          "NOAUTOOP:   Enable or disable $C automatically opping you upon joining or authenticating.",
483          "AUTOINVITE: $C will invite you to this channel if you have access to and are not in when you authenticate if this setting is on.",
484          "NOTE: The NoAutoOp setting is equivalent to the !togop command in previous versions of srvx.",
485          "$uSee Also:$u set");
486 "USET INFO" ("/msg $C USET <#channel> INFO <info>",
487         "This command will set a user defined information message to be displayed when you join the channel. By setting the message to '*', you will clear your message.",
488         "$uSee Also:$u access");
489 "USERS" ("/msg $C USERS <#channel> [mask]",
490         "Displays the userlist for the specified channel. If a mask is supplied, only users matching the mask will be shown.",
491         "$uSee Also:$u clist, mlist, olist, plist, wlist");
492 "VOICE" ("/msg $C VOICE <#channel> <nick> [nick]...",
493         "Voices the specified nick in the specified channel. If the channel is omitted, then $bvoice$b will be done in the channel where the command was given.",
494         "$uSee Also:$u devoice");
495 "WIPEINFO" ("/msg $C WIPEINFO <#channel> <nick|*account>",
496         "Removes the named user's infoline in the channel.");
497 "WLIST" ("/msg $C WLIST <#channel> [mask]",
498         "This command lists all users of level $bOwner$b on a channel's userlist. If a mask is supplied, only owners matching the mask will be shown.",
499         "$uSee Also:$u addcoowner, delcoowner, mdelcoowner, users");
500 "WUT" ("/msg $S WUT",
501         "what what?");
502
503 "I'VE FALLEN AND I CAN'T GET UP" ("$bHelp, I've fallen and I can't get up$b!",
504         "If you drank your milk, you might not feel so vulnerable right now.",
505         "So next time you're sitting in front of a tall frosty glass of milk, just think how much it will help build up your bone structure.");
506 "ME"    "Help you? You're beyond help.";
507 "Zoot"  "Crash it again, please?";
508 "Entrope" "C Code.  C Code Run.  Run, Code, Run!!    (please?)";
509 "emacs" ("A novice of the temple once approached the Chief Priest with a question.",
510         "The novice asked, \"Master, does Emacs have the Buddha nature?\"",
511         "The Chief Priest had been in the temple for many years and could be relied upon to know these things.  He thought for several minutes before replying.",
512         "\"I don't see why not.  It's got bloody well everything else.\"",
513         "With that, the Chief Priest went to lunch.  The novice suddenly achieved enlightenment, several years later.");
514 "thanks" ("The srvx developers would like to thank the following people for their help in making srvx as polished as it is today:",
515         "$bGameSurge IRC Network$b - All the users and staff there bear with our shortcomings and bugs and let us know what needs to be fixed.",
516         "$bIC5 Networks$b (and JohnM in particular) - Never afraid to critique things, even if we are the 800 pound gorilla.",
517         "$bMeeko, eraser, hock(ey), KilledInAction, MadEwokHerd, Milon and Shoat$b - Hardcore beta testing and bug finding on the testnet.",
518         "$bCrips and feigling$b - Reading through all the boring messages and finding ways to make them clearer.");