Documentation
¶
Index ¶
- Variables
- type Bot
- func (b *Bot) HandleMessage(message *discordgo.Message, ctx context.Context)
- func (b *Bot) HandleNotification(notification Notification)
- func (b *Bot) HandleStatusProvider(provider StatusProvider)
- func (b *Bot) IsEnabled() bool
- func (b *Bot) Ready() <-chan struct{}
- func (b *Bot) Serve(ctx context.Context) (err error)
- type Config
- type Notification
- type PermissionItem
- type PermissionList
- type Permissions
- type Snowflake
- type StatusProvider
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 ¶
func (*Bot) HandleMessage ¶
func (*Bot) HandleNotification ¶
func (b *Bot) HandleNotification(notification Notification)
func (*Bot) HandleStatusProvider ¶
func (b *Bot) HandleStatusProvider(provider StatusProvider)
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"`
}
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 (*Snowflake) UnmarshalText ¶
type StatusProvider ¶
type StatusProvider interface {
DiscordStatus() string
}
Click to show internal directories.
Click to hide internal directories.