/* UnrealIRCd 4.0 Help Configuration
 * Based on the original help text written by hAtbLaDe
 * Revised by CC (07/2002) and many others
 */

help {
	" Server Commands Help.";
	" Specify your Question after the /HELPOP command.";
	" You will find all of the server commands and options";
	" available for use.";
	" If you need extra assistance please visit the server's";
	" help channel or ask an available IRCop.";
	" -";
	" /HELPOP USERCMDS - To get the list of User Commands";
	" /HELPOP OPERCMDS - To get the list of Oper Commands";
	" /HELPOP SVSCMDS  - Commands sent via U:Lined Server (Services)";
	" /HELPOP UMODES   - To get the list of User Modes";
	" /HELPOP SNOMASKS - To get a list of Snomasks";
	" /HELPOP CHMODES  - To get the list of Channel Modes";
	" -";
	" ==-------------------------oOo--------------------------==";
};

/* note: indexes were generated by cat somecmds|sort|column -c 70
 *       along with tab->space conversion (tabwidth 8).
 *       Perhaps we should automate this step :). -- Syzop
 */

help Usercmds {
	" Currently the following User commands are available.";
	" Use /HELPOP <command name> to get more information about";
	" a specific command.";
	" -";
	" ==-------------------------oOo-------------------------==";
	" ADMIN           LICENSE         PART            USERHOST";
	" AWAY            LINKS           PING            USERIP";
	" CREDITS         LIST            PONG            VERSION";
	" CYCLE           LUSERS          PRIVMSG         VHOST";
	" DALINFO         MAP             QUIT            WATCH";
	" DCCALLOW        MODE            RULES           WHO";
	" INVITE          MODULE          SETNAME         WHOIS";
	" ISON            MOTD            SILENCE         WHOWAS";
	" JOIN            NAMES           STATS";
	" KICK            NICK            TIME";
	" KNOCK           NOTICE          TOPIC";
	" ==-------------------------oOo-------------------------==";
};

help Opercmds {
	" This section gives the IRC Operator only commands.";
	" Use /HELPOP <command name> to get more information about";
	" a specific command.";
	" -";
	" ==-------------------------oOo-------------------------==";
	"                 DNS                             SETIDENT";
	" ADDMOTD         GLINE           OPER            SHUN";
	" ADDOMOTD        GLOBOPS         OPERMOTD        SPAMFILTER";
	"                 GZLINE          REHASH          SQUIT";
	" CHGHOST                         RESTART         TEMPSHUN";
	" CHGIDENT        KILL                            TRACE";
	" CHGNAME         KLINE           SAJOIN          TSCTL";
	" CLOSE           LAG             SAMODE          UNDCCDENY";
	" CONNECT         LOCOPS          SAPART          WALLOPS";
	" DCCDENY         MKPASSWD        SDESC           ZLINE";
	" DIE             MODULE          SETHOST";
	" ==-------------------------oOo-------------------------==";
};

help Svscmds {
	" This section gives the commands that can be";
	" sent via a U:Lined Server such as Services.";
	" The command is typically sent as:";
	" /MSG OPERSERV RAW :services <command>";
	" Use /HELPOP <command name> to get more information about";
	" a specific command.";
	" -";
	" ==-------------------------oOo-------------------------==";
	" SQLINE          SVSKILL         SVSNLINE    SVSSILENCE";
	" SVS2MODE        SVSLUSERS       SVSNOLAG    SVSSNO";
	" SVS2SNO         SVSMODE         SVSNOOP     SVSWATCH";
	" SVSFLINE        SVSMOTD         SVSO        SWHOIS";
	" SVSJOIN         SVSNICK         SVSPART     UNSQLINE";
	" ==-------------------------oOo-------------------------==";
};

help Umodes {
	" Here is a list of all the usermodes which are available for use.";
	" -";
	" ==---------------------------oOo---------------------------==";
	" o = IRC Operator";
	" -";
	" d = Only receive channel PRIVMSGs starting with a bot command character (Deaf)";
	" i = Invisible (Not shown in /WHO searches)";
	" p = Hide all channels in /whois and /who";
	" q = Only U:lines can kick you (Services Admins/Net Admins only)";
	" r = Identifies the nick as being Registered (settable by services only)";
	" s = Can listen to Server notices";
	" t = Says that you are using a /VHOST";
	" w = Can listen to Wallop messages";
	" x = Gives the user Hidden Hostname (security)";
	" z = Marks the client as being on a Secure Connection (SSL)";
	" B = Marks you as being a Bot";
	" G = Filters out all Bad words in your messages with <censored>";
	" H = Hide IRCop status in /WHO and /WHOIS. (IRC Operators only)";
	" I = Hide an oper's idle time (in /whois output) from regular users.";
	" R = Allows you to only receive PRIVMSGs/NOTICEs from registered (+r) users";
	" S = For Services only. (Protects them)";
	" T = Prevents you from receiving CTCPs";
	" W = Lets you see when people do a /WHOIS on you (IRC Operators only)";
	" ==---------------------------oOo---------------------------==";
};

help Snomasks {
	" Snomask stands for 'Service NOtice MASK', it (mainly) controls which";
	" server notices you will receive.";
	" Usage: /MODE nick +s <snomask>";
	"    Ex: /MODE blah +s +cF-j";
	" The parameter specifies which snomasks you want (or don't want).";
	" You can also remove all snomasks by simply doing /MODE nick -s.";
	"-";
	" Below is a list of possible snomasks:";
	" ==-------------------------oOo-----------------------==";
	" b = View blacklist hits";
	" c = View connects/disconnects on local server";
	" e = View 'Eyes' server messages (OperOverride, /CHG* and /SET* usage, ..)";
	" f = View flood alerts";
	" F = View connects/disconnects on remote servers (except U-lines)";
	" G = View TKL notices (Gline, GZline, Shun, etc)";
	" j = View Junk notices (not recommended for normal use)";
	" k = View KILL notices";
	" n = View nick changes on local server";
	" N = View nick changes on remote servers";
	" o = View oper-up notices";
	" q = View rejected nick changes due to Q:lines";
	" s = View general notices";
	" S = View spamfilter matches";
	" v = View usage of /VHOST command";
	" ==-------------------------oOo------------------------==";
};

help Chmodes {
	" This section lists all of the possible channel modes that may be used with /MODE";
	" -";
	" ==------------------------------oOo----------------------------==";
	" v <nickname> = Gives Voice to the user (May talk if chan is +m)";
	" h <nickname> = Gives HalfOp status to the user (Limited op access)";
	" o <nickname> = Gives Operator status to the user";
	" a <nickname> = Gives Channel Admin to the user";
	" q <nickname> = Gives Owner status to the user";
	" -";
	" b <nick!ident@host> = Bans the nick!ident@host from the channel [h]";
	"                       (For more info on extended bantypes, see /HELPOP EXTBANS)";
	" c = Block messages containing mIRC color codes [o]";
	" C = No CTCPs allowed in the channel [h]";
	" D = Delay showing joins until someone actually speaks [o]";
	" e <nick!ident@host> = Overrides a ban for matching users [h]";
	" f <floodparams> = Flood protection (for more info see /HELPOP CHMODEF) [o]";
	" G = Filters out all Bad words in messages with <censored> [o]";
	" i = A user must be invited to join the channel [h]";
	" I <nick!ident@host> = Overrides +i for matching users [h]";
	" k <key> = Users must specify <key> to join [h]";
	" K = /KNOCK is not allowed [h]";
	" L <chan2> = Channel link (If +l is full, the next user will auto-join <chan2>) [q]";
	" l <number of max users> = Channel may hold at most <number> of users [h]";
	" m = Moderated channel (only +vhoaq users may speak) [h]";
	" M = Must be using a registered nick (+r), or have voice access to talk [h]";
	" N = No Nickname changes are permitted in the channel [h]";
	" n = Users outside the channel can not send PRIVMSGs to the channel [h]";
	" O = IRC Operator only channel (settable by IRCops)";
	" p = Private channel [o]";
	" P = Permanent channel (the channel is not destroyed when empty) (settable by IRCops)";
	" Q = No kicks allowed [o]";
	" R = Only registered (+r) users may join the channel [h]";
	" r = The channel is registered (settable by services only)";
	" s = Secret channel [o]";
	" S = Strips mIRC color codes [o]";
	" T = No NOTICEs allowed in the channel [o]";
	" t = Only +hoaq may change the topic [h]";
	" V = /INVITE is not allowed [o]";
	" z = Only Clients on a Secure Connection (SSL) can join [o]";
	" Z = All users on the channel are on a Secure connection (SSL) [server]";
	"     (This mode is set/unset by the server. Only if the channel is also +z)";
	" -";
	" [h] requires at least halfop, [o] requires at least chanop, [q] requires owner";
	" ==------------------------------oOo----------------------------==";
};

help ExtBans {
	" These bans let you ban based on things other than the traditional nick!user@host";
	" mask. They also provide support for things like ``quieting'' users (on other IRCds";
	" you might do +q <hostmask>, on UnrealIRCd use +b ~q:<hostmask>).";
	" -";
	" These bantypes specify which actions are affected by a ban:";
	" ==-Type--------Name---------------------------Explanation-----------------------==";
	"         |               | People matching these bans can join but are unable to   ";
	"    ~q   |     quiet     | speak, unless they have +v or higher.                   ";
	"         |               | Example:                                                ";
	"         |               | +bb ~q:*!*@blah.blah.com ~q:nick*!*@*                   ";
	"-----------------------------------------------------------------------------------";
	"         |               | People matching these bans cannot change nicks, unless  ";
	"    ~n   |  nickchange   | they have +v or higher.                                 ";
	"         |               | Example:                                                ";
	"         |               | +bb ~n:*!*@*.aol.com ~n:nick*!*@*                       ";
	"-----------------------------------------------------------------------------------";
	"         |               | If a user matches this, he may not join the channel.    ";
	"    ~j   |     join      | He may perform all other activities if he is already on ";
	"         |               | the channel, such as speaking and changing his nick.    ";
	"-----------------------------------------------------------------------------------";
	" -";
	" These bantypes introduce new criteria which can be used:";
	" ==-Type--------Name---------------------------Explanation-----------------------==";
	"         |               | If a user is logged in to services with this account    ";
	"         |               | name, then this ban will match.                         ";
	"         |               | This is slightly different than ~R in the sense that a  ";
	"    ~a   |   account     | user with nick ABC may be logged in under account XYZ.  ";
	"         |               | Not all services packages support this, in which case   ";
	"         |               | you will have to use ~R instead.                        ";
	"         |               | Example: +e ~a:Name                                     ";
	"-----------------------------------------------------------------------------------";
	"         |               | If the user is in this channel then (s)he is unable to  ";
	"         |               | join. A prefix can also be specified (+/%/@/&/~) which  ";
	"    ~c   |    channel    | means that it will only match if the user has that      ";
	"         |               | rights or higher on the specified channel.              ";
	"         |               | Example:  +b ~c:#lamers,    +e ~c:@#trusted             ";
	"-----------------------------------------------------------------------------------";
	"         |               | If the user is an IRCOp and is logged in with an oper   ";
	"         |               | block with a matching oper::operclass name then this    ";
	"    ~O   |   operclass   | will match. This way you can create channels which only ";
	"         |               | specific type(s) of opers may join. Set +i and use +I.  ";
	"         |               | Example: +iI ~O:*admin*                                 ";
	"-----------------------------------------------------------------------------------";
	"         |               | If the realname of a user matches this then (s)he is    ";
	"         |               | unable to join.                                         ";
	"    ~r   |   realname    | Example: +b ~r:*Stupid_bot_script*                      ";
	"         |               | NOTE: an underscore ('_') matches both a space (' ') and";
	"         |               | an underscore ('_'), so this ban would                  ";
	"         |               | match 'Stupid bot script v1.4'.                         ";
	"-----------------------------------------------------------------------------------";
	"         |               | If a user has identified to services (usually NickServ) ";
	"         |               | and matches this nickname, then this ban will match.    ";
	"         |               | This means this ban is really only useful for ban       ";
	"    ~R   |   registered  | exemptions (+e). Example: +e ~R:Nick                    ";
	"         |               | Will allow Nick in the channel, regardless of other     ";
	"         |               | bans, if he identified to NickServ and is using the     ";
	"         |               | nickname Nick.                                          ";
	"-----------------------------------------------------------------------------------";
	"         |               | When a user is using SSL/TLS with a client certificate  ";
	"         |               | then you can match the user by his/her SSL fingerprint  ";
	"    ~S   |    certfp     | (the one you see in /WHOIS). Mostly useful for safe     ";
	"         |               | ban exceptions and invite exceptions.                   ";
	"         |               | Example: +iI ~S:00112233445566778899aabbccddeeff..etc.. ";
	" ==------------------------------------------------------------------------------==";
	" -";
	"You may stack extended bans from the first group with the second group.";
	"For example +b ~q:~c:#lamers would quiet all users who have joined #lamers.";
	"Bans from the second group may also be used for invite exceptions (+I),";
	"such as +I ~c:#trusted and +I ~a:accountname.";
};

help Chmodef {
	" The +f channel mode provides comprehensive flood protection for a channel.";
	" This mode allows you to prevent join, nick change, CTCP, text, and knock";
	" floods. The syntax for this mode's parameter is as follows:";
	" -";
	" +f [<amount><type>{#<action>}{,...}]:<seconds>";
	" -";
	" The amount specifies the number of times the specified flood must occur";
	" before action is taken. Below are the available types:";
	" -";
	" ==-----Type-----Name--------Default Action---Other Actions-----==";
	"        c        CTCP        +C               m, M";
	"        j        Join        +i               R";
	"        k        Knock       +K";
	"        m        Messages    +m               M";
	"        n        Nickchange  +N";
	"        t        Text        kick             b";
	" -";
	" The difference between type m and t is that m is tallied for the entire";
	" channel whereas t is tallied per user.";
	" -";
	" If you choose to specify an action for a mode, you may also specify a";
	" time (in minutes) after which the specific action will be reversed.";
};

help Nick {
	" Changes your \"Online Identity\" on a server.";
	" All those in the channel you are in will be";
	" alerted of your nickname change.";
	" -";
	" Syntax:  NICK <new nickname>";
	" Example: NICK hAtbLaDe";
};

help Whois {
	" Shows information about the user in question,";
	" such as their \"Name\", channels they are";
	" currently in, their hostmask, etc.";
	" -";
	" Syntax:  WHOIS <user>";
	" Example: WHOIS hAtbLaDe";
	" -";
	" Status flags:";
	" The list of channels shown in the WHOIS reply can include one or more";
	" status flags to indicate information about the channel. These flags are";
	" described below:";
	" ~ - User is a Channel Owner (+q)";
	" & - User is a Channel Admin (+a)";
	" @ - User is a Channel Operator (+o)";
	" % - User is a Halfop (+h)";
	" + - User is Voiced (+v)";
	" ! - User has channels hidden in whois (+p) and you are an IRC Operator";
	" ? - The channel is secret (+s) and you are an IRC Operator";
};

help Who {
	" Retrieves information about users";
	" -";
	" Syntax:";
	" /WHO [+|-][acghimnsuMRI] [args]";
	" Flags are specified like channel modes, the flags cgmnsu all have arguments";
	" Flags are set to a positive check by +, a negative check by -";
	" The flags available:";
	" Flag a: user is away";
	" Flag c <channel>: user is on <channel>, no wildcards accepted";
	" Flag g <gcos/realname>: user has string <gcos> in his/her GCOS,";
	" wildcards accepted, oper only";
	" Flag h <host>: user has string <host> in his/her hostname, wildcards are accepted";
	" Flag i <ip>: user has string <ip> in his/her IP address";
	" Flag m <usermodes>: user has <usermodes> set, only o/C/A/a/N for nonopers";
	" Flag n <nick>: user has string <nick> in his/her nickname, wildcards accepted";
	" Flag s <server>: user is on server <server>, wildcards not accepted";
	" Flag u <user>: user has string <user> in his/her username, wildcards accepted";
	" Behavior flags:";
	" Flag M: check for user in channels I am a member of";
	" Flag R: show users' real hostnames";
	" Flag I: show users' IP addresses";
	" -";
	" For backwards compatibility, /who 0 o still shows +o users";
	" Example: WHO +m o";
	" -";
	" Status flags:";
	" The who command shows several flags in the returned result to indicate";
	" different information about the user. These flags are explained below:";
	" G - User is /away (gone)";
	" H - User is not /away (here)";
	" r - User is using a registered nickname";
	" B - User is a bot (+B)";
	" * - User is an IRC Operator";
	" ~ - User is a Channel Owner (+q)";
	" & - User is a Channel Admin (+a)";
	" @ - User is a Channel Operator (+o)";
	" % - User is a Halfop (+h)";
	" + - User is Voiced (+v)";
	" ! - User is +H and you are an IRC Operator";
	" ? - User is only visible because you are an IRC Operator";
};

help Whowas {
	" Retrieves previous WHOIS information for users";
	" no longer connected to the server.";
	" -";
	" Syntax:  WHOWAS <nickname>";
	"  WHOWAS <nickname> <max number of replies>";
	" Example: WHOWAS hAtbLaDe";
};

help Cycle {
	" Cycles the given channel(s). This command is equivilent";
	" to sending a PART then a JOIN command.";
	" -";
	" Syntax:  CYCLE <chan1>,<chan2>,<chan3>";
	" Example: CYCLE #help";
	" Example: CYCLE #main,#chat";
};

help Dns {
	" Returns information about the IRC server's DNS cache.";
	" Note, since most clients have a builtin DNS command,";
	" you will most likely need to use /raw DNS to use this.";
	" There are also 2 other variants:";
	" 'DNS l' will show you the DNS cache entries";
	" 'DNS i' will give you details about the nameserver config";
	" -";
	"Syntax: DNS [option]";
};

help Names {
	" Provides a list of users on the specified channel.";
	" -";
	"Syntax:  NAMES <channel>";
	"Example: NAMES #Support";
};

help Ison { 
	" Used to determine if certain user(s) are";
	" currently online based upon their nickname.";
	" -";
	" Syntax:  ISON <user> <user2> <user3> <user4>";
	" Example: ISON hAtbLaDe Stskeeps OperServ AOLBot";
};

help Join { 
	" Used to enter one or more channels on an IRC server.";
	" All occupants of the channel will be notified of your arrival.";
	" JOIN with 0 as a parameter makes you Part all channels.";
	" If you specify one or more keys, they will be used to join a +k channel";
	" -";
	" Syntax:  JOIN <chan>,<chan2>,<chan3> <key1>,<key2>,<key3>";
	"  JOIN 0 (Parts all channels)";
	" Example: JOIN #Support";
	"          JOIN #Lobby,#IRCd";
	"          JOIN #IRCd,#Support,#main letmein,somepass,anotherpass";
};

help Part {
	" Used to part (or leave) a channel you currently occupy.";
	" All those in the channel will be notified of your departure.";
	" If you specify a reason it will be displayed to the users on the channel";
	" -";
	" Syntax:  PART <chan>,<chan2>,<chan3>,<chan4> <reason>";
	" Example: PART #Support";
	"          PART #Lobby,#IRCd See ya later!";
};

help Motd {
	" Displays the Message Of The Day of the IRC Server you are logged onto.";
	" -";
	" Syntax: MOTD";
	"         MOTD <server>";
};

help Rules {
	" Shows you the Rules of the Network.";
	" -";
	" Syntax: RULES";
	"         RULES <server>";
};

help Lusers {
	" Provides Local and Global user information";
	" (Such as Current and Maximum user count).";
	" -";
	" Syntax: LUSERS [server]";
};

help Map {
	" Provides a graphical \"Network Map\" of the IRC network.";
	" Mainly used for routing purposes.";
	" -";
	" Syntax: MAP";
};

help Quit {
	" Disconnects you from the IRC server. Those in the";
	" channels you occupy will be notified of your departure.";
	" If you do not specify a reason, your nickname becomes the reason.";
	" -";
	" Syntax:  QUIT <reason>";
	" Example: QUIT Leaving!";
};

help Ping {
	" The PING command is used to test the presence of an active client or";
	" server at the other end of the connection.  Servers send a PING";
	" message at regular intervals if no other activity detected coming";
	" from a connection.  If a connection fails to respond to a PING";
	" message within a set amount of time, that connection is closed. A";
	" PING message MAY be sent even if the connection is active.";
	" Note that this is different from a CTCP PING command..";
	" -";
	" Syntax:  PING <server> <server2>";
	" Example: PING irc.fyremoon.net";
	"          PING hAtbLaDe";
	"          PING hAtbLaDe irc2.dynam.ac";
};

help Pong {
	" PONG message is a reply to PING message.  If parameter <server2> is";
	" given, this message will be forwarded to given target.  The <server>";
	" parameter is the name of the entity who has responded to PING message";
	" and generated this message.";
	" -";
	" Syntax:  PONG <server> <server2>";
	" Example: PONG irc.fyremoon.net irc2.dynam.ac";
	"          (PONG message from irc.fyremoon.net to irc2.dynam.ac)";
};

help Version {
	" Provides Version information of the IRCd software in usage.";
	" -";
	" Syntax: VERSION";
	"         VERSION <server>";
};

help Stats {
	" Provides certain Statistical information about the server";
	" -";
	" Syntax:  STATS <flags>";
	" Example: STATS u";
	" -";
	" Type /stats without parameters to get a list of available flags.";
};

help Links {
	" Lists all of the servers currently linked to the network.";
	" Only IRCops can see linked U:lined servers.";
	" -";
	" Syntax: LINKS";
};

help Admin {
	" Provides Administrative information regarding the server.";
	" -";
	" Syntax: ADMIN";
	"         ADMIN <server>";
};

help Userhost {
	" Returns the userhost of the user in question.";
	" Usually used by scripts or bots.";
	" -";
	" Syntax:  USERHOST <nickname>";
	" Example: USERHOST hAtbLaDe";
};

help Userip {
	" Returns the userip of the user in question.";
	" Usually used by scripts or bots.";
	" -";
	" Syntax: USERIP <nickname>";
	" Example: USERIP codemastr";
};

help Topic {
	" Sets/Changes the topic of the channel in question,";
	" or just display the current Topic.";
	" -";
	" Syntax:  TOPIC <channel> (Displays the current topic)";
	"          TOPIC <channel> <topic> (Changes topic)";
	" Example: TOPIC #Operhelp";
	"          TOPIC #Lobby Welcome to #Lobby!!";
};

help Invite {
	" Sends a user an Invitation to join a particular channel.";
	" If the channel is +i, you must be an Operator to use this";
	" command, otherwise any user may use the command.";
	" Invite without parameters lists the channels you have been";
	" invited to.";
	" -";
	" Syntax:  INVITE [<user> <channel>]";
	" Example: INVITE hAtbLaDe #Support";
	" Example: INVITE";
};

help Kick {
	" Removes a user from a channel. Can only be used by Operators";
	" or Half-Ops. If no reason is specified, your nickname becomes the reason.";
	" -";
	" Syntax:  KICK <channel> <user> [reason]";
	" Example: KICK #Lobby foobar Lamer..";
};

help Away {
	" Sets your online status to \"Away\".";
	" -";
	" Syntax:  AWAY <reason> (Sets you Away with the reason given)";
	"          AWAY (Un-Sets you as Away)";
	" Example: AWAY Lunch time!";
};

help Watch {
	" Watch is a notify-type system on the server which is both faster";
	" and uses less network resources than any old-style notify";
	" system. The server will send you a message when any nickname";
	" in your watch list logs on or off.";
	" The watch list DOES NOT REMAIN BETWEEN SESSIONS - You (or your";
	" script or client) must add the nicknames to your watch list every";
	" time you connect to an IRC server.";
	" -";
	" Syntax: WATCH +nick1 +nick2 +nick3 (Add nicknames)";
	"         WATCH -nick (Delete nicknames)";
	"         WATCH (View which users are online)";
};

help List {
	" Provides a complete listing of all channels on the network.";
	" If a search string is specified, it will only show those";
	" matching the search string.";
	" -";
	" Syntax:  LIST <search string>";
	" Example: LIST";
	"          LIST *ircd*";
	" -";
	" Some additional flags are also supported.";
	" >number  List channels with more than <number> people";
	" <number  List channels with less than <number> people";
	" !*mask*  List channels that do not match *mask*";
	" -";
	" Any of those may be used instead of a standard mask.";
};

help Privmsg {
	" Send a message to a user, channel or server.";
	" /PRIVMSG <nick> <text>";
	"  Send a private message.";
	"  Ex: /PRIVMSG Blah hi, how are you?";
	" /PRIVMSG <#channel> <text>";
	"  Send a message to a channel.";
	"  Ex: /PRIVMSG #room Hi all";
	" /PRIVMSG <prefix><#channel> <text>";
	"  Send a message to users with <prefix> and higher in <#channel> only";
	"  Ex: /PRIVMSG @#room This goes to +oaq";
	"      /PRIVMSG +#room This goes to +vhoaq";
	"  NOTE: You need at least voice in order to send to +#chan/%#chan/@#chan";
	"        and at least ops to send to &#chan/~#chan.";
	" /PRIVMSG $<mask> <text>";
	"  Send a message to all users on servers matching <mask> [Oper only]";
	"  This is shown in the status window by most clients.";
	"  Ex: /PRIVMSG $*.mynet.net We will be upgrading our net in the next hour";
	"  Note that in most cases services (/OS GLOBAL) is a better alternative.";
	" -";
	" Multiple targets are also supported, like /PRIVMSG <nick1>,<nick2>,<nick3>.";
	" -";
	" NOTE: In case of some old clients (eg: ircII) you cannot use /msg";
	" or /privmsg to use any of the 'advanced features', you'll then have to use:";
	" '/QUOTE PRIVMSG @#channel blah' or something similar.";
};

help Notice {
	" Send a notice to a user, channel or server.";
	" /NOTICE <nick> <text>";
	"  Send a notice to a user.";
	"  Ex: /NOTICE Blah hi, how are you?";
	" /NOTICE <#channel> <text>";
	"  Send a notice to a channel.";
	"  Ex: /NOTICE #room Hi all, this is annoying";
	" /NOTICE <prefix><#channel> <text>";
	"  Send a notice to users with <prefix> and higher in <#channel> only";
	"  Ex: /NOTICE @#room This goes to +oaq";
	"      /NOTICE +#room This goes to +vhoaq";
	"  NOTE: You need at least voice in order to send to +#chan/%#chan/@#chan";
	"        and at least ops to send to &#chan/~#chan.";
	" /NOTICE $<mask> <text>";
	"  Send a notice to all users on servers matching <mask> [Oper only]";
	"  This is shown in the status window by most clients.";
	"  Ex: /NOTICE $*.mynet.net We will be upgrading our net in the next hour";
	"  Note that in most cases services (/OS GLOBAL) is a better alternative.";
	" -";
	" Multiple targets are also supported, like /NOTICE <nick1>,<nick2>,<nick3>.";
	" -";
	" NOTE: In case of some old clients (eg: ircII) you cannot use /notice";
	" to use any of the 'advanced features', you'll then have to use:";
	" '/QUOTE NOTICE @#channel blah' or something similar.";
};

help Knock {
	" For channels which are invite only, you can \"Knock\" on the";
	" channel to request an invite.";
	" -";
	" Syntax:  KNOCK <channel> <message>";
	" Example: KNOCK #secret_chan I'm an op, let me in!";
};

help Setname {
	" Allows users to change their \"Real name\" (GECOS)";
	" directly online at IRC without reconnecting";
	" -";
	" Syntax: SETNAME <New Real Name>";
};

help Vhost {
	" Hides your real hostname with a virtual hostname";
	" provided by the IRC server , using SETHOST.";
	" -";
	" Synatx:  VHOST <login> <password>";
	" Example: VHOST openbsd ilovecypto";
};

help Mode {
	" Sets a mode on a Channel or User.";
	" Use /HELPOP CHMODES or /HELPOP UMODES to see a list of Modes";
	" -";
	" Syntax:  MODE <channel/user> <mode>";
	" Example: MODE #Support +tn";
	"          MODE #Support +ootn hAtbLaDe XYZ";
};

help Credits {
	" This command will list the Credits to all the people who";
	" helped create UnrealIRCd.";
	" -";
	" Syntax: CREDITS";
	"         CREDITS <server>";
};

help Dalinfo {
	" This command will show historical credits (from ircu, etc..)";
	" -";
	" Syntax: DALINFO";
	" Syntax: DALINFO <server>";
};

help License {
	" This command displays information about the license UnrealIRCd is released under.";
	" Syntax: LICENSE";
	"         LICENSE <server>";
};

help Time {
	" Displays the current Server Date and Time.";
	" -";
	" Syntax : TIME";
	"          TIME <server>";
};

help Silence {
	" Ignores messages from a user or list of users at the Server itself.";
	" -";
	" Syntax: SILENCE +nickname (Adds a nickname to SILENCE list)";
	"         SILENCE -nickname (Removes a nickname from the SILENCE list)";
	"         SILENCE           (Lists the current SILENCE list)";
};

help Oper {
	" Attempts to give a user IRC Operator status.";
	" (Lets the IRCop opper up)";
	" -";
	" Syntax:  OPER <uid> <password>";
	" Note: both uid and password are case sensitive";
	" Example: OPER hAtbLaDe foobar234";
};

help Wallops {
	" Sends a \"Message\" to all those with the umode +w.";
	" Only IRCops can send Wallops, while anyone with the mode +w";
	" can view them.";
	" -";
	" Syntax: WALLOPS <message>";
};

help Locops {
	" Sends a message to all IRCops at this server (local).";
	" -";
	" Syntax:  LOCOPS <message>";
	" Example: LOCOPS Gonna k:line that user ...";
};

help Globops {
	" Sends a message to all ircops (global).";
	" -";
	" Syntax:  GLOBOPS <message>";
	" Example: GLOBOPS Gonna k:line that user ...";
};

help Kill {
	" Forcefully Disconnects users from an IRC Server.";
	" IRC Operator only command.";
	" -";
	" Syntax:  KILL <user1>,<user2>,<user3>,... <reason>";
	" Example: KILL Jack16 Cloning is not allowed";
};

help Kline {
	" This command provides timed K:Lines. If you match a K:Line you cannot";
	" connect to the server";
	" A time of 0 in the KLINE makes it permanent (Never Expires).";
	" You may also specify the time in the format 1d10h15m30s.";
	" IRC Operator only command.";
	" -";
	" Syntax:  KLINE <hostmask or nick> [time] <reason> (adds a Kline)";
	"          KLINE -<hostmask> (removes a Kline)";
	" Example: KLINE *@*.aol.com Abuse (Adds a permanent K:line)";
	"          KLINE *@*.someisp.com 2d Abuse (Adds a K:line for 2 days)";
	"          KLINE Idiot 1d Please go away";
	"          KLINE -*@*.aol.com";
};

help Zline {
	" This command provides timed Z:Lines. If you match a Z:Line you cannot";
	" connect to the server";
	" A time of 0 in the ZLINE makes it permanent (Never Expires).";
	" You may also specify the time in the format 1d10h15m30s.";
	" IRC Operator only command.";
	" -";
	" Syntax:  ZLINE <*@ipmask> [time] <reason> (adds a Zline)";
	"          ZLINE -<*@ipmask> (removes a Zline)";
	" Example: ZLINE *@127.0.0.1 Abuse (Adds a permanent Z:line)";
	"          ZLINE *@127.0.0.1 2d Abuse (Adds a Z:line for 2 days)";
	"          ZLINE -*@127.0.0.1";
	" NOTE: requires the can_zline oper flag";
};

help Gline {
	" This command provides timed G:Lines. If you match a G:Line you cannot";
	" connect to ANY server on the IRC network";
	" A time of 0 in the GLINE makes it permanent (Never Expires).";
	" You may also specify the time in the format 1d10h15m30s.";
	" IRC Operator only command.";
	" -";
	" Syntax:  GLINE <user@host mask or nick> [time] <reason>";
	"  (Adds a G:line for user@host)";
	"          GLINE -<user@host mask> (Removes a G:line for user@host)";
	" Example: GLINE *@*.idiot.net 900 Spammers (Adds a 15 min G:line)";
	"          GLINE *@*.idiot.net 1d5h Spammers (Adds a 29 hour G:line)";
	"          GLINE Idiot 1d Abuse";
	"          GLINE -*@*.idiot.net";
	" NOTE: requires the can_gkline oper flag";
};

help Shun {
	" Prevents a user from executing ANY command except ADMIN";
	" and respond to Server Pings. Shuns are global (like glines).";
	" A time of 0 in the SHUN makes it permanent (Never Expires).";
	" You may also specify the time in the format 1d10h15m30s.";
	" IRC Operator only command.";
	" -";
	" Syntax:  SHUN <nickname> <time> :<Reason> (Shun the nickname for time in seconds)";
	"          SHUN +<user@host> <time> :<Reason>(Shun the user@host for time in seconds)";
	"          SHUN -<user@host> (Removes the SHUN for user@host)";
	"          SHUN (View the current SHUN list)";
	" -";
	" Example: SHUN +foobar@aol.com 600 :Spamming";
	"  (Shuns foobar@aol.com for 10 mins for Spamming)";
	"          SHUN +foobar@aol.com 1d6h :Spamming (Adds a 30 hour SHUN)";
	" NOTE: requires the can_gkline oper flag";
};

help Gzline {
	" This command provides timed global Z:line. If you match a Global Z:Line you cannot";
	" connect to ANY server on the IRC network";
	" A time of 0 in the GZLINE makes it permanent (Never Expires).";
	" You may also specify the time in the format 1d10h15m30s.";
	" IRC Operator only command.";
	" -";
	" Syntax:  GZLINE <*@ipmask> <seconds to be banned> :<reason>";
	"  (Adds a Global Z:line for *@ipmask)";
	"          GZLINE -<*@ipmask> (Removes a Global Z:line for *@ipmask)";
	" Example: GZLINE *@4.16.200.* 900 Spammers (Adds a 15 min Global Z:line)";
	"          GZLINE *@4.16.200.* 1d5h Spammers (Adds a 29 hour Global Z:line)";
	" NOTE: requires the can_gzline oper flag";
};

help Rehash {
	" Prompts the server to reread the configuration files.";
	" IRC Operator only command.";
	" -";
	" Syntax: REHASH <servername> [flag]";
	"         REHASH -global [flag]";
	"         REHASH [flag]";
	" -";
	" If servername and flag are not specified this rehashes the";
	" unrealircd.conf, and re-reads all MOTD, BOTMOTD, OPERMOTD and RULES files.";
	" If servername is specified, this is used to rehash the remote server.";
	" If -global is specified, then all servers on the network are rehashed.";
	" -";
	" The flags are used to rehash other config files, valid flags are:";
	"  -dns      - Reinitializes and reloads the resolver";
	"  -garbage  - Force garbage collection";
	"  -motd     - Only re-read all MOTD, BOTMOTD, OPERMOTD and RULES files";
	"              (including those in tld{} blocks)";
	"  -ssl      - Reloads SSL certificates";
};

help Restart {
	" Kills and Restarts the IRC daemon, disconnecting all users";
	" currently on that server.";
	" IRC Operator only command.";
	" -";
	" Syntax: RESTART";
	"         RESTART <password>";
	"         RESTART <password> <reason>";
};

help Die {
	" Kills the IRC daemon, disconnecting all users currently on that server.";
	" IRC Operator only command.";
	" -";
	" Syntax: DIE";
	"         DIE <password>";
};

help Lag {
	" This command is like a Traceroute for IRC servers";
	" You type in /LAG irc.fyremoon.net and it will";
	" reply from every server it passes with time and so on";
	" Useful for looking where lag is and optional TS future/past travels";
	" -";
	" Syntax: LAG <server>";
};

help Sethost {
	" This command is so you can change your Virtual host (Vhost)";
	" to anything you want, except special characters.";
	" IRC Operator only command.";
	" -";
	" Syntax:  SETHOST <new hostname>";
	" Example: SETHOST i.have.hairy.armpits";
};

help Setident {
	" With this command you can change your Ident (Username).";
	" IRC Operator only command.";
	" -";
	" Syntax:  SETIDENT <new ident>";
	" Example: SETIDENT l33t";
};

help Chghost {
	" Changes the hostname of a user currently on the IRC network.";
	" IRC Operator only command.";
	" -";
	" Syntax:  CHGHOST <nick> <host>";
	" Example: CHGHOST hAtbLaDe root.me.com";
};

help Chgident {
	" Changes the Ident of a user currently on the IRC network.";
	" IRC Operator only command.";
	" -";
	" Syntax:  CHGIDENT <nick> <ident>";
	" Example: CHGIDENT hAtbLaDe sheep";
};

help Chgname {
	" Changes the \"IRC Name\" (or \"Real Name\") of a user currently on the IRC network.";
	" IRC Operator only command.";
	" -";
	" Syntax:  CHGNAME <nick> <name>";
	" Example: CHGNAME hAtbLaDe Gotta new name :)";
};

help Squit {
	" Disconnects an IRC Server from the network.";
	" Usually used in routing of servers.";
	" IRC Operator only command.";
	" -";
	" Syntax:  SQUIT <server> [reason]";
	" Example: SQUIT leaf.server.net bye";
};

help Connect {
	" Links another IRC server to the one you are currently on.";
	" Remote connections are also possible.";
	" IRC Operator only command.";
	" -";
	" Syntax:  CONNECT <server> [port]";
	"          CONNECT <leaf> <port> <hub>";
	" Example: CONNECT leaf.server.net";
	"          CONNECT leaf.server.net 6667 hub.server.net";
};

help Dccdeny {
	" Adds a DCC Deny for that Filename mask. This means that any";
	" DCC sends of Files matching that Filename mask will be rejected.";
	" IRC Operator only command.";
	" -";
	" Syntax: DCCDENY <filename mask> <reason>";
};

help Undccdeny {
	" If the EXACT file you type is found it is removed, else it uses wildcards to search";
	" IRC Operator only command.";
	" -";
	" Syntax: UNDCCDENY <filename mask>";
};

help Sajoin {
	" Forces a user to join a channel.";
	" Services Admin Command";
	" -";
	" Syntax:  SAJOIN <nick> <channel>,[<channel2>..]";
	" Example: SAJOIN hAtbLaDe #OperHelp";
	"          SAJOIN hAtbLaDe #Support,#IRCHelp";
};

help Sapart {
	" Forces a user to part a channel.";
	" Services Admin Command";
	" -";
	" Syntax:  SAPART <nick> <channel>,[<channel2>..] [<comment>]";
	" Example: SAPART hAtbLaDe #OperHelp";
	"          SAPART hAtbLaDe #Support,#IRCHelp";
	"          SAPART hAtbLaDe #Support,#IRCHelp Go away";
};

help Samode {
	" Allows a Services Administrator to change the mode on a channel,";
	" without having Operator status.";
	" Services Admin Command";
	" -";
	" Syntax:  SAMODE <channel> <mode>";
	" Example: SAMODE #Support +m";
};

help Trace {
	" You can use TRACE on servers or users.";
	" When used on a user it will give you class and lag info.";
	" If you use it on a server it gives you class/version/link info.";
	" Sometimes TRACE can be confusing, especially if you are using";
	" it for the first time.";
	" -";
	" Syntax:  TRACE <servername|nickname>";
	" Example: TRACE irc.fyremoon.net";
};

help Opermotd {
	" Shows the IRCd Operator MOTD";
	" IRC Operator only command.";
	" -";
	" Syntax: OPERMOTD";
};

help Sdesc {
	" With this command you can change your Server Info Line";
	" Without having to squit and reconnect.";
	" This is a Server Admin/Co Admin only command";
	" -";
	" Syntax:  SDESC <New description>";
	" Example: SDESC Fly High, Fly Free";
};

help Mkpasswd {
	" This command will return a 'hash' of the string that has been specified,";
	" you can use this hash for any encrypted passwords in your configuration file:";
	" eg: for oper::password, vhost::password, etc.";
	" Available types (in order of 'secureness'):";
	"    *NIX: crypt, md5, sha1 [*], ripemd160 [*]";
	" Windows: crypt [*], md5, sha1, ripemd160 [*]";
	" [*: only available if compiled with SSL support]";
	" -";
	" Syntax:  MKPASSWD <method> <password>";
	" Example: MKPASSWD md5 IamTeh1337";
};

help Module {
	" This will show the list of modules loaded on the server.";
	" By default it will only list 3rd party modules, unless you use -all";
	" -";
	" Syntax: MODULE [-all] [server]";
	" Example: MODULE";
	" -";
	" The output depends on whether you are a normal user or IRCOp:";
	" -- Normal user --";
	" *** name - (description) [3RD]";
	" The [3RD] flag is present if it's a 3rd party module.";
	" -- IRCOp -- ";
	" *** name - version (description) [optional flags]";
	" The optional flags may contain:";
	" [PERM]: Permanent module, not possible to unload/reload.";
	" [PERM-BUT-RELOADABLE]: Module can be reloaded but not unloaded.";
	" [3RD] 3rd party module, module is not part of UnrealIRCd.";
	" Additionally you will see a list of which hooks and command";
	" overrides are present (the hook number can be looked up in";
	" include/modules.h).";
};

help Close {
	" This command will disconnect all unknown connections from the";
	" IRC server.";
	" -";
	" Syntax:  CLOSE";
};

help Tsctl {
	" This is a highly advanced command used to Adjust the";
	" Internal IRC clock.";
	" IRC Operator only command.";
	" -";
	" Syntax: TSCTL OFFSET +|- <time> (Adjust internal IRC clock)";
	"         TSCTL TIME (Will give TS report)";
	"         TSCTL ALLTIME (Shows the TS report of all server)";
	"         TSCTL SVSTIME <timestamp> (Sets the Time on all Servers)";
};

help Svsnick {
	" Changes the nickname of the user in question.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SVSNICK <nickname> <new nickname> <timestamp>";
	" Example: SVSNICK hAtbLaDe Foobar 963086432";
};

help Svsmode {
	" Changes the mode of the User in question.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SVSMODE <nickname> <usermode>";
	" Example: SVSMODE hAtbLaDe +i";
};

help Svskill {
	" Forcefully disconnects a user from the network.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SVSKILL <user> :<reason>";
	" Example: SVSKILL Lamer21 :Goodbye";
};

help Svsnoop {
	" Enables or disables whether IRCop functions";
	" exist on the server in question or not.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SVSNOOP <server> <+/->";
	" Example: SVSNOOP leaf.server.net -";
};

help Svsjoin {
	" Forces a user to join a channel.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SVSJOIN <nick> <channel>[,<channel2>..] [key1[,key2[..]]]";
	" Example: SVSJOIN hAtbLaDe #jail";
	"          SVSJOIN hAtbLaDe #jail,#zoo";
};

help Svspart {
	" Forces a user to leave a channel.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SVSPART <nick> <channel>[,<channel2>..] [<comment>]";
	" Example: SVSPART hAtbLaDe #Hanson";
	"          SVSPART hAtbLaDe #Hanson,#AOL";
	"          SVSPART hAtbLaDe #Hanson,#AOL You must leave";
};

help Svso {
	" Gives nick Operflags like the ones in O:lines.";
	" Remember to set SVSMODE +o and alike.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SVSO <nick> <+operflags> (Adds the Operflags)";
	"          SVSO <nick> - (Removes all O:Line flags)";
	" Example: SVSO SomeNick +bBkK";
};

help Swhois {
	" Changes the WHOIS message of the Nickname.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SWHOIS <nick> :<message> (Sets the SWHOIS)";
	"          SWHOIS <nick> :  (Resets the SWHOIS)";
	" Example: SWHOIS SomeNick :is a lamer";
};

help Sqline {
	" Bans a Nickname or a certain Nickname mask from the Server.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SQLINE <nickmask> :<Reason>";
	" Example: SQLINE *Bot* :No bots";
};

help Unsqline {
	" Un-Bans a Nickname or Nickname mask";
	" Must be sent through an U:Lined server.";
	" -";
	" Synax:  UNSQLINE <nickmask>";
	" Example: UNSQLINE *Bot*";
};

help Svs2mode {
	" Changes the Usermode of a nickname and displays";
	" the change to the user.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SVS2MODE <nickname> <usermodes>";
	" Example: SVS2MODE hAtbLaDe +h";
};

help Svsfline {
	" Adds the given Filename mask to DCCDENY";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax: :server SVSFLINE + file :reason (Add the filename)";
	"         :server SVSFLINE - file (Deletes the filename)";
	"         :server SVSFLINE *      (Wipes the DCCDENY list)";
};

help Svsmotd {
	"Changes the Services Message Of The Day";
	"Must be sent through an U:Lined server.";
	"Syntax:  SVSMOTD # :<text> (Adds to Services MOTD)";
	"         SVSMOTD !         (Deletes the MOTD)";
	"         SVSMOTD ! :<text> (Deletes and Adds text)";
	"Example: SVSMOTD # :Services MOTD";
};

help Svsnline {
	" Adds a global realname ban.";
	" Must be sent through an U:Lined server.";
	" The reason must be a single parameter therefore";
	" spaces are indicated by _, Unreal will internally";
	" translate these to spaces.";
	" -";
	" Syntax:  SVSNLINE + <reason_for_ban> :<realname> (To add a ban)";
	"          SVSNLINE - :<realname> (To remove a ban)";
	"          SVSNLINE * (To clear all bans)";
	" Example: SVSNLINE + sub7_drone :*sub7*";
};

help Svslusers {
	" Changes the global and/or local maximum user count";
	" for a server. If -1 is specified for either of the";
	" values, the current value is kept.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SVSLUSERS <server> <globalmax|-1> <localmax|-1>";
	" Example: SVSLUSERS irc.test.com -1 200";
};

help Svswatch {
	" Changes the WATCH list of a user.";
	" Must be sent through an U:Lined server.";
	" Syntax: SVSWATCH <nick> :<watch parameters>";
	" Example: SVSWATCH Blah :+Blih!*@* +Bluh!*@* +Bleh!*@*.com";
};

help Svssilence {
	" Changes the SILENCE list of a user.";
	" Must be sent through an U:Lined server.";
	" In contrast to the SILENCE command, you can add/remove";
	" multiple entries in one line.";
	" Syntax: SVSSILENCE <nick> :<silence parameters>";
	" Example: SVSSILENCE Blah :+*!*@*.com +*!*@*.bla.co.uk";
};

help Svssno {
	" Changes the snomask of the User in question.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SVSSNO <nickname> <snomasks>";
	" Example: SVSSNO joe +Gc";
};

help Svs2sno {
	" Changes the snomask of a nickname and displays";
	" the change to the user.";
	" Must be sent through an U:Lined server.";
	" -";
	" Syntax:  SVS2SNO <nickname> <snomasks>";
	" Example: SVS2SNO joe +Gc";
};

help Svsnolag {
        " Enable 'no fake lag' for a user.";
        " Must be sent through an U:Lined server.";
        " -";
        " Syntax:  SVSNOLAG [+|-] <nickname>";
        " Example: SVSNOLAG + joe";
};

help Svs2nolag {
        " Enable 'no fake lag' for a user.";
        " Must be sent through an U:Lined server.";
        " -";
        " Syntax:  SVS2NOLAG [+|-] <nickname>";
        " Example: SVS2NOLAG + joe";
};

help Spamfilter {
	" This command adds/removes global spam filters.";
	" Spamfilters can be used to get rid of spam, advertising, bots, etc.";
	" -";
	" Use: /spamfilter [add|del|remove|+|-] [method] [type] [action] [tkltime] [reason] [string]";
	" [method]  Matching method, must be one of:";
	"           -regex (PCRE fast regex),";
	"           -posix (old 3.2.x POSIX regex), or";
	"           -simple (fastest but only supports ? and * wildcards)";
	" [type]    specifies the target type, you can specify multiple targets:";
	"           'c' channel msg, 'p' private msg, 'n' private notice,";
	"           'N' channel notice, 'P' part msg, 'q' quit msg, 'd' dcc,";
	"           'a' away, 't' topic, 'u' user (nick!user@host:realname ban)";
	" [action]  specifies the action to be taken (only 1 action can be specified):";
	"           'kill', 'tempshun' (only shun current session), 'shun',";
	"           'kline', 'gline', 'zline', 'gzline', 'block' (blocks the msg),";
	"           'dccblock' (unable to send any dccs), 'viruschan' (part all channels";
	"           and join the virus help chan), 'warn' (warn for IRC Operators).";
	" [string]  this is the actual string that should be blocked (regex or simple pattern)";
	" [tkltime] the duration of the *LINEs placed by action (use '-' to use the default";
	"           set::spamfilter::ban-time, this value is ignored for block/tempshun');";
	" [reason]  the reason for the *LINE or blockmsg, CANNOT CONTAIN SPACES,";
	"           '_' will be translated to spaces. Again, if you use '-' for this";
	"           the default (set::spamfilter::ban-reason) is used.";
	" - ";
	" A few examples (note they will probably line-wrap!):";
	" /spamfilter add -simple p block - - Come watch me on my webcam";
	" /spamfilter add -simple p block - Possible_virus_detected,_join_#help Come watch me on my webcam";
	" /spamfilter add -simple p tempshun - - You_are_infected me.mpg";
	" /spamfilter add -simple p gline - - Come watch me on my webcam";
	" /spamfilter add -simple p gline 3h Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam";
	" /spamfilter add -simple p kill - Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam";
	" /spamfilter del -simple p block - - Come watch me on my webcam*";
	" /spamfilter add -regex cN gzline 1d No_advertising_please /come to irc\..+\..+/";
};

help Tempshun {
	" Add/remove 'temporary shuns'.";
	" Temporary shuns are shuns added on a specified target for ";
	" _the current session only_, this means if the user reconnects";
	" the shun will be gone.";
	" -";
	" Syntax:  TEMPSHUN [+|-]<nickname> [reason]";
	" Example: TEMPSHUN evilguy suspected infection";
	"          TEMPSHUN -niceguy";
};

help DccAllow {
	" For help on the DCCALLOW system, type '/DCCALLOW HELP'";
	/* It would be useless and bad to include it here since that
	 * stuff quickly gets out-of-synch.
	 */
};

help Addmotd {
	" Adds a line to the end of the MOTD ";
	" -";
	" Syntax:  ADDMOTD <text>";
	" Example: ADDMOTD Play nice!";
};

help Addomotd {
	" Adds a line to the end of the OPERMOTD ";
	" -";
	" Syntax:  ADDOMOTD <text>";
	" Example: ADDOMOTD Abuse it and lose it!";
};
