modes

package
v0.11.0-beta Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2018 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// SupportedUserModes are the user modes that we actually support (modifying).
	SupportedUserModes = Modes{
		Away, Bot, Invisible, Operator, RegisteredOnly, ServerNotice, UserRoleplaying,
	}

	// SupportedChannelModes are the channel modes that we support.
	SupportedChannelModes = Modes{
		BanMask, ChanRoleplaying, ExceptMask, InviteMask, InviteOnly, Key,
		Moderated, NoOutside, OpOnlyTopic, RegisteredOnly, Secret, UserLimit,
	}
)

Functions

func SplitChannelMembershipPrefixes

func SplitChannelMembershipPrefixes(target string) (prefixes string, name string)

SplitChannelMembershipPrefixes takes a target and returns the prefixes on it, then the name.

Types

type Mode

type Mode rune

Mode represents a user/channel/server mode

const (
	Away            Mode = 'a'
	Bot             Mode = 'B'
	Invisible       Mode = 'i'
	LocalOperator   Mode = 'O'
	Operator        Mode = 'o'
	Restricted      Mode = 'r'
	RegisteredOnly  Mode = 'R'
	ServerNotice    Mode = 's'
	TLS             Mode = 'Z'
	UserRoleplaying Mode = 'E'
	WallOps         Mode = 'w'
)

User Modes

const (
	BanMask         Mode = 'b' // arg
	ChanRoleplaying Mode = 'E' // flag
	ExceptMask      Mode = 'e' // arg
	InviteMask      Mode = 'I' // arg
	InviteOnly      Mode = 'i' // flag
	Key             Mode = 'k' // flag arg
	Moderated       Mode = 'm' // flag
	NoOutside       Mode = 'n' // flag
	OpOnlyTopic     Mode = 't' // flag
	// RegisteredOnly mode is reused here from umode definition
	Secret    Mode = 's' // flag
	UserLimit Mode = 'l' // flag arg
)

Channel Modes

var (
	ChannelFounder  Mode = 'q' // arg
	ChannelAdmin    Mode = 'a' // arg
	ChannelOperator Mode = 'o' // arg
	Halfop          Mode = 'h' // arg
	Voice           Mode = 'v' // arg

	// ChannelPrivModes holds the list of modes that are privileged, ie founder/op/halfop, in order.
	// voice is not in this list because it cannot perform channel operator actions.
	ChannelPrivModes = Modes{
		ChannelFounder, ChannelAdmin, ChannelOperator, Halfop,
	}

	ChannelModePrefixes = map[Mode]string{
		ChannelFounder:  "~",
		ChannelAdmin:    "&",
		ChannelOperator: "@",
		Halfop:          "%",
		Voice:           "+",
	}
)

func GetLowestChannelModePrefix

func GetLowestChannelModePrefix(prefixes string) *Mode

GetLowestChannelModePrefix returns the lowest channel prefix mode out of the given prefixes.

func (Mode) String

func (mode Mode) String() string

type ModeChange

type ModeChange struct {
	Mode Mode
	Op   ModeOp
	Arg  string
}

ModeChange is a single mode changing

func (*ModeChange) String

func (change *ModeChange) String() (str string)

type ModeChanges

type ModeChanges []ModeChange

ModeChanges are a collection of 'ModeChange's

func ParseUserModeChanges

func ParseUserModeChanges(params ...string) (ModeChanges, map[rune]bool)

ParseUserModeChanges returns the valid changes, and the list of unknown chars.

func (ModeChanges) String

func (changes ModeChanges) String() string

type ModeOp

type ModeOp rune

ModeOp is an operation performed with modes

const (
	// Add is used when adding the given key.
	Add ModeOp = '+'
	// List is used when listing modes (for instance, listing the current bans on a channel).
	List ModeOp = '='
	// Remove is used when taking away the given key.
	Remove ModeOp = '-'
)

func (ModeOp) String

func (op ModeOp) String() string

type ModeSet

type ModeSet map[Mode]bool

ModeSet holds a set of modes.

func (ModeSet) Prefixes

func (set ModeSet) Prefixes(isMultiPrefix bool) string

Prefixes returns a list of prefixes for the given set of channel modes.

func (ModeSet) String

func (set ModeSet) String() string

String returns the modes in this set.

type Modes

type Modes []Mode

Modes is just a raw list of modes

func (Modes) String

func (modes Modes) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL