Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions _data/modern.yml
Original file line number Diff line number Diff line change
Expand Up @@ -668,6 +668,9 @@ numerics:
ERR_WHOLIMEXCEED:
numeric: '523'

ERR_HELPNOTFOUND:
numeric: '524'

ERR_INVALIDKEY:
numeric: '525'

Expand Down
33 changes: 33 additions & 0 deletions _includes/modern-appendix.md
Original file line number Diff line number Diff line change
Expand Up @@ -813,6 +813,14 @@ Indicates that a {% message MODE %} command affecting a user contained a `MODE`

Indicates that a {% message MODE %} command affecting a user failed because they were trying to set or view modes for other users. The text used in the last param of this message varies, for instance when trying to view modes for another user, a server may send: `"Can't view modes for other users"`.

{% numericheader ERR_HELPNOTFOUND %}

"<client> <subject> :No help available on this topic"

Indicates that a {% message HELP %} command requested help on a subject the server does not know about.

The `<subject>` MUST be the one requested by the client, but may be casefolded; unless it would be an invalid parameter, in which case it MUST be `*`.

{% numericheader ERR_INVALIDKEY %}

"<client> <target chan> :Key is not well-formed"
Expand Down Expand Up @@ -843,6 +851,31 @@ The text used in the last param of this message varies wildly.

Indicates that there was a problem with a mode parameter. Replaces various implementation-specific mode-specific numerics.

{% numericheader RPL_HELPSTART %}

"<client> <subject> :<first line of help section>"

Indicates the start of a reply to a {% command HELP %} command.
The text used in the last parameter of this message may vary, and SHOULD be displayed as-is by IRC clients to their users; possibly emphasized as the title of the help section.

The `<subject>` MUST be the one requested by the client, but may be casefolded; unless it would be an invalid parameter, in which case it MUST be `*`.

{% numericheader RPL_HELPTXT %}

"<client> <subject> :<line of help text>"

Returns a line of {% command HELP %} text to the client. Lines MAY be wrapped to a certain line length by the server. Note that the final line MUST be a {% numeric RPL_ENDOFHELP %} numeric.

The `<subject>` MUST be the one requested by the client, but may be casefolded; unless it would be an invalid parameter, in which case it MUST be `*`.

{% numericheader RPL_ENDOFHELP %}

"<client> <subject> :<last line of help text>"

Returns the final {% command HELP %} line to the client.

The `<subject>` MUST be the one requested by the client, but may be casefolded; unless it would be an invalid parameter, in which case it MUST be `*`.

{% numericheader ERR_NOPRIVS %}

"<client> <priv> :Insufficient oper privileges."
Expand Down
52 changes: 52 additions & 0 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -1228,6 +1228,58 @@ Command Examples:
:Wiz STATS c eff.org ; request by WiZ for C/N line
information from server eff.org

### HELP message

Command: HELP
Parameters: [<subject>]

The `HELP` command is used to return documentation about the IRC server and the IRC commands it implements.

When receiving a `HELP` command, servers MUST either: reply with a single {% numeric ERR_HELPNOTFOUND %} message; or reply with a single {% numeric RPL_HELPSTART %} message, then arbitrarily many {% numeric RPL_HELPTXT %} messages, then a single {% numeric RPL_ENDOFHELP %}. Servers MAY return the {% numeric RPL_HELPTXT %} form for unknown subjects, especially if their reply would not fit in a single line.

The {% numeric RPL_HELPSTART %} message SHOULD be some sort of title and the first {% numeric RPL_HELPTXT %} message SHOULD be empty. This is what most servers do today.

Servers MAY define any `<subject>` they want.
Servers typically have documentation for most of the IRC commands they support.

Clients SHOULD gracefully handle older servers that reply to `HELP` with a set of {% command NOTICE %} messages.
On these servers, the client may try sending the `HELPOP` command (with the same syntax specified here), which may return the numeric-based reply.

Clients SHOULD also gracefully handle servers that reply to `HELP` with a set of `290`/`291`/`292`/`293`/`294`/`295` numerics.

Numerics:

* {% numeric ERR_HELPNOTFOUND %}
* {% numeric RPL_HELPSTART %}
* {% numeric RPL_HELPTXT %}
* {% numeric RPL_ENDOFHELP %}

Command Examples:

HELP ; request generic help
:server 704 val * :** Help System ** ; first line
:server 705 val * :
:server 705 val * :Try /HELP <command> for specific help,
:server 705 val * :/HELP USERCMDS to list available
:server 706 val * :commands, or join the #help channel ; last line

HELP PRIVMSG ; request help on PRIVMSG
:server 704 val PRIVMSG :** The PRIVMSG command **
:server 705 val PRIVMSG :
:server 705 val PRIVMSG :The /PRIVMSG command is the main way
:server 706 val PRIVMSG :to send messages to other users.

HELP :unknown subject ; request help on "unknown subject"
:server 524 val * :I do not know anything about this

HELP :unknown subject
:server 704 val * :** Help System **
:server 705 val * :
:server 705 val * :I do not know anything about this.
:server 705 val * :
:server 705 val * :Try /HELP USERCMDS to list available
:server 706 val * :commands, or join the #help channel

### INFO message

Command: INFO
Expand Down