fix possible crash on user deletion
[srvx.git] / src / opserv.help
1 "<INDEX>" ("$b$O Help$b",
2         "$b$O$b is the IRC operator service, giving authorized users extra information and control over the network.",
3         "$uNetwork-related command categories:$u",
4         "  USER     - User information, control and searching",
5         "  CHANNEL  - Channel information and control",
6         "  GLINES   - G-line control and searching",
7         "$usrvx-internal command categories:$u",
8         "  CLONES   - Control for fake servers and users",
9         "  LOGS     - Log control and searching",
10         "  PROXY    - Proxy checking controls",
11         "  RUNNING  - Control srvx's run-time state",
12         "  SERVICES - Control of the other services in srvx",
13         "  OTHER    - Miscellaneous commands",
14         "$b/msg $O help <category>$b for a list of commands in each category, or $b/msg $O help <command>$b for syntax and usage for a command.");
15 "COMMANDS" "${index}";
16
17 "USER" ("$bUSER COMMANDS$b",
18         "Search for, gives information on, and gives some control over IRC users.",
19         "Alerts are a way to automatically detect (and optionally G-line) certain users.  For example, a \"gline info sub7server\" alert would G-line any users using \"sub7server\" as their full name (user info field).",
20         "  COMMAND  [MinAccess]",
21         "  ACCESS   [${level/access}]",
22         "  ADDALERT [${level/addalert}]",
23         "  ADDTRUST [${level/addtrust}]",
24         "  DELALERT [${level/delalert}]",
25         "  DELTRUST [${level/deltrust}]",
26         "  EDITTRUST [${level/edittrust}]",
27         "  INVITEME [${level/inviteme}]",
28         "  TRACE    [${level/trace}]",
29         "  WHOIS    [${level/whois}]");
30 "ACCESS" ("/msg $O ACCESS [nick|*account] [new-level]",
31         "Displays the $O access level for the specified user or account.  With no arguments, displays your own access level.  With two arguments, sets the target's $O access level to the second argument (assuming you have sufficient access to do so).");
32 "ADDALERT" ("/msg $O ADDALERT <name> <reaction> <criteria>",
33         "Adds the specified alert to the $b$O$b alert list.",
34         "$uSee Also:$u delalert, alert reaction, trace criteria");
35 "ADDTRUST" ("/msg $O ADDTRUST <ip> <count> <duration> <reason>",
36         "Allows the specified IP address to have the specified amount of clones before being removed (rather than the usual limit).",
37         "You may use 0 as the duration if you do not wish the trust to ever expire, and 0 as the count for unlimited connections.",
38         "$uSee Also:$u deltrust, edittrust, stats trusted");
39 "ALERT REACTION" ("$bALERT REACTION$b",
40         "Valid alert actions (to be taken when an alert is hit) are:",
41         "$bNOTICE$b:       Send a notice to the $b$O$b alert channel",
42         "$bKILL$b:         Disconnect the user",
43         "$bGLINE$b:        Gline the user that tripped the alert",
44         "$uSee Also:$u addalert, delalert");
45 "DELALERT" ("/msg $O DELALERT <alert> [alert]...",
46         "Remove the specified alerts from the $b$O$b alert list.",
47         "$uSee Also:$u addalert, stats");
48 "DELTRUST" ("/msg $O DELTRUST <ip>",
49         "Deletes a trusted IP from $b$O's$b trusted hosts list. A trusted IP address is exempted from normal client limits. A list of currently trusted IPs is displayed by $bstats trusted$b.",
50         "$uSee Also:$u addtrust, edittrust, stats");
51 "EDITTRUST" ("/msg $O EDITTRUST <ip> <count> <duration> <reason>",
52         "Edits the 'trust' for the specified IP, changing the count, duration and/or reason.",
53         "You may use 0 as the duration if you do not wish the trust to ever expire, and 0 as the count for unlimited connections.",
54         "$uSee Also:$u addtrust, deltrust, stats trusted");
55 "INVITE" ("/msg $O INVITE #channel",
56         "Invites you to the specified channel.");
57 "INVITEME" ("/msg $O INVITEME [nick]",
58         "Invites the specified user (if omitted, you) to $O's debug channel.",
59         "This is currently pointless, since no output is sent to the debug channel.");
60 "TRACE" ("/msg $O TRACE <action> <criteria> <value> [<criteria> <value>]...",
61         "Searches through the current users for those matching the specified criteria, and applies the specified action to them. A list of actions can be found in $bhelp trace action$b and a list of criteria in $bhelp trace criteria$b.",
62         "$uSee Also:$u trace action, trace criteria");
63 "TRACE ACTION" ("$bTRACE ACTION$b",
64         "Options for action in $btrace$b are:",
65         "$bPRINT$b:   Display the hostmask to you.",
66         "$bCOUNT$b:   Count all matching users.",
67         "$bKILL$b:    Kill matching clients.",
68         "$bGLINE$b:   Issue a gline for the client's host (by default, 1 hour long).",
69         "$bGAG$b:     Gag all matching users (by default, does not expire).",
70         "$bDOMAINS$b: Display counts of users in each domain (length specified by DEPTH criteria.",
71         "Note: By default, IRC operators are not affected by the KILL, GLINE or GAG actions.  You can override this by specifying the $bABUSE OPERS$b criteria for a trace.  Even if you do specify $bABUSE OPERS$b, it will not affect opers at your access level or above.");
72 "TRACE CRITERIA" ("$bTRACE CRITERIA$b",
73         "Criteria and values for $btrace$b (a search with $btrace$b must match all specified items):",
74         "$bMASK$b nick!user@host    Specifies a full hostmask to search for.",
75         "$bNICK$b nick              Specifies a nick to search for.",
76         "$bIDENT$b ident            Specifies an ident to search for.",
77         "$bHOST$b host              Specifies a hostname to search for.",
78         "$bINFO$b infoline          Specifies a user's info to search for.",
79         "$bSERVER$b server          Specifies a server to search for.",
80         "$bIP$b 127.0.0.1           Specifies an IP to search for (independent of hostname).",
81         "$bACCOUNT$b account        Specifies an account to search for.",
82         "$bAUTHED$b yes/no          Specifies if matching users must be authenticated with $N or not",
83         "$bCHANNEL$b #target        Specifies a channel the client must be in.",
84         "$bNUMCHANNELS$b 5          Specifies a number of channels the client must be in.",
85         "$bLIMIT$b 50               Limits the number of responses to a certain number.",
86         "$bNICKAGE$b cmp            Client has had nick this long (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
87         "$bACCESS$b cmp             Access constraints (<nnn, <=nnn, =nnn, >=nnn or >nnn)",
88         "$bREASON$b reason          Reason for kill or gline (must be listed last).",
89         "$bDEPTH$b depth            How many domain-name parts to use for $bDOMAINS$b action.",
90         "$bDURATION$b duration      How long to apply a G-line or gag.",
91         "$bCLONES$b min             Ignore clients from hosts with fewer than this many connections.",
92         "$bINFO_SPACE$b yes/no      Clients match only if their info starts with a space (' ') character.",
93         "$bABUSE OPERS$b            Force adverse actions to affect opers as well.",
94         "$bABUSE TRUSTED$b          Force adverse actions to affect users on trusted hosts as well.",
95         "$bTARGET$b                 Send alert notice to this channel.",
96         "$bLOG$b                    Record matching users in $O's log file (in addition to acting).",
97         "Additionally, the $bCHANNEL$b target may be prefixed with @ to select channel operators, + to select voiced users (will not select chanops unless @ is also used), or - to select non-voiced non-chanop users.  For example, CHANNEL #foo will select all users in #foo; CHANNEL +#foo will select only users voiced in #foo; CHANNEL @+#foo will select ops and voiced users in #foo; etc.");
98 "WHOIS" ("/msg $O WHOIS <nick>",
99         "Displays detailed information for the named user.");
100
101 "CHANNEL" ("$bCHANNEL SUB-CATEGORIES$b",
102         "Channel information, control, and searching.",
103         "  CHANNEL REACTIONS   - Automated reactions based on channel names",
104         "  CHANNEL CONTROL     - Channel information and control",
105         "There are also some miscellaneous channel-related commands:",
106         "  COMMAND  [MinAccess]",
107         "  CHANINFO [${level/chaninfo}]",
108         "  CSEARCH  [${level/csearch}]",
109         "  JOIN     [${level/join}]",
110         "  PART     [${level/part}]");
111 "CHANINFO" ("/msg $O CHANINFO <#channel> [users]",
112         "Displays very detailed information on the specified channel. If the channel is omitted, then $bchaninfo$b will be done on the channel where the command was given.  You must give a second parameter ($busers$b) to list users in the channel.",
113         "$uSee Also:$u whois");
114 "CSEARCH" ("/msg $O CSEARCH <action> <criteria> <value> [<criteria> <value>]...",
115         "Searches through the network's channels for those matching the specified criteria, and applies the specified action to them. A list of actions can be found under $bhelp csearch action$b and a list of criteria in $bhelp csearch criteria$b.",
116         "$uSee Also:$u csearch action, csearch criteria");
117 "CSEARCH ACTION" ("$bCSEARCH ACTION$b",
118         "Options for action in $bcsearch$b are:",
119         "$bPRINT$b:   Display the channel and user count.",
120         "$bCOUNT$b:   Count all matching channels.");
121 "CSEARCH CRITERIA" ("$bCSEARCH CRITERIA$b",
122         "Criteria and values for $bcsearch$b (a search with $bcsearch$b must match all specified items):",
123         "$bNAME$b name              Specifies a name to search for.",
124         "$bTOPIC$b topic            Specifies a topic to search for.",
125         "$bUSERS$b cmp              User count constraint (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
126         "$bTIMESTAMP$b cmp          Timestamp constraint (<Nu, <=Nu, =Nu, >=Nu or >Nu; supports interval notation)",
127         "$bLIMIT$b 50               Limits the number of responses to a certain number.");
128 "JOIN" ("/msg $O JOIN <#channel> ",
129         "Makes $b$O$b join the specified channel.",
130         "$uSee Also:$u part");
131 "PART" ("/msg $O PART <#channel> ",
132         "Makes $b$O$b leave the specified channel.",
133         "$uSee Also:$u join");
134
135 "CHANNEL REACTIONS" ("$bCHANNEL REACTION COMMANDS$b",
136         "\"Bad-word\" channels are for assisting in enforcement of network policies (such as disallowing \"warez\" channels).  \"Warning\" channels are for channels which may be abused when they are present, but should be allowed otherwise.",
137         "  COMMAND  [MinAccess]",
138         "  ADDBAD    [${level/addbad}]",
139         "  ADDEXEMPT [${level/addexempt}]",
140         "  DELBAD    [${level/delbad}]",
141         "  DELEXEMPT [${level/delexempt}]",
142         "  UNWARN    [${level/unwarn}]",
143         "  WARN      [${level/warn}]");
144 "ADDBAD" ("/msg $O ADDBAD <word>",
145         "Adds a bad word to $b$O's$b bad word list. Bad words make any channel that has a bad word anywhere in a channel's name illegal. A list of current bad words can be displayed by $bstats bad$b.",
146         "$uSee Also:$u addexempt, delbad, stats");
147 "ADDEXEMPT" ("/msg $O ADDEXEMPT <#channel>",
148         "Adds a channel to $O's \"exempt\" list.  These channels (and only these channels) are never considered to contain prohibited words.  Note that you $bmust$b specify the whole channel name, and may not use wildcards.",
149         "For example, if you have added $ufree$u to the bad-word list, you could add $u#FreeBSD$u to the exempt list, and anyone could join #FreeBSD.  Users joining #FreeBSDISOz would be kickbanned by $O.",
150         "The current exempt list is displayed with the current bad-words in $bstats bad$b.",
151         "$uSee Also:$u addbad, delexempt, stats");
152 "DELBAD" ("/msg $O DELBAD <keyword>",
153         "Deletes a bad word from $b$O's$b bad word list. Bad words make any channel that has a bad word anywhere in a channel's name illegal. A list of current bad words can be displayed by $bstats bad$b.",
154         "$uSee Also:$u addbad, delexempt, stats");
155 "DELEXEMPT" ("/msg $O DELEXEMPT <#channel>",
156         "Removes a channel from $O's bad-word-exempt channel list.",
157         "$uSee Also:$u addexempt, delbad, stats");
158 "UNWARN"  ("/msg $O UNWARN <#channel>",
159         "Deletes the activity warning for a channel.",
160         "$uSee Also:$u warn, stats warn");
161 "WARN"  ("/msg $O WARN <#channel> [reason]",
162         "Adds an activity warning for the channel.",
163         "$uSee Also:$u unwarn, stats warn");
164
165 "CHANNEL CONTROL" ("$bCHANNEL CONTROL COMMANDS$b",
166         "These are analogous to the same (or similar) $C commands, but can be used on any channel.",
167         "  COMMAND    [MinAccess]",
168         "  BAN        [${level/ban}]",
169         "  CLEARBANS  [${level/clearbans}]",
170         "  CLEARMODES [${level/clearmodes}]",
171         "  DEOP       [${level/deop}]",
172         "  DEOPALL    [${level/deopall}]",
173         "  DEVOICEALL [${level/devoiceall}]",
174         "  FORCEKICK  [${level/forcekick}]",
175         "  KICK       [${level/kick}]",
176         "  KICKALL    [${level/kickall}]",
177         "  KICKBAN    [${level/kickban}]",
178         "  KICKBANALL [${level/kickbanall}]",
179         "  MODE       [${level/mode}]",
180         "  OP         [${level/op}]",
181         "  OPALL      [${level/opall}]",
182         "  UNBAN      [${level/unban}]",
183         "  VOICEALL   [${level/voiceall}]");
184 "BAN" ("/msg $O BAN <#channel> <nick|hostmask>",
185         "Bans the specified hostmask from the specified channel.",
186         "If a nick is used instead of hostmask, the hostmask is generated based on the nickname.",
187         "If the channel is omitted, the $bban$b will be done in the channel where the command was given.",
188         "$uSee Also:$u kickban, kickbanall, unban");
189 "UNBAN" ("/msg $O UNBAN <#channel> <hostmask>",
190         "Unbans the specified hostmask from the specified channel.",
191         "If the channel is omitted, the $bunban$b will be done in the channel where the command was given.",
192         "$uSee Also:$u kickban, kickbanall, ban");
193 "CLEARBANS" ("/msg $O CLEARBANS <#channel> ",
194         "Clears all bans in the specified channel.",
195         "If the channel is omitted, then $bclearbans$b will be done in the channel where the command was given.",
196         "$uSee Also:$u ban, unban");
197 "CLEARMODES" ("/msg $O CLEARMODES <#channel> ",
198         "Clears the specified channel of all modes.",
199         "If the channel is omitted, then $bclearmodes$b will be done in the channel where the command was given.",
200         "$uSee Also:$u mode");
201 "DEOP" ("/msg $O DEOP <#channel> <nick> [nick]...",
202         "Deops the specified user from the specified channel.",
203         "If the channel is omitted, then $bdeop$b will be done in the channel where the command was given.",
204         "$uSee Also:$u deopall, devoiceall, op, opall");
205 "DEOPALL" ("/msg $O DEOPALL <#channel>",
206         "Deops all members of the specified channel.",
207         "If the channel is omitted, then $bdeopall$b will be done in the channel where the command was given.",
208         "$uSee Also:$u deop, devoiceall, op, opall");
209 "DEVOICEALL" ("/msg $O DEVOICEALL <#channel>",
210         "Devoice all members of the specified channel who do not have channel ops.",
211         "If the channel is omitted, then $bdevoiceall$b will be done in the channel where the command was given.",
212         "$uSee Also:$u deop, deopall, op, opall");
213 "KICK" ("/msg $O KICK <#channel> <nick> [reason]",
214         "Kicks the specified user from the specified channel.",
215         "If the channel is omitted, then $bkick$b will be done in the channel where the command was given.",
216         "$uSee Also:$u ban, kickall, kickban, kickbanall, forcekick");
217 "FORCEKICK" ("/msg $O FORCEKICK <#channel> <nick> [reason]",
218         "Kicks the specified user from the specified channel even if he is a channel service (+k).",
219         "If the channel is omitted, then $bforcekick$b will be done in the channel where the command was given.",
220         "$uSee Also:$u ban, kick, kickall, kickban, kickbanall");
221 "KICKALL" ("/msg $O KICKALL <#channel> [reason]",
222         "Kicks all users in the specified channel except for the user issuing the command.",
223         "If the channel is omitted, then $bkickall$b will be done in the channel where the command was given.",
224         "$uSee Also:$u ban, kick, kickbanall");
225 "KICKBAN" ("/msg $O KICKBAN <#channel> <nick> [reason]",
226         "Kicks and bans the specified user. $b$O$b determines the hostmask to ban from the nick specified.",
227         "If the channel is omitted, then $bkickban$b will be done in the channel where the command was given.",
228         "$uSee Also:$u ban, kickall, kickbanall");
229 "KICKBANALL" ("/msg $O KICKBANALL <#channel> [reason]",
230         "Kick and bans all members of the specified channel except for the user issuing the command.",
231         "If the channel is omitted, then $bkickbanall$b will be done in the channel where the command was given.",
232         "$uSee Also:$u ban, kick, kickban");
233 "MODE" ("/msg $O MODE <#channel> <+/- mode>",
234         "Sets the specified modes (but cannot include voice, ban or op changes) on a channel.",
235         "If the channel is omitted, then $bmode$b will be done in the channel where the command was given.",
236         "$uSee Also:$u ban, deop, kickban, op");
237 "OP" ("/msg $O OP <#channel> <nick> [nick]...",
238         "Ops specified nicknames the specified channel.",
239         "If the channel is omitted, then $bop$b will be done in the channel where the command was given.",
240         "$uSee Also:$u deop, deopall, opall");
241 "OPALL" ("/msg $O OPALL <#channel>",
242         "Ops all members of the specified channel.",
243         "If the channel is omitted, then $bopall$b will be done in the channel where the command was given.",
244         "$uSee Also:$u deopall");
245 "VOICEALL" ("/msg $O VOICEALL <#channel>",
246         "Voices all members of the specified channel who do not have channel ops.",
247         "If the channel is omitted, then $bvoiceall$b will be done in the channel where the command was given.",
248         "$uSee Also:$u opall, deopall, devoiceall");
249
250 "GLINES" ("$bGLINE COMMANDS$b",
251         "Searches for, issues, and removes G-lines (network-global K-lines).",
252         "  COMMAND  [MinAccess]",
253         "  BLOCK    [${level/block}]",
254         "  GLINE    [${level/gline}]",
255         "  GTRACE   [${level/gtrace}]",
256         "  GSYNC    [${level/gsync}]",
257         "  REFRESHG [${level/refreshg}]",
258         "  UNGLINE  [${level/ungline}]");
259 "BLOCK" ("/msg $O BLOCK <nick> [duration] [reason]",
260         "GLINES the host of the specified nick for one hour if no duration is given.  If no reason is given, use a default reason.",
261         "$uSee Also:$u gline, ungline");
262 "GLINE" ("/msg $O GLINE <user@host> <duration> <reason>",
263         "Issues a GLINE (network ban) on the network for the speicified user@host for the specified duration (making the expiration time: net time + duration).",
264         "$uSee Also:$u trace, ungline");
265 "GTRACE" ("/msg $O GTRACE <action> <criteria> [<criteria> <value>]...",
266         "Searches through the glines, much like $bTRACE$b does for users.",
267         "$uSee Also:$u trace, gtrace action, gtrace criteria");
268 "GTRACE ACTION" ("$bGTRACE ACTION$b",
269         "Options for the action in $bgtrace$b are:",
270         "$bPRINT$b: Display the glines (mask, issuer, expiration time, reason)",
271         "$bCOUNT$b: Count the number of matching glines",
272         "$bUNGLINE$b: Remove matching glines");
273 "GTRACE CRITERIA" ("$bGTRACE CRITERIA$b",
274         "Criteria and values for $bgtrace$b (a search with $bgtrace$b must match all the criteria you give):",
275         "$bMASK SUPERSET$b user@host G-line matches if it applies to someone with this hostmask.",
276         "$bMASK SUBSET$b user@host  G-line matches if this hostmask \"covers\" the G-line target.",
277         "$bMASK EXACT$b user@host   G-line matches only if the target is exactly this.",
278         "$bMASK$b user@host         Specifies a mask to search for (equivalent to MASK SUPERSET).",
279         "$bLIMIT$b count            Limits the number of matching glines.",
280         "$bREASON$b reason          Looks for glines with the given reason.",
281         "$bISSUER$b account         Looks for glines issued by the given account.",
282         "$bLASTMOD$b interval       Looks for glines last modified in the specified time.",
283         "$bAFTER$b interval         Looks for glines that expire more than $binterval$b in the future.");
284 "GSYNC" ("/msg $O GSYNC [server]",
285         "Requests a list of GLINES from its uplink or the specified server.  This can be used in the event srvx is down for period and becomes desynced.",
286         "$uSee Also:$u refreshg, gline, ungline");
287 "REFRESHG" ("/msg $O REFRESHG [server]",
288         "Re-issues all GLINES in $b$O's$b database. Usually used for newly joining or desynched servers.  If a server mask is specified, the GLINES are only sent to server(s) with matching names.",
289         "$uSee Also:$u gline, ungline, gsync");
290 "UNGLINE" ("/msg $O UNGLINE <user@host>",
291         "Removes a gline from the network before it expires.",
292         "$uSee Also:$u gline");
293
294 "CLONES" ("$bCLONE/JUPE COMMANDS$b",
295         "Commands that add, remove or control fake (reserved) users or servers.",
296         "  COMMAND   [MinAccess]",
297         "  CLONE     [${level/clone}]",
298         "  COLLIDE   [${level/collide}]",
299         "  JUPE      [${level/jupe}]",
300         "  RESERVE   [${level/reserve}]",
301         "  UNJUPE    [${level/unjupe}]",
302         "  UNRESERVE [${level/unreserve}]");
303 "CLONE" ("/msg $O CLONE <sub-command> <sub-command arguments>",
304         "Creats and manipulates a fake user. Sub-commands for $bclone$b are:",
305         "$bADD$b:    Adds a new clone. Arguments: <nickname> <user@host> <info>",
306         "$bREMOVE$b: Removes a clone. Arguments: <nickname>",
307         "$bJOIN$b:   Joins a clone to a channel. Arguments: <nickname> <channel>",
308         "$bPART$b:   Parts a clone from a channel. Arguments: <nickname> <channel>",
309         "$bOP$b:     Ops a clone in a channel. Arguments: <nickname> <channel>",
310         "$bSAY$b:    Makes a clone say something to a channel. Arguments: <nickname> <channel> <text>");
311 "COLLIDE" ("/msg $O COLLIDE <nick> <ident> <host> <description>",
312         "Creates a clone with the specified properties, colliding any existing user with the same nick.",
313         "$uSee Also:$u clone");
314 "JUPE" ("/msg $O JUPE <srvname> <srvnum> <description>",
315         "Causes srvx to create a \"juped\" (dummy) server.  This can be used to prevent a poorly connected server from connecting.",
316         "$uSee Also:$u unjupe, reserve, unreserve");
317 "RESERVE" ("/msg $O RESERVE <nickname> <user> <host> <comment>",
318         "Used to ban, protect, or jupe a given nick.  Unlike $bclone$b and $bcollide$b, reserved nicks are saved across restarts of srvx.",
319         "$uSee Also:$u clone, unreserve, jupe");
320 "UNJUPE" ("/msg $O UNJUPE <srvname>",
321         "Causes srvx to unjupe a jupe server.",
322         "$uSee Also:$u jupe, reserve, unreserve");
323 "UNRESERVE" ("/msg $O UNRESERVE <nick>",
324         "Removes a nick from $b$O's$b reserve list.",
325         "$uSee Also:$u reserve");
326
327 "LOGS" ("$bLOGGING COMMANDS$b",
328         "Controls what goes into logs and searches them.",
329         "  COMMAND         [MinAccess]",
330         "  LOG             [${level/log}]",
331         "  REOPEN          [${level/reopen}]");
332 "LOG" ("/msg $O LOG <criteria> <value> [<criteria> <value>]...",
333         "Searches services logs based on critera specified and displays the results.",
334         "Criteria and associated values (a search match all specified items):",
335         "$bBOT$b -         A service bot's name (for example, $O).",
336         "$bCHANNEL$b -     The channel where a command was issued (accepts wildcards).",
337         "$bNICK$b -        The nickname issuing the command (accepts wildcards).",
338         "$bACCOUNT$b -     The account of the user who issued the command (accepts wildcards).",
339         "$bHOSTMASK$b -    The ident@host of the user who issued the command (accepts wildcards).",
340         "$bAGE$b -         Age of commands to find (for example, 1m or >3m).",
341         "$bLIMIT$b -       Maximum number of results to show.",
342         "$bLEVEL$b -       Comma-separated list of COMMAND, OVERRIDE, STAFF, to return only those commands.",
343         "$bTYPE$b -        Name of module that generated log (see $bSTATS MODULES$b).",
344         "By default, all levels of audit log entries are returned. You may exclude levels from the results by using the level criteria and the '-' character in front of the level name.");
345 "REOPEN" ("/msg $O REOPEN",
346         "Close and re-open all the log files.",
347         "$uSee Also:$u log, loginfo");
348
349 "RUNNING" ("$bRUNNING COMMANDS$b",
350         "These commands control srvx's runtime state.",
351         "  COMMAND   [MinAccess]",
352         "  DIE       [${level/die}]",
353         "  JUMP      [${level/jump}]",
354         "  RECONNECT [${level/reconnect}]",
355         "  REHASH    [${level/rehash}]",
356         "  RESTART   [${level/restart}]",
357         "  WRITE     [${level/write}]",
358         "  WRITEALL  [${level/writeall}]");
359 "DIE" ("/msg $O DIE <reason>",
360         "SQUIT srvx with the given reason and shuts it down.",
361         "$uSee Also:$u reconnect, restart");
362 "JUMP" ("/msg $O JUMP <uplink>",
363         "Causes srvx to connect to the specified uplink.",
364         "$uSee Also:$u die, reconnect, restart");
365 "RECONNECT" ("/msg $O RECONNECT ",
366         "Causes srvx to reconnect to its current uplink.",
367         "$uSee Also:$u die, jump, rehash, restart");
368 "REHASH" ("/msg $O REHASH",
369         "Causes srvx to re-read its configuration file and update its state as much as possible.",
370         "$uSee Also:$u die, reconnect, restart");
371 "RESTART" ("/msg $O RESTART <reason>",
372         "Causes srvx to SQUIT with the specified reason and restart.",
373         "$uSee Also:$u die, reconnect, rehash");
374
375 "SERVICES" ("$bSERVICES COMMANDS$b",
376         "These commands control how other services behave.",
377         "  COMMAND    [MinAccess]",
378         "  BANEMAIL   [${level/banemail}]",
379         "  BIND       [${level/bind}]",
380         "  GAG        [${level/gag}]",
381         "  HELPSERV   [${level/helpserv}]",
382         "  QUERY      [${level/query}]",
383         "  SET        [${level/set}]",
384         "  UNBANEMAIL [${level/unbanemail}]",
385         "  UNBIND     [${level/unbind}]",
386         "  UNGAG      [${level/ungag}]");
387 "GAG" ("/msg $O GAG <mask> <duration> <reason>",
388         "Sets a complete services-wide ignore on all users matching the provided mask. All services will completely ignore all private messages or notices from gagged users, who are only notified when a gag goes into effect, or they sign onto the network. Gags have no effect on opers, and as a safety feature, only affect the first 250 matching users.  The gag will automatically expire after $b<duration>$b (or last forever if that is zero).",
389         "$uSee Also:$u ungag, trace");
390 "HELPSERV" ("/msg $O HELPSERV <command>",
391         "Sends a command to the HelpServ system. It is used for all \"override\" commands, as well as registration and unregistration.",
392         "$uSee also:$u /msg $O HELPSERV HELP");
393 "QUERY" ("/msg $O QUERY <option>",
394         "Displays the value of the given configuration key.  If the key is a composite entry, show the subkeys inside it.",
395         "$uSee Also:$u set");
396 "SET" ("/msg $O SET <option> <value>",
397         "Modifies the internal configuration database. Currently, only keys that have been previously set may be modified.",
398         "$uSee Also:$u query");
399 "UNGAG" ("/msg $O UNGAG <hostmask>",
400         "Ungags a gaged hostmask and displays how many users were affected by $bungag$b. You can get a list of gaged hostmasks from $bgags$b.",
401         "$uSee Also:$u gag, stats gags");
402
403 "OTHER" ("$bOTHER COMMANDS$b",
404         "These commands do not easily fall into one of the other categories.",
405         "  COMMAND [MinAccess]",
406         "  DUMP    [${level/dump}]",
407         "  HELP    [${level/help}]",
408         "  RAW     [${level/raw}]",
409         "  STATS   [${level/stats}]",
410         "  SETTIME [${level/settime}]",
411         "  VERSION [${level/version}]");
412 "DUMP" ("/msg $O DUMP <raw line>",
413         "Dumps a raw server message into the stream. Unlike $braw$b, $bdump$b checks line syntax before sending it, making it much safer to use then $braw$b. If $bdump$b detects a syntax error in the line, it is not sent. It is $bHIGHLY$b recommended that you use $bdump$b instead of $braw$b.",
414         "$uSee Also:$u raw");
415 "RAW" ("/msg $O RAW <raw line>",
416         "Dumps a raw server message into the stream. Unlike $bdump$b, $braw$b does $bNOT$b check line syntax before sending it, making $braw$b dangerous. It will however, after the line is sent, warn of a parse error if there is a problem with the line. It is $bHIGHLY$b recommended that $bdump$b be used instead of $braw$b because it is much safer.",
417         "$uSee Also:$u dump");
418 "SETTIME" ("/msg $O SETTIME [servermask] [resync]",
419         "Sets the time on the named server(s) to match the time known to srvx.",
420         "For example, using $b*$b as the mask sets the time on all servers; using a server's full name sets the time only on that one.",
421         "If the RESYNC argument is provided, sets the time to what srvx believes the local time is, rather than what it believes the network time is.");
422 "STATS" ("/msg $O STATS <subject>",
423         "Displays statistics about a specified subject. Subjects include:",
424         "$bALERTS$b:     The list of current \"alerts\".",
425         "$bBAD$b:        Current list of bad words and exempted channels.",
426         "$bGAGS$b:       The list of current gags.",
427         "$bGLINES$b:     Reports the current number of glines.",
428         "$bLINKS$b:      Information about the link to the network.",
429         "$bMAX$b:        The max clients seen on the network.",
430         "$bNETWORK$b:    Displays network information such as total users and how many users are on each server.",
431         "$bNETWORK2$b:   Additional information about the network, such as numerics and linked times.",
432         "$bOPERS$b:      A list of users that are currently +o.",
433         "$bPROXYCHECK$b: Information about proxy checking in srvx.",
434         "$bRESERVED$b:   The list of currently reserved nicks.",
435         "$bTIMEQ$b:      The number of events in the timeq, and how long until the next one.",
436         "$bTRUSTED$b:    The list of currently trusted IPs.",
437         "$bUPTIME$b:     Srvx uptime, lines processed, and CPU time.",
438         "$bWARN$b:       The list of channels with activity warnings.",
439         "$bMODULES$b:    Shows loaded modules that implement commands.",
440         "$bSERVICES$b:   Shows active service bots.");
441
442 "INDEX" "${index}";
443 "SEX" ("$bSEX$b",
444         "I'm sorry, but I can't give you help regarding your sex life.",
445         "But if you're so desperate you'll ask an IRC service bot for advice, you need therapy.");