]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - docs/inspircd.helpop-full.example
Fix extras compilation under Windows
[user/henk/code/inspircd.git] / docs / inspircd.helpop-full.example
index d0f621d6307f1c399f0763b257ae00bd193fb87f..f85aab9f5b6f470b9f1437809075dd541ccb0b31 100644 (file)
 #  Helpop Standard  #
 #####################
 
-<start line1="     InspIRCd help system"
-       line2="     --------------------"
-       line3="-"
-       line4="This system provides help for commands and modes."
-       line5="Specify your question or a command name as the"
-       line6="parameter for this command. If you are an oper"
-       line7="you must prefix your query with a ? symbol."
-       line8="-"
-       line9="/HELPOP COMMANDS      -      To see a list of user commands"
-       line10="/HELPOP COPER         -      To see a list of oper commands"
-       line11="/HELPOP UMODES        -      To see a list of user modes"
-       line12="/HELPOP CHMODES       -      To see a list of channel modes">
-
-<nohelp line1="There is no help for the topic"
-       line2="You searched for. Please try again.">
-
-<nohelpo line1="There is no help for the topic"
-       line2="You searched for. Please try again."
-       line3="-"
-       line4="Your Query has been forwarded to the IRCops">
+<alias text="HELPOP" replace="HELP $2-">
+
+<helpop key="start" value="InspIRCd Help System
+
+This system provides help for commands and modes.
+Specify your question or a command name as the
+parameter for this command.
+
+/HELP CUSER    -      To see a list of user commands
+/HELP COPER    -      To see a list of oper commands
+/HELP UMODES   -      To see a list of user modes
+/HELP CHMODES  -      To see a list of channel modes
+/HELP SNOMASKS -      To see a list of oper snotice masks
+/HELP EXTBANS  -      To see a list of extended bans">
+
+<helpop key="nohelp" value="There is no help for the topic
+you searched for. Please try again.">
 
 #####################
 #   User Commands   #
 #####################
 
-<commands line1="User Commands"
-       line2="-------------"
-       line3="USER      NICK     QUIT     VERSION    PING"
-       line4="PONG      ADMIN    PRIVMSG  INFO       TIME"
-       line5="WHOIS     NOTICE   JOIN     NAMES      PART"
-       line6="KICK      MODE     TOPIC    WHO        MOTD"
-       line7="RULES     OPER     LIST     LUSERS     STATS"
-       line8="USERHOST  AWAY     ISON     SUMMON     USERS"
-       line9="INVITE    PASS     WHOWAS   LINKS      MAP"
-       line10="COMMANDS  MODULES  KNOCK    SILENCE    DEVOICE"
-       line11="REMOVE    PARK     UNPARK   UNINVITE   VHOST"
-       line12="WATCH     USERIP">
-       
-<watch line1="/WATCH [C|S|+/-[NICK]]"
-       line2="Adds or deletes a user from the watch list. C clears the list"
-       line3="and S queries the status.">
-       
-<vhost line1="/VHOST [username] [password]"
-       line2="Authenticate for a vhost.">
-
-<park line1="/PARK"
-       line2="Parks the nickname which issues the command. The session's"
-       line3="connection is closed, but the session remains as a ghost, to"
-       line4="be reclaimed later. When the user quits, they will be given a" 
-       line5="key which is random.">
-       
-<unpark line1="/UNPARK [nickname] [key]"
-       line2="Unparks the nickname specified. The nickname must already"
-       line3="be previously parked, and the key must match the one for"
-       line4="this nickname.">
-
-<kick line1="/REMOVE [channel] [nick] {[reason]}"
-       line2="Removes a user from a channel you specify. You must be"
-       line3="At least a channel halfoperator to remove a user."
-       line4="A removed user will part with a message stating they"
-       line5="were removed from the channel and by whom.">
-
-<devoice line1="/DEVOICE [channel]"
-       line2="Devoices yourself from the specified channel.">
-
-<silence line1="/SILENCE +/-[nick]"
-       line2="A serverside /ignore of the given nick. It does not follow"
-       line3="the users nick so if they change their nick you will recieve"
-       line4="their messages. /SILENCE without a parameter will list the nicks"
-       line5="that you have silenced.">
-
-<knock line1="/KNOCK [channel]"
-       line2="Sends a notice to a channel indicating you wish to join.">
-
-<user line1="/USER [ident] [local host] [remote host] :[GECOS]"
-       line2="This command is used by your client to register your irc session."
-       line3="You should not use it during an established connection.">
-
-<nick line1="/NICK [new nick]"
-       line2="Change your nickname to [new nick].">
-
-<quit line1="/QUIT [reason]"
-       line2="Quit from IRC and end your current session.">
-
-<version line1="/VERSION"
-       line2="Returns the server's version number.">
-
-<ping line1="/PING [server]"
-       line2="Ping a server. Target server will answer with a PONG.">
-
-<pong line2="/PONG [server]"
-       line2="Your client should send this to answer server PINGs. You"
-       line3="should not issue this command manually.">
-
-<admin line1="/ADMIN [server]"
-       line2="Fetches the administrative information on the given server.">
-
-<privmsg line1="/MSG [target] [text]"
-       line2="Sends a message to a user or channel specified in [target].">
-
-<notice line1="/NOTICE [target] [text]"
-       line2="Sends a notice to a user or channel specified in [target].">
-
-<join line1="/JOIN [channel]{,[channel]} [key]{,[key]}"
-       line2="Joins one or more channels you provide the names for.">
-
-<names line1="/NAMES [channel]{,[channel]}"
-       line2="Return a list of users on the channels you provide.">
-
-<part line1="/PART [channel]{,[channel] [reason]}"
-       line2="Leaves one or more channels you specify.">
-
-<kick line1="/KICK [channel] [nick] {[reason]}"
-       line2="Kicks a user from a channel you specify. You must be"
-       line3="At least a channel halfoperator to kick a user.">
-
-<mode line1="/MODE [target] [+|-][modes]{[+|-][modes]} {mode parameters}"
-       line2="Sets the mode for a channel or a nickname specified in [target]"
-       line3="A user may only set modes upon themselves, and may not set the"
-       line4="+o usermode, and a user may only change channel modes of"
-       line5="channels where they are at least a halfoperator.">
-
-<topic line1="/TOPIC [channel] {topic}"
-       line2="Sets or retrieves the channel topic. If a channel topic is"
-       line3="given in teh command and the channel is either not +t, or"
-       line4="You are at least a halfoperator, the channel topic will be"
-       line5="changed to the new one you provide.">
-
-<who line1="/WHO [channel|nick|servermask|o 0]"
-       line2="Looks up the information of users matching the range you"
-       line3="provide. You may only /WHO nicknames in channels or on servers"
-       line4="where you share a common channel with them."
-       line5="The syntax '/WHO o 0' shows a list of online IRC operators.">
-
-<motd line1="/MOTD [server]"
-       line2="Show the message of the day for [server]. Messages of the"
-       line3="day contain important server rules and notice and should be"
-       line4="read before using a server in any way!">
-
-<rules line1="/RULES"
-       line2="Show the rules file for the local server. This is similar in"
-       line3="effect to /MOTD except that rules are optional. All users are"
-       line4="sent the MOTD when they connect without having to request it.">
-
-<oper line1="/OPER [login] [password]"
-       line2="Attempts to authenticate a user as an IRC operator."
-       line3="Please be aware that both successful and unsucessful oper attempts"
-       line4="Are logged, and sent to online IRC operators.">
-
-<list line1="/LIST [pattern]"
-       line2="Creates a list of all existing channels matching the glob pattern"
-       line3="[pattern], e.g. *chat* or bot*.">
-
-<lusers line1="/LUSERS"
-       line2="Shows a count of local and remote users, servers and channels.">
-
-<userhost line1="/USERHOST [nickname]"
-       line2="Returns the hostname and nickname of a user, and some other"
-       line3="miscellanious information.">
-       
-<userip line1="/USERIP [nickname]"
-       line2="Returns the ip and nickname of a user."
-
-<away line1="/AWAY {message}"
-       line2="If a message is given, marks you as being away, otherwise"
-       line3="removes your away status and previous message.">
-
-<ison line1="/ISON [nick] {[nick]...}"
-       line2="Returns a subset of the nicks you give, showing only those"
-       line3="that are currently online.">
+<helpop key="cuser" value="User Commands
+-------------
+
+PRIVMSG   NOTICE   NICK      JOIN      PART
+CYCLE     KNOCK    MODE      DEVOICE   TOPIC
+KICK      FPART    REMOVE    TBAN      INVITE
+UNINVITE  AWAY     DCCALLOW  SILENCE   ACCEPT
+MKPASSWD  VHOST    TITLE     SETNAME
+
+WHOIS     WHOWAS   ISON      USERHOST  WATCH
+LIST      NAMES    WHO       MOTD      RULES
+ADMIN     MAP      LINKS     LUSERS    TIME
+STATS     VERSION  INFO      MODULES   COMMANDS
+SSLINFO   FINGERPRINT
+
+USER      PASS     PING     PONG       QUIT
+
+OPER">
+
+<helpop key="sslinfo" value="/SSLINFO [nick]
+
+Displays information on the SSL connection and certificate of the
+target user.">
+
+<helpop key="fingerprint" value="/FINGERPRINT [nick]
+
+Shows the SSL fingerprint of a user. This can be used for
+authentication by bots and scripts.">
+
+<helpop key="uninvite" value="/UNINVITE [nick] [channel]
+
+Uninvite a user from a channel, same syntax as INVITE.">
+
+<helpop key="tban" value="/TBAN [channel] [duration] [banmask]
+
+Sets a timed ban. The duration of the ban can be specified in the
+following format: 1w2d3h4m6s which indicates a ban of one week, two
+days, three hours, four minutes and six seconds. Alternatively the
+ban may just be specified as a number of seconds. All timed bans
+appear in the banlist as normal bans and may be safely removed
+before their time is up.">
+
+<helpop key="dccallow" value="/DCCALLOW [+|-] [nick] [duration]
+
+Adds a nickname to or deletes a nickname from your DCCALLOW list.">
+
+<helpop key="accept" value="/ACCEPT [+-*] [nick]{ [, [+-]<nick> ] }
+
+Manages your accept list. This list is used to determine who can
+private message you when you have usermode +g set. ACCEPT +nick adds
+a nick to your accept list, ACCEPT -nick removes a nick from your
+accept list, and ACCEPT * displays your accept list.">
+
+<helpop key="cycle" value="/CYCLE [channel]
+
+Cycles a channel (leaving and rejoining), overrides restrictions that
+would stop a new user joining, such as user limits and channel keys.">
+
+<helpop key="title" value="/TITLE [name] [password]
+
+Authenticate for a WHOIS title line and optionally a vhost using the
+specified username and password.">
+
+<helpop key="watch" value="/WATCH [C|S|+/-[NICK]]
+
+Adds or deletes a user from the watch list. C clears the list
+and S queries the status.">
+
+<helpop key="vhost" value="/VHOST [username] [password]
+
+Authenticate for a vhost using the specified username and password.">
+
+<helpop key="remove" value="/REMOVE [nick] [channel] {[reason]}
+
+Removes a user from a channel you specify. You must be at least a
+channel halfoperator to remove a user. A removed user will part with
+a message stating they were removed from the channel and by whom.">
+
+<helpop key="fpart" value="/FPART [channel] [nick] {[reason]}
+
+This behaves identically to /REMOVE, the only difference is that that
+[channel] and [nick] parameters are switched around to match /KICK's
+syntax. Also, /REMOVE is a builtin mIRC command which caused trouble
+for some users. This feature was added in the 1.1 branch.">
+
+<helpop key="devoice" value="/DEVOICE [channel]
+
+Devoices yourself from the specified channel.">
+
+<helpop key="silence" value="/SILENCE [+/-][hostmask] [p|c|i|n|t|a|x]
+
+A serverside ignore of the given n!u@h mask. The letter(s) at the end
+specify what is to be ignored from this hostmask.
+
+Valid SILENCE Flags
+-------------------
+
+ p        Block private messages
+ c        Block channel messages
+ i        Block invites
+ n        Block private notices
+ t        Block channel notices
+ a        Block all of the above
+ x        Exception
+
+Multiple letters may be specified. For an exception, you msut pair x
+with what you want excepted. For example, if you wanted to except
+everything from people with a host matching *.foo.net, you would do
+/SILENCE +*!*@*.foo.net xa
+
+/SILENCE without a parameter will list the hostmasks that you have silenced.">
+
+<helpop key="knock" value="/KNOCK [channel]
+
+Sends a notice to a channel indicating you wish to join.">
+
+<helpop key="user" value="/USER [ident] [local host] [remote host] :[GECOS]
+
+This command is used by your client to register your
+IRC session, providing your ident and GECOS to the
+server.
+
+You should not use it during an established connection.">
+
+<helpop key="nick" value="/NICK [new nick]
+
+Change your nickname to [new nick].">
+
+<helpop key="quit" value="/QUIT {[reason]}
+
+Quit from IRC and end your current session.">
+
+<helpop key="version" value="/VERSION
+
+Returns the server's version information.">
+
+<helpop key="ping" value="/PING [server]
+
+Ping a server. Target server will answer with a PONG.">
+
+<helpop key="pong" value="/PONG [server]
+
+Your client should send this to answer server PINGs. You
+should not issue this command manually.">
+
+<helpop key="admin" value="/ADMIN [server]
+
+Shows the administrative information for the given server.">
+
+<helpop key="privmsg" value="/PRIVMSG [target] [text]
+
+Sends a message to a user or channel specified in [target].">
+
+<helpop key="notice" value="/NOTICE [target] [text]
+
+Sends a notice to a user or channel specified in [target].">
+
+<helpop key="join" value="/JOIN [channel]{,[channel]} [key]{,[key]}
+
+Joins one or more channels you provide the names for.">
+
+<helpop key="names" value="/NAMES [channel]{,[channel]}
+
+Return a list of users on the channels you provide.">
+
+<helpop key="part" value="/PART [channel]{,[channel] [reason]}
+
+Leaves one or more channels you specify.">
+
+<helpop key="kick" value="/KICK [channel] [nick] {[reason]}
+
+Kicks a user from a channel you specify. You must be
+At least a channel halfoperator to kick a user.">
+
+<helpop key="mode" value="/MODE [target] [+|-][modes]{[+|-][modes]} {mode parameters}
+
+Sets the mode for a channel or a nickname specified in [target]
+A user may only set modes upon themselves, and may not set the
++o usermode, and a user may only change channel modes of
+channels where they are at least a halfoperator.
+
+For a list of all user and channel modes, enter /HELP UMODES or
+/HELP CHMODES.">
+
+<helpop key="topic" value="/TOPIC [channel] {topic}
+
+Sets or retrieves the channel topic. If a channel topic is
+given in the command and either the channel is not +t, or
+you are at least a halfoperator, the channel topic will be
+changed to the new one you provide.">
+
+<helpop key="who" value="/WHO [ [search-pattern] [ohurmaiMplf] ]
+
+Looks up the information of users matching the range you provide.
+You may only /WHO nicknames in channels or on servers where you
+share a common channel with them, or ones which are not +i (unless
+you are an IRC operator). The search-pattern may be a special
+sequence of characters determined by the flags given below, or
+it may be one of a nickname, a channel, a hostmask, an ip address
+mask or a server mask.
+
+Valid WHO Flags
+---------------
+
+The following flags after the mask have the following effects:
+
+ o      Show online IRC operators matching the mask
+
+ a      Show all users who have an away message matching the given mask
+ i      Show all users who have an ident (username) matching the given mask
+ p      Show all users who are connected on the given port number
+ r      Show all users whose realnames match the mask. When this
+        flag is set it overrides the meaning of the search-pattern,
+        which must contain a glob pattern intended to match GECOS
+        (realname) fields.
+ m      Search for all users with a given set of user modes. When
+        this flag is set it overrides the meaning of the
+        search-pattern, which must contain the mode sequence to
+        search for, for example to find all users with +i and
+        without +s, issue the command WHO +i-s m.
+ t      Show users connected within this number of seconds
+ M      Show all users who have metadata attached to them with
+        the given key name
+
+ f      Show only remote (far) users
+ l      Show only local users
+
+ h      Show real hostnames rather than masked hostnames (IRC
+        operators only)
+ u      Unlimit the results past the maximum /who results value
+        (IRC operators only)
+
+You may combine multiple flags in one WHO command except where stated in the table above.">
+
+<helpop key="motd" value="/MOTD [server]
+
+Show the message of the day for [server]. Messages of the day often
+contain important server rules and notices and should be read prior
+to using a server.">
+
+<helpop key="rules" value="/RULES
+
+Show the rules file for the local server. This is similar in effect to
+except that these are not sent automatically on connect.">
+
+<helpop key="oper" value="/OPER [login] [password]
+
+Attempts to authenticate a user as an IRC operator.
+
+Both successful and unsuccessful oper attempts are
+logged, and sent to online IRC operators.">
+
+<helpop key="list" value="/LIST [pattern]
+
+Creates a list of all existing channels matching the glob pattern
+[pattern], e.g. *chat* or bot*.">
+
+<helpop key="lusers" value="/LUSERS
+
+Shows a count of local and remote users, servers and channels.">
+
+<helpop key="userhost" value="/USERHOST [nickname]
+
+Returns the hostname and nickname of a user, and some other
+miscellaneous information.">
+
+<helpop key="away" value="/AWAY {message}
+
+If a message is given, marks you as being away, otherwise
+removes your away status and previous message.">
+
+<helpop key="ison" value="/ISON [nick] {[nick]...}
+
+Returns a subset of the nicks you give, showing only those
+that are currently online.">
+
+<helpop key="invite" value="/INVITE [nick] [channel] {[time]}
+
+Invites a user to a channel. If the channel is NOT +A, only
+channel halfoperators or above can invite people. If +A is set,
+anyone can invite people to the channel, as long as the person
+doing the invite is a member of the channel they wish to invite
+the user to.
+
+Invited users may override bans, +k, and similar in addition to
++i, depending on configuration.
+
+If a time is provided, the invite expires after that time and the user
+can no longer use it to enter the channel.">
+
+<helpop key="pass" value="/PASS [password]
+
+This command is used by your client when setting up
+your IRC session to submit a server password to the
+server.
+
+You should not use it during an established connection.">
+
+<helpop key="whowas" value="/WHOWAS [nick]
+
+Returns a list of times the user was seen recently on IRC along with
+the time they were last seen and their server.">
+
+<helpop key="links" value="/LINKS
+
+Shows all servers linked to this one.">
+
+<helpop key="map" value="/MAP
+
+Shows a graphical representation of all users and servers on the
+network, and the links between them, as a tree from the perspective
+of your server.">
+
+<helpop key="whois" value="/WHOIS [nick] {server}
+
+Returns the WHOIS information of a user, their channels, hostname,
+etc. If a second nickname or server is provided, then a whois is
+performed from the server where the user is actually located rather
+than locally, showing idle and signon times.">
+
+<helpop key="time" value="/TIME [servermask]
+
+Returns the local time of the server, or remote time of another
+server.">
+
+<helpop key="info" value="/INFO
+
+Returns information on the developers and supporters who made this
+IRC server possible.">
+
+<helpop key="setname" value="/SETNAME [name]
+
+Sets your name to the specified name.">
 
-<summon line1="/SUMMON [user]"
-       line2="Summons a user from the shell where the ircd is running onto irc"
-       line3="This command is deprecated in the current protocol.">
-
-<users line1="/USERS"
-       line2="Shows users logged into the shell where the ircd is running."
-       line3="This command is deprecated in the current protocol.">
-
-<invite line1="/INVITE [nick] [channel]"
-       line2="Invites a user to a channel. If the channel is NOT +i, any"
-       line3="user, channel op or not, may invite any other user to the"
-       line4="channel, so long as they are a member of that channel."
-       line5="Otherwise, if +i is set only channel halfoperators"
-       line6="and above may invite users into the channel.">
-
-<pass line1="/PASS [password]"
-       line2="This command is used by your irc client when setting up"
-       line3="your irc session, and should not be issued by a fully"
-       line4="connected client.">
-
-<whowas line1="/WHOWAS [nick]"
-       line2="Returns a list of times the user was last seen on irc"
-       line3="along with the time they were last seen and their server.">
-
-<links line1="/LINKS"
-       line2="Shows all servers linked to this one. Note that in this"
-       line3="server implementation all links will be flattened as"
-       line4="a tree based layout is not in use.">
-
-<map line1="/MAP"
-       line2="Shows a graphical representation of all users and servers"
-       line3="on the network. The tree diagram is inaccurate in this"
-       line4="implementation as a tree based network is not in place.">
 
 #####################
 #   Oper Commands   #
 #####################
 
-<coper line1="Oper Commands"
-       line2="-------------"
-       line3="DIE        RESTART     KILL         REHASH         TRACE"
-       line4="CONNECT    SQUIT       MODULES      MKPASSWD       SHUN"
-       line5="KLINE      QLINE       GLINE        ELINE          ZLINE"  
-       line6="SAJOIN     SAPART      SAMODE       SAQUIT         SANICK"
-       line7="SETIDLE    SETHOST     SETNAME      SETIDENT       SWHOIS"
-       line8="OPERMOTD   CHGHOST     CHGNAME      CHGIDENT       CBAN"
-       line9="NICKLOCK   NICKUNLOCK  LOADMODULE   UNLOADMODULE   GLOBOPS"
-       line10="SPYLIST    SPYNAMES    GLOADMODULE  GUNLOADMODULE  MKSHA256"
-       line11="PARKSTATS  FREEZE      UNFREEZE     OPERPERMS      RCONNECT">
-
-<rconnect line1="/RCONNECT [source mask] [target mask]"
-       line2="All servers matching [source mask] will try to connect to"
-       line3="the first server in the config file matching [target mask].">
-
-<operperms line1="/OPERPERMS [nick]"
-       line2="List all commands an oper has access to use.">
-
-<freeze line1="/FREEZE [nick]"
-       line2="Prevents the user from sending commands until they reconnect."
-       line3="User is also notified they have been frozen.">
-       
-<unfreeze line1="/UNFREEZE [nick]"
-       line2="Unfreezes a user frozen by the /FREEZE command.">
-
-<parkstats line1="/PARKSTATS"
-       line2="Displays the park module's statistics">
-
-<spylist line1="/SPYLIST"
-       line2="Operates the same as /LIST but includes +s and +p channels.">
-       
-<spynames line1="/SPYNAMES [channel]"
-       line2="Operates the same as /name but works on +s and +p channels.">
-
-<globops line1="/GLOBOPS [message]"
-       line2="Sends a message to all +g users.">
-
-<cban   line1="/CBAN [channel] {[duration] :[reason]}"
-       line2="Sets or removes a channel ban. You must specify at least"
-       line3="3 parameters to add a ban, and one parameter to remove a ban."
-       line4="The duration may be specified in seconds, or in the following format"
-       line5="1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,"
-       line6="5 minutes and 6 seconds. All fields in this format are optional.">
-
-<sajoin line1="/SAJOIN [nick] [channel]"
-       line2="Forces the user to join the channel.">
-       
-<sapart line1="/SAPART [nick] [channel]"
-       line2="Forces the user to part the channel.">
-       
-<samode line1="/SAMODE [#chan/nick] +/-[modes] {[parameters for modes]}"
-       line2="Gives the channel or nick the modes specified.">
-       
-<sanick line1="/SANICK [nick] [new nick]"
-       line2="Changes the users nick to the new nick.">
-
-<saquit line1="/SAQUIT [nick] [reason]"
-       line2="Forces user to quit with the specified reason.">
-       
-<setidle line1="/SETIDLE [idle time]"
-       line2="Sets your idle time (in seconds).">
-       
-<sethost line1="/SETHOST [host]"
-       line2="Sets your host to the specified host.">
-       
-<setident line1="/SETIDENT [ident]"
-       line2="Sets your ident to the specified ident.">
-       
-<setname line1="/SETNAME [name]"
-       line2="Sets your name to the specified name.">
-       
-<swhois line="/SWHOIS [nick] [swhois]"
-       line2="Sets the users swhois field to the given swhois.">
-
-<mkpasswd line1="/MKPASSWD [plaintext]"
-       line2="Encodes the plaintext to an MD5 hash and displays the result.">
-       
-<mksha256 line1="/MKSHA256 [plaintext]"
-       line2="Encodes the plaintext to an SHA-256 hash and displays the result.">
-
-<opermotd line1="/OPERMOTD"
-       line2="Re-displays the Oper MOTD.">
-
-<nicklock line1="/NICKLOCK [nick] [new nick]"
-       line2="Changes user's nick to the new nick, and forces"
-       line3="it to remain as such for the remainder of the session.">
-       
-<nickunlock line1="/NICKUNLOCK [nick]"
-       line2="Allows the user to change nicks.">
-
-<chghost line1="/CHGHOST [nickname] [new hostname]"
-       line2="Changes the hostname of the user to the new hostname>.">
-       
-<chgname line1="/CHGNAME [nickname] [new name]"
-       line2="Changes the name of the user to the new name>.">
-
-<chgident line1="/CHGIDENT [nickname] [new ident]"
-       line2="Changes the ident of the user to the new ident.">
-
-<shun line1="/SHUN [user@host] {[duration] :[reason]}"
-       line2="Sets or removes a shun (serverside ignore) on a host and ident mask."
-       line3="You must specify at least 3 parameters to add a shun, and one"
-       line4="parameter to remove a shun (just the user@host section)."
-       line5="The duration may be specified in seconds, or in the following format"
-       line6="1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,"
-       line7="5 minutes and 6 seconds. All fields in this format are optional.">
-
-<die line1="/DIE [password]"
-       line2="If the correct password is provided, and you are an operator,"
-       line3="This command will shut down the local server.">
-
-<restart line1="/RESTART [password]"
-       line2="If the correct password is provided, and you are an operator,"
-       line3="This command will restart the local server.">
-
-<commands line1="/COMMANDS"
-       line2="Shows all currently available commands.">
-
-<kill line1="/KILL [user] [reason]"
-       line2="This command will disconnect a user from IRC with the given reason.">
-
-<rehash line1="/REHASH"
-       line2="This command will cause the server configuration file to be"
-       line3="re-read and values re-initialised.">
-
-<trace line1="/TRACE [nick|user@host|servermask]"
-       line2="This command will provide a list of all users and servers which"
-       line3="must be passed through or over to reach a given object (server or user).">
-
-<connect line1="/CONNECT [servermask]"
-       line2="Create a mesh connection to the given servermask. You must have"
-       line3="configured the server for linking in your configuration file,"
-       line4="and provided a password.">
-
-<squit line1="/SQUIT"
-       line2="Disconnects the local server from the mesh network, causing every"
-       line3="other server in the mesh to drop it.">
-
-<modules line1="/MODULES"
-       line2="Lists currently loaded modules, their memory offsets and version"
-       line3="numbers and flags. If you are not an operator, you will see reduced"
-       line4="detail.">
-
-<loadmodule line1="/LOADMODULE [filename.so]"
-       line2="Loads a module into the IRCd.">
-
-<unloadmodule line1="/UNLOADMODULE [filename.so]"
-       line3="Unloads a module from the IRCd. The module cannot have the static"
-       line4="flag set (see the output of /MODULES).">
-       
-<gloadmodule line1="/GLOADMODULE [filename.so]"
-       line2="Globally loads a module into the network.">
-
-<gunloadmodule line1="/GUNLOADMODULE [filename.so]"
-       line3="Globally unloads a module from the network. The module cannot "
-       line4="have the static flag set (see the output of /MODULES).">
-       
-<kline line1="/KLINE [user@host] {[duration] :[reason]}"
-       line2="Sets or removes a k-line (host based ban) on a host and ident mask."
-       line3="You must specify at least 3 parameters to add a ban, and one"
-       line4="parameter to remove a ban (just the user@host section)."
-       line5="The duration may be specified in seconds, or in the following format"
-       line6="1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,"
-       line7="5 minutes and 6 seconds. All fields in this format are optional.">
-
-<zline line1="/ZLINE [ipmask] {[duration] :[reason]}"
-        line2="Sets or removes a z-line (ip based ban) on an ip range mask."
-        line3="You must specify at least 3 parameters to add a ban, and one"
-        line4="parameter to remove a ban (just the user@host section)."
-        line5="The duration may be specified in seconds, or in the following format"
-        line6="1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,"
-        line7="5 minutes and 6 seconds. All fields in this format are optional.">
-
-<qline line1="/QLINE [nickmask] {[duration] :[reason]}"
-        line2="Sets or removes a q-line (nick based ban) on a nick mask."
-        line3="You must specify at least 3 parameters to add a ban, and one"
-        line4="parameter to remove a ban (just the user@host section)."
-        line5="The duration may be specified in seconds, or in the following format"
-        line6="1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,"
-        line7="5 minutes and 6 seconds. All fields in this format are optional.">
-
-<gline line1="/GLINE [user@host] {[duration] :[reason]}"
-        line2="Sets or removes a g-line (global host based ban) on host mask."
-        line3="You must specify at least 3 parameters to add a ban, and one"
-        line4="parameter to remove a ban (just the user@host section)."
-        line5="The duration may be specified in seconds, or in the following format"
-        line6="1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,"
-        line7="5 minutes and 6 seconds. All fields in this format are optional.">
-
-<eline line1="/ELINE [user@host] {[duration] :[reason]}"
-       line2="Sets or removes a e-line (local ban exception) on host mask."
-       line3="You must specify at least 3 parameters to add an exception, and one"
-       line4="parameter to remove an exception (just the user@host section)."
-       line5="The duration may be specified in seconds, or in the following format"
-       line6="1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,"
-       line7="5 minutes and 6 seconds. All fields in this format are optional.">
+<helpop key="coper" value="Oper Commands
+-------------
+
+OPERMOTD  CHECK     CLONES      USERIP   LINE
+ALLTIME   MODULES   WALLOPS     GLOBOPS
+
+SETHOST   SETIDENT  CHGHOST     CHGIDENT CHGNAME
+SETIDLE   SWHOIS
+
+SANICK    NICKLOCK  NICKUNLOCK
+
+SAJOIN    SAPART    SAMODE      SATOPIC  SAKICK
+
+KILL      SAQUIT    GLINE       ZLINE    QLINE
+KLINE     RLINE     ELINE       CBAN     SHUN
+FILTER    OJOIN
+
+CONNECT   SQUIT     RCONNECT    RSQUIT
+
+DIE            RESTART      REHASH
+CLEARCACHE     LOADMODULE   UNLOADMODULE
+RELOADMODULE   GLOADMODULE  GUNLOADMODULE
+GRELOADMODULE  RELOAD       CLOSE
+LOCKSERV       UNLOCKSERV   JUMPSERVER">
+
+<helpop key="userip" value="/USERIP [nickname]
+
+Returns the ip and nickname of a user.">
+
+<helpop key="tline" value="/TLINE [host or ip mask]
+
+This command returns the number of local and global clients matched,
+and the percentage of clients matched, plus how they were matched
+(by IP address or by hostname).">
+
+<helpop key="lockserv" value="/LOCKSERV
+
+Locks out all new connections notifying connecting users that the
+service is temporarily closed and to try again later.">
+
+<helpop key="unlockserv" value="/UNLOCKSERV
+
+Opens the server up again for new connections.">
+
+<helpop key="jumpserver" value="/JUMPSERVER {[newserver] [newport] [+/-flags] {:[reason]}}
+
+Sets or cancels jumpserver mode. If no parameters are given,
+jumpserver mode is cancelled, if it is currently set. If parameters
+are given, a server address must be given for [newserver] and a
+server port must be given for [newport]. Zero or more status flags
+should be given for 'flags', from the list below (if you do not
+wish to specify any flags just place a '+' in this field):
+
+1. +a: Redirect all users immediately (except for opers) and cause
+them to quit with the given reason
+
+2. +n: Redirect any new users who connect and cause them to quit
+during registration
+
+You may use + and - to set or unset these flags in the command, the
+default flags are -a+n, which will just redirect new users. The
+reason parameter is optional, and if not provided defaults to
+'Please use this server/port instead' (the default given in various
+numeric lists)">
+
+<helpop key="filter" value="/FILTER [filter-definition] {[action] [flags] {[gline-duration]} :[reason]}
+
+This command will add a filter when more than one parameter is given,
+for messages of the types specified by the flags, with the given
+filter definition, action, gline duration (when the action is 'gline')
+and reason.
+
+The filter will take effect when a message of any type specified by
+the flags and matching the definition is sent to the server, and
+perform the specified action.
+
+Valid FILTER Actions
+--------------------
+
+None    Does nothing
+Block   Blocks message and informs +s IRCops of the blocked message
+        and all relevant info
+Silent  Blocks message, but does not notify IRCops
+Kill    Kills the user
+Gline   Glines the user for the specified duration
+
+Valid FILTER Flags
+------------------
+
+p    Block private and channel messages
+n    Block private and channel notices
+P    Block part messages
+q    Block quit messages
+o    Don't match against opers
+*    Represents all of the above flags
+-    Does nothing, a non-op for when you do not want to specify any
+     flags
+
+The reason for the filter will be used as the reason for the action,
+unless the ation is 'none', and is sent to the user when their text is
+blocked by 'block' and 'silent' actions.
+
+A gline duration may be specified in seconds, or in the format
+1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours, 5
+minutes and 6 seconds. All fields in this format are optional.
+
+When only one parameter is provided (the filter pattern) the provided
+filter will be removed. Note that if you remove a
+configuration-defined filter, it will reappear at next rehash unless
+it is also removed from the config file.">
+
+<helpop key="ojoin" value="/OJOIN [#chan]
+
+Force joins you to the specified channel, and gives you +Y and any other
+configuration-defined modes on it, preventing you from being kicked.
+Depending on configuration, may announce that you have joined the
+channel on official network business.">
+
+<helpop key="clones" value="/CLONES [limit]
+
+Retrieves a list of users with more clones than the specified
+limit.">
+
+<helpop key="check" value="/CHECK [nick|ip|hostmask|channel] {[server]}
+
+Allows opers to look up advanced information on channels, hostmasks
+or IP addresses, in a similar way to WHO but in more detail, displaying
+most information the IRCD has stored on the target, including all
+metadata.
+
+With the second parameter given, runs the command remotely on the
+specified server.">
+
+<helpop key="alltime" value="/ALLTIME
+
+Shows the time on all servers on the network.">
+
+<helpop key="rconnect" value="/RCONNECT [source mask] [target mask]
+
+The server matching [source mask] will try to connect to the first
+server in the config file matching [target mask].">
+
+<helpop key="rsquit" value="/RSQUIT {[source mask]} [target mask]
+
+Causes a remote server matching [target mask] to be disconnected from
+the network, only if connected via a server matching [source mask] if
+it is specified.">
+
+<helpop key="globops" value="/GLOBOPS [message]
+
+Sends a message to all users with the +g snomask.">
+
+<helpop key="cban" value="/CBAN [channel] {[duration] :[reason]}
+
+Sets or removes a channel ban. You must specify all three parameters
+to add a ban, and one parameter to remove a ban (just the channel).
+
+The duration may be specified in seconds, or in the format
+1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,
+5 minutes and 6 seconds. All fields in this format are optional.">
+
+<helpop key="sajoin" value="/SAJOIN [nick] [channel]
+
+Forces the user to join the channel.">
+
+<helpop key="sapart" value="/SAPART [nick] [channel]
+
+Forces the user to part the channel.">
+
+<helpop key="samode" value="/SAMODE [target] +/-[modes] {[parameters for modes]}
+
+Applies the given mode change to the channel or nick specified.">
+
+<helpop key="sanick" value="/SANICK [nick] [new nick]
+
+Changes the user's nick to the new nick.">
+
+<helpop key="saquit" value="/SAQUIT [nick] [reason]
+
+Forces user to quit with the specified reason.">
+
+<helpop key="setidle" value="/SETIDLE [idle time]
+
+Sets your idle time (in seconds) to the specified value.">
+
+<helpop key="sethost" value="/SETHOST [host]
+
+Sets your host to the specified host.">
+
+<helpop key="setident" value="/SETIDENT [ident]
+
+Sets your ident to the specified ident.">
+
+<helpop key="swhois" line="/SWHOIS [nick] [swhois]
+
+Sets the user's swhois field to the given swhois.">
+
+<helpop key="mkpasswd" value="/MKPASSWD [hashtype] [plaintext]
+
+Encodes the plaintext to a hash of the given type and displays
+the result.">
+
+<helpop key="opermotd" value="/OPERMOTD
+
+Redisplays the Oper MOTD.">
+
+<helpop key="nicklock" value="/NICKLOCK [nick] [new nick]
+
+Changes the user's nick to the new nick, and forces
+it to remain as such for the remainder of the session.">
+
+<helpop key="nickunlock" value="/NICKUNLOCK [nick]
+
+Allows a previously locked user to change nicks again.">
+
+<helpop key="chghost" value="/CHGHOST [nickname] [new hostname]
+
+Changes the hostname of the user to the new hostname.">
+
+<helpop key="chgname" value="/CHGNAME [nickname] [new name]
+
+Changes the name of the user to the new name.">
+
+<helpop key="chgident" value="/CHGIDENT [nickname] [new ident]
+
+Changes the ident of the user to the new ident.">
+
+<helpop key="shun" value="/SHUN [nick!user@host] {[duration] :[reason]}
+
+Sets or removes a shun (serverside ignore) on a host and ident mask.
+You must specify all three parameters to add a shun, and one parameter
+to remove a shun (just the nick!user@host section).
+
+The duration may be specified in seconds, or in the format
+1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,
+5 minutes and 6 seconds. All fields in this format are optional.">
+
+<helpop key="die" value="/DIE [password]
+
+This command shuts down the local server. A single parameter is
+required, which must match the password in the configuration for the
+command to function.">
+
+<helpop key="restart" value="/RESTART [password]
+
+This command restarts down the local server. A single parameter is
+required, which must match the password in the configuration for the
+command to function.">
+
+<helpop key="commands" value="/COMMANDS
+
+Shows all currently available commands.">
+
+<helpop key="kill" value="/KILL [user] [reason]
+
+This command will disconnect a user from IRC with the given reason.">
+
+<helpop key="rehash" value="/REHASH
+
+This command will cause the server configuration file to be reread and
+values reinitialized for all servers matchin the server mask, or the
+local server if one is not specified.">
+
+<helpop key="connect" value="/CONNECT [servermask]
+
+Add a connection to the server matching the given servermask. You must
+have configured the server for linking in your configuration file
+before trying to link them.">
+
+<helpop key="squit" value="/SQUIT [servermask]
+
+Disconnects the server matching the given servermask from this server.">
+
+<helpop key="modules" value="/MODULES
+
+Lists currently loaded modules, their memory offsets, version numbers,
+and flags. If you are not an operator, you will see reduced detail.">
+
+<helpop key="loadmodule" value="/LOADMODULE [filename.so]
+
+Loads the specified module into the local server.">
+
+<helpop key="unloadmodule" value="/UNLOADMODULE [filename.so]
+
+Unloads a module from the local server. The module cannot have the
+static flag set (see the output of /MODULES).">
+
+<helpop key="reloadmodule" value="/RELOADMODULE [filename.so]
+
+Unloads and reloads a module on the local server. This module cannot
+have the static flag set (see the output of /MODULES).">
+
+<helpop key="loadmodule" value="/GLOADMODULE [filename.so]
+
+Loads the specified module on all linked servers.">
+
+<helpop key="unloadmodule" value="/GUNLOADMODULE [filename.so]
+
+Unloads a module from all linked servers. The module cannot have the
+static flag set (see the output of /MODULES).">
+
+<helpop key="reloadmodule" value="/GRELOADMODULE [filename.so]
+
+Unloads and reloads a module on all linked servers. This module cannot
+have the static flag set (see the output of /MODULES).">
+
+<helpop key="kline" value="/KLINE [user@host] {[duration] :[reason]}
+
+Sets or removes a k-line (local host based ban) on a host and ident mask.
+You must specify all three parameters to add a ban, and one parameter
+to remove a ban (just the user@host section).
+
+The duration may be specified in seconds, or in the format
+1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,
+5 minutes and 6 seconds. All fields in this format are optional.">
+
+<helpop key="zline" value="/ZLINE [ipmask] {[duration] :[reason]}
+
+Sets or removes a z-line (ip based ban) on an ip range mask.
+You must specify all three parameters to add a ban, and one parameter
+to remove a ban (just the ipmask).
+
+The duration may be specified in seconds, or in the format
+1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,
+5 minutes and 6 seconds. All fields in this format are optional.">
+
+<helpop key="qline" value="/QLINE [nickmask] {[duration] :[reason]}
+
+Sets or removes a q-line (nick based ban) on a nick mask.
+You must specify all three parameters to add a ban, and one parameter
+to remove a ban (just the nickmask).
+
+The duration may be specified in seconds, or in the format
+1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,
+5 minutes and 6 seconds. All fields in this format are optional.">
+
+<helpop key="gline" value="/GLINE [user@host] {[duration] :[reason]}
+
+Sets or removes a g-line (host based ban) on host mask.
+You must specify all three parameters to add a ban, and one
+parameter to remove a ban (just the user@host section).
+
+The duration may be specified in seconds, or in the format
+1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,
+5 minutes and 6 seconds. All fields in this format are optional.">
+
+<helpop key="eline" value="/ELINE [user@host] {[duration] :[reason]}
+
+Sets or removes a e-line (local ban exception) on host mask.
+You must specify at least 3 parameters to add an exception, and one
+parameter to remove an exception (just the user@host section).
+
+The duration may be specified in seconds, or in the format
+1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,
+5 minutes and 6 seconds. All fields in this format are optional.
+
+This command has a few important limitations. Bans on *@<ip> can only
+be negated by an eline on *@<ip>, bans on *@<host> can be negated by
+elines on *@<ip>, or *@<host>, and bans on <ident>@* or <ident>@<host>
+can be negated by any eline that matches.">
+
+<helpop key="wallops" value="/WALLOPS [message]
+
+Sends a message to all +w users.">
+
+<helpop key="sakick" value="/SAKICK [#chan] [nick] [reason]
+
+Kicks the given user from the specified channel.">
+
+<helpop key="satopic" value="/SATOPIC [#chan] [new topic]
+
+Applies the given topic to the specified channel.">
+
+<helpop key="rline" value="/RLINE [regex] {[duration] :[reason]}
+
+Sets or removes an r-line (regex line) on a n!u@h\\sgecos mask. You
+must specify all three parameters to add an rline, and one parameter
+to remove an rline (just the regex).
+
+The duration may be specified in seconds, or in the format
+1y2w3d4h5m6s - meaning one year, two weeks, three days, 4 hours,
+5 minutes and 6 seconds. All fields in this format are optional.">
+
+<helpop key="clearcache" value="/CLEARCACHE {servername}
+
+This command clears the DNS cache of the specified server. If no
+server is specified, the local server's DNS cache will be cleared.">
+
+<helpop key="reload" value="/RELOAD [core command]
+
+Reloads the specified core command.">
+
+<helpop key="close" value="/CLOSE
+
+Closes all unregistered connections to the local server.">
 
 ######################
 # User/Channel Modes #
 ######################
 
-<umodes line1="User Modes"
-       line2="----------"
-       line3="o                Is an IRC operator"
-       line4="i                Is invisible to /WHO"
-       line5="w                Can receive wallops messages"
-       line6="s                Can receive server notices"
-       line7="x                Cloaked hostname (requires cloaking module)"
-       line8="g                Can receive globops (requires globops module)"
-       line9="h                Will receive helpops notification (requires helpop module)"
-       line10="r                Nickname is registered"
-       line11="R                Only registered users can PRIVMSG this nickname"
-       line12="B                Is a bot"
-       line13="G                Messages are censored to user"
-       line14="W                Can see when a user uses WHOIS on them"
-       line15="S                mIRC colour codes are stripped to the user"
-       line16="D                User can not recieve PRIVMSGs">
-
-<chmodes line1="Channel Modes"
-       line2="-------------"
-       line3="v [nickname]       Gives voice to [nickname] (can talk on +m channel)"
-       line4="h [nickname]       Gives halfops to [nickname]"
-       line5="o [nickname]       Gives ops to [nickname]"
-       line6="b [hostmask]       Bans [hostmask] on the channel"
-       line7="a [nickname]       Give protected status to [nickname] (+q only)"
-       line8="q [nickname]       Give founder status to [nickname] (ulines only)"
-       line9="i                  Make the channel invite only, must /INVITE users"
-       line10="k [key]            Set the channel key (password) to [key]"
-       line11="l [limit]          Set the maximum possible users to [limit]"
-       line12="m                  Enable moderation. Only +vo(h) can speak"
-       line13="n                  Only users who are members of the channel may message it"
-       line14="p                  Make channel private (hide from /LIST)"
-       line15="s                  Make channel secret (can't be used at the same time as +p)"
-       line16="O                  Channel is IRCops only (can only be set by IRCops)"
-       line17="t                  Only halfops and above can change the topic"
-       line18="Q                  Only U-Lined servers/nicks can kick"
-       line19="T                  Only halfops/ops can send NOTICEs to the channel"
-       line20="C                  No CTCPs allowed to the channel"
-       line21="c                  mIRC colour codes blocked on the channel"
-       line22="S                  mIRC colour codes are stripped from the channel"
-       line23="e [hostmask]       Ban exception on [hostmask]"
-       line24="K                  No /KNOCK allowed to channel"
-       line25="L [channel]        If the channel is full, redirect users to [channel]"
-       line26="N                  No nickchanges while on the channel"
-       line27="G                  Censors channel based on network censor config"
-       line28="g [word]           All messages containing the word are blocked"
-       line29="I [hostmask]       Invite exception allows user to join a channel with +i"
-       line30="j [joins]:[sec]    Prevents join flooding"
-       line31="J [seconds]        Prevents auto-rejoin on kick"
-       line32="f [*][lines]:[sec] Kick on text flood. With * user is banned"
-       line33="V                  No invites allowed"
-       line34="r                  Channel is registered"
-       line35="R                  Only registered users can join"
-       line36="M                  Non-registered users can't chat"
-       line37="z                  SSL clients only"
-       line38="x                  Join exception mask. Avoids +ibkO"
-       line39="-------------"
-       line40="NOTE: A large number of these modes are dependent upon server-side modules"
-       line41="being loaded by a server/network administrator. The actual modes available"
-       line42="on your network may be very different to this list. Please consult your"
-       line43="help channel if you have any questions.">
+<helpop key="umodes" value="User Modes
+----------
+
+ c            Blocks private messages and notices from users who do
+              not share a common channel with you (requires
+              commonchans module).
+ d            Deaf mode. User will not recieve any messages or notices
+              from channels they are in (requires deaf module).
+ g            In combination with /allow, provides for server side
+              ignore (requires callerid module).
+ h            Marks as 'available for help' in WHOIS (IRCop only,
+              requires helpop module).
+ i            Makes invisible to /WHO if the user using /WHO is not in
+              a common channel.
+ k            Prevents the user from being kicked from channels, or
+              having op modes removed from them (services only,
+              requires servprotect module).
+ o            Marks as a IRC operator.
+ s [mask]     Receives server notices specified by [mask]
+              (IRCop only).
+ r            Marks as a having a registered nickname
+              (requires services account module).
+ w            Receives wallops messages.
+ x            Gives a cloaked hostname (requires cloaking module).
+ B            Marks as a bot (requires botmode module).
+ G            Censors messages sent to the user based on filters
+              configured for the network (requires censor module).
+ H            Hides an oper's oper status from WHOIS (requires
+              hideoper module).
+ I            Hides a user's entire channel list in WHOIS from
+              non-IRCops (requires hidechans module).
+ Q            Makes an operator invisible, preventing users from
+              seeing their presence, including in channel user lists
+              (IRCop only, requires invisible module).
+ R            Blocks private messages from unregistered users
+              (requires services account module).
+ S            Strips mIRC colour/bold/underline codes out of private
+              messages to the user (requires stripcolor module).
+ W            Receives notification when a user uses WHOIS on them
+              (IRCop only, requires showwhois module).">
+
+<helpop key="chmodes" value="Channel Modes
+-------------
+
+ v [nickname]       Gives voice to [nickname], allowing them to speak
+                    while the channel is +m.
+ h [nickname]       Gives halfop status to [nickname] (this mode can
+                    be disabled).
+ o [nickname]       Gives op status to [nickname].
+ a [nickname]       Gives protected status to [nickname], preventing
+                    them from them from being kicked (+q only,
+                    requires chanprotect module).
+ q [nickname]       Gives owner status to [nickname], preventing them
+                    from being kicked (Services or only, requires
+                    chanprotect module).
+
+ b [hostmask]       Bans [hostmask] from the channel.
+ e [hostmask]       Excepts [hostmask] from bans (requires
+                    banexception module).
+ I [hostmask]       Excepts [hostmask] from +i, allowing matching
+                    users to join while the channel is invite-only
+                    (requires inviteexception module).
+
+ c                  Blocks messages containing mIRC colour codes
+                    (requires blockcolor module).
+ d [time]           Blocks messages to a channel from new users
+                    until they have been in the channel for [time]
+                    seconds (requires delaymsg module).
+ f [*][lines]:[sec] Kicks on text flood equal to or above the
+                    specified rate. With *, the user is banned
+                    (requires messageflood module).
+ i                  Makes the channel invite-only.
+                    Users can only join if an operator
+                    uses /INVITE to invite them.
+ j [joins]:[sec]    Limits joins to the specified rate (requires
+                    joinflood module).
+ k [key]            Set the channel key (password) to [key].
+ l [limit]          Set the maximum allowed users to [limit].
+ m                  Enable moderation. Only users with +v, +h, or +o
+                    can speak.
+ n                  Blocks users who are not members of the channel
+                    from messaging it.
+ p                  Make channel private, hiding it in users' whoises
+                    and replacing it with * in /LIST.
+ r                  Marks the channel as registered with Services
+                    (requires services account module).
+ s                  Make channel secret, hiding it in users' whoises
+                    and /LIST.
+ t                  Prevents users without +h or +o from changing the
+                    topic.
+ u                  Makes the channel an auditorium; normal users only
+                    see themselves or themselves and the operators,
+                    while operators see all the users (requires
+                    auditorium module).
+ w [flag]:[banmask] Adds basic channel access controls of [flag] to
+                    [banmask], via the +w listmode.
+                    For example, +w o:R:Brain will op anyone identified
+                    to the account 'Brain' on join.
+                    (requires autoop module)
+ z                  Blocks non-SSL clients from joining the channel.
+
+ A                  Allows anyone to invite users to the channel
+                    (normally only chanops can invite, requires
+                    allowinvite module).
+ B                  Blocks messages with too many capital letters,
+                    as determined by the network configuration
+                    (requires blockcaps module).
+ C                  Blocks any CTCPs to the channel (requires noctcp
+                    module).
+ D                  Delays join messages from users until they
+                    message the channel (requires delayjoin module).
+ F [changes]:[sec]  Blocks nick changes when they equal or exceed the
+                    specified rate (requires nickflood module).
+ G                  Censors messages to the channel based on the
+                    network configuration (requires censor module).
+ J [seconds]        Prevents rejoin after kick for the specified
+                    number of seconds. This prevents auto-rejoin
+                    (requires kicknorejoin module).
+ K                  Blocks /KNOCK on the channel.
+ L [channel]        If the channel reaches its limit set by +l,
+                    redirect users to [channel] (requires redirect
+                    module).
+ M                  Blocks unregistered users from speaking (requires
+                    services account module).
+ N                  Prevents users on the channel from chainging nick
+                    (requires nonicks module).
+ O                  Channel is IRCops only (can only be set by IRCops,
+                    requires operchans module).
+ P                  Makes the channel permanent; Bans, invites, the
+                    topic, modes, and such will not be lost when it
+                    empties (can only be set by IRCops, requires
+                    permchannels module).
+ Q                  Only ulined servers and their users can kick
+                    (requires nokicks module)
+ R                  Blocks unregistered users from joining (requires
+                    services account module).
+ S                  Strips mIRC colour codes from messages to the
+                    channel (requirs stripcolor module).
+ T                  Blocks /NOTICEs to the channel from users who are
+                    not at least halfop (requires nonotice module).
+ g [mask]           Blocks messages matching the given blob mask
+                    (requires chanfilter module).
+ X [mode]           Makes channel operators immune to the specified
+                    restrictive mode (requires exemptchanops module).
+
+-------------
+NOTE: A large number of these modes are dependent upon server-side modules
+being loaded by a server/network administrator. The actual modes available
+on your network may be very different to this list. Please consult your
+help channel if you have any questions.">
 
 ######################
 #   Stats Symbols    #
 ######################
 
-<stats line1="/STATS [symbol]"
-       line2="Shows various server statistics. Depending on configuration this"
-       line3="command may be reserved for oper-only use."
-       line4="-"
-       line5="Valid symbols are:"
-       line6="-"
-       line7="m  Show command statistics, number of times commands have been used"
-       line8="z  Show memory usage statistics"
-       line9="o  Show a list of all valid oper usernames and hostmasks"
-       line10="l  Show all inbound and outbound server and client connections"
-       line11="u  Show server uptime"
-       line12="k  Show k-lines (local bans)"
-       line13="g  Show g-lines (global bans)"
-       line14="q  Show q-lines (nick mask bans)"
-       line15="Z  Show z-lines (ip mask bans)"
-       line16="Y  Show connection classes"
-       line17="C  Show link blocks"
-       line18="U  Show u-lined servers"
-       line19="P  Show online opers and their idle times"
-       line20="I  Show connect class permissions"
-       line21="e  Show e-lines (local ban exemptions)"
-       line22="C  Show channel bans"
-       line22="s  Show shuns"
-       line22="-"
-       line23="Note that all /STATS use is broadcast to online IRC operators.">
+<helpop key="stats" value="/STATS [symbol]
+
+Shows various server statistics. Depending on configuration, some
+symbols may be only available to opers.
+
+Valid symbols are:
+
+e  Show e-lines (local ban exemptions)
+g  Show g-lines (host bans)
+k  Show k-lines (local host bans)
+q  Show q-lines (nick mask bans)
+Z  Show z-lines (ip mask bans)
+
+s  Show filters
+C  Show channel bans
+
+c  Show link blocks
+l  Show all inbound and outbound server and client connections
+m  Show command statistics, number of times commands have been used
+o  Show a list of all valid oper usernames and hostmasks
+p  Show open client ports, and the port type (ssl, plaintext, etc) plus number of users on each port
+u  Show server uptime
+z  Show memory usage statistics
+I  Show connect class permissions
+L  Show all client connections with information and IP address
+P  Show online opers and their idle times
+T  Show bandwidth/socket statistics
+U  Show u-lined servers
+Y  Show connection classes
+
+Note that all /STATS use is broadcast to online IRC operators.">
+
+######################
+#      SNOMASKS      #
+######################
+
+<helpop key="snomasks" value="Server Notice Masks
+
+ a      Allows receipt of local announcement messages.
+ A      Allows receipt of remote announcement messages.
+ c      Allows receipt of local connect messages.
+ C      Allows receipt of remote connect messages.
+ d      Allows receipt of general (and sometimes random) debug
+        messages.
+ f      Allows receipt of flooding notices.
+ g      Allows receipt of globops (requires globops module).
+ G      Allows receipt of notices of use of oper-override (requires
+        override module)
+ j      Allows receipt of channel creation notices (requires
+        chancreate module).
+ J      Allows receipt of remote channel creation notices (requires
+        chancreate module).
+ k      Allows receipt of local kill messages.
+ K      Allows receipt of remote kill messages.
+ l      Allows receipt of local linking related
+        messages.
+ L      Allows receipt of remote linking related
+        messages.
+ n      See local nickname changes (requires seenicks module).
+ N      See remote nickname changes (requires seenicks modules).
+ o      Allows receipt of oper-up, oper-down, and oper-failure
+        messages.
+ O      Allows receipt of remote oper-up, oper-down, and oper-failure
+        messages.
+ q      Allows receipt of local quit messages.
+ Q      Allows receipt of remote quit messages.
+ t      Allows receipt of attempts to use /STATS (local and remote).
+ v      Allows receipt of oper-override notices (requires override module).
+ x      Allows receipt of Xline notice (g/z/q/k/e).">
+
+######################
+#      EXTBANS       #
+######################
 
+<helpop key="extbans" value="Extended Bans
+----------
+
+Extbans are split into two types; matching extbans, which match on
+users in additional ways, and acting extbans, which restrict users
+in different ways to a standard ban.
+
+To use an extban, simply set +b <ban> or +e <ban> with it as the ban,
+instead of a normal nick!user@host mask, to ban or exempt matching
+users. Ban exceptions on acting extbans exempt that user from matching
+an extban of that type, and from any channel mode corresponding to the
+restriction. Matching extbans may also be used for invite exceptions by
+setting +I <extban>.
+
+Matching extbans:
+
+ j:#channel    Matches anyone in #channel. Does not support wildcards
+               for #channel (requires channelban module).
+ r:realname    Matches users with a matching realname (requires gecosban
+               module).
+ s:server      Matches users on a matching server (requires serverban
+               module).
+ z:fingerprint Matches users with a matching ssl fingerprint (requires
+               sslmodes module)
+ O:opertype    Matches IRCops of a matching type, mostly useful as an
+               an invite exception (requires operchans module).
+ R:account     Matches users logged into a matching account (requires
+               services account module).
+
+Acting extbans:
+
+ c:<ban>       Blocks any messages that contain colour codes from
+               matching users (requires blockcolor module).
+ m:<ban>       Blocks messages from matching users (requires muteban
+               module). Users with +v or above are not affected.
+ p:<ban>       Blocks part messages from matching users (requires
+               nopartmsg module).
+ A:<ban>       Blocks invites by matching users even when +A is set
+               (requires allowinvite module).
+ B:<ban>       Blocks all capital or nearly all capital messages from
+               matching users (requires blockcaps module).
+ C:<ban>       Blocks CTCPs from matching users (requires noctcp
+               module).
+ N:<ban>       Blocks nick changes from matching users (requires
+               nonicks module).
+ Q:<ban>       Blocks kicks by matching users (requires nokicks
+               module).
+ S:<ban>       Strips color/bold/underline from messages from matching
+               users (requires stripcolor module).
+ T:<ban>       Blocks notices from matching users (requires nonotice
+               module).
+
+A ban given to an acting extban may either be a nick!user@host mask,
+matched against users as for a normal ban, or a matching extban.
+
+There is an additional special type of extended ban, a redirect ban:
+
+ Redirect      n!u@h#channel will redirect the banned user to #channel
+               when they try to join (requires banredirect module).">