discord

package
v0.0.0-...-80caa2b Latest Latest
Warning

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

Go to latest
Published: May 2, 2022 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	PublicCategory  commands.Permission = category(0)
	QueryCategory   commands.Permission = category(1)
	ControlCategory commands.Permission = category(2)
	AdminCategory   commands.Permission = category(3)
)
View Source
var ErrInvalidSnowflake = errors.New("invalid snowflake")

Functions

This section is empty.

Types

type Bot

type Bot struct {
	Config
	*discordgo.Session
	// contains filtered or unexported fields
}

func NewBot

func NewBot(config Config, dispatcher *events.Dispatcher) *Bot

func (*Bot) HandleMessage

func (b *Bot) HandleMessage(message *discordgo.Message, ctx context.Context)

func (*Bot) HandleNotification

func (b *Bot) HandleNotification(notification Notification)

func (*Bot) HandleStatusProvider

func (b *Bot) HandleStatusProvider(provider StatusProvider)

func (*Bot) IsEnabled

func (b *Bot) IsEnabled() bool

func (*Bot) Ready

func (b *Bot) Ready() <-chan struct{}

func (*Bot) Serve

func (b *Bot) Serve(ctx context.Context) (err error)

type Config

type Config struct {
	Token         utils.Secret `json:"token" validate:"required"`
	GuildID       Snowflake    `json:"serverId" validate:"required"`
	ChannelIDs    []Snowflake  `json:"channelIds" validate:"required,min=1"`
	CommandPrefix string       `json:"commandPrefix,omitempty" validate:"required,len=1"`
	Permissions   *Permissions `json:"permissions" validate:"required"`
	Notifications []Snowflake  `json:"notifications,omitempty"`
}

func NewConfig

func NewConfig() *Config

type Notification

type Notification interface {
	DiscordNotification() string
}

type PermissionItem

type PermissionItem struct {
	UserID    *Snowflake `json:"userId,omitempty" validate:"omitempty,required_without_all=Role Channel"`
	RoleID    *Snowflake `json:"roleId,omitempty" validate:"omitempty,required_without_all=User Channel"`
	ChannelID *Snowflake `json:"channelId,omitempty" validate:"omitempty,required_without_all=User Role"`
}

func (PermissionItem) IsAllowed

func (i PermissionItem) IsAllowed(actor *actor) bool

type PermissionList

type PermissionList []PermissionItem

func (PermissionList) IsAllowed

func (l PermissionList) IsAllowed(actor *actor) bool

type Permissions

type Permissions struct {
	Admin   PermissionList `json:"admin,omitempty"`
	Control PermissionList `json:"control,omitempty"`
	Query   PermissionList `json:"query,omitempty"`
	Public  PermissionList `json:"public,omitempty"`
	// contains filtered or unexported fields
}

func (*Permissions) AsList

func (p *Permissions) AsList() []PermissionList

func (*Permissions) IsAllowed

func (p *Permissions) IsAllowed(category category, actor *actor) bool

type Snowflake

type Snowflake string

Discord snowflake cf https://discord.com/developers/docs/reference#snowflakes

func (*Snowflake) EqualString

func (s *Snowflake) EqualString(value string) bool

func (*Snowflake) GoString

func (s *Snowflake) GoString() string

func (*Snowflake) String

func (s *Snowflake) String() string

func (*Snowflake) UnmarshalText

func (s *Snowflake) UnmarshalText(text []byte) error

type StatusProvider

type StatusProvider interface {
	DiscordStatus() string
}

Jump to

Keyboard shortcuts

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