// Copyright (c) 2016-2017 Daniel Oaks // released under the MIT license package irc import ( "strings" "github.com/DanielOaks/girc-go/ircmsg" ) // HelpEntry represents an entry in the Help map. type HelpEntry struct { oper bool text string } // used for duplicates var ( cmodeHelpText = `== Channel Modes == Oragono supports the following channel modes: +b | Client masks that are banned from the channel (e.g. *!*@127.0.0.1) +e | Client masks that are exempted from bans. +I | Client masks that are exempted from the invite-only flag. +i | Invite-only mode, only invited clients can join the channel. +k | Key required when joining the channel. +l | Client join limit for the channel. +m | Moderated mode, only privileged clients can talk on the channel. +n | No-outside-messages mode, only users that are on the channel can send | messages to it. +r | Only registered users can talk in the channel. +s | Secret mode, channel won't show up in /LIST or whois replies. +t | Only channel opers can modify the topic. = Prefixes = +q (~) | Founder channel mode. +a (&) | Admin channel mode. +o (@) | Operator channel mode. +h (%) | Halfop channel mode. +v (+) | Voice channel mode.` umodeHelpText = `== User Modes == Oragono supports the following user modes: +a | User is marked as being away. This mode is set with the /AWAY command. +i | User is marked as invisible (their channels are hidden from whois replies). +o | User is an IRC operator. +Z | User is connected via TLS.` ) // Help contains the help strings distributed with the IRCd. var Help = map[string]HelpEntry{ // Commands "ambiance": { text: `AMBIANCE The AMBIANCE command is used to send a scene notification to the given target.`, }, "authenticate": { text: `AUTHENTICATE Used during SASL authentication. See the IRCv3 specs for more info: http://ircv3.net/specs/extensions/sasl-3.1.html`, }, "away": { text: `AWAY [message] If [message] is sent, marks you away. If [message] is not sent, marks you no longer away.`, }, "cap": { text: `CAP [:] Used in capability negotiation. See the IRCv3 specs for more info: http://ircv3.net/specs/core/capability-negotiation-3.1.html http://ircv3.net/specs/core/capability-negotiation-3.2.html`, }, "chanserv": { text: `CHANSERV [params] ChanServ controls channel registrations.`, }, "cs": { text: `CS [params] ChanServ controls channel registrations.`, }, "debug": { oper: true, text: `DEBUG