// Copyright (c) 2016- 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: = Type A - list modes = +b | Client masks that are banned from the channel. +e | Client masks that are exempted from bans. +I | Client masks that are exempted from the invite-only flag. = Type C - setting modes with a parameter = +l | Client join limit for the channel. +k | Key required when joining the channel. = Type D - flag modes = +i | Invite-only mode, only invited clients can join 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. +t | Only channel opers can modify the topic. +s | Secret mode, channel won't show up in /LIST or whois replies. = 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`, }, "debug": { oper: true, text: `DEBUG