]> jfr.im git - irc/evilnet/x3.git/blobdiff - src/opserv.help
Added help for trace and addalert tempshun actions
[irc/evilnet/x3.git] / src / opserv.help
index 3a3912fb81c1da0ff8283b8ddcb9259baf0b4520..5e86c0261da90c8a574d30b3822e9933d525eb62 100644 (file)
@@ -1,22 +1,30 @@
 "<INDEX>"  (
             " $O provides Oper Services for the Network.    ",
             " Please choose from the following categories:  ",
-            "  $bGOD$b         Enabling channel override.   ",
-            "  $bPUNISH$b      Commands to discipline users.",
             "  $bINFORMATION$b Get information about users. ",
             "              or $O, $C, and $N.           ",
+            "  $bPUNISH$b      Commands to discipline users.",
+            "  $bCHANNEL$b     Channel commands.            ",
+            "  $bUSER$b        User commands.               ",
             "  $bTRACES$b      Powerful commands for       ",
             "              viewing or acting on lists of",
             "              IRC objects.                 ",
             "  $bALERTS$b      Automated responses.         ",
-            "  $bCHANNEL$b     Channel commands.            ",
+            "  $bGOD$b         Enabling channel override.   ",
+            "  $bTRACKING$b    Tracking commands. (if enabled)",
             "  $bCLONES$b      Manage trusts and limits.    ",
+            "  $bROUTING$b     Manage the Auto Routing System.",
             "  $bSETTINGS$b    View and temporarily change  ",
             "              config file settings.        ",
             "  $bADMIN$b       Misc Administrator Commands. ",
             "  $bOWNERONLY$b   $O operator only commands.   "
 );
-"COMMANDS" "${index}";
+"COMMANDS" ("The following commands are available in $O:",
+            "${index}",
+            "$uSee Also$u: modcmd, access, command");
+"INDEX" ("The following commands are available in $O:",
+            "${index}",
+            "$uSee Also$u: modcmd, access, command");
 
 "PUNISH"   (
             "  $bGLINE$b       Global Ban a host.",
             "  $bUNGAG$b       ...or unignore by mask."
             );
 
+"USER"     (
+            " $bSVSJOIN$b      Force a user to join a channel.",
+            " $bSVSPART$b      Force a user to part a channel.",
+            " $bSVSNICK$b      Force a user to change nicks.",
+            " $bACCESS$b       Show/modify $O access level of a user."
+           );
+
 "INFORMATION"  (
                 "  $bACCESS$b  Shows a users $O access level.",
                 "  $bSTATS$b   Show various lists and runtime info.",
             "  $bADDALERT$b  Make $O automatically do something",
             "            when users match a criteria.",
             "  $bDELALERT$b  Remove an alert.",
-            "  $bSTATS ALERT$b See a listing of alerts. "
+            "  $bSTATS ALERTS$b See a listing of alerts. "
            );
 
+"TRACKING"   (
+              " These commands only work if the tracking module has been compiled in",
+              "  $b$b",
+              "  $bTRACK$b     Display and set tracking options.",
+              "  $bADDTRACK$b  Adds a nick to the tracking list.",
+              "  $bDELTRACK$b  Deletes an active track.",
+              "  $bLISTTRACK$b Lists all active tracks.",
+             );
+
+"PRIVILEGE" (
+             " The Privilege list system: ",
+             " $b$b",
+             " $bPRIVSET$b Set and unset privileges on the fly."
+            );
+
+"ROUTING"  (
+            " The Auto Routing System: ",
+            " $b$b",
+            " $bSTATS ROUTING$b     Shows everything about the auto routing configuration.",
+            " $bROUTING ADDPLAN$b   Creates a new routing plan. Routing plans are a collection of server linking information that $O uses to decide how to route.",
+            " $bROUTING DELPLAN$b   Deletes a routing plan (and all its servers).",
+            " $bROUTING ADDSERVER$b Adds server linking information to a plan.",
+            " $bROUTING DELSERVER$b Deletes a server from a routing plan.",
+            " $bROUTING SET$b       Show and change routing settings. ",
+            " $bROUTING MAP$b       Show what the active routing plan says the network should look like.",
+            " $bREROUTE$b           Connect servers to the network, optionally squiting them first to change the routing.",
+            " $b$b ",
+            " Start by creating a routing plan, and then adding servers to it, with their listning port, uplink, and a backup uplink. You can view it in $bSTATS ROUTING planname$b. Take care not to create loops, and that you make everything connected. Then set your new plan ACTIVE using $bROUTING SET$b. $O does the rest! See help topic $bROUTING EXAMPLE$b for a working example."
+            );
+
 "CHANNEL"  (
             "  $bOP$b      Op someone.",
             "  $bDEOP$b    Deop someone.",
+            "  $bHOP$b     Half Op someone.",
+            "  $bDEHOP$b   DeHalfop someone.",
             "  $bVOICE$b   Voice someone.",
             "  $bDEVOICE$b Devoice someone.",
             "  $bKICK$b    Kick someone.",
             "  $b$b",
             "  $bOPALL$b      Op everyone in a channel.",
             "  $bDEOPALL$b    Deop everyone in a channel.",
+            "  $bHOPALL$b     Half Op everyone in a channel.",
+            "  $bDEHOPALL$b   Dehalfop everyone in a channel.",
             "  $bVOICEALL$b   Voice everyone in a channel.",
             "  $bDEVOICEALL$b Devoice everyone in a channel.",
+            "  $bFORCEKICK$b  Kicks someone even if they are +k.",
             "  $bKICKALL$b    Kick everyone from a channel.",
             "  $bKICKBANALL$b Kickban everyone from a channel.",
             "  $b$b",
             "  $bJUPE$b         Create dummy server.",
             "  $bUNJUPE$b       Remove a dummy server.",
             "  $b$b",
+            "  $bDEFCON$b       Manipulate the DefCon system.",
             "  $bREFRESHG$b     Refresh the Glines.",
             "  $bREFRESHS$b     Refresh the Shuns.",
             "  $bSETTIME$b      Synchronize time across the network.",
              "  $bDELEXEMPT$b     Remove an exception of the illegal word list.",
              "  $b$b",
              "  $bDUMP$b          Drop safetychecked server protocol to the server. ",
-             "  $bRAW$b           Drop raw server protocol to the server. (DANGEROUS!)"
+             "  $bRAW$b           Drop raw server protocol to the server. (DANGEROUS!)",
+             "  $b$b",
+             "  $bRESETMAX$b      Reset the maximum recorded users. (used in the event of a clone flood)"
             );
 
 
 "ACCESS" ("/msg $O ACCESS [nick|*account] [new-level]",
         "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).",
-        "\"ACCESS *\" will show the access levels of everyone."
+        "\"ACCESS *\" will show the access levels of everyone.",
         "Access level: $b${level/access}$b",
         "$uSee Also:$u commands, modcmd"
         );
 
-"ADDALERT" ("/msg $O ADDALERT <name> <reaction> <criteria>",
+"ADDALERT" ("/msg $O ADDALERT <name> <reaction> [expire <duration>] <criteria>",
         "Adds the specified alert to the $b$O$b alert list.",
         "Alerts watch for users matching a givin criteria and perform an action on them.",
         "   <name> - An alphanumeric word to identify this alert in the list",
         "   <reaction> - What to do if a user matches the criteria. See $bALERT REACTION$b.",
+        "   <duration> - Duration after which the alert should be deleted. See $bdurations$b.",
         "   <criteria> - What to look for. See $bTRACE CRITERIA$b.",
         "Access level: $b${level/addalert}$b",
         "$uSee Also:$u delalert, alert reaction, trace criteria"
         "<duration> uses $btime  notation$b",
         "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.",
         "Access level: $b${level/addtrust}$b",
-        "$uSee Also:$u deltrust, stats trusted, time notation"
+        "$uSee Also:$u deltrust, edittust, stats trusted, time notation"
         );
 
 "ALERT REACTION" ("$bALERT REACTION$b",
         "Valid alert actions (to be taken when an alert is hit) are:",
         "$bNOTICE$b:       Send a notice to the $b$O$b alert channel",
         "$bKILL$b:         Disconnect the user",
-        "$bSILENT$b        Same as GLINE, except AUTO: is appended to make the gline silent",
         "$bGLINE$b:        Gline the user that tripped the alert",
+        "$bTRACK$b:        Send a notice to the $b$O$b alert channel and track the user (if the tracking module is loaded)",
         "$bSHUN$b :        Shun the user that tripped the alert",
+        "$bTEMPSHUN$b :    Temporarily shun the user that tripped the alert",
+        "$bVERSION$b :     Check the version on the user that tripped the alert",
+        "$bSVSJOIN$b :     Force the user that tripped the alert to join the target channel",
+        "$bSVSPART$b :     Force the user that tripped the alert to part the target channel",
+        "$bMARK$b :        Mark the user that tripped the alert (must be used in combination with the mark trace criteria)",
         "$uSee Also:$u addalert, delalert"
         );
 
 "DELTRUST" ("/msg $O DELTRUST <ip>",
         "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.",
         "Access level: $b${level/deltrust}$b",
-        "$uSee Also:$u addtrust, stats"
+        "$uSee Also:$u addtrust, edittrust, stats"
         );
-
+"EDITTRUST" ("/msg $O EDITTRUST <ip> <count> <duration> <reason>",
+        "Edits the 'trust' for the specified IP, changing the count, duration and/or reason.",
+        "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.",
+        "$uSee Also:$u addtrust, deltrust, stats trusted");
+"INVITE" ("/msg $O INVITE #channel",
+        "Invites you to the specified channel.");
 "INVITEME" ("/msg $O INVITEME [nick]",
         "Invites the specified user (if omitted, you) to $O's debug channel.",
         "This is currently pointless, since no output is sent to the debug channel.",
         
 "TRACE" ("/msg $O TRACE <action> <criteria> <value> [<criteria> <value>]...",
         "Searches through the current users for those matching the specified criteria, and applies the specified action to them. A detailed list of actions can be found in $bhelp trace action$b and a list of criteria in $bhelp trace criteria$b.",
-        "Quick Ref ACTIONS: PRINT, COUNT, KILL, GLINE, SHUN, GAG, DOMAINS",
-        "Quick Ref CRITERIA: MASK, NICK, IDENT, HOST, INFO, SERVER, IP, ACCOUNT, AUTHED, CHANNEL, NUMCHANNELS, LIMIT, NICKAGE, ACCESS, REASON, DEPTH, DURATION, CLONES, INFO_SPACE, ABUSE OPERS, LOG, REGEX",
+        "Quick Ref ACTIONS: PRINT, COUNT, PRIVMSG, NOTICE, KILL, GLINE, SHUN, TEMPSHUN, GAG, DOMAINS, SVSJOIN, SVSPART, VERSION",
+        "Quick Ref CRITERIA: MASK, NICK, IDENT, HOST, INFO, SERVER, IP, ACCOUNT, AUTHED, CHANNEL, NUMCHANNELS, LIMIT, NICKAGE, ACCESS, REASON, DEPTH, DURATION, CLONES, INFO_SPACE, CHECKRESTRICTIONS ABUSE OPERS, LOG, REGEX, CHANTARGET, SILENT, VERSION, MARKED",
         "Access level: $b${level/trace}$b",
         "$uSee Also:$u trace action, trace criteria"
         );
 
 "TRACE ACTION" ("$bTRACE ACTION$b",
         "Options for action in $btrace$b are:",
-        "$bPRINT$b:   Display the hostmask to you.",
-        "$bCOUNT$b:   Count all matching users.",
-        "$bKILL$b:    Kill matching clients.",
-        "$bGLINE$b:   Issue a gline for the client's host (by default, 1 hour long).",
-        "$bSHUN$b:    Issue a shun for the client's host (by default, 1 hour long).",
-        "$bGAG$b:     Gag all matching users (by default, does not expire).",
-        "$bDOMAINS$b: Display counts of users in each domain (length specified by DEPTH criteria.", 
+        "$bPRINT$b:    Display the hostmask to you.",
+        "$bCOUNT$b:    Count all matching users.",
+        "$bPRIVMSG$b:  Send a PRIVMSG to all matching users containing REASON.",
+        "$bNOTICE$b:   Send a NOTICE to all matching users containing REASON.",
+        "$bKILL$b:     Kill matching clients.",
+        "$bGLINE$b:    Issue a gline for the client's host (by default, 1 hour long).",
+        "$bSHUN$b:     Issue a shun for the client's host (by default, 1 hour long).",
+        "$bTEMPSHUN$b: Issue a temporary shun that affects only the targeted users.",
+        "$bGAG$b:      Gag all matching users (by default, does not expire).",
+        "$bDOMAINS$b:  Display counts of users in each domain (length specified by DEPTH criteria.", 
+        "$bSVSJOIN$b:  Force users to join channel givin in chantarget criteria.",
+        "$bSVSPART$b:  Force part the matching clients out of the specified target channel.",
+        "$bVERSION$b:  Query for the users CTCP VERSION reply.",
+        "$bMARK$b:     Set a nefarius 'mark' named via the mark criteria as if the user were in that dnsbl.",
         "Note: By default, IRC operators are not affected by the KILL, GLINE, SHUN 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.",
         "$uSee Also:$u trace criteria, trace"
         );
 
 "TRACE CRITERIA" ("$bTRACE CRITERIA$b",
         "Criteria and values for $btrace$b (a search with $btrace$b must match all specified items):",
-        "$bMASK$b nick!user@host    Specifies a full hostmask to search for.",
-        "$bNICK$b nick              Specifies a nick to search for.",
-        "$bIDENT$b ident            Specifies an ident to search for.",
-        "$bHOST$b host              Specifies a hostname to search for.",
-        "$bINFO$b infoline          Specifies a user's info to search for.",
-        "$bSERVER$b server          Specifies a server to search for.",
-        "$bIP$b 127.0.0.1           Specifies an IP to search for (independent of hostname).",
-        "$bACCOUNT$b account        Specifies an account to search for.",
-        "$bAUTHED$b yes/no          Specifies if matching users must be authenticated with $N or not",
-        "$bCHANNEL$b #target        Specifies a channel the client must be in.",
-        "$bNUMCHANNELS$b 5          Specifies a number of channels the client must be in.",
-        "$bLIMIT$b 50               Limits the number of responses to a certain number.",
-        "$bNICKAGE$b cmp            Client has had nick this long (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
-        "$bLINKED$b cmp             Connected to the network this long (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
-        "$bACCESS$b cmp             Access constraints (<nnn, <=nnn, =nnn, >=nnn or >nnn)",
-        "$bREASON$b reason          Reason for kill, gline or shun (must be listed last).",
-        "$bDEPTH$b depth            How many domain-name parts to use for $bDOMAINS$b action.",
-        "$bDURATION$b duration      How long to apply a G-line or gag (see $C help topic $bdurations$b).",
-        "$bCLONES$b min             Ignore clients from hosts with fewer than this many connections.",
-        "$bINFO_SPACE$b yes/no      Clients match only if their info starts with a space (' ') character.",
-        "$bABUSE OPERS$b            Force adverse actions to affect opers as well.",
-        "$bLOG$b                    Record matching users in $O's log file (in addition to acting).",
-        "$bREGEX$b yes/no           Specifies if NICK/IDENT/HOST/INFO should be treated as a regular expression.",
+        "$bMASK$b nick!user@host      Specifies a full hostmask to search for.",
+        "$bNICK$b nick                Specifies a nick to search for.",
+        "$bIDENT$b ident              Specifies an ident to search for.",
+        "$bHOST$b host                Specifies a hostname to search for.",
+        "$bINFO$b infoline            Specifies a user's info to search for.",
+        "$bMODES$b +modes-modes       Specifies modes they have and don't have.",
+        "$bSERVER$b server            Specifies a server to search for.",
+        "$bIP$b 127.0.0.1             Specifies an IP to search for (independent of hostname).",
+        "$bACCOUNT$b account          Specifies an account to search for.",
+        "$bAUTHED$b yes/no            Specifies if matching users must be authenticated with $N or not",
+        "$bCHANNEL$b #target          Specifies a channel the client must be in.",
+        "$bNUMCHANNELS$b 5            Specifies a number of channels the client must be in.",
+        "$bLIMIT$b 50                 Limits the number of responses to a certain number.",
+        "$bNICKAGE$b cmp              Client has had nick this long (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
+        "$bLINKED$b cmp               Connected to the network this long (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
+        "$bACCESS$b cmp               Access constraints (<nnn, <=nnn, =nnn, >=nnn or >nnn)",
+        "$bREASON$b reason            Reason for kill, gline or shun (must be listed last).",
+        "$bDEPTH$b depth              How many domain-name parts to use for $bDOMAINS$b action.",
+        "$bDURATION$b duration        How long to apply a G-line or gag (see $C help topic $bdurations$b).",
+        "$bCLONES$b min               Ignore clients from hosts with fewer than this many connections.",
+        "$bINFO_SPACE$b yes/no        Clients match only if their info starts with a space (' ') character.",
+        "$bABUSE OPERS$b              Force adverse actions to affect opers as well.",
+        "$bABUSE TRUSTED$b            Force adverse actions to affect users on trusted hosts as well.",
+        "$bTARGET$b                   Send alert notice to this channel.",
+        "$bLOG$b                      Record matching users in $O's log file (in addition to acting).",
+        "$bREGEX$b yes/no             Specifies if NICK/IDENT/HOST/INFO should be treated as a regular expression.",
+        "$bSILENT$b yes/no            If yes, AUTO is prepended to the gline message, making the gline silent in nefarious ircd.",
+        "$bVERSION$b version          If they have been queried using the VERSION action and responded, they are matched if the reply they give matches.",
+        "$bMARKED$b mark              If they have a dnsbl mark matching mark. (e.g. from an X line or alert)",
+        "$bCHANTARGET$b #channel      For use with SVSJOIN action, this specifies the channel they are svsjoined to.",
+        "$bCHECKRESTRICTIONS$b yes/no For use with SVSJOIN action, this specifies to check channel modes like bans, invite, limits, and key before the SVSJOIN is issued.",
+        "$bMARK$b mark                For use with the MARK action, this is what they are marked with.",
         "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.",
         "When searching on the criteria of nick, ident, or info, the search string can be another of the three, prefixed with a & character, to indicate that the match should compare each user's individual data.  For example, $binfo &nick$b would search for all users whose info matches their nick.  To search for that phrase explicitly, prefix the & with a backslash; e.g.: $binfo \&ident$b.",
         "$uSee Also:$u trace action, trace"
         "Criteria and values for $bcsearch$b (a search with $bcsearch$b must match all specified items):",
         "$bNAME$b name              Specifies a name to search for.",
         "$bTOPIC$b topic            Specifies a topic to search for.",
-       "$bUSERS$b cmp              User count constraint (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
+        "$bUSERS$b cmp              User count constraint (<Nu, <=Nu, =Nu, >=Nu or >Nu)",
         "$bTIMESTAMP$b cmp          Timestamp constraint (<Nu, <=Nu, =Nu, >=Nu or >Nu; supports interval notation)",
         "$bLIMIT$b 50               Limits the number of responses to a certain number."
         );
         );
 
 "UNBAN" ("/msg $O UNBAN <#channel> <hostmask>",
-       "Unbans the specified hostmask from the specified channel.",
-       "If the channel is omitted, the $bunban$b will be done in the channel where the command was given.",
+        "Unbans the specified hostmask from the specified channel.",
+        "If the channel is omitted, the $bunban$b will be done in the channel where the command was given.",
         "Access level: $b${level/unban}$b",
-       "$uSee Also:$u kickban, kickbanall, ban"
+        "$uSee Also:$u kickban, kickbanall, ban"
         );
 
 "CLEARBANS" ("/msg $O CLEARBANS <#channel> ",
         "$uSee Also:$u deop, devoiceall, op, opall"
         );
 
+"DEHOP" ("/msg $O DEHOP <#channel> <nick> [nick]...",
+        "Dehalfops the specified user from the specified channel.",
+        "If the channel is omitted, then $bdehop$b will be done in the channel where the command was given.",
+        "Access level: $b${level/dehalfop}$b",
+        "$uSee Also:$u dehalfopall, hop, hopall"
+        );
+
+"DEHOPALL" ("/msg $O DEHOPALL <#channel>",
+        "Dehalfops all members of the specified channel.",
+        "If the channel is omitted, then $bdehopall$b will be done in the channel where the command was given.",
+        "Access level: $b${level/dehopall}$b",
+        "$uSee Also:$u dehop, hop, hopall"
+        );
+
 "DEVOICEALL" ("/msg $O DEVOICEALL <#channel>",
         "Devoice all members of the specified channel who do not have channel ops.",
         "If the channel is omitted, then $bdevoiceall$b will be done in the channel where the command was given.",
         "Access level: $b${level/kick}$b",
         "$uSee Also:$u ban, kickall, kickban, kickbanall"
         );
-
+"FORCEKICK" ("/msg $O FORCEKICK <#channel> <nick> [reason]",
+        "Kicks the specified user from the specified channel even if he is a channel service (+k).",
+        "If the channel is omitted, then $bforcekick$b will be done in the channel where the command was given.",
+        "$uSee Also:$u ban, kick, kickall, kickban, kickbanall"
+        );
 "KICKALL" ("/msg $O KICKALL <#channel> [reason]",
         "Kicks all users in the specified channel except for the user issuing the command.",
         "If the channel is omitted, then $bkickall$b will be done in the channel where the command was given.",
         "$uSee Also:$u ban, kick, kickban"
         );
 
+"MARK" ("/msg $O MARK <mark>",
+        "Sets a nefarious 'mark' on the user as if they are in <mark> dnsbl. ",
+        "(shows in /whois and prefixes their host, for easy banning)",
+        "Mark must be a-z0-9 or dash (-) 20 chars or less.",
+        "$uSee Also:$u trace action"
+        );
+
+"SVSJOIN" ("/msg $O SVSJOIN <nick> <#channel>",
+        "Forces nick to join #channel",
+        "$uSee Also:$u svspart, join, trace action"
+        );
+
+"SVSPART" ("/msg $O SVSPART <nick> <#channel>",
+        "Forces nick to part #channel",
+        "$uSee Also:$u svsjoin, part, trace action"
+        );
+
+"SVSNICK" ("/msg $O SVSNICK <nick> <newnick>",
+        "Forces nick to change nick to newnick",
+        "$uSee Also:$u svspart, svsjoin"
+        );
+
 "MODE" ("/msg $O MODE <#channel> <+/- mode>",
         "Sets the specified modes (but cannot include voice, ban or op changes) on a channel.",
         "If the channel is omitted, then $bmode$b will be done in the channel where the command was given.",
         "$uSee Also:$u deopall"
         );
 
+"HOP" ("/msg $O HOP <#channel> <nick> [nick]...",
+        "Half ops specified nicknames the specified channel.",
+        "If the channel is omitted, then $bhop$b will be done in the channel where the command was given.",
+        "Access level: $b${level/hop}$b",
+        "$uSee Also:$u dehop, dehopall, hopall"
+        );
+
+"HOPALL" ("/msg $O HOPALL <#channel>",
+        "Half ops all members of the specified channel.",
+        "If the channel is omitted, then $bhopall$b will be done in the channel where the command was given.",
+        "Access level: $b${level/hopall}$b",
+        "$uSee Also:$u dehopall"
+        );
+
 "VOICEALL" ("/msg $O VOICEALL <#channel>",
         "Voices all members of the specified channel who do not have channel ops.",
         "If the channel is omitted, then $bvoiceall$b will be done in the channel where the command was given.",
         "  UNGLINE  [${level/ungline}]"
         );
 
-"BLOCK" ("/msg $O BLOCK <nick> [reason]",
-        "GLINES the host of the specified nick for one hour  If no reason is given, use a default reason.",
+"BLOCK" ("/msg $O BLOCK <nick> [duration] [reason]",
+        "GLINES the host of the specified nick for one hour if no duration is given.  If no reason is given, use a default reason.",
         "Access level: $b${level/block}$b",
         "$uSee Also:$u gline, ungline"
         );
         "Options for the action in $bgtrace$b are:",
         "$bPRINT$b: Display the glines (mask, issuer, expiration time, reason)",
         "$bCOUNT$b: Count the number of matching glines",
-       "$bUNGLINE$b: Remove matching glines",
+        "$bUNGLINE$b: Remove matching glines",
         "$uSee Also:$u gtrace criteria, gtrace"
         );
 
         "$bLIMIT$b count            Limits the number of matching glines.",
         "$bREASON$b reason          Looks for glines with the given reason.",
         "$bISSUER$b account         Looks for glines issued by the given account.",
+        "$bLASTMOD$b interval       Looks for glines last modified in the specified time.",
         "$bAFTER$b interval         Looks for glines that expire more than $binterval$b in the future.",
         "$uSee Also:$u gtrace action, gtrace"
         );
 
 "GSYNC" ("/msg $O GSYNC [server]",
-       "Requests a list of GLINES from its uplink or the specified server.  This can be used in the event X3 is down for period and becomes desynced.",
+        "Requests a list of GLINES from its uplink or the specified server.  This can be used in the event X3 is down for period and becomes desynced.",
         "Access level: $b${level/gsync}$b",
-       "$uSee Also:$u refreshg, gline, ungline"
+        "$uSee Also:$u refreshg, gline, ungline"
+        );
+
+"DEFCON" ("/msg $O DEFCON [1|2|3|4|5]",
+        "The defcon system can be used to implement a pre-defined set of restrictions to services useful during an attempted attack on the network. Not specifying a level will cause $O to display the currently set defcon level and options if the level is below 5",
+        "Access level: $b${level/defcon}$b",
         );
 
 "REFRESHG" ("/msg $O REFRESHG [server]",
         "  UNSHUN   [${level/unshun}]"
         );
 
-"SBLOCK" ("/msg $O SBLOCK <nick> [reason]",
-        "SHUNS the host of the specified nick for one hour  If no reason is given, use a default reason.",
+"SBLOCK" ("/msg $O SBLOCK <nick> [duration] [reason]",
+        "SHUNS the host of the specified nick for one hour if no duration is given.  If no reason is given, use a default reason.",
         "Access level: $b${level/sblock}$b",
         "$uSee Also:$u shun, unshun"
         );
         "Options for the action in $bstrace$b are:",
         "$bPRINT$b: Display the shuns (mask, issuer, expiration time, reason)",
         "$bCOUNT$b: Count the number of matching shuns",
-       "$bUNSHUN$b: Remove matching shuns",
+        "$bUNSHUN$b: Remove matching shuns",
         "$uSee Also:$u strace criteria, strace"
         );
 
         "$bLIMIT$b count            Limits the number of matching shuns.",
         "$bREASON$b reason          Looks for shuns with the given reason.",
         "$bISSUER$b account         Looks for shuns issued by the given account.",
+        "$BLASTMOD$b interval       Looks for shuns last modified in the specified time.",
         "$bAFTER$b interval         Looks for shuns that expire more than $binterval$b in the future.",
         "$uSee Also:$u strace action, strace"
         );
 
 "SSYNC" ("/msg $O SSYNC [server]",
-       "Requests a list of SHUNS from its uplink or the specified server.  This can be used in the event X3 is down for period and becomes desynced.",
+        "Requests a list of SHUNS from its uplink or the specified server.  This can be used in the event X3 is down for period and becomes desynced.",
         "Access level: $b${level/ssync}$b",
-       "$uSee Also:$u refreshs, shun, unshun"
+        "$uSee Also:$u refreshs, shun, unshun"
         );
 
 "REFRESHS" ("/msg $O REFRESHS [server]",
         );
 
 "JUPE" ("/msg $O JUPE <srvname> <srvnum> <description>",
-       "Causes X3 to create a \"juped\" (dummy) server.  This can be used to prevent a poorly connected server from connecting.",
+        "Causes X3 to create a \"juped\" (dummy) server.  This can be used to prevent a poorly connected server from connecting.",
         "Access level: $b${level/jupe}$b",
-       "$uSee Also:$u unjupe, clone, reserve"
+        "$uSee Also:$u unjupe, clone, reserve"
         );
 
 "RESERVE" ("/msg $O RESERVE <nickname> <user> <host> <comment>",
         );
 
 "UNJUPE" ("/msg $O UNJUPE <srvname>",
-       "Causes X3 to unjupe a jupe server.",
+        "Causes X3 to unjupe a jupe server.",
         "Access level: $b${level/unjupe}$b",
-       "$uSee Also:$u jupe, unreserve, clone"
-        );
+        "$uSee Also:$u jupe, unreserve, clone"
+        );
+
+"ROUTING ADDPLAN" ("/msg $O ROUTING ADDPLAN <name>",
+        "Creates a new blank routing plan named name.",
+        "You can then use $bROUTING ADDSERVER$b to build it.",
+        "Use $bSTATS ROUTING [name]$b to view it, and $bROUTING SET ACTIVE$b to activate it.",
+        "$uSee Also:$u routing, stats routing, routing delplan, routing set, routing addserver"
+        );
+"ROUTING DELPLAN" ("/msg $O ROUTING DELPLAN <name>",
+        "Removes the routing plan name, including all the servers that make it up. Use with caution, there is no undo.",
+        "$uSee Also:$u routing, stats routing, routing addplan"
+        );
+
+"ROUTING ADDSERVER" ("/msg $O ROUTING ADDSERVER <plan> <name>[:port] <uplink> [backup uplink]",
+        "Adds a server to the routing plan 'plan'.",
+        " plan   - The name of a routing plan already created.",
+        " server - The name of the server you are adding (full hostname).",
+        " port   - The port that the server listens to connectons on. If you leave this out, the default is taken from $bSET ROUTING DEFAULT_PORT$b.",
+        " uplink - This is the server (full hostname) that you want the server to connect to.",
+        " backup uplink - If uplink is offline, this one takes over.",
+        " $b$b ",
+        " It is $uvery$u important that the routing plan be from a consistant perspective, without any loops, or disconnected pieces. It helps to pick a server (usually the one $O is liked to) and consider which server each of the servers links to towards $O. For an example see /msg $O HELP ROUTING EXAMPLE.",
+        " If you add a server whose name already exists, the old one will be replaced.",
+        "$uSee Also:$u routing, stats routing, routing delserver, routing addplan",
+        );
+
+"ROUTING EXAMPLE" ("An Auto Routing System Example:",
+        "  Consider the following map: ",
+        "    test.net.org         - test's uplink is x3",
+        "    |-X3.NET.Services    - this is me",
+        "    |-laptop.net.org     - laptop's uplink is test",
+        "    | `-foobar.net.org   - foobar's uplink is laptop",
+        "    `-test2.net.org      - test2's uplink is test",
+        "      `-test3.net.org    - test3's uplink is test2",
+        " $b$b ",
+        " Its important that every entry in your routing plan be specified relitive to the same location. Usually this is the location of X3 itself, but doesn't have to be. In the above example you could do:",
+        "  ROUTING ADDPLAN myplan ",
+        "  ROUTING ADDSERVER myplan test.net.org:4400 x3.net.services ",
+        "  ROUTING ADDSERVER myplan test2.net.org:4400 test.net.org ",
+        "  ROUTING ADDSERVER myplan test3.net.org:4400 test2.net.org ",
+        "  ROUTING ADDSERVER myplan laptop.net.org:4400 test.net.org ",
+        "  ROUTING ADDSERVER myplan foobar.net.org:4400 laptop.net.org ",
+        "  ROUTING SET ACTIVE myplan ",
+        " $b$b ",
+        " If there are loops, or two servers who point to eachother, $O will not be able to use the plan. If there are sections which do not link back to the rest, they will be lost and the plan will not work properly.",
+        );
+       
+"ROUTING DELSERVER" ("/msg $O ROUTING DELSERVER <plan> <server>",
+        "Deletes a server from a routing plan.",
+        "$uSee also:$u routing, stats routing, routing addserver, routing delplan",
+        );
+
+"ROUTING SET" ("/msg $O ROUTING SET [option] [value]",
+        "Changes The Auto Routing System options",
+        "  ACTIVE           - Sets which routing plan is active. ",
+        "                     Set to 'none' to disable auto routing.",
+        "  RETRY_PERIOD     - How often to check for missing servers",
+        "                     see /msg $C durations for help with units",
+        "  CONN_PINGOUT     - enable to auto-reconnect servers that ping out",
+        "  CONN_READERROR   - enable to auto-reconnect servers that squit with a read error",
+        "  KARMA            - enable to keep track of oft-splitting servers, and try to route around them",
+        "  DEFAULT_PORT     - If you don't specify a port in $brouting addserver$b, this port is used",
+        " $b$b ",
+        " Issue without any option/value to see the current value(s).",
+        "$uSee also:$u routing, stats routing, routing addserver",
+       );
+
+"ROUTING MAP" ("/msg $O ROUTING MAP",
+        "Shows the currently active routing plan, as parsed and re-centered for use.",
+        "Before $O can take a routing plan as entered by you, and use it, $O must re-orient the map so all the uplinks point toward it. Loops are detected, and missing pieces lost. This command shows you the desired route, as $O has compiled it.",
+        "If KARMA is enabled, or a server is un-connectable, $O may use a backup uplink to build this map to attempt to repair the network.",
+        "The check box [ ] is used to indicate if the current routing of the network conforms to the routing map.",
+        "[X] - Server is linked correctly",
+        "[!] - Server is linked, but not where the plan specifies",
+        "[ ] - Server is not linked to the network at all",
+        " $b$b",
+        "$uSee also:$u routing, stats routing, routing set, routing addserver",
+        );
+
+"REROUTE" ("/msg $O REROUTE <C|N|T>",
+        "Allows $O to make changes to the linkage of the servers on the network. It has 3 modes: Normal, Connect-only, and Test:",
+        " N - Normal mode: Will delink any servers which are not linked to their primary uplink, and try to reconnect them correctly according to the active routing plan. it will also try to connect servers that are completely missing.",
+        " C - Connect-only:  Will attempt to connect any missing servers to the network, using the active routing plan.",
+        " T - Test: Will do the same as normal mode, only all actions will be simulated. No actual rerouting will take place, it will only tell you what it WOULD do in normal mode.",
+        " $b$b ",
+        "$uSee also:$u routing, routing map, stats routing",
+        );
+
+"STATS ROUTING" ("/msg $O STATS ROUTING [planmask]",
+        "Provides information about The Auto Routing System's configuration. You can see the routing plans, and the current routing options.",
+        " If planmask is provided, you will see the full details for any plans matching the mask (* and ? wildcards)",
+        "$uSee also:$u routing, routing set",
+        );
+
+"PRIVSET" ("/msg $O PRIVSET <nick> <+/-flag>",
+           "Allows $O to set flags on users.",
+           "Access level: $b${level/privset}$b",
+           "$uSee also: privflags"
+          );
 
 "UNRESERVE" ("/msg $O UNRESERVE <nick>",
         "Removes a nick from $b$O's$b reserve list.",
         "$bOPERS$b:      A list of users that are currently +o.",
         "$bPROXYCHECK$b: Information about proxy checking in X3.",
         "$bRESERVED$b:   The list of currently reserved nicks.",
+        "$bROUTING$b:    The routing plans and settings of the Auto Routing System",
         "$bTIMEQ$b:      The number of events in the timeq, and how long until the next one.",
         "$bTRUSTED$b:    The list of currently trusted IPs.",
         "$bUPTIME$b:     X3 uptime, lines processed, and CPU time.",
         "$bMODULES$b:    Shows loaded modules that implement commands.",
         "$bSERVICES$b:   Shows active service bots.",
         "Access level: $b${level/stats}$b",
-        );
+        "$b$b",
+        "$uSee Also:$u stats alerts"
+        );
+
+"STATS ALERTS" ("/msg $O STATS ALERTS [Owner|Filter]",
+        "Show alerts. If a parameter is given, only alerts who match it are shown.",
+        "$b$b",
+        " Owner  - the account name of whoever created the alert",
+        " Filter - A wildcard (* and ?) match string compared against the criteria string",
+        "$b$b",
+        "Example: STATS ALERTS *nick phil*",
+        "$uSee Also:$u addalert, delalert, stats"
+        );
+
+"TRACK" ("/msg $O TRACK <+/-type|all|none>",
+        "This specifies what will be tracked in the tracking channel.",
+        "Use + to add flags and - to remove types. Use ALL to enable all",
+        "tracking options available, use NONE to completly disable them.",
+        "Available flags are:",
+        "auth  - Auths",
+        "chanmode - Channel Modes",
+        "del   - Quits",
+        "join  - Joins",
+        "kick  - Kicks",
+        "new   - New Nicks",
+        "nick  - Nick Changes",
+        "part  - Parts",
+        "umode - Umodes");
+
+"ADDTRACK" ("/msg $O ADDTRACK <nick>",
+        "Adds the given <nick> to the tracking list.",
+        "$uSee Also:$u deltrack listtrack addalert");
+
+"DELTRACK" ("/msg $O DELTRACK <nick>",
+        "Removes the given <nick> from the tracking list.",
+        "$uSee Also:$u deltrack listtrack");
+
+"LISTTRACK" ("/msg $O LISTTRACK",
+        "Lists all currently active tracks.",
+        "$uSee Also:$u addtrack deltrack");
+
+"RESETMAX" ("/msg $O RESETMAX",
+        "Resets the max clients number to the current ammount of connected clients. Use with caution.",
+        "$uSee Also:$u stats max");
 
-"INDEX" "${index}";