discord

package
v0.18.12 Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2024 License: Apache-2.0 Imports: 16 Imported by: 187

Documentation

Index

Constants

View Source
const (
	ApplicationFlagAutoModerationRuleCreateBadge = 1 << (iota + 6)

	ApplicationFlagGatewayPresence
	ApplicationFlagGatewayPresenceLimited
	ApplicationFlagGatewayGuildMembers
	ApplicationFlagGatewayGuildMemberLimited
	ApplicationFlagVerificationPendingGuildLimit
	ApplicationFlagEmbedded
	ApplicationFlagGatewayMessageContent
	ApplicationFlagGatewayMessageContentLimited

	ApplicationFlagApplicationCommandBadge
)
View Source
const (
	CDN      = "https://cdn.discordapp.com"
	CDNMedia = "https://media.discordapp.net"
)
View Source
const MessageURLFmt = "https://discord.com/channels/%s/%d/%d"
View Source
const ScopeSeparator = " "

Variables

View Source
var (
	CustomEmoji = NewCDN("/emojis/{emote.id}", FileFormatPNG, FileFormatGIF)

	GuildIcon            = NewCDN("/icons/{guild.id}/{guild.icon.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP, FileFormatGIF)
	GuildSplash          = NewCDN("/splashes/{guild.id}/{guild.splash.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP)
	GuildDiscoverySplash = NewCDN("/discovery-splashes/{guild.id}/{guild.discovery.splash.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP)
	GuildBanner          = NewCDN("/banners/{guild.id}/{guild.banner.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP, FileFormatGIF)

	GuildScheduledEventCover = NewCDN("/guild-events/{event.id}/{event.cover.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP)

	RoleIcon = NewCDN("/role-icons/{role.id}/{role.icon.hash}", FileFormatPNG, FileFormatJPEG)

	UserBanner        = NewCDN("/banners/{user.id}/{user.banner.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP, FileFormatGIF)
	UserAvatar        = NewCDN("/avatars/{user.id}/{user.avatar.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP, FileFormatGIF)
	DefaultUserAvatar = NewCDN("/embed/avatars/{index}", FileFormatPNG)

	ChannelIcon = NewCDN("/channel-icons/{channel.id}/{channel.icon.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP)

	MemberAvatar = NewCDN("/guilds/{guild.id}/users/{user.id}/avatars/{member.avatar.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP, FileFormatGIF)
	MemberBanner = NewCDN("/guilds/{guild.id}/users/{user.id}/banners/{member.avatar.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP, FileFormatGIF)

	AvatarDecoration = NewCDN("/avatar-decoration-presets/{user.avatar.decoration.hash}", FileFormatPNG)

	ApplicationIcon  = NewCDN("/app-icons/{application.id}/{icon.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP)
	ApplicationCover = NewCDN("/app-assets/{application.id}/{cover.image.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP)
	ApplicationAsset = NewCDN("/app-assets/{application.id}/{asset.id}", FileFormatPNG, FileFormatJPEG, FileFormatWebP)

	AchievementIcon = NewCDN("/app-assets/{application.id}/achievements/{achievement.id}/icons/{icon.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP)

	StorePageAsset = NewCDN("/app-assets/{application.id}/store/{asset.id}", FileFormatPNG, FileFormatJPEG, FileFormatWebP)

	TeamIcon = NewCDN("/team-icons/{team.id}/{team.icon.hash}", FileFormatPNG, FileFormatJPEG, FileFormatWebP)

	StickerPackBanner = NewCDN("/app-assets/710982414301790216/store/{banner.asset.id}", FileFormatPNG, FileFormatJPEG, FileFormatWebP)
	CustomSticker     = NewCDN("/stickers/{sticker.id}", FileFormatPNG, FileFormatLottie, FileFormatGIF)

	AttachmentFile = NewCDN("/attachments/{channel.id}/{attachment.id}/{file.name}", FileFormatNone)
)
View Source
var (
	ErrNoGatewayOrShardManager = errors.New("no gateway or shard manager configured")
	ErrNoGuildMembersIntent    = errors.New("this operation requires the GUILD_MEMBERS intent")
	ErrNoShardManager          = errors.New("no shard manager configured")
	ErrNoGateway               = errors.New("no gateway configured")
	ErrGatewayAlreadyConnected = errors.New("gateway is already connected")
	ErrShardNotConnected       = errors.New("shard is not connected")
	ErrShardNotFound           = errors.New("shard not found in shard manager")
	ErrGatewayCompressedData   = errors.New("disgo does not currently support compressed gateway data")
	ErrNoHTTPServer            = errors.New("no http server configured")

	ErrNoDisgoInstance = errors.New("no disgo instance injected")

	ErrInvalidBotToken = errors.New("token is not in a valid format")
	ErrNoBotToken      = errors.New("please specify the token")

	ErrSelfDM = errors.New("can't open a dm channel to yourself")

	ErrInteractionAlreadyReplied = errors.New("you already replied to this interaction")
	ErrInteractionExpired        = errors.New("this interaction has expired")

	ErrChannelNotTypeNews = errors.New("channel type is not 'NEWS'")

	ErrCheckFailed = errors.New("check failed")

	ErrMemberMustBeConnectedToChannel = errors.New("the member must be connected to the channel")

	ErrStickerTypeGuild = errors.New("sticker type must be of type StickerTypeGuild")
)
View Source
var (
	MentionTypeUser            = MentionType{regexp.MustCompile(`<@!?(\d+)>`)}
	MentionTypeRole            = MentionType{regexp.MustCompile(`<@&(\d+)>`)}
	MentionTypeChannel         = MentionType{regexp.MustCompile(`<#(\d+)>`)}
	MentionTypeEmoji           = MentionType{regexp.MustCompile(`<a?:(\w+):(\d+)>`)}
	MentionTypeTimestamp       = MentionType{regexp.MustCompile(`<t:(?P<time>-?\d{1,17})(?::(?P<format>[tTdDfFR]))?>`)}
	MentionTypeSlashCommand    = MentionType{regexp.MustCompile(`</(\w+) ?((\w+)|(\w+ \w+)):(\d+)>`)}
	MentionTypeHere            = MentionType{regexp.MustCompile(`@here`)}
	MentionTypeEveryone        = MentionType{regexp.MustCompile(`@everyone`)}
	MentionTypeGuildNavigation = MentionType{regexp.MustCompile("<id:(browse|customize|guide|linked-roles)>")}
	MentionTypeLinkedRole      = MentionType{regexp.MustCompile(`<id:linked-roles:(\d+)>`)}
)
View Source
var DefaultAllowedMentions = AllowedMentions{
	Parse:       []AllowedMentionType{AllowedMentionTypeUsers, AllowedMentionTypeRoles, AllowedMentionTypeEveryone},
	Roles:       []snowflake.ID{},
	Users:       []snowflake.ID{},
	RepliedUser: true,
}

DefaultAllowedMentions gives you the default AllowedMentions for a Message

View Source
var EmptyStringBytes = []byte(`""`)
View Source
var ErrNoTimestampMatch = errors.New("no matching timestamp found in string")

ErrNoTimestampMatch is returned when no valid Timestamp is found in the Message

View Source
var Locales = map[Locale]string{
	LocaleEnglishUS:    "English (United States)",
	LocaleEnglishGB:    "English (Great Britain)",
	LocaleBulgarian:    "Bulgarian",
	LocaleChineseCN:    "Chinese (China)",
	LocaleChineseTW:    "Chinese (Taiwan)",
	LocaleCroatian:     "Croatian",
	LocaleCzech:        "Czech",
	LocaleDanish:       "Danish",
	LocaleDutch:        "Dutch",
	LocaleFinnish:      "Finnish",
	LocaleFrench:       "French",
	LocaleGerman:       "German",
	LocaleGreek:        "Greek",
	LocaleHindi:        "Hindi",
	LocaleHungarian:    "Hungarian",
	LocaleIndonesian:   "Indonesian",
	LocaleItalian:      "Italian",
	LocaleJapanese:     "Japanese",
	LocaleKorean:       "Korean",
	LocaleLithuanian:   "Lithuanian",
	LocaleNorwegian:    "Norwegian",
	LocalePolish:       "Polish",
	LocalePortugueseBR: "Portuguese (Brazil)",
	LocaleRomanian:     "Romanian",
	LocaleRussian:      "Russian",
	LocaleSpanishES:    "Spanish (Spain)",
	LocaleSwedish:      "Swedish",
	LocaleThai:         "Thai",
	LocaleTurkish:      "Turkish",
	LocaleUkrainian:    "Ukrainian",
	LocaleVietnamese:   "Vietnamese",
	LocaleUnknown:      "unknown",
}

Functions

func AllGuildChannels added in v0.10.2

func AllGuildChannels(guildID snowflake.ID) snowflake.ID

func AnimatedEmojiMention

func AnimatedEmojiMention(id snowflake.ID, name string) string

func AuthorizeURL added in v0.13.11

func AuthorizeURL(values QueryValues) string

AuthorizeURL returns the OAuth2 authorize url with the given query params

func ChannelMention

func ChannelMention(id snowflake.ID) string

func EmojiMention

func EmojiMention(id snowflake.ID, name string) string

func FormattedTimestampMention

func FormattedTimestampMention(timestamp int64, style TimestampStyle) string

func HasScope

func HasScope(scope OAuth2Scope, scopes ...OAuth2Scope) bool

func InviteURL added in v0.13.11

func InviteURL(code string) string

InviteURL formats the invite code as an url

func JoinScopes

func JoinScopes(scopes []OAuth2Scope) string

func MessageURL added in v0.13.18

func MessageURL(guildID snowflake.ID, channelID snowflake.ID, messageID snowflake.ID) string
func NavigationBrowseMention() string
func NavigationCustomizeMention() string
func NavigationGuideMention() string
func NavigationLinkedRole(id snowflake.ID) string
func NavigationLinkedRoles() string

func RoleMention

func RoleMention(id snowflake.ID) string

func SlashCommandMention added in v0.13.17

func SlashCommandMention(id snowflake.ID, path string) string

SlashCommandMention creates a slash command mention. You can also pass a subcommand (and/or a subcommand group respectively) to the path.

mention := SlashCommandMention(id, "command group subcommand")

func TimestampMention

func TimestampMention(timestamp int64) string

func UserMention

func UserMention(id snowflake.ID) string

func UserTag

func UserTag(username string, discriminator string) string

UserTag returns a formatted string of "Username#Discriminator", falling back to the username if discriminator is "0"

func WebhookURL added in v0.13.11

func WebhookURL(webhookID snowflake.ID, webhookToken string) string

WebhookURL returns the url over which the webhook can be called

Types

type AccessTokenResponse added in v0.12.0

type AccessTokenResponse struct {
	AccessToken  string        `json:"access_token"`
	TokenType    TokenType     `json:"token_type"`
	ExpiresIn    time.Duration `json:"expires_in"`
	RefreshToken string        `json:"refresh_token"`
	Scope        []OAuth2Scope `json:"scope"`

	// Webhook is only present if scopes include the OAuth2ScopeWebhookIncoming
	Webhook *IncomingWebhook `json:"webhook"`
}

AccessTokenResponse is the response from the OAuth2 exchange endpoint. See https://discord.com/developers/docs/topics/oauth2#authorization-code-grant for more information.

func (AccessTokenResponse) MarshalJSON added in v0.12.0

func (e AccessTokenResponse) MarshalJSON() ([]byte, error)

func (*AccessTokenResponse) UnmarshalJSON added in v0.12.0

func (e *AccessTokenResponse) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler.

type ActionRowComponent

type ActionRowComponent []InteractiveComponent

func NewActionRow

func NewActionRow(components ...InteractiveComponent) ActionRowComponent

func (ActionRowComponent) AddComponents

func (c ActionRowComponent) AddComponents(components ...InteractiveComponent) ActionRowComponent

AddComponents returns a new ActionRowComponent with the provided Component(s) added

func (ActionRowComponent) Buttons

func (c ActionRowComponent) Buttons() []ButtonComponent

Buttons returns all ButtonComponent(s) in the ActionRowComponent

func (ActionRowComponent) Components

func (c ActionRowComponent) Components() []InteractiveComponent

func (ActionRowComponent) MarshalJSON

func (c ActionRowComponent) MarshalJSON() ([]byte, error)

func (ActionRowComponent) RemoveComponent

func (c ActionRowComponent) RemoveComponent(index int) ActionRowComponent

RemoveComponent returns a new ActionRowComponent with the provided Component at the index removed

func (ActionRowComponent) SelectMenus

func (c ActionRowComponent) SelectMenus() []SelectMenuComponent

SelectMenus returns all SelectMenuComponent(s) in the ActionRowComponent

func (ActionRowComponent) TextInputs added in v0.12.1

func (c ActionRowComponent) TextInputs() []TextInputComponent

TextInputs returns all TextInputComponent(s) in the ActionRowComponent

func (ActionRowComponent) Type

func (*ActionRowComponent) UnmarshalJSON

func (c *ActionRowComponent) UnmarshalJSON(data []byte) error

func (ActionRowComponent) UpdateComponent

func (c ActionRowComponent) UpdateComponent(customID string, component InteractiveComponent) ActionRowComponent

UpdateComponent returns a new ActionRowComponent with the Component which has the customID replaced

type Activity

type Activity struct {
	ID            string              `json:"id"`
	Name          string              `json:"name"`
	Type          ActivityType        `json:"type"`
	URL           *string             `json:"url,omitempty"`
	CreatedAt     time.Time           `json:"created_at"`
	Timestamps    *ActivityTimestamps `json:"timestamps,omitempty"`
	SyncID        *string             `json:"sync_id,omitempty"`
	ApplicationID snowflake.ID        `json:"application_id,omitempty"`
	Details       *string             `json:"details,omitempty"`
	State         *string             `json:"state,omitempty"`
	Emoji         *PartialEmoji       `json:"emoji,omitempty"`
	Party         *ActivityParty      `json:"party,omitempty"`
	Assets        *ActivityAssets     `json:"assets,omitempty"`
	Secrets       *ActivitySecrets    `json:"secrets,omitempty"`
	Instance      *bool               `json:"instance,omitempty"`
	Flags         ActivityFlags       `json:"flags,omitempty"`
	Buttons       []string            `json:"buttons,omitempty"`
}

Activity represents the fields of a user's presence

func (Activity) MarshalJSON added in v0.13.17

func (a Activity) MarshalJSON() ([]byte, error)

func (*Activity) UnmarshalJSON added in v0.13.17

func (a *Activity) UnmarshalJSON(data []byte) error

type ActivityAssets

type ActivityAssets struct {
	LargeImage string `json:"large_image,omitempty"`
	LargeText  string `json:"large_text,omitempty"`
	SmallImage string `json:"small_image,omitempty"`
	SmallText  string `json:"small_text,omitempty"`
}

ActivityAssets are the images for the presence and hover texts

type ActivityButton

type ActivityButton struct {
	Label string `json:"label"`
	URL   string `json:"url"`
}

ActivityButton is a button in an activity

type ActivityFlags added in v0.12.0

type ActivityFlags int

ActivityFlags add additional information to an activity

const (
	ActivityFlagInstance ActivityFlags = 1 << iota
	ActivityFlagJoin
	ActivityFlagSpectate
	ActivityFlagJoinRequest
	ActivityFlagSync
	ActivityFlagPlay
	ActivityFlagPartyPrivacyFriends
	ActivityFlagPartyPrivacyVoiceChannel
	ActivityFlagEmbedded
)

Discord's supported ActivityFlags

func (ActivityFlags) Add added in v0.13.21

func (f ActivityFlags) Add(bits ...ActivityFlags) ActivityFlags

Add allows you to add multiple bits together, producing a new bit

func (ActivityFlags) Has added in v0.13.21

func (f ActivityFlags) Has(bits ...ActivityFlags) bool

Has will ensure that the bit includes all the bits entered

func (ActivityFlags) Missing added in v0.13.21

func (f ActivityFlags) Missing(bits ...ActivityFlags) bool

Missing will check whether the bit is missing any one of the bits

func (ActivityFlags) Remove added in v0.13.21

func (f ActivityFlags) Remove(bits ...ActivityFlags) ActivityFlags

Remove allows you to subtract multiple bits from the first, producing a new bit

type ActivityInstance added in v0.18.11

type ActivityInstance struct {
	ApplicationID snowflake.ID     `json:"application_id"`
	InstanceID    string           `json:"instance_id"`
	LaunchID      snowflake.ID     `json:"launch_id"`
	Location      ActivityLocation `json:"location"`
	Users         []snowflake.ID   `json:"users"`
}

type ActivityLocation added in v0.18.11

type ActivityLocation struct {
	ID        string               `json:"id"`
	Kind      ActivityLocationKind `json:"kind"`
	ChannelID snowflake.ID         `json:"channel_id"`
	GuildID   *snowflake.ID        `json:"guild_id"`
}

type ActivityLocationKind added in v0.18.11

type ActivityLocationKind string
const (
	ActivityLocationKindGC ActivityLocationKind = "gc"
	ActivityLocationKindPC ActivityLocationKind = "pc"
)

type ActivityParty

type ActivityParty struct {
	ID   string `json:"id,omitempty"`
	Size [2]int `json:"size,omitempty"`
}

ActivityParty is information about the party of the player

type ActivitySecrets

type ActivitySecrets struct {
	Join     string `json:"join,omitempty"`
	Spectate string `json:"spectate,omitempty"`
	Match    string `json:"match,omitempty"`
}

ActivitySecrets contain secrets for Rich Presence joining and spectating

type ActivityTimestamps

type ActivityTimestamps struct {
	Start time.Time
	End   time.Time
}

ActivityTimestamps represents when a user started and ended their activity

func (ActivityTimestamps) MarshalJSON added in v0.13.17

func (a ActivityTimestamps) MarshalJSON() ([]byte, error)

func (*ActivityTimestamps) UnmarshalJSON added in v0.13.17

func (a *ActivityTimestamps) UnmarshalJSON(data []byte) error

type ActivityType

type ActivityType int

ActivityType represents the status of a user, one of Game, Streaming, Listening, Watching, Custom or Competing

const (
	ActivityTypeGame ActivityType = iota
	ActivityTypeStreaming
	ActivityTypeListening
	ActivityTypeWatching
	ActivityTypeCustom
	ActivityTypeCompeting
)

Constants for Activity(s)

type AddBan

type AddBan struct {
	DeleteMessageSeconds int `json:"delete_message_seconds,omitempty"`
}

AddBan is used to ban a User (https://discord.com/developers/docs/resources/guild#create-guild-ban-json-params)

type AllowedMentionType

type AllowedMentionType string

AllowedMentionType ?

const (
	AllowedMentionTypeRoles    AllowedMentionType = "roles"
	AllowedMentionTypeUsers    AllowedMentionType = "users"
	AllowedMentionTypeEveryone AllowedMentionType = "everyone"
)

All AllowedMentionType(s)

type AllowedMentions

type AllowedMentions struct {
	Parse       []AllowedMentionType `json:"parse"`
	Roles       []snowflake.ID       `json:"roles"`
	Users       []snowflake.ID       `json:"users"`
	RepliedUser bool                 `json:"replied_user"`
}

AllowedMentions are used for avoiding mentioning users in Message and Interaction

type Application

type Application struct {
	ID                             snowflake.ID                      `json:"id"`
	Name                           string                            `json:"name"`
	Icon                           *string                           `json:"icon,omitempty"`
	Description                    string                            `json:"description"`
	RPCOrigins                     []string                          `json:"rpc_origins"`
	BotPublic                      bool                              `json:"bot_public"`
	BotRequireCodeGrant            bool                              `json:"bot_require_code_grant"`
	Bot                            *User                             `json:"bot,omitempty"`
	TermsOfServiceURL              *string                           `json:"terms_of_service_url,omitempty"`
	PrivacyPolicyURL               *string                           `json:"privacy_policy_url,omitempty"`
	CustomInstallURL               *string                           `json:"custom_install_url,omitempty"`
	InteractionsEndpointURL        *string                           `json:"interactions_endpoint_url,omitempty"`
	RoleConnectionsVerificationURL *string                           `json:"role_connections_verification_url"`
	InstallParams                  *InstallParams                    `json:"install_params"`
	Tags                           []string                          `json:"tags"`
	Owner                          *User                             `json:"owner,omitempty"`
	VerifyKey                      string                            `json:"verify_key"`
	Team                           *Team                             `json:"team,omitempty"`
	GuildID                        *snowflake.ID                     `json:"guild_id,omitempty"`
	Guild                          *Guild                            `json:"guild,omitempty"`
	PrimarySkuID                   *snowflake.ID                     `json:"primary_sku_id,omitempty"`
	Slug                           *string                           `json:"slug,omitempty"`
	CoverImage                     *string                           `json:"cover_image,omitempty"`
	Flags                          ApplicationFlags                  `json:"flags,omitempty"`
	ApproximateGuildCount          *int                              `json:"approximate_guild_count,omitempty"`
	ApproximateUserInstallCount    *int                              `json:"approximate_user_install_count,omitempty"`
	IntegrationTypesConfig         ApplicationIntegrationTypesConfig `json:"integration_types_config"`
}

func (Application) CoverImageURL added in v0.14.1

func (a Application) CoverImageURL(opts ...CDNOpt) *string

func (Application) CreatedAt added in v0.13.17

func (a Application) CreatedAt() time.Time

func (Application) IconURL

func (a Application) IconURL(opts ...CDNOpt) *string

type ApplicationCommand

type ApplicationCommand interface {
	json.Marshaler
	ID() snowflake.ID
	Type() ApplicationCommandType
	ApplicationID() snowflake.ID
	GuildID() *snowflake.ID
	Name() string
	NameLocalizations() map[Locale]string
	NameLocalized() string
	DefaultMemberPermissions() Permissions
	DMPermission() bool
	Version() snowflake.ID
	CreatedAt() time.Time
	NSFW() bool
	IntegrationTypes() []ApplicationIntegrationType
	Contexts() []InteractionContextType
	// contains filtered or unexported methods
}

type ApplicationCommandCreate

type ApplicationCommandCreate interface {
	json.Marshaler
	Type() ApplicationCommandType
	CommandName() string
	// contains filtered or unexported methods
}

type ApplicationCommandInteraction

type ApplicationCommandInteraction struct {
	Data ApplicationCommandInteractionData `json:"data"`
	// contains filtered or unexported fields
}

func (ApplicationCommandInteraction) AppPermissions added in v0.15.1

func (i ApplicationCommandInteraction) AppPermissions() *Permissions

func (ApplicationCommandInteraction) ApplicationID added in v0.15.1

func (i ApplicationCommandInteraction) ApplicationID() snowflake.ID

func (ApplicationCommandInteraction) AuthorizingIntegrationOwners added in v0.18.0

func (i ApplicationCommandInteraction) AuthorizingIntegrationOwners() map[ApplicationIntegrationType]snowflake.ID

func (ApplicationCommandInteraction) Channel added in v0.16.1

func (i ApplicationCommandInteraction) Channel() InteractionChannel

func (ApplicationCommandInteraction) ChannelID deprecated added in v0.15.1

func (i ApplicationCommandInteraction) ChannelID() snowflake.ID

Deprecated: Use Channel() instead

func (ApplicationCommandInteraction) Context added in v0.18.0

func (i ApplicationCommandInteraction) Context() InteractionContextType

func (ApplicationCommandInteraction) CreatedAt added in v0.15.1

func (i ApplicationCommandInteraction) CreatedAt() time.Time

func (ApplicationCommandInteraction) Entitlements added in v0.16.11

func (i ApplicationCommandInteraction) Entitlements() []Entitlement

func (ApplicationCommandInteraction) EntryPointCommandInteractionData added in v0.18.11

func (i ApplicationCommandInteraction) EntryPointCommandInteractionData() EntryPointCommandInteractionData

func (ApplicationCommandInteraction) GuildID added in v0.15.1

func (i ApplicationCommandInteraction) GuildID() *snowflake.ID

func (ApplicationCommandInteraction) GuildLocale added in v0.15.1

func (i ApplicationCommandInteraction) GuildLocale() *Locale

func (ApplicationCommandInteraction) ID added in v0.15.1

func (i ApplicationCommandInteraction) ID() snowflake.ID

func (ApplicationCommandInteraction) Locale added in v0.15.1

func (i ApplicationCommandInteraction) Locale() Locale

func (ApplicationCommandInteraction) MarshalJSON added in v0.15.1

func (i ApplicationCommandInteraction) MarshalJSON() ([]byte, error)

func (ApplicationCommandInteraction) Member added in v0.15.1

func (i ApplicationCommandInteraction) Member() *ResolvedMember

func (ApplicationCommandInteraction) MessageCommandInteractionData

func (i ApplicationCommandInteraction) MessageCommandInteractionData() MessageCommandInteractionData

func (ApplicationCommandInteraction) PartialGuild added in v0.18.6

func (i ApplicationCommandInteraction) PartialGuild() *InteractionGuild

func (ApplicationCommandInteraction) SlashCommandInteractionData

func (i ApplicationCommandInteraction) SlashCommandInteractionData() SlashCommandInteractionData

func (ApplicationCommandInteraction) Token added in v0.15.1

func (i ApplicationCommandInteraction) Token() string

func (ApplicationCommandInteraction) Type

func (*ApplicationCommandInteraction) UnmarshalJSON

func (i *ApplicationCommandInteraction) UnmarshalJSON(data []byte) error

func (ApplicationCommandInteraction) User added in v0.15.1

func (i ApplicationCommandInteraction) User() User

func (ApplicationCommandInteraction) UserCommandInteractionData

func (i ApplicationCommandInteraction) UserCommandInteractionData() UserCommandInteractionData

func (ApplicationCommandInteraction) Version added in v0.15.1

func (i ApplicationCommandInteraction) Version() int

type ApplicationCommandInteractionData

type ApplicationCommandInteractionData interface {
	Type() ApplicationCommandType
	CommandID() snowflake.ID
	CommandName() string
	GuildID() *snowflake.ID
	// contains filtered or unexported methods
}

type ApplicationCommandOption

type ApplicationCommandOption interface {
	json.Marshaler
	Type() ApplicationCommandOptionType
	OptionName() string
	OptionDescription() string
	// contains filtered or unexported methods
}

type ApplicationCommandOptionAttachment

type ApplicationCommandOptionAttachment struct {
	Name                     string            `json:"name"`
	NameLocalizations        map[Locale]string `json:"name_localizations,omitempty"`
	Description              string            `json:"description"`
	DescriptionLocalizations map[Locale]string `json:"description_localizations,omitempty"`
	Required                 bool              `json:"required,omitempty"`
}

func (ApplicationCommandOptionAttachment) MarshalJSON

func (o ApplicationCommandOptionAttachment) MarshalJSON() ([]byte, error)

func (ApplicationCommandOptionAttachment) OptionDescription added in v0.13.17

func (o ApplicationCommandOptionAttachment) OptionDescription() string

func (ApplicationCommandOptionAttachment) OptionName added in v0.13.0

func (ApplicationCommandOptionAttachment) Type

type ApplicationCommandOptionBool

type ApplicationCommandOptionBool struct {
	Name                     string            `json:"name"`
	NameLocalizations        map[Locale]string `json:"name_localizations,omitempty"`
	Description              string            `json:"description"`
	DescriptionLocalizations map[Locale]string `json:"description_localizations,omitempty"`
	Required                 bool              `json:"required,omitempty"`
}

func (ApplicationCommandOptionBool) MarshalJSON

func (o ApplicationCommandOptionBool) MarshalJSON() ([]byte, error)

func (ApplicationCommandOptionBool) OptionDescription added in v0.13.17

func (o ApplicationCommandOptionBool) OptionDescription() string

func (ApplicationCommandOptionBool) OptionName added in v0.13.0

func (o ApplicationCommandOptionBool) OptionName() string

func (ApplicationCommandOptionBool) Type

type ApplicationCommandOptionChannel

type ApplicationCommandOptionChannel struct {
	Name                     string            `json:"name"`
	NameLocalizations        map[Locale]string `json:"name_localizations,omitempty"`
	Description              string            `json:"description"`
	DescriptionLocalizations map[Locale]string `json:"description_localizations,omitempty"`
	Required                 bool              `json:"required,omitempty"`
	ChannelTypes             []ChannelType     `json:"channel_types,omitempty"`
}

func (ApplicationCommandOptionChannel) MarshalJSON

func (o ApplicationCommandOptionChannel) MarshalJSON() ([]byte, error)

func (ApplicationCommandOptionChannel) OptionDescription added in v0.13.17

func (o ApplicationCommandOptionChannel) OptionDescription() string

func (ApplicationCommandOptionChannel) OptionName added in v0.13.0

func (o ApplicationCommandOptionChannel) OptionName() string

func (ApplicationCommandOptionChannel) Type

type ApplicationCommandOptionChoice

type ApplicationCommandOptionChoice interface {
	ChoiceName() string
	// contains filtered or unexported methods
}

type ApplicationCommandOptionChoiceFloat

type ApplicationCommandOptionChoiceFloat struct {
	Name              string            `json:"name"`
	NameLocalizations map[Locale]string `json:"name_localizations,omitempty"`
	Value             float64           `json:"value"`
}

func (ApplicationCommandOptionChoiceFloat) ChoiceName added in v0.17.2

type ApplicationCommandOptionChoiceInt

type ApplicationCommandOptionChoiceInt struct {
	Name              string            `json:"name"`
	NameLocalizations map[Locale]string `json:"name_localizations,omitempty"`
	Value             int               `json:"value"`
}

func (ApplicationCommandOptionChoiceInt) ChoiceName added in v0.17.2

type ApplicationCommandOptionChoiceString

type ApplicationCommandOptionChoiceString struct {
	Name              string            `json:"name"`
	NameLocalizations map[Locale]string `json:"name_localizations,omitempty"`
	Value             string            `json:"value"`
}

func (ApplicationCommandOptionChoiceString) ChoiceName added in v0.17.2

type ApplicationCommandOptionFloat

type ApplicationCommandOptionFloat struct {
	Name                     string                                `json:"name"`
	NameLocalizations        map[Locale]string                     `json:"name_localizations,omitempty"`
	Description              string                                `json:"description"`
	DescriptionLocalizations map[Locale]string                     `json:"description_localizations,omitempty"`
	Required                 bool                                  `json:"required,omitempty"`
	Choices                  []ApplicationCommandOptionChoiceFloat `json:"choices,omitempty"`
	Autocomplete             bool                                  `json:"autocomplete,omitempty"`
	MinValue                 *float64                              `json:"min_value,omitempty"`
	MaxValue                 *float64                              `json:"max_value,omitempty"`
}

func (ApplicationCommandOptionFloat) MarshalJSON

func (o ApplicationCommandOptionFloat) MarshalJSON() ([]byte, error)

func (ApplicationCommandOptionFloat) OptionDescription added in v0.13.17

func (o ApplicationCommandOptionFloat) OptionDescription() string

func (ApplicationCommandOptionFloat) OptionName added in v0.13.0

func (o ApplicationCommandOptionFloat) OptionName() string

func (ApplicationCommandOptionFloat) Type

type ApplicationCommandOptionInt

type ApplicationCommandOptionInt struct {
	Name                     string                              `json:"name"`
	NameLocalizations        map[Locale]string                   `json:"name_localizations,omitempty"`
	Description              string                              `json:"description"`
	DescriptionLocalizations map[Locale]string                   `json:"description_localizations,omitempty"`
	Required                 bool                                `json:"required,omitempty"`
	Choices                  []ApplicationCommandOptionChoiceInt `json:"choices,omitempty"`
	Autocomplete             bool                                `json:"autocomplete,omitempty"`
	MinValue                 *int                                `json:"min_value,omitempty"`
	MaxValue                 *int                                `json:"max_value,omitempty"`
}

func (ApplicationCommandOptionInt) MarshalJSON

func (o ApplicationCommandOptionInt) MarshalJSON() ([]byte, error)

func (ApplicationCommandOptionInt) OptionDescription added in v0.13.17

func (o ApplicationCommandOptionInt) OptionDescription() string

func (ApplicationCommandOptionInt) OptionName added in v0.13.0

func (o ApplicationCommandOptionInt) OptionName() string

func (ApplicationCommandOptionInt) Type

type ApplicationCommandOptionMentionable

type ApplicationCommandOptionMentionable struct {
	Name                     string            `json:"name"`
	NameLocalizations        map[Locale]string `json:"name_localizations,omitempty"`
	Description              string            `json:"description"`
	DescriptionLocalizations map[Locale]string `json:"description_localizations,omitempty"`
	Required                 bool              `json:"required,omitempty"`
}

func (ApplicationCommandOptionMentionable) MarshalJSON

func (o ApplicationCommandOptionMentionable) MarshalJSON() ([]byte, error)

func (ApplicationCommandOptionMentionable) OptionDescription added in v0.13.17

func (o ApplicationCommandOptionMentionable) OptionDescription() string

func (ApplicationCommandOptionMentionable) OptionName added in v0.13.0

func (ApplicationCommandOptionMentionable) Type

type ApplicationCommandOptionRole

type ApplicationCommandOptionRole struct {
	Name                     string            `json:"name"`
	NameLocalizations        map[Locale]string `json:"name_localizations,omitempty"`
	Description              string            `json:"description"`
	DescriptionLocalizations map[Locale]string `json:"description_localizations,omitempty"`
	Required                 bool              `json:"required,omitempty"`
}

func (ApplicationCommandOptionRole) MarshalJSON

func (o ApplicationCommandOptionRole) MarshalJSON() ([]byte, error)

func (ApplicationCommandOptionRole) OptionDescription added in v0.13.17

func (o ApplicationCommandOptionRole) OptionDescription() string

func (ApplicationCommandOptionRole) OptionName added in v0.13.0

func (o ApplicationCommandOptionRole) OptionName() string

func (ApplicationCommandOptionRole) Type

type ApplicationCommandOptionString

type ApplicationCommandOptionString struct {
	Name                     string                                 `json:"name"`
	NameLocalizations        map[Locale]string                      `json:"name_localizations,omitempty"`
	Description              string                                 `json:"description"`
	DescriptionLocalizations map[Locale]string                      `json:"description_localizations,omitempty"`
	Required                 bool                                   `json:"required,omitempty"`
	Choices                  []ApplicationCommandOptionChoiceString `json:"choices,omitempty"`
	Autocomplete             bool                                   `json:"autocomplete,omitempty"`
	MinLength                *int                                   `json:"min_length,omitempty"`
	MaxLength                *int                                   `json:"max_length,omitempty"`
}

func (ApplicationCommandOptionString) MarshalJSON

func (o ApplicationCommandOptionString) MarshalJSON() ([]byte, error)

func (ApplicationCommandOptionString) OptionDescription added in v0.13.17

func (o ApplicationCommandOptionString) OptionDescription() string

func (ApplicationCommandOptionString) OptionName added in v0.13.0

func (o ApplicationCommandOptionString) OptionName() string

func (ApplicationCommandOptionString) Type

type ApplicationCommandOptionSubCommand

type ApplicationCommandOptionSubCommand struct {
	Name                     string                     `json:"name"`
	NameLocalizations        map[Locale]string          `json:"name_localizations,omitempty"`
	Description              string                     `json:"description"`
	DescriptionLocalizations map[Locale]string          `json:"description_localizations,omitempty"`
	Options                  []ApplicationCommandOption `json:"options,omitempty"`
}

func (ApplicationCommandOptionSubCommand) MarshalJSON

func (o ApplicationCommandOptionSubCommand) MarshalJSON() ([]byte, error)

func (ApplicationCommandOptionSubCommand) OptionDescription added in v0.13.17

func (o ApplicationCommandOptionSubCommand) OptionDescription() string

func (ApplicationCommandOptionSubCommand) OptionName added in v0.13.9

func (ApplicationCommandOptionSubCommand) Type

func (*ApplicationCommandOptionSubCommand) UnmarshalJSON

func (o *ApplicationCommandOptionSubCommand) UnmarshalJSON(data []byte) error

type ApplicationCommandOptionSubCommandGroup

type ApplicationCommandOptionSubCommandGroup struct {
	Name                     string                               `json:"name"`
	NameLocalizations        map[Locale]string                    `json:"name_localizations,omitempty"`
	Description              string                               `json:"description"`
	DescriptionLocalizations map[Locale]string                    `json:"description_localizations,omitempty"`
	Options                  []ApplicationCommandOptionSubCommand `json:"options,omitempty"`
}

func (ApplicationCommandOptionSubCommandGroup) MarshalJSON

func (o ApplicationCommandOptionSubCommandGroup) MarshalJSON() ([]byte, error)

func (ApplicationCommandOptionSubCommandGroup) OptionDescription added in v0.13.17

func (o ApplicationCommandOptionSubCommandGroup) OptionDescription() string

func (ApplicationCommandOptionSubCommandGroup) OptionName added in v0.13.9

func (ApplicationCommandOptionSubCommandGroup) Type

type ApplicationCommandOptionType

type ApplicationCommandOptionType int

ApplicationCommandOptionType specifies the type of the arguments used in ApplicationCommand.Options

const (
	ApplicationCommandOptionTypeSubCommand ApplicationCommandOptionType = iota + 1
	ApplicationCommandOptionTypeSubCommandGroup
	ApplicationCommandOptionTypeString
	ApplicationCommandOptionTypeInt
	ApplicationCommandOptionTypeBool
	ApplicationCommandOptionTypeUser
	ApplicationCommandOptionTypeChannel
	ApplicationCommandOptionTypeRole
	ApplicationCommandOptionTypeMentionable
	ApplicationCommandOptionTypeFloat
	ApplicationCommandOptionTypeAttachment
)

Constants for each slash command option type

type ApplicationCommandOptionUser

type ApplicationCommandOptionUser struct {
	Name                     string            `json:"name"`
	NameLocalizations        map[Locale]string `json:"name_localizations,omitempty"`
	Description              string            `json:"description"`
	DescriptionLocalizations map[Locale]string `json:"description_localizations,omitempty"`
	Required                 bool              `json:"required,omitempty"`
}

func (ApplicationCommandOptionUser) MarshalJSON

func (o ApplicationCommandOptionUser) MarshalJSON() ([]byte, error)

func (ApplicationCommandOptionUser) OptionDescription added in v0.13.17

func (o ApplicationCommandOptionUser) OptionDescription() string

func (ApplicationCommandOptionUser) OptionName added in v0.13.0

func (o ApplicationCommandOptionUser) OptionName() string

func (ApplicationCommandOptionUser) Type

type ApplicationCommandPermission

type ApplicationCommandPermission interface {
	json.Marshaler
	Type() ApplicationCommandPermissionType
	ID() snowflake.ID
	// contains filtered or unexported methods
}

ApplicationCommandPermission holds a User or Role and if they are allowed to use the ApplicationCommand

type ApplicationCommandPermissionChannel added in v0.10.0

type ApplicationCommandPermissionChannel struct {
	ChannelID  snowflake.ID `json:"id"`
	Permission bool         `json:"permission"`
}

func (ApplicationCommandPermissionChannel) ID added in v0.10.0

func (p ApplicationCommandPermissionChannel) ID() snowflake.ID

func (ApplicationCommandPermissionChannel) MarshalJSON added in v0.10.0

func (p ApplicationCommandPermissionChannel) MarshalJSON() ([]byte, error)

func (ApplicationCommandPermissionChannel) Type added in v0.10.0

type ApplicationCommandPermissionRole

type ApplicationCommandPermissionRole struct {
	RoleID     snowflake.ID `json:"id"`
	Permission bool         `json:"permission"`
}

func (ApplicationCommandPermissionRole) ID

func (p ApplicationCommandPermissionRole) ID() snowflake.ID

func (ApplicationCommandPermissionRole) MarshalJSON

func (p ApplicationCommandPermissionRole) MarshalJSON() ([]byte, error)

func (ApplicationCommandPermissionRole) Type

type ApplicationCommandPermissionType

type ApplicationCommandPermissionType int

ApplicationCommandPermissionType is the type of the ApplicationCommandPermission

const (
	ApplicationCommandPermissionTypeRole ApplicationCommandPermissionType = iota + 1
	ApplicationCommandPermissionTypeUser
	ApplicationCommandPermissionTypeChannel
)

types of ApplicationCommandPermissionType

type ApplicationCommandPermissionUser

type ApplicationCommandPermissionUser struct {
	UserID     snowflake.ID `json:"id"`
	Permission bool         `json:"permission"`
}

func (ApplicationCommandPermissionUser) ID

func (p ApplicationCommandPermissionUser) ID() snowflake.ID

func (ApplicationCommandPermissionUser) MarshalJSON

func (p ApplicationCommandPermissionUser) MarshalJSON() ([]byte, error)

func (ApplicationCommandPermissionUser) Type

type ApplicationCommandPermissions

type ApplicationCommandPermissions struct {
	ID            snowflake.ID                   `json:"id"`
	ApplicationID snowflake.ID                   `json:"application_id"`
	GuildID       snowflake.ID                   `json:"guild_id"`
	Permissions   []ApplicationCommandPermission `json:"permissions"`
}

ApplicationCommandPermissions holds all permissions for an ApplicationCommand

func (*ApplicationCommandPermissions) UnmarshalJSON

func (p *ApplicationCommandPermissions) UnmarshalJSON(data []byte) error

type ApplicationCommandPermissionsSet

type ApplicationCommandPermissionsSet struct {
	ID          snowflake.ID                   `json:"id,omitempty"`
	Permissions []ApplicationCommandPermission `json:"permissions"`
}

ApplicationCommandPermissionsSet is used to bulk overwrite all ApplicationCommandPermissions

type ApplicationCommandType

type ApplicationCommandType int
const (
	ApplicationCommandTypeSlash ApplicationCommandType = iota + 1
	ApplicationCommandTypeUser
	ApplicationCommandTypeMessage
	ApplicationCommandTypePrimaryEntryPoint
)

type ApplicationCommandUpdate

type ApplicationCommandUpdate interface {
	json.Marshaler
	Type() ApplicationCommandType
	CommandName() *string
	// contains filtered or unexported methods
}

type ApplicationFlags

type ApplicationFlags int

ApplicationFlags (https://discord.com/developers/docs/resources/application#application-object-application-flags)

func (ApplicationFlags) Add

Add allows you to add multiple bits together, producing a new bit

func (ApplicationFlags) Has

func (f ApplicationFlags) Has(bits ...ApplicationFlags) bool

Has will ensure that the bit includes all the bits entered

func (ApplicationFlags) Missing

func (f ApplicationFlags) Missing(bits ...ApplicationFlags) bool

Missing will check whether the bit is missing any one of the bits

func (ApplicationFlags) Remove

Remove allows you to subtract multiple bits from the first, producing a new bit

type ApplicationIntegrationType added in v0.18.0

type ApplicationIntegrationType int
const (
	ApplicationIntegrationTypeGuildInstall ApplicationIntegrationType = iota
	ApplicationIntegrationTypeUserInstall
)

type ApplicationIntegrationTypeConfiguration added in v0.18.0

type ApplicationIntegrationTypeConfiguration struct {
	OAuth2InstallParams *InstallParams `json:"oauth2_install_params"`
}

type ApplicationIntegrationTypesConfig added in v0.18.0

type ApplicationIntegrationTypesConfig map[ApplicationIntegrationType]ApplicationIntegrationTypeConfiguration

type ApplicationRoleConnection added in v0.14.1

type ApplicationRoleConnection struct {
	PlatformName     *string           `json:"platform_name"`
	PlatformUsername *string           `json:"platform_username"`
	Metadata         map[string]string `json:"metadata"`
}

type ApplicationRoleConnectionMetadata added in v0.14.1

type ApplicationRoleConnectionMetadata struct {
	Type                     ApplicationRoleConnectionMetadataType `json:"type"`
	Key                      string                                `json:"key"`
	Name                     string                                `json:"name"`
	NameLocalizations        map[Locale]string                     `json:"name_localizations,omitempty"`
	Description              string                                `json:"description"`
	DescriptionLocalizations map[Locale]string                     `json:"description_localizations,omitempty"`
}

type ApplicationRoleConnectionMetadataType added in v0.14.1

type ApplicationRoleConnectionMetadataType int
const (
	ApplicationRoleConnectionMetadataTypeIntegerLessThanOrEqual ApplicationRoleConnectionMetadataType = iota + 1
	ApplicationRoleConnectionMetadataTypeIntegerGreaterThanOrEqual
	ApplicationRoleConnectionMetadataTypeIntegerEqual
	ApplicationRoleConnectionMetadataTypeIntegerNotEqual
	ApplicationRoleConnectionMetadataTypeDateTimeLessThanOrEqual
	ApplicationRoleConnectionMetadataTypeDateTimeGreaterThanOrEqual
	ApplicationRoleConnectionMetadataTypeBooleanEqual
	ApplicationRoleConnectionMetadataTypeBooleanNotEqual
)

type ApplicationRoleConnectionUpdate added in v0.14.1

type ApplicationRoleConnectionUpdate struct {
	PlatformName     *string            `json:"platform_name,omitempty"`
	PlatformUsername *string            `json:"platform_username,omitempty"`
	Metadata         *map[string]string `json:"metadata,omitempty"`
}

type ApplicationUpdate added in v0.16.11

type ApplicationUpdate struct {
	CustomInstallURL               *string                            `json:"custom_install_url,omitempty"`
	Description                    *string                            `json:"description,omitempty"`
	RoleConnectionsVerificationURL *string                            `json:"role_connections_verification_url,omitempty"`
	InstallParams                  *InstallParams                     `json:"install_params,omitempty"`
	Flags                          *ApplicationFlags                  `json:"flags,omitempty"`
	Icon                           *json.Nullable[Icon]               `json:"icon,omitempty"`
	CoverImage                     *json.Nullable[Icon]               `json:"cover_image,omitempty"`
	InteractionsEndpointURL        *string                            `json:"interactions_endpoint_url,omitempty"`
	Tags                           []string                           `json:"tags,omitempty"`
	IntegrationTypesConfig         *ApplicationIntegrationTypesConfig `json:"integration_types_config,omitempty"`
}

type ApplicationWebhook

type ApplicationWebhook struct {
	ApplicationID snowflake.ID
	// contains filtered or unexported fields
}

func (ApplicationWebhook) Avatar

func (w ApplicationWebhook) Avatar() *string

func (ApplicationWebhook) AvatarURL

func (w ApplicationWebhook) AvatarURL(opts ...CDNOpt) *string

func (ApplicationWebhook) CreatedAt added in v0.13.17

func (w ApplicationWebhook) CreatedAt() time.Time

func (ApplicationWebhook) DefaultAvatarURL

func (w ApplicationWebhook) DefaultAvatarURL(opts ...CDNOpt) string

func (ApplicationWebhook) EffectiveAvatarURL

func (w ApplicationWebhook) EffectiveAvatarURL(opts ...CDNOpt) string

func (ApplicationWebhook) ID

func (w ApplicationWebhook) ID() snowflake.ID

func (ApplicationWebhook) MarshalJSON

func (w ApplicationWebhook) MarshalJSON() ([]byte, error)

func (ApplicationWebhook) Name

func (w ApplicationWebhook) Name() string

func (ApplicationWebhook) Type

func (*ApplicationWebhook) UnmarshalJSON

func (w *ApplicationWebhook) UnmarshalJSON(data []byte) error

type Attachment

type Attachment struct {
	ID           snowflake.ID    `json:"id,omitempty"`
	Filename     string          `json:"filename,omitempty"`
	Title        *string         `json:"title,omitempty"`
	Description  *string         `json:"description,omitempty"`
	ContentType  *string         `json:"content_type,omitempty"`
	Size         int             `json:"size,omitempty"`
	URL          string          `json:"url,omitempty"`
	ProxyURL     string          `json:"proxy_url,omitempty"`
	Height       *int            `json:"height,omitempty"`
	Width        *int            `json:"width,omitempty"`
	Ephemeral    bool            `json:"ephemeral,omitempty"`
	DurationSecs *float64        `json:"duration_secs,omitempty"`
	Waveform     *string         `json:"waveform,omitempty"`
	Flags        AttachmentFlags `json:"flags"`
}

Attachment is used for files sent in a Message

func (Attachment) CreatedAt added in v0.13.17

func (a Attachment) CreatedAt() time.Time

type AttachmentCreate

type AttachmentCreate struct {
	ID          int    `json:"id"`
	Description string `json:"description"`
}

type AttachmentFlags added in v0.16.8

type AttachmentFlags int
const (
	AttachmentFlagIsClip AttachmentFlags = 1 << iota
	AttachmentFlagIsThumbnail
	AttachmentFlagIsRemix
	AttachmentFlagsNone AttachmentFlags = 0
)

type AttachmentKeep

type AttachmentKeep struct {
	ID snowflake.ID `json:"id,omitempty"`
}

type AttachmentUpdate

type AttachmentUpdate interface {
	// contains filtered or unexported methods
}

type AuditLog

type AuditLog struct {
	ApplicationCommands  []ApplicationCommand  `json:"application_commands"`
	AuditLogEntries      []AuditLogEntry       `json:"audit_log_entries"`
	AutoModerationRules  []AutoModerationRule  `json:"auto_moderation_rules"`
	GuildScheduledEvents []GuildScheduledEvent `json:"guild_scheduled_events"`
	Integrations         []Integration         `json:"integrations"`
	Threads              []GuildThread         `json:"threads"`
	Users                []User                `json:"users"`
	Webhooks             []Webhook             `json:"webhooks"`
}

AuditLog (https://discord.com/developers/docs/resources/audit-log) These are logs of events that occurred, accessible via the Discord

func (*AuditLog) UnmarshalJSON

func (l *AuditLog) UnmarshalJSON(data []byte) error

type AuditLogChange added in v0.18.10

type AuditLogChange struct {
	// NewValue is the new value of the key after the change as a json.RawMessage.
	NewValue json.RawMessage `json:"new_value"`
	// OldValue is the old value of the key before the change as a json.RawMessage.
	OldValue json.RawMessage `json:"old_value"`
	// Key is the key of the change.
	Key AuditLogChangeKey `json:"key"`
}

AuditLogChange (https://discord.com/developers/docs/resources/audit-log#audit-log-change-object) contains what was changed. For a list of possible keys & values see the discord documentation.

func (*AuditLogChange) UnmarshalNewValue added in v0.18.10

func (c *AuditLogChange) UnmarshalNewValue(v any) error

UnmarshalNewValue unmarshals the NewValue field into the provided type.

func (*AuditLogChange) UnmarshalOldValue added in v0.18.10

func (c *AuditLogChange) UnmarshalOldValue(v any) error

UnmarshalOldValue unmarshals the OldValue field into the provided type.

type AuditLogChangeKey

type AuditLogChangeKey string

AuditLogChangeKey is a string representing a key in the audit log change object.

const (
	AuditLogChangeKeyAFKChannelID AuditLogChangeKey = "afk_channel_id"
	AuditLogChangeKeyAFKTimeout   AuditLogChangeKey = "afk_timeout"
	// AuditLogChangeKeyAllow is sent when a role's permission overwrites changed (stringy int)
	AuditLogChangeKeyAllow         AuditLogChangeKey = "allow"
	AuditLogChangeKeyApplicationID AuditLogChangeKey = "application_id"
	// AuditLogChangeKeyArchived is sent when a channel thread is archived/unarchived (bool)
	AuditLogChangeKeyArchived AuditLogChangeKey = "archived"
	AuditLogChangeKeyAsset    AuditLogChangeKey = "asset"
	// AuditLogChangeKeyAutoArchiveDuration is sent when a thread's auto archive duration is changed (int)
	AuditLogChangeKeyAutoArchiveDuration AuditLogChangeKey = "auto_archive_duration"
	AuditLogChangeKeyAvailable           AuditLogChangeKey = "available"
	AuditLogChangeKeyAvatarHash          AuditLogChangeKey = "avatar_hash"
	AuditLogChangeKeyBannerHash          AuditLogChangeKey = "banner_hash"
	AuditLogChangeKeyBitrate             AuditLogChangeKey = "bitrate"
	AuditLogChangeKeyChannelID           AuditLogChangeKey = "channel_id"
	AuditLogChangeKeyCode                AuditLogChangeKey = "code"
	// AuditLogChangeKeyColor is sent when a role's color is changed (int)
	AuditLogChangeKeyColor AuditLogChangeKey = "color"
	// AuditLogChangeKeyCommunicationDisabledUntil is sent when a user's communication disabled until datetime is changed (stringy ISO8601 datetime)
	AuditLogChangeKeyCommunicationDisabledUntil AuditLogChangeKey = "communication_disabled_until"
	// AuditLogChangeKeyDeaf is sent when a user is set to be server deafened/undeafened (bool)
	AuditLogChangeKeyDeaf                        AuditLogChangeKey = "deaf"
	AuditLogChangeKeyDefaultAutoArchiveDuration  AuditLogChangeKey = "default_auto_archive_duration"
	AuditLogChangeKeyDefaultMessageNotifications AuditLogChangeKey = "default_message_notifications"
	// AuditLogChangeKeyDeny is sent when a role's permission overwrites changed (stringed int)
	AuditLogChangeKeyDeny                  AuditLogChangeKey = "deny"
	AuditLogChangeKeyDescription           AuditLogChangeKey = "description"
	AuditLogChangeKeyDiscoverySplashHash   AuditLogChangeKey = "discovery_splash_hash"
	AuditLogChangeKeyEnableEmoticons       AuditLogChangeKey = "enable_emoticons"
	AuditLogChangeKeyEntityType            AuditLogChangeKey = "entity_type"
	AuditLogChangeKeyExpireBehavior        AuditLogChangeKey = "expire_behavior"
	AuditLogChangeKeyExpireGracePeriod     AuditLogChangeKey = "expire_grace_period"
	AuditLogChangeKeyExplicitContentFilter AuditLogChangeKey = "explicit_content_filter"
	AuditLogChangeKeyFormatType            AuditLogChangeKey = "format_type"
	AuditLogChangeKeyGuildID               AuditLogChangeKey = "guild_id"
	// AuditLogChangeKeyHoist is sent when a role is set to be displayed separately from online members (bool)
	AuditLogChangeKeyHoist     AuditLogChangeKey = "hoist"
	AuditLogChangeKeyIconHash  AuditLogChangeKey = "icon_hash"
	AuditLogChangeKeyID        AuditLogChangeKey = "id"
	AuditLogChangeKeyInvitable AuditLogChangeKey = "invitable"
	AuditLogChangeKeyInviterID AuditLogChangeKey = "inviter_id"
	AuditLogChangeKeyLocation  AuditLogChangeKey = "location"
	// AuditLogChangeKeyLocked is sent when a channel thread is locked/unlocked (bool)
	AuditLogChangeKeyLocked  AuditLogChangeKey = "locked"
	AuditLogChangeKeyMaxAge  AuditLogChangeKey = "max_age"
	AuditLogChangeKeyMaxUses AuditLogChangeKey = "max_uses"
	// AuditLogChangeKeyMentionable is sent when a role changes its mentionable state (bool)
	AuditLogChangeKeyMentionable AuditLogChangeKey = "mentionable"
	AuditLogChangeKeyMFALevel    AuditLogChangeKey = "mfa_level"
	// AuditLogChangeKeyMute is sent when a user is server muted/unmuted (bool)
	AuditLogChangeKeyMute AuditLogChangeKey = "mute"
	AuditLogChangeKeyName AuditLogChangeKey = "name"
	// AuditLogChangeKeyNick is sent when a user's nickname is changed (string)
	AuditLogChangeKeyNick AuditLogChangeKey = "nick"
	AuditLogChangeKeyNSFW AuditLogChangeKey = "nsfw"
	// AuditLogChangeKeyOwnerID is sent when owner id of a guild changed (snowflake.ID)
	AuditLogChangeKeyOwnerID AuditLogChangeKey = "owner_id"
	// AuditLogChangeKeyPermissionOverwrites is sent when a role's permission overwrites changed (string)
	AuditLogChangeKeyPermissionOverwrites AuditLogChangeKey = "permission_overwrites"
	// AuditLogChangeKeyPermissions is sent when a role's permissions changed (string)
	AuditLogChangeKeyPermissions AuditLogChangeKey = "permissions"
	// AuditLogChangeKeyPosition is sent when channel position changed (int)
	AuditLogChangeKeyPosition               AuditLogChangeKey = "position"
	AuditLogChangeKeyPreferredLocale        AuditLogChangeKey = "preferred_locale"
	AuditLogChangeKeyPrivacyLevel           AuditLogChangeKey = "privacy_level"
	AuditLogChangeKeyPruneDeleteDays        AuditLogChangeKey = "prune_delete_days"
	AuditLogChangeKeyPublicUpdatesChannelID AuditLogChangeKey = "public_updates_channel_id"
	AuditLogChangeKeyRateLimitPerUser       AuditLogChangeKey = "rate_limit_per_user"
	AuditLogChangeKeyRegion                 AuditLogChangeKey = "region"
	AuditLogChangeKeyRulesChannelID         AuditLogChangeKey = "rules_channel_id"
	AuditLogChangeKeySplashHash             AuditLogChangeKey = "splash_hash"
	AuditLogChangeKeyStatus                 AuditLogChangeKey = "status"
	// AuditLogChangeKeySystemChannelID is sent when system channel id of a guild changed (snowflake.ID)
	AuditLogChangeKeySystemChannelID AuditLogChangeKey = "system_channel_id"
	AuditLogChangeKeyTags            AuditLogChangeKey = "tags"
	AuditLogChangeKeyTemporary       AuditLogChangeKey = "temporary"
	// AuditLogChangeKeyTopic is sent when channel topic changed (string)
	AuditLogChangeKeyTopic        AuditLogChangeKey = "topic"
	AuditLogChangeKeyType         AuditLogChangeKey = "type"
	AuditLogChangeKeyUnicodeEmoji AuditLogChangeKey = "unicode_emoji"
	// AuditLogChangeKeyUserLimit is sent when user limit of a voice channel changed (int)
	AuditLogChangeKeyUserLimit     AuditLogChangeKey = "user_limit"
	AuditLogChangeKeyUses          AuditLogChangeKey = "uses"
	AuditLogChangeKeyVanityURLCode AuditLogChangeKey = "vanity_url_code"
	// AuditLogChangeKeyVerificationLevel is sent when verification level of the server changed (int)
	AuditLogChangeKeyVerificationLevel AuditLogChangeKey = "verification_level"
	AuditLogChangeKeyWidgetChannelID   AuditLogChangeKey = "widget_channel_id"
	// AuditLogChangeKeyWidgetEnabled is sent when a server widget is enabled/disabled (bool)
	AuditLogChangeKeyWidgetEnabled AuditLogChangeKey = "widget_enabled"
	// AuditLogChangeKeyRoleAdd is sent when roles are added to a user (array of discord.PartialRole JSON)
	AuditLogChangeKeyRoleAdd AuditLogChangeKey = "$add"
	// AuditLogChangeKeyRoleRemove is sent when roles are removed from a user (array of discord.PartialRole JSON)
	AuditLogChangeKeyRoleRemove AuditLogChangeKey = "$remove"
)

type AuditLogEntry

type AuditLogEntry struct {
	TargetID   *snowflake.ID              `json:"target_id"`
	Changes    []AuditLogChange           `json:"changes"`
	UserID     snowflake.ID               `json:"user_id"`
	ID         snowflake.ID               `json:"id"`
	ActionType AuditLogEvent              `json:"action_type"`
	Options    *OptionalAuditLogEntryInfo `json:"options"`
	Reason     *string                    `json:"reason"`
}

AuditLogEntry (https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object)

type AuditLogEvent

type AuditLogEvent int

AuditLogEvent is an 8-bit unsigned integer representing an audit log event.

const (
	AuditLogEventChannelCreate AuditLogEvent = iota + 10
	AuditLogEventChannelUpdate
	AuditLogEventChannelDelete
	AuditLogEventChannelOverwriteCreate
	AuditLogEventChannelOverwriteUpdate
	AuditLogEventChannelOverwriteDelete
)
const (
	AuditLogEventMemberKick AuditLogEvent = iota + 20
	AuditLogEventMemberPrune
	AuditLogEventMemberBanAdd
	AuditLogEventMemberBanRemove
	AuditLogEventMemberUpdate
	AuditLogEventMemberRoleUpdate
	AuditLogEventMemberMove
	AuditLogEventMemberDisconnect
	AuditLogEventBotAdd
)
const (
	AuditLogEventRoleCreate AuditLogEvent = iota + 30
	AuditLogEventRoleUpdate
	AuditLogEventRoleDelete
)
const (
	AuditLogEventInviteCreate AuditLogEvent = iota + 40
	AuditLogEventInviteUpdate
	AuditLogEventInviteDelete
)
const (
	AuditLogEventWebhookCreate AuditLogEvent = iota + 50
	AuditLogEventWebhookUpdate
	AuditLogEventWebhookDelete
)
const (
	AuditLogEventEmojiCreate AuditLogEvent = iota + 60
	AuditLogEventEmojiUpdate
	AuditLogEventEmojiDelete
)
const (
	AuditLogEventMessageDelete AuditLogEvent = iota + 72
	AuditLogEventMessageBulkDelete
	AuditLogEventMessagePin
	AuditLogEventMessageUnpin
)
const (
	AuditLogEventIntegrationCreate AuditLogEvent = iota + 80
	AuditLogEventIntegrationUpdate
	AuditLogEventIntegrationDelete
	AuditLogEventStageInstanceCreate
	AuditLogEventStageInstanceUpdate
	AuditLogEventStageInstanceDelete
)
const (
	AuditLogEventStickerCreate AuditLogEvent = iota + 90
	AuditLogEventStickerUpdate
	AuditLogEventStickerDelete
)
const (
	AuditLogGuildScheduledEventCreate AuditLogEvent = iota + 100
	AuditLogGuildScheduledEventUpdate
	AuditLogGuildScheduledEventDelete
)
const (
	AuditLogThreadCreate AuditLogEvent = iota + 110
	AuditLogThreadUpdate
	AuditLogThreadDelete
)
const (
	AuditLogAutoModerationRuleCreate AuditLogEvent = iota + 140
	AuditLogAutoModerationRuleUpdate
	AuditLogAutoModerationRuleDelete
	AuditLogAutoModerationBlockMessage
	AuditLogAutoModerationFlagToChannel
	AuditLogAutoModerationUserCommunicationDisabled
)
const (
	AuditLogCreatorMonetizationRequestCreated AuditLogEvent = iota + 150
	AuditLogCreatorMonetizationTermsAccepted
)
const (
	AuditLogOnboardingPromptCreate AuditLogEvent = iota + 163
	AuditLogOnboardingPromptUpdate
	AuditLogOnboardingPromptDelete
	AuditLogOnboardingCreate
	AuditLogOnboardingUpdate
)
const (
	AuditLogHomeSettingsCreate AuditLogEvent = iota + 190
	AuditLogHomeSettingsUpdate
)
const (
	AuditLogApplicationCommandPermissionUpdate AuditLogEvent = 121
)
const (
	AuditLogEventGuildUpdate AuditLogEvent = 1
)

type AuthorizationInformation

type AuthorizationInformation struct {
	Application Application   `json:"application"`
	Scopes      []OAuth2Scope `json:"scopes"`
	Expires     time.Time     `json:"expires"`
	User        *User         `json:"user"`
}

type AutoArchiveDuration

type AutoArchiveDuration int
const (
	AutoArchiveDuration1h  AutoArchiveDuration = 60
	AutoArchiveDuration24h AutoArchiveDuration = 1440
	AutoArchiveDuration3d  AutoArchiveDuration = 4320
	AutoArchiveDuration1w  AutoArchiveDuration = 10080
)

type AutoModerationAction added in v0.12.7

type AutoModerationAction struct {
	Type     AutoModerationActionType      `json:"type"`
	Metadata *AutoModerationActionMetadata `json:"metadata,omitempty"`
}

type AutoModerationActionMetadata added in v0.12.7

type AutoModerationActionMetadata struct {
	ChannelID       snowflake.ID `json:"channel_id"`
	DurationSeconds int          `json:"duration_seconds"`
	CustomMessage   *string      `json:"custom_message"`
}

type AutoModerationActionType added in v0.12.7

type AutoModerationActionType int
const (
	AutoModerationActionTypeBlockMessage AutoModerationActionType = iota + 1
	AutoModerationActionTypeSendAlertMessage
	AutoModerationActionTypeTimeout
	AutoModerationActionTypeBlockMemberInteraction
)

type AutoModerationEventType added in v0.12.7

type AutoModerationEventType int
const (
	AutoModerationEventTypeMessageSend AutoModerationEventType = iota + 1
	AutoModerationEventTypeMemberUpdate
)

type AutoModerationKeywordPreset added in v0.12.7

type AutoModerationKeywordPreset int
const (
	AutoModerationKeywordPresetProfanity AutoModerationKeywordPreset = iota + 1
	AutoModerationKeywordPresetSexualContent
	AutoModerationKeywordPresetSlurs
)

type AutoModerationRule added in v0.12.7

type AutoModerationRule struct {
	ID              snowflake.ID                  `json:"id"`
	GuildID         snowflake.ID                  `json:"guild_id"`
	Name            string                        `json:"name"`
	CreatorID       snowflake.ID                  `json:"creator_id"`
	EventType       AutoModerationEventType       `json:"event_type"`
	TriggerType     AutoModerationTriggerType     `json:"trigger_type"`
	TriggerMetadata AutoModerationTriggerMetadata `json:"trigger_metadata"`
	Actions         []AutoModerationAction        `json:"actions"`
	Enabled         bool                          `json:"enabled"`
	ExemptRoles     []snowflake.ID                `json:"exempt_roles"`
	ExemptChannels  []snowflake.ID                `json:"exempt_channels"`
}

func (AutoModerationRule) CreatedAt added in v0.13.17

func (r AutoModerationRule) CreatedAt() time.Time

type AutoModerationRuleCreate added in v0.12.7

type AutoModerationRuleCreate struct {
	Name            string                         `json:"name"`
	EventType       AutoModerationEventType        `json:"event_type"`
	TriggerType     AutoModerationTriggerType      `json:"trigger_type"`
	TriggerMetadata *AutoModerationTriggerMetadata `json:"trigger_metadata,omitempty"`
	Actions         []AutoModerationAction         `json:"actions"`
	Enabled         *bool                          `json:"enabled,omitempty"`
	ExemptRoles     []snowflake.ID                 `json:"exempt_roles,omitempty"`
	ExemptChannels  []snowflake.ID                 `json:"exempt_channels,omitempty"`
}

type AutoModerationRuleUpdate added in v0.12.7

type AutoModerationRuleUpdate struct {
	Name            *string                        `json:"name,omitempty"`
	EventType       *AutoModerationEventType       `json:"event_type,omitempty"`
	TriggerMetadata *AutoModerationTriggerMetadata `json:"trigger_metadata,omitempty"`
	Actions         *[]AutoModerationAction        `json:"actions,omitempty"`
	Enabled         *bool                          `json:"enabled,omitempty"`
	ExemptRoles     *[]snowflake.ID                `json:"exempt_roles,omitempty"`
	ExemptChannels  *[]snowflake.ID                `json:"exempt_channels,omitempty"`
}

type AutoModerationTriggerMetadata added in v0.12.7

type AutoModerationTriggerMetadata struct {
	KeywordFilter                []string                      `json:"keyword_filter"`
	RegexPatterns                []string                      `json:"regex_patterns"`
	Presets                      []AutoModerationKeywordPreset `json:"presets"`
	AllowList                    []string                      `json:"allow_list"`
	MentionTotalLimit            int                           `json:"mention_total_limit"`
	MentionRaidProtectionEnabled bool                          `json:"mention_raid_protection_enabled"`
}

type AutoModerationTriggerType added in v0.12.7

type AutoModerationTriggerType int
const (
	AutoModerationTriggerTypeKeyword AutoModerationTriggerType = iota + 1

	AutoModerationTriggerTypeSpam
	AutoModerationTriggerTypeKeywordPresent
	AutoModerationTriggerTypeMentionSpam
	AutoModerationTriggerTypeMemberProfile
)

type AutocompleteChoice

type AutocompleteChoice interface {
	ChoiceName() string
	// contains filtered or unexported methods
}

type AutocompleteChoiceFloat

type AutocompleteChoiceFloat struct {
	Name              string            `json:"name"`
	NameLocalizations map[Locale]string `json:"name_localizations,omitempty"`
	Value             float64           `json:"value"`
}

func (AutocompleteChoiceFloat) ChoiceName added in v0.17.2

func (c AutocompleteChoiceFloat) ChoiceName() string

type AutocompleteChoiceInt

type AutocompleteChoiceInt struct {
	Name              string            `json:"name"`
	NameLocalizations map[Locale]string `json:"name_localizations,omitempty"`
	Value             int               `json:"value"`
}

func (AutocompleteChoiceInt) ChoiceName added in v0.17.2

func (c AutocompleteChoiceInt) ChoiceName() string

type AutocompleteChoiceString

type AutocompleteChoiceString struct {
	Name              string            `json:"name"`
	NameLocalizations map[Locale]string `json:"name_localizations,omitempty"`
	Value             string            `json:"value"`
}

func (AutocompleteChoiceString) ChoiceName added in v0.17.2

func (c AutocompleteChoiceString) ChoiceName() string

type AutocompleteInteraction

type AutocompleteInteraction struct {
	Data AutocompleteInteractionData `json:"data"`
	// contains filtered or unexported fields
}

func (AutocompleteInteraction) AppPermissions added in v0.15.1

func (i AutocompleteInteraction) AppPermissions() *Permissions

func (AutocompleteInteraction) ApplicationID added in v0.15.1

func (i AutocompleteInteraction) ApplicationID() snowflake.ID

func (AutocompleteInteraction) AuthorizingIntegrationOwners added in v0.18.0

func (i AutocompleteInteraction) AuthorizingIntegrationOwners() map[ApplicationIntegrationType]snowflake.ID

func (AutocompleteInteraction) Channel added in v0.16.1

func (i AutocompleteInteraction) Channel() InteractionChannel

func (AutocompleteInteraction) ChannelID deprecated added in v0.15.1

func (i AutocompleteInteraction) ChannelID() snowflake.ID

Deprecated: Use Channel() instead

func (AutocompleteInteraction) Context added in v0.18.0

func (i AutocompleteInteraction) Context() InteractionContextType

func (AutocompleteInteraction) CreatedAt added in v0.15.1

func (i AutocompleteInteraction) CreatedAt() time.Time

func (AutocompleteInteraction) Entitlements added in v0.16.11

func (i AutocompleteInteraction) Entitlements() []Entitlement

func (AutocompleteInteraction) GuildID added in v0.15.1

func (i AutocompleteInteraction) GuildID() *snowflake.ID

func (AutocompleteInteraction) GuildLocale added in v0.15.1

func (i AutocompleteInteraction) GuildLocale() *Locale

func (AutocompleteInteraction) ID added in v0.15.1

func (i AutocompleteInteraction) ID() snowflake.ID

func (AutocompleteInteraction) Locale added in v0.15.1

func (i AutocompleteInteraction) Locale() Locale

func (AutocompleteInteraction) MarshalJSON added in v0.15.1

func (i AutocompleteInteraction) MarshalJSON() ([]byte, error)

func (AutocompleteInteraction) Member added in v0.15.1

func (i AutocompleteInteraction) Member() *ResolvedMember

func (AutocompleteInteraction) PartialGuild added in v0.18.6

func (i AutocompleteInteraction) PartialGuild() *InteractionGuild

func (AutocompleteInteraction) Token added in v0.15.1

func (i AutocompleteInteraction) Token() string

func (AutocompleteInteraction) Type

func (*AutocompleteInteraction) UnmarshalJSON

func (i *AutocompleteInteraction) UnmarshalJSON(data []byte) error

func (AutocompleteInteraction) User added in v0.15.1

func (i AutocompleteInteraction) User() User

func (AutocompleteInteraction) Version added in v0.15.1

func (i AutocompleteInteraction) Version() int

type AutocompleteInteractionData

type AutocompleteInteractionData struct {
	CommandID           snowflake.ID
	CommandName         string
	SubCommandName      *string
	SubCommandGroupName *string
	GuildID             *snowflake.ID
	Options             map[string]AutocompleteOption
}

func (AutocompleteInteractionData) All

func (AutocompleteInteractionData) Bool

func (AutocompleteInteractionData) CommandPath added in v0.15.0

func (d AutocompleteInteractionData) CommandPath() string

func (AutocompleteInteractionData) Find

func (d AutocompleteInteractionData) Find(optionFindFunc func(option AutocompleteOption) bool) (AutocompleteOption, bool)

func (AutocompleteInteractionData) FindAll

func (d AutocompleteInteractionData) FindAll(optionFindFunc func(option AutocompleteOption) bool) []AutocompleteOption

func (AutocompleteInteractionData) Float

func (AutocompleteInteractionData) Focused added in v0.17.2

func (AutocompleteInteractionData) GetByType

func (AutocompleteInteractionData) Int

func (AutocompleteInteractionData) MarshalJSON

func (d AutocompleteInteractionData) MarshalJSON() ([]byte, error)

func (AutocompleteInteractionData) OptBool

func (d AutocompleteInteractionData) OptBool(name string) (bool, bool)

func (AutocompleteInteractionData) OptFloat

func (d AutocompleteInteractionData) OptFloat(name string) (float64, bool)

func (AutocompleteInteractionData) OptInt

func (d AutocompleteInteractionData) OptInt(name string) (int, bool)

func (AutocompleteInteractionData) OptSnowflake

func (d AutocompleteInteractionData) OptSnowflake(name string) (snowflake.ID, bool)

func (AutocompleteInteractionData) OptString

func (d AutocompleteInteractionData) OptString(name string) (string, bool)

func (AutocompleteInteractionData) Option

func (AutocompleteInteractionData) Snowflake

func (d AutocompleteInteractionData) Snowflake(name string) snowflake.ID

func (AutocompleteInteractionData) String

func (d AutocompleteInteractionData) String(name string) string

func (*AutocompleteInteractionData) UnmarshalJSON

func (d *AutocompleteInteractionData) UnmarshalJSON(data []byte) error

type AutocompleteOption

type AutocompleteOption struct {
	Name    string                       `json:"name"`
	Type    ApplicationCommandOptionType `json:"type"`
	Value   json.RawMessage              `json:"value"`
	Focused bool                         `json:"focused"`
}

type AutocompleteOptionSubCommand

type AutocompleteOptionSubCommand struct {
	Name        string                       `json:"name"`
	Description string                       `json:"description"`
	Type        ApplicationCommandOptionType `json:"type"`
	Options     []AutocompleteOption         `json:"options,omitempty"`
}

type AutocompleteOptionSubCommandGroup

type AutocompleteOptionSubCommandGroup struct {
	Name        string                         `json:"name"`
	Description string                         `json:"description"`
	Type        ApplicationCommandOptionType   `json:"type"`
	Options     []AutocompleteOptionSubCommand `json:"options,omitempty"`
}

type AutocompleteResult

type AutocompleteResult struct {
	Choices []AutocompleteChoice `json:"choices"`
}

type AvatarDecorationData added in v0.18.0

type AvatarDecorationData struct {
	Asset string       `json:"asset"`
	SkuID snowflake.ID `json:"sku_id"`
}

type Ban

type Ban struct {
	Reason *string `json:"reason,omitempty"`
	User   User    `json:"user"`
}

Ban represents a banned User from a Guild (https://discord.com/developers/docs/resources/guild#ban-object)

type BotIntegration

type BotIntegration struct {
	IntegrationID snowflake.ID           `json:"id"`
	Name          string                 `json:"name"`
	Enabled       bool                   `json:"enabled"`
	Account       IntegrationAccount     `json:"account"`
	Application   IntegrationApplication `json:"application"`
	Scopes        []OAuth2Scope          `json:"scopes"`
}

func (BotIntegration) CreatedAt added in v0.13.17

func (i BotIntegration) CreatedAt() time.Time

func (BotIntegration) ID

func (i BotIntegration) ID() snowflake.ID

func (BotIntegration) MarshalJSON

func (i BotIntegration) MarshalJSON() ([]byte, error)

func (BotIntegration) Type

type BulkBan added in v0.18.0

type BulkBan struct {
	UserIDs              []snowflake.ID `json:"user_ids"`
	DeleteMessageSeconds int            `json:"delete_message_seconds,omitempty"`
}

BulkBan is used to bulk ban Users

type BulkBanResult added in v0.18.0

type BulkBanResult struct {
	BannedUsers []snowflake.ID `json:"banned_users"`
	FailedUsers []snowflake.ID `json:"failed_users"`
}

BulkBanResult is the result of a BulkBan request

type ButtonComponent

type ButtonComponent struct {
	Style    ButtonStyle     `json:"style"`
	Label    string          `json:"label,omitempty"`
	Emoji    *ComponentEmoji `json:"emoji,omitempty"`
	CustomID string          `json:"custom_id,omitempty"`
	SkuID    snowflake.ID    `json:"sku_id,omitempty"`
	URL      string          `json:"url,omitempty"`
	Disabled bool            `json:"disabled,omitempty"`
}

func NewButton

func NewButton(style ButtonStyle, label string, customID string, url string, skuID snowflake.ID) ButtonComponent

NewButton creates a new ButtonComponent with the provided parameters. Link ButtonComponent(s) need a URL and other ButtonComponent(s) need a customID

func NewDangerButton

func NewDangerButton(label string, customID string) ButtonComponent

NewDangerButton creates a new ButtonComponent with ButtonStyleDanger & the provided parameters

func NewLinkButton

func NewLinkButton(label string, url string) ButtonComponent

NewLinkButton creates a new link ButtonComponent with ButtonStyleLink & the provided parameters

func NewPremiumButton added in v0.18.8

func NewPremiumButton(skuID snowflake.ID) ButtonComponent

NewPremiumButton creates a new ButtonComponent with ButtonStylePremium & the provided parameters

func NewPrimaryButton

func NewPrimaryButton(label string, customID string) ButtonComponent

NewPrimaryButton creates a new ButtonComponent with ButtonStylePrimary & the provided parameters

func NewSecondaryButton

func NewSecondaryButton(label string, customID string) ButtonComponent

NewSecondaryButton creates a new ButtonComponent with ButtonStyleSecondary & the provided parameters

func NewSuccessButton

func NewSuccessButton(label string, customID string) ButtonComponent

NewSuccessButton creates a new ButtonComponent with ButtonStyleSuccess & the provided parameters

func (ButtonComponent) AsDisabled

func (c ButtonComponent) AsDisabled() ButtonComponent

AsDisabled returns a new ButtonComponent but disabled

func (ButtonComponent) AsEnabled

func (c ButtonComponent) AsEnabled() ButtonComponent

AsEnabled returns a new ButtonComponent but enabled

func (ButtonComponent) ID

func (c ButtonComponent) ID() string

func (ButtonComponent) MarshalJSON

func (c ButtonComponent) MarshalJSON() ([]byte, error)

func (ButtonComponent) SetID

func (ButtonComponent) Type

func (ButtonComponent) WithCustomID

func (c ButtonComponent) WithCustomID(customID string) ButtonComponent

WithCustomID returns a new ButtonComponent with the provided custom id

func (ButtonComponent) WithDisabled

func (c ButtonComponent) WithDisabled(disabled bool) ButtonComponent

WithDisabled returns a new ButtonComponent but disabled/enabled

func (ButtonComponent) WithEmoji

func (c ButtonComponent) WithEmoji(emoji ComponentEmoji) ButtonComponent

WithEmoji returns a new ButtonComponent with the provided Emoji

func (ButtonComponent) WithLabel

func (c ButtonComponent) WithLabel(label string) ButtonComponent

WithLabel returns a new ButtonComponent with the provided label

func (ButtonComponent) WithSkuID added in v0.18.8

func (c ButtonComponent) WithSkuID(skuID snowflake.ID) ButtonComponent

WithSkuID returns a new ButtonComponent with the provided skuID

func (ButtonComponent) WithStyle

func (c ButtonComponent) WithStyle(style ButtonStyle) ButtonComponent

WithStyle returns a new ButtonComponent with the provided style

func (ButtonComponent) WithURL

func (c ButtonComponent) WithURL(url string) ButtonComponent

WithURL returns a new ButtonComponent with the provided URL

type ButtonInteractionData

type ButtonInteractionData struct {
	// contains filtered or unexported fields
}

func (ButtonInteractionData) CustomID

func (d ButtonInteractionData) CustomID() string

func (*ButtonInteractionData) MarshalJSON

func (d *ButtonInteractionData) MarshalJSON() ([]byte, error)

func (ButtonInteractionData) Type

func (*ButtonInteractionData) UnmarshalJSON

func (d *ButtonInteractionData) UnmarshalJSON(data []byte) error

type ButtonStyle

type ButtonStyle int

ButtonStyle defines how the ButtonComponent looks like (https://discord.com/assets/7bb017ce52cfd6575e21c058feb3883b.png)

const (
	ButtonStylePrimary ButtonStyle = iota + 1
	ButtonStyleSecondary
	ButtonStyleSuccess
	ButtonStyleDanger
	ButtonStyleLink
	ButtonStylePremium
)

Supported ButtonStyle(s)

type CDNConfig

type CDNConfig struct {
	Format FileFormat
	Values QueryValues
}

func DefaultCDNConfig

func DefaultCDNConfig() *CDNConfig

func (*CDNConfig) Apply

func (c *CDNConfig) Apply(opts []CDNOpt)

Apply applies the given ConfigOpt(s) to the Config

type CDNEndpoint added in v0.13.11

type CDNEndpoint struct {
	Route   string
	Formats []FileFormat
}

func NewCDN added in v0.13.11

func NewCDN(route string, fileFormats ...FileFormat) *CDNEndpoint

func (CDNEndpoint) URL added in v0.13.11

func (e CDNEndpoint) URL(format FileFormat, values QueryValues, params ...any) string

type CDNOpt

type CDNOpt func(config *CDNConfig)

func WithFormat

func WithFormat(format FileFormat) CDNOpt

func WithSize

func WithSize(size int) CDNOpt

type Channel

type Channel interface {
	json.Marshaler
	fmt.Stringer

	// Type returns the ChannelType of the Channel.
	Type() ChannelType

	// ID returns the Snowflake ID of the Channel.
	ID() snowflake.ID

	// Name returns the name of the Channel.
	Name() string

	// CreatedAt returns the creation time of the Channel.
	CreatedAt() time.Time
	// contains filtered or unexported methods
}

type ChannelCreate

type ChannelCreate interface {
	json.Marshaler
	Type() ChannelType
	// contains filtered or unexported methods
}

type ChannelFlags added in v0.13.12

type ChannelFlags int
const (
	ChannelFlagPinned ChannelFlags = 1 << (iota + 1)

	ChannelFlagRequireTag
	ChannelFlagHideMediaDownloadOptions ChannelFlags = 1 << 15
	ChannelFlagsNone                    ChannelFlags = 0
)

func (ChannelFlags) Add added in v0.13.12

func (f ChannelFlags) Add(bits ...ChannelFlags) ChannelFlags

Add allows you to add multiple bits together, producing a new bit

func (ChannelFlags) Has added in v0.13.12

func (f ChannelFlags) Has(bits ...ChannelFlags) bool

Has will ensure that the bit includes all the bits entered

func (ChannelFlags) Missing added in v0.13.12

func (f ChannelFlags) Missing(bits ...ChannelFlags) bool

Missing will check whether the bit is missing any one of the bits

func (ChannelFlags) Remove added in v0.13.12

func (f ChannelFlags) Remove(bits ...ChannelFlags) ChannelFlags

Remove allows you to subtract multiple bits from the first, producing a new bit

type ChannelFollowerWebhook

type ChannelFollowerWebhook struct {
	ChannelID     snowflake.ID         `json:"channel_id"`
	GuildID       snowflake.ID         `json:"guild_id"`
	SourceGuild   WebhookSourceGuild   `json:"source_guild"`
	SourceChannel WebhookSourceChannel `json:"source_channel"`
	User          User                 `json:"user"`
	// contains filtered or unexported fields
}

func (ChannelFollowerWebhook) Avatar

func (w ChannelFollowerWebhook) Avatar() *string

func (ChannelFollowerWebhook) AvatarURL

func (w ChannelFollowerWebhook) AvatarURL(opts ...CDNOpt) *string

func (ChannelFollowerWebhook) CreatedAt added in v0.13.17

func (w ChannelFollowerWebhook) CreatedAt() time.Time

func (ChannelFollowerWebhook) DefaultAvatarURL

func (w ChannelFollowerWebhook) DefaultAvatarURL(opts ...CDNOpt) string

func (ChannelFollowerWebhook) EffectiveAvatarURL

func (w ChannelFollowerWebhook) EffectiveAvatarURL(opts ...CDNOpt) string

func (ChannelFollowerWebhook) ID

func (w ChannelFollowerWebhook) ID() snowflake.ID

func (ChannelFollowerWebhook) MarshalJSON

func (w ChannelFollowerWebhook) MarshalJSON() ([]byte, error)

func (ChannelFollowerWebhook) Name

func (w ChannelFollowerWebhook) Name() string

func (ChannelFollowerWebhook) Type

func (*ChannelFollowerWebhook) UnmarshalJSON

func (w *ChannelFollowerWebhook) UnmarshalJSON(data []byte) error

type ChannelSelectMenuComponent added in v0.14.0

type ChannelSelectMenuComponent struct {
	CustomID      string                   `json:"custom_id"`
	Placeholder   string                   `json:"placeholder,omitempty"`
	DefaultValues []SelectMenuDefaultValue `json:"default_values,omitempty"`
	MinValues     *int                     `json:"min_values,omitempty"`
	MaxValues     int                      `json:"max_values,omitempty"`
	Disabled      bool                     `json:"disabled,omitempty"`
	ChannelTypes  []ChannelType            `json:"channel_types,omitempty"`
}

func NewChannelSelectMenu added in v0.14.0

func NewChannelSelectMenu(customID string, placeholder string) ChannelSelectMenuComponent

NewChannelSelectMenu builds a new SelectMenuComponent from the provided values

func (ChannelSelectMenuComponent) AddDefaultValue added in v0.16.10

func (c ChannelSelectMenuComponent) AddDefaultValue(defaultValue snowflake.ID) ChannelSelectMenuComponent

AddDefaultValue returns a new ChannelSelectMenuComponent with the provided default value added

func (ChannelSelectMenuComponent) AsDisabled added in v0.14.0

AsDisabled returns a new ChannelSelectMenuComponent but disabled

func (ChannelSelectMenuComponent) AsEnabled added in v0.14.0

AsEnabled returns a new ChannelSelectMenuComponent but enabled

func (ChannelSelectMenuComponent) ID added in v0.14.0

func (ChannelSelectMenuComponent) MarshalJSON added in v0.14.0

func (c ChannelSelectMenuComponent) MarshalJSON() ([]byte, error)

func (ChannelSelectMenuComponent) RemoveDefaultValue added in v0.16.10

func (c ChannelSelectMenuComponent) RemoveDefaultValue(index int) ChannelSelectMenuComponent

RemoveDefaultValue returns a new ChannelSelectMenuComponent with the provided default value at the index removed

func (ChannelSelectMenuComponent) SetDefaultValues added in v0.16.10

func (c ChannelSelectMenuComponent) SetDefaultValues(defaultValues ...snowflake.ID) ChannelSelectMenuComponent

SetDefaultValues returns a new ChannelSelectMenuComponent with the provided default values

func (ChannelSelectMenuComponent) Type added in v0.14.0

func (ChannelSelectMenuComponent) WithChannelTypes added in v0.15.1

func (c ChannelSelectMenuComponent) WithChannelTypes(channelTypes ...ChannelType) ChannelSelectMenuComponent

WithChannelTypes returns a new ChannelSelectMenuComponent with the provided channelTypes

func (ChannelSelectMenuComponent) WithCustomID added in v0.14.0

WithCustomID returns a new ChannelSelectMenuComponent with the provided customID

func (ChannelSelectMenuComponent) WithDisabled added in v0.14.0

WithDisabled returns a new ChannelSelectMenuComponent with the provided disabled

func (ChannelSelectMenuComponent) WithMaxValues added in v0.14.0

func (c ChannelSelectMenuComponent) WithMaxValues(maxValue int) ChannelSelectMenuComponent

WithMaxValues returns a new ChannelSelectMenuComponent with the provided maxValue

func (ChannelSelectMenuComponent) WithMinValues added in v0.14.0

func (c ChannelSelectMenuComponent) WithMinValues(minValue int) ChannelSelectMenuComponent

WithMinValues returns a new ChannelSelectMenuComponent with the provided minValue

func (ChannelSelectMenuComponent) WithPlaceholder added in v0.14.0

func (c ChannelSelectMenuComponent) WithPlaceholder(placeholder string) ChannelSelectMenuComponent

WithPlaceholder returns a new ChannelSelectMenuComponent with the provided placeholder

type ChannelSelectMenuInteractionData added in v0.14.0

type ChannelSelectMenuInteractionData struct {
	Resolved ChannelSelectMenuResolved `json:"resolved"`
	Values   []snowflake.ID            `json:"values"`
	// contains filtered or unexported fields
}

func (ChannelSelectMenuInteractionData) Channels added in v0.14.0

func (ChannelSelectMenuInteractionData) CustomID added in v0.14.0

func (ChannelSelectMenuInteractionData) MarshalJSON added in v0.14.0

func (d ChannelSelectMenuInteractionData) MarshalJSON() ([]byte, error)

func (ChannelSelectMenuInteractionData) Type added in v0.14.0

func (*ChannelSelectMenuInteractionData) UnmarshalJSON added in v0.14.0

func (d *ChannelSelectMenuInteractionData) UnmarshalJSON(data []byte) error

type ChannelSelectMenuResolved added in v0.14.0

type ChannelSelectMenuResolved struct {
	Channels map[snowflake.ID]ResolvedChannel `json:"channels"`
}

type ChannelTag added in v0.16.8

type ChannelTag struct {
	ID        snowflake.ID  `json:"id"`
	Name      string        `json:"name"`
	Moderated bool          `json:"moderated"`
	EmojiID   *snowflake.ID `json:"emoji_id"`
	EmojiName *string       `json:"emoji_name"`
}

type ChannelType

type ChannelType int

ChannelType for interacting with discord's channels

const (
	ChannelTypeGuildText ChannelType = iota
	ChannelTypeDM
	ChannelTypeGuildVoice
	ChannelTypeGroupDM
	ChannelTypeGuildCategory
	ChannelTypeGuildNews

	ChannelTypeGuildNewsThread
	ChannelTypeGuildPublicThread
	ChannelTypeGuildPrivateThread
	ChannelTypeGuildStageVoice
	ChannelTypeGuildDirectory
	ChannelTypeGuildForum
	ChannelTypeGuildMedia
)

Channel constants

type ChannelUpdate

type ChannelUpdate interface {
	// contains filtered or unexported methods
}

type ClientStatus

type ClientStatus struct {
	Desktop OnlineStatus `json:"desktop,omitempty"`
	Mobile  OnlineStatus `json:"mobile,omitempty"`
	Web     OnlineStatus `json:"web,omitempty"`
}

ClientStatus (https://discord.com/developers/docs/topics/gateway#client-status-object)

type Component

type Component interface {
	json.Marshaler
	Type() ComponentType
	// contains filtered or unexported methods
}

type ComponentEmoji

type ComponentEmoji struct {
	ID       snowflake.ID `json:"id,omitempty"`
	Name     string       `json:"name,omitempty"`
	Animated bool         `json:"animated,omitempty"`
}

type ComponentInteraction

type ComponentInteraction struct {
	Data    ComponentInteractionData `json:"data"`
	Message Message                  `json:"message"`
	// contains filtered or unexported fields
}

func (ComponentInteraction) AppPermissions added in v0.15.1

func (i ComponentInteraction) AppPermissions() *Permissions

func (ComponentInteraction) ApplicationID added in v0.15.1

func (i ComponentInteraction) ApplicationID() snowflake.ID

func (ComponentInteraction) AuthorizingIntegrationOwners added in v0.18.0

func (i ComponentInteraction) AuthorizingIntegrationOwners() map[ApplicationIntegrationType]snowflake.ID

func (ComponentInteraction) ButtonInteractionData

func (i ComponentInteraction) ButtonInteractionData() ButtonInteractionData

func (ComponentInteraction) Channel added in v0.16.1

func (i ComponentInteraction) Channel() InteractionChannel

func (ComponentInteraction) ChannelID deprecated added in v0.15.1

func (i ComponentInteraction) ChannelID() snowflake.ID

Deprecated: Use Channel() instead

func (ComponentInteraction) ChannelSelectMenuInteractionData added in v0.14.0

func (i ComponentInteraction) ChannelSelectMenuInteractionData() ChannelSelectMenuInteractionData

func (ComponentInteraction) Context added in v0.18.0

func (i ComponentInteraction) Context() InteractionContextType

func (ComponentInteraction) CreatedAt added in v0.15.1

func (i ComponentInteraction) CreatedAt() time.Time

func (ComponentInteraction) Entitlements added in v0.16.11

func (i ComponentInteraction) Entitlements() []Entitlement

func (ComponentInteraction) GuildID added in v0.15.1

func (i ComponentInteraction) GuildID() *snowflake.ID

func (ComponentInteraction) GuildLocale added in v0.15.1

func (i ComponentInteraction) GuildLocale() *Locale

func (ComponentInteraction) ID added in v0.15.1

func (i ComponentInteraction) ID() snowflake.ID

func (ComponentInteraction) Locale added in v0.15.1

func (i ComponentInteraction) Locale() Locale

func (ComponentInteraction) MarshalJSON added in v0.15.1

func (i ComponentInteraction) MarshalJSON() ([]byte, error)

func (ComponentInteraction) Member added in v0.15.1

func (i ComponentInteraction) Member() *ResolvedMember

func (ComponentInteraction) MentionableSelectMenuInteractionData added in v0.14.0

func (i ComponentInteraction) MentionableSelectMenuInteractionData() MentionableSelectMenuInteractionData

func (ComponentInteraction) PartialGuild added in v0.18.6

func (i ComponentInteraction) PartialGuild() *InteractionGuild

func (ComponentInteraction) RoleSelectMenuInteractionData added in v0.14.0

func (i ComponentInteraction) RoleSelectMenuInteractionData() RoleSelectMenuInteractionData

func (ComponentInteraction) SelectMenuInteractionData

func (i ComponentInteraction) SelectMenuInteractionData() SelectMenuInteractionData

func (ComponentInteraction) StringSelectMenuInteractionData added in v0.14.0

func (i ComponentInteraction) StringSelectMenuInteractionData() StringSelectMenuInteractionData

func (ComponentInteraction) Token added in v0.15.1

func (i ComponentInteraction) Token() string

func (ComponentInteraction) Type

func (*ComponentInteraction) UnmarshalJSON

func (i *ComponentInteraction) UnmarshalJSON(data []byte) error

func (ComponentInteraction) User added in v0.15.1

func (i ComponentInteraction) User() User

func (ComponentInteraction) UserSelectMenuInteractionData added in v0.14.0

func (i ComponentInteraction) UserSelectMenuInteractionData() UserSelectMenuInteractionData

func (ComponentInteraction) Version added in v0.15.1

func (i ComponentInteraction) Version() int

type ComponentInteractionData

type ComponentInteractionData interface {
	Type() ComponentType
	CustomID() string
	// contains filtered or unexported methods
}

type ComponentType

type ComponentType int

ComponentType defines different Component(s)

const (
	ComponentTypeActionRow ComponentType = iota + 1
	ComponentTypeButton
	ComponentTypeStringSelectMenu
	ComponentTypeTextInput
	ComponentTypeUserSelectMenu
	ComponentTypeRoleSelectMenu
	ComponentTypeMentionableSelectMenu
	ComponentTypeChannelSelectMenu
)

Supported ComponentType(s)

type Connection

type Connection struct {
	ID           string         `json:"id"`
	Name         string         `json:"name"`
	Type         ConnectionType `json:"type"`
	Revoked      bool           `json:"revoked,omitempty"`
	Integrations []Integration  `json:"integrations,omitempty"`
	Verified     bool           `json:"verified"`
	FriendSync   bool           `json:"friend_sync"`
	ShowActivity bool           `json:"show_activity"`
	Visibility   VisibilityType `json:"visibility"`
}

type ConnectionType

type ConnectionType string
const (
	ConnectionTypeAmazonMusic        ConnectionType = "amazon-music"
	ConnectionTypeBattleNet          ConnectionType = "battlenet"
	ConnectionTypeBungie             ConnectionType = "bungie"
	ConnectionTypeDomain             ConnectionType = "domain"
	ConnectionTypeEbay               ConnectionType = "ebay"
	ConnectionTypeEpicGames          ConnectionType = "epicgames"
	ConnectionTypeFacebook           ConnectionType = "facebook"
	ConnectionTypeGitHub             ConnectionType = "github"
	ConnectionTypeInstagram          ConnectionType = "instagram"
	ConnectionTypeLeagueOfLegends    ConnectionType = "leagueoflegends"
	ConnectionTypePayPal             ConnectionType = "paypal"
	ConnectionTypePlayStationNetwork ConnectionType = "playstation"
	ConnectionTypeReddit             ConnectionType = "reddit"
	ConnectionTypeRiotGames          ConnectionType = "riotgames"
	ConnectionTypeRoblox             ConnectionType = "roblox"
	ConnectionTypeSpotify            ConnectionType = "spotify"
	ConnectionTypeSkype              ConnectionType = "skype"
	ConnectionTypeSteam              ConnectionType = "steam"
	ConnectionTypeTikTok             ConnectionType = "tiktok"
	ConnectionTypeTwitch             ConnectionType = "twitch"
	ConnectionTypeX                  ConnectionType = "twitter"
	ConnectionTypeXbox               ConnectionType = "xbox"
	ConnectionTypeYouTube            ConnectionType = "youtube"
)

type ContainerComponent

type ContainerComponent interface {
	Component
	Components() []InteractiveComponent
	// contains filtered or unexported methods
}

type ContextCommandInteractionData

type ContextCommandInteractionData interface {
	ApplicationCommandInteractionData
	TargetID() snowflake.ID
	// contains filtered or unexported methods
}

type CurrentMemberUpdate added in v0.13.19

type CurrentMemberUpdate struct {
	Nick string `json:"nick"`
}

CurrentMemberUpdate is used to update the current member

type CurrentUserVoiceStateUpdate added in v0.13.19

type CurrentUserVoiceStateUpdate struct {
	ChannelID               *snowflake.ID             `json:"channel_id,omitempty"`
	Suppress                *bool                     `json:"suppress,omitempty"`
	RequestToSpeakTimestamp *json.Nullable[time.Time] `json:"request_to_speak_timestamp,omitempty"`
}

type DMChannel

type DMChannel struct {
	// contains filtered or unexported fields
}

func (DMChannel) CreatedAt added in v0.13.17

func (c DMChannel) CreatedAt() time.Time

func (DMChannel) ID

func (c DMChannel) ID() snowflake.ID

func (DMChannel) LastMessageID

func (c DMChannel) LastMessageID() *snowflake.ID

func (DMChannel) LastPinTimestamp

func (c DMChannel) LastPinTimestamp() *time.Time

func (DMChannel) MarshalJSON

func (c DMChannel) MarshalJSON() ([]byte, error)

func (DMChannel) Name

func (c DMChannel) Name() string

func (DMChannel) String

func (c DMChannel) String() string

func (DMChannel) Type

func (DMChannel) Type() ChannelType

func (*DMChannel) UnmarshalJSON

func (c *DMChannel) UnmarshalJSON(data []byte) error

type DMChannelCreate

type DMChannelCreate struct {
	RecipientID snowflake.ID `json:"recipient_id"`
}

type DefaultForumLayout added in v0.14.1

type DefaultForumLayout int
const (
	DefaultForumLayoutNotSet DefaultForumLayout = iota
	DefaultForumLayoutListView
	DefaultForumLayoutGalleryView
)

type DefaultReactionEmoji added in v0.13.20

type DefaultReactionEmoji struct {
	EmojiID   *snowflake.ID `json:"emoji_id"`
	EmojiName *string       `json:"emoji_name"`
}

type DefaultSortOrder added in v0.13.21

type DefaultSortOrder int
const (
	DefaultSortOrderLatestActivity DefaultSortOrder = iota
	DefaultSortOrderCreationDate
)

type Embed

type Embed struct {
	Title       string         `json:"title,omitempty"`
	Type        EmbedType      `json:"type,omitempty"`
	Description string         `json:"description,omitempty"`
	URL         string         `json:"url,omitempty"`
	Timestamp   *time.Time     `json:"timestamp,omitempty"`
	Color       int            `json:"color,omitempty"`
	Footer      *EmbedFooter   `json:"footer,omitempty"`
	Image       *EmbedResource `json:"image,omitempty"`
	Thumbnail   *EmbedResource `json:"thumbnail,omitempty"`
	Video       *EmbedResource `json:"video,omitempty"`
	Provider    *EmbedProvider `json:"provider,omitempty"`
	Author      *EmbedAuthor   `json:"author,omitempty"`
	Fields      []EmbedField   `json:"fields,omitempty"`
}

Embed allows you to send embeds to discord

func (Embed) FindAllFields added in v0.18.11

func (e Embed) FindAllFields(fieldFindFunc func(field EmbedField) bool) []EmbedField

func (Embed) FindField added in v0.18.11

func (e Embed) FindField(fieldFindFunc func(field EmbedField) bool) (EmbedField, bool)

type EmbedAuthor

type EmbedAuthor struct {
	Name         string `json:"name,omitempty"`
	URL          string `json:"url,omitempty"`
	IconURL      string `json:"icon_url,omitempty"`
	ProxyIconURL string `json:"proxy_icon_url,omitempty"`
}

The EmbedAuthor of an Embed

type EmbedBuilder

type EmbedBuilder struct {
	Embed
}

EmbedBuilder allows you to create embeds and use methods to set values

func NewEmbedBuilder

func NewEmbedBuilder() *EmbedBuilder

NewEmbedBuilder returns a new embed builder

func (*EmbedBuilder) AddField

func (b *EmbedBuilder) AddField(name string, value string, inline bool) *EmbedBuilder

AddField adds a field to the EmbedBuilder by name and value

func (*EmbedBuilder) AddFields

func (b *EmbedBuilder) AddFields(fields ...EmbedField) *EmbedBuilder

AddFields adds multiple fields to the EmbedBuilder

func (*EmbedBuilder) Build

func (b *EmbedBuilder) Build() Embed

Build returns your built Embed

func (*EmbedBuilder) ClearFields

func (b *EmbedBuilder) ClearFields() *EmbedBuilder

ClearFields removes all the fields from the EmbedBuilder

func (*EmbedBuilder) RemoveField

func (b *EmbedBuilder) RemoveField(i int) *EmbedBuilder

RemoveField removes a field from the EmbedBuilder

func (*EmbedBuilder) SetAuthor

func (b *EmbedBuilder) SetAuthor(name string, url string, iconURL string) *EmbedBuilder

SetAuthor sets the author of the EmbedBuilder with all properties

func (*EmbedBuilder) SetAuthorIcon

func (b *EmbedBuilder) SetAuthorIcon(iconURL string) *EmbedBuilder

SetAuthorIcon sets the author icon of the EmbedBuilder

func (*EmbedBuilder) SetAuthorIconf added in v0.13.21

func (b *EmbedBuilder) SetAuthorIconf(iconURL string, a ...any) *EmbedBuilder

SetAuthorIconf sets the author icon of the EmbedBuilder with format

func (*EmbedBuilder) SetAuthorName

func (b *EmbedBuilder) SetAuthorName(name string) *EmbedBuilder

SetAuthorName sets the author name of the EmbedBuilder

func (*EmbedBuilder) SetAuthorNamef added in v0.13.21

func (b *EmbedBuilder) SetAuthorNamef(name string, a ...any) *EmbedBuilder

SetAuthorNamef sets the author name of the EmbedBuilder with format

func (*EmbedBuilder) SetAuthorURL

func (b *EmbedBuilder) SetAuthorURL(url string) *EmbedBuilder

SetAuthorURL sets the author URL of the EmbedBuilder

func (*EmbedBuilder) SetAuthorURLf added in v0.13.21

func (b *EmbedBuilder) SetAuthorURLf(url string, a ...any) *EmbedBuilder

SetAuthorURLf sets the author URL of the EmbedBuilder with format

func (*EmbedBuilder) SetColor

func (b *EmbedBuilder) SetColor(color int) *EmbedBuilder

SetColor sets the color of the EmbedBuilder

func (*EmbedBuilder) SetDescription

func (b *EmbedBuilder) SetDescription(description string) *EmbedBuilder

SetDescription sets the description of the EmbedBuilder

func (*EmbedBuilder) SetDescriptionf

func (b *EmbedBuilder) SetDescriptionf(description string, a ...any) *EmbedBuilder

SetDescriptionf sets the description of the EmbedBuilder with format

func (*EmbedBuilder) SetEmbedAuthor

func (b *EmbedBuilder) SetEmbedAuthor(author *EmbedAuthor) *EmbedBuilder

SetEmbedAuthor sets the author of the EmbedBuilder using an EmbedAuthor struct

func (*EmbedBuilder) SetEmbedFooter

func (b *EmbedBuilder) SetEmbedFooter(footer *EmbedFooter) *EmbedBuilder

SetEmbedFooter sets the footer of the EmbedBuilder

func (*EmbedBuilder) SetField

func (b *EmbedBuilder) SetField(i int, name string, value string, inline bool) *EmbedBuilder

SetField sets a field to the EmbedBuilder by name and value

func (*EmbedBuilder) SetFields

func (b *EmbedBuilder) SetFields(fields ...EmbedField) *EmbedBuilder

SetFields sets fields of the EmbedBuilder

func (*EmbedBuilder) SetFooter

func (b *EmbedBuilder) SetFooter(text string, iconURL string) *EmbedBuilder

SetFooter sets the footer icon of the EmbedBuilder

func (*EmbedBuilder) SetFooterIcon

func (b *EmbedBuilder) SetFooterIcon(iconURL string) *EmbedBuilder

SetFooterIcon sets the footer icon of the EmbedBuilder

func (*EmbedBuilder) SetFooterIconf added in v0.13.21

func (b *EmbedBuilder) SetFooterIconf(iconURL string, a ...any) *EmbedBuilder

SetFooterIconf sets the footer icon of the EmbedBuilder

func (*EmbedBuilder) SetFooterText

func (b *EmbedBuilder) SetFooterText(text string) *EmbedBuilder

SetFooterText sets the footer text of the EmbedBuilder

func (*EmbedBuilder) SetFooterTextf added in v0.13.21

func (b *EmbedBuilder) SetFooterTextf(text string, a ...any) *EmbedBuilder

SetFooterTextf sets the footer text of the EmbedBuilder with format

func (*EmbedBuilder) SetImage

func (b *EmbedBuilder) SetImage(url string) *EmbedBuilder

SetImage sets the image of the EmbedBuilder

func (*EmbedBuilder) SetImagef added in v0.13.21

func (b *EmbedBuilder) SetImagef(url string, a ...any) *EmbedBuilder

SetImagef sets the image of the EmbedBuilder with format

func (*EmbedBuilder) SetThumbnail

func (b *EmbedBuilder) SetThumbnail(url string) *EmbedBuilder

SetThumbnail sets the thumbnail of the EmbedBuilder

func (*EmbedBuilder) SetThumbnailf added in v0.13.21

func (b *EmbedBuilder) SetThumbnailf(url string, a ...any) *EmbedBuilder

SetThumbnailf sets the thumbnail of the EmbedBuilder with format

func (*EmbedBuilder) SetTimestamp

func (b *EmbedBuilder) SetTimestamp(time time.Time) *EmbedBuilder

SetTimestamp sets the timestamp of the EmbedBuilder

func (*EmbedBuilder) SetTitle

func (b *EmbedBuilder) SetTitle(title string) *EmbedBuilder

SetTitle sets the title of the EmbedBuilder

func (*EmbedBuilder) SetTitlef

func (b *EmbedBuilder) SetTitlef(title string, a ...any) *EmbedBuilder

SetTitlef sets the title of the EmbedBuilder with format

func (*EmbedBuilder) SetURL

func (b *EmbedBuilder) SetURL(url string) *EmbedBuilder

SetURL sets the URL of the EmbedBuilder

func (*EmbedBuilder) SetURLf added in v0.13.21

func (b *EmbedBuilder) SetURLf(url string, a ...any) *EmbedBuilder

SetURLf sets the URL of the EmbedBuilder with format

type EmbedField

type EmbedField struct {
	Name   string `json:"name"`
	Value  string `json:"value"`
	Inline *bool  `json:"inline,omitempty"`
}

EmbedField (s) of an Embed

type EmbedFieldPollResult added in v0.18.11

type EmbedFieldPollResult string
const (
	EmbedFieldPollResultQuestionText              EmbedFieldPollResult = "poll_question_text"
	EmbedFieldPollResultVictorAnswerVotes         EmbedFieldPollResult = "victor_answer_votes"
	EmbedFieldPollResultTotalVotes                EmbedFieldPollResult = "total_votes"
	EmbedFieldPollResultVictorAnswerID            EmbedFieldPollResult = "victor_answer_id"
	EmbedFieldPollResultVictorAnswerText          EmbedFieldPollResult = "victor_answer_text"
	EmbedFieldPollResultVictorAnswerEmojiID       EmbedFieldPollResult = "victor_answer_emoji_id"
	EmbedFieldPollResultVictorAnswerEmojiName     EmbedFieldPollResult = "victor_answer_emoji_name"
	EmbedFieldPollResultVictorAnswerEmojiAnimated EmbedFieldPollResult = "victor_answer_emoji_animated"
)

type EmbedFooter

type EmbedFooter struct {
	Text         string `json:"text"`
	IconURL      string `json:"icon_url,omitempty"`
	ProxyIconURL string `json:"proxy_icon_url,omitempty"`
}

The EmbedFooter of an Embed

type EmbedProvider

type EmbedProvider struct {
	Name string `json:"name,omitempty"`
	URL  string `json:"url,omitempty"`
}

The EmbedProvider of an Embed

type EmbedResource

type EmbedResource struct {
	URL      string `json:"url,omitempty"`
	ProxyURL string `json:"proxy_url,omitempty"`
	Height   int    `json:"height,omitempty"`
	Width    int    `json:"width,omitempty"`
}

The EmbedResource of an Embed.Image/Embed.Thumbnail/Embed.Video

type EmbedType

type EmbedType string

EmbedType is the type of Embed

const (
	EmbedTypeRich                  EmbedType = "rich"
	EmbedTypeImage                 EmbedType = "image"
	EmbedTypeVideo                 EmbedType = "video"
	EmbedTypeGifV                  EmbedType = "gifv"
	EmbedTypeArticle               EmbedType = "article"
	EmbedTypeLink                  EmbedType = "link"
	EmbedTypeAutoModerationMessage EmbedType = "auto_moderation_message"
	EmbedTypePollResult            EmbedType = "poll_result"
)

Constants for EmbedType

type Emoji

type Emoji struct {
	ID            snowflake.ID   `json:"id,omitempty"`
	GuildID       snowflake.ID   `json:"guild_id,omitempty"` // not present in the API but we need it
	Name          string         `json:"name,omitempty"`     // may be empty for deleted emojis
	Roles         []snowflake.ID `json:"roles,omitempty"`
	Creator       *User          `json:"user,omitempty"`
	RequireColons bool           `json:"require_colons,omitempty"`
	Managed       bool           `json:"managed,omitempty"`
	Animated      bool           `json:"animated,omitempty"`
	Available     bool           `json:"available,omitempty"`
}

Emoji allows you to interact with emojis & emotes

func (Emoji) CreatedAt added in v0.13.17

func (e Emoji) CreatedAt() time.Time

func (Emoji) Mention

func (e Emoji) Mention() string

Mention returns the string used to send the Emoji

func (Emoji) Reaction added in v0.16.3

func (e Emoji) Reaction() string

Reaction returns a string used for manipulating with reactions. May be empty if the Name is empty

func (Emoji) String

func (e Emoji) String() string

String formats the Emoji as string

func (Emoji) URL

func (e Emoji) URL(opts ...CDNOpt) string

type EmojiCreate

type EmojiCreate struct {
	Name  string         `json:"name"`
	Image Icon           `json:"image"`
	Roles []snowflake.ID `json:"roles,omitempty"`
}

type EmojiUpdate

type EmojiUpdate struct {
	Name  *string         `json:"name,omitempty"`
	Roles *[]snowflake.ID `json:"roles,omitempty"`
}

type Entitlement added in v0.16.11

type Entitlement struct {
	ID            snowflake.ID    `json:"id"`
	SkuID         snowflake.ID    `json:"sku_id"`
	ApplicationID snowflake.ID    `json:"application_id"`
	UserID        *snowflake.ID   `json:"user_id"`
	Type          EntitlementType `json:"type"`
	Deleted       bool            `json:"deleted"`
	StartsAt      *time.Time      `json:"starts_at"`
	EndsAt        *time.Time      `json:"ends_at"`
	GuildID       *snowflake.ID   `json:"guild_id"`
	Consumed      *bool           `json:"consumed"`
}

type EntitlementOwnerType added in v0.16.11

type EntitlementOwnerType int
const (
	EntitlementOwnerTypeGuild EntitlementOwnerType = iota + 1
	EntitlementOwnerTypeUser
)

type EntitlementType added in v0.16.11

type EntitlementType int
const (
	EntitlementTypePurchase EntitlementType = iota + 1
	EntitlementTypePremiumSubscription
	EntitlementTypeDeveloperGift
	EntitlementTypeTestModePurchase
	EntitlementTypeFreePurchase
	EntitlementTypeUserGift
	EntitlementTypePremiumPurchase
	EntitlementTypeApplicationSubscription
)

type EntityMetaData

type EntityMetaData struct {
	Location string `json:"location"`
}

EntityMetaData additional metadata for the scheduled event (https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata)

type EntryPointCommand added in v0.18.11

type EntryPointCommand struct {
	Handler EntryPointCommandHandlerType
	// contains filtered or unexported fields
}

func (EntryPointCommand) ApplicationID added in v0.18.11

func (c EntryPointCommand) ApplicationID() snowflake.ID

func (EntryPointCommand) Contexts added in v0.18.11

func (EntryPointCommand) CreatedAt added in v0.18.11

func (c EntryPointCommand) CreatedAt() time.Time

func (EntryPointCommand) DMPermission added in v0.18.11

func (c EntryPointCommand) DMPermission() bool

func (EntryPointCommand) DefaultMemberPermissions added in v0.18.11

func (c EntryPointCommand) DefaultMemberPermissions() Permissions

func (EntryPointCommand) GuildID added in v0.18.11

func (c EntryPointCommand) GuildID() *snowflake.ID

func (EntryPointCommand) ID added in v0.18.11

func (c EntryPointCommand) ID() snowflake.ID

func (EntryPointCommand) IntegrationTypes added in v0.18.11

func (c EntryPointCommand) IntegrationTypes() []ApplicationIntegrationType

func (EntryPointCommand) MarshalJSON added in v0.18.11

func (c EntryPointCommand) MarshalJSON() ([]byte, error)

func (EntryPointCommand) NSFW added in v0.18.11

func (c EntryPointCommand) NSFW() bool

func (EntryPointCommand) Name added in v0.18.11

func (c EntryPointCommand) Name() string

func (EntryPointCommand) NameLocalizations added in v0.18.11

func (c EntryPointCommand) NameLocalizations() map[Locale]string

func (EntryPointCommand) NameLocalized added in v0.18.11

func (c EntryPointCommand) NameLocalized() string

func (EntryPointCommand) Type added in v0.18.11

func (*EntryPointCommand) UnmarshalJSON added in v0.18.11

func (c *EntryPointCommand) UnmarshalJSON(data []byte) error

func (EntryPointCommand) Version added in v0.18.11

func (c EntryPointCommand) Version() snowflake.ID

type EntryPointCommandCreate added in v0.18.11

type EntryPointCommandCreate struct {
	Name                     string                      `json:"name"`
	NameLocalizations        map[Locale]string           `json:"name_localizations,omitempty"`
	DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"`
	// Deprecated: Use Contexts instead
	DMPermission     *bool                        `json:"dm_permission,omitempty"`
	IntegrationTypes []ApplicationIntegrationType `json:"integration_types,omitempty"`
	Contexts         []InteractionContextType     `json:"contexts,omitempty"`
	NSFW             *bool                        `json:"nsfw,omitempty"`
	Handler          EntryPointCommandHandlerType `json:"handler,omitempty"`
}

func (EntryPointCommandCreate) CommandName added in v0.18.11

func (c EntryPointCommandCreate) CommandName() string

func (EntryPointCommandCreate) MarshalJSON added in v0.18.11

func (c EntryPointCommandCreate) MarshalJSON() ([]byte, error)

func (EntryPointCommandCreate) Type added in v0.18.11

type EntryPointCommandHandlerType added in v0.18.11

type EntryPointCommandHandlerType int
const (
	EntryPointCommandHandlerTypeAppHandler EntryPointCommandHandlerType = iota + 1
	EntryPointCommandHandlerTypeDiscordLaunchActivity
)

type EntryPointCommandInteractionData added in v0.18.11

type EntryPointCommandInteractionData struct {
	// contains filtered or unexported fields
}

func (EntryPointCommandInteractionData) CommandID added in v0.18.11

func (d EntryPointCommandInteractionData) CommandID() snowflake.ID

func (EntryPointCommandInteractionData) CommandName added in v0.18.11

func (d EntryPointCommandInteractionData) CommandName() string

func (EntryPointCommandInteractionData) GuildID added in v0.18.11

func (d EntryPointCommandInteractionData) GuildID() *snowflake.ID

func (*EntryPointCommandInteractionData) MarshalJSON added in v0.18.11

func (d *EntryPointCommandInteractionData) MarshalJSON() ([]byte, error)

func (EntryPointCommandInteractionData) Type added in v0.18.11

func (*EntryPointCommandInteractionData) UnmarshalJSON added in v0.18.11

func (d *EntryPointCommandInteractionData) UnmarshalJSON(data []byte) error

type EntryPointCommandUpdate added in v0.18.11

type EntryPointCommandUpdate struct {
	Name                     *string                     `json:"name,omitempty"`
	NameLocalizations        *map[Locale]string          `json:"name_localizations,omitempty"`
	DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"`
	// Deprecated: Use Contexts instead
	DMPermission     *bool                         `json:"dm_permission,omitempty"`
	IntegrationTypes *[]ApplicationIntegrationType `json:"integration_types,omitempty"`
	Contexts         *[]InteractionContextType     `json:"contexts,omitempty"`
	NSFW             *bool                         `json:"nsfw,omitempty"`
	Handler          *EntryPointCommandHandlerType `json:"handler,omitempty"`
}

func (EntryPointCommandUpdate) CommandName added in v0.18.11

func (c EntryPointCommandUpdate) CommandName() *string

func (EntryPointCommandUpdate) MarshalJSON added in v0.18.11

func (c EntryPointCommandUpdate) MarshalJSON() ([]byte, error)

func (EntryPointCommandUpdate) Type added in v0.18.11

type ExplicitContentFilterLevel

type ExplicitContentFilterLevel int

The ExplicitContentFilterLevel of a Guild

const (
	ExplicitContentFilterLevelDisabled ExplicitContentFilterLevel = iota
	ExplicitContentFilterLevelMembersWithoutRoles
	ExplicitContentFilterLevelAllMembers
)

Constants for ExplicitContentFilterLevel

type ExtendedInvite

type ExtendedInvite struct {
	Invite
	Uses      int       `json:"uses"`
	MaxUses   int       `json:"max_uses"`
	MaxAge    int       `json:"max_age"`
	Temporary bool      `json:"temporary"`
	CreatedAt time.Time `json:"created_at"`
}

type File

type File struct {
	Name        string
	Description string
	Reader      io.Reader
	Flags       FileFlags
}

File holds all information about a given io.Reader

func NewFile

func NewFile(name string, description string, reader io.Reader, flags ...FileFlags) *File

NewFile returns a new File struct with the given name, io.Reader & FileFlags

type FileFlags

type FileFlags int

FileFlags are used to mark Attachments as Spoiler

const (
	FileFlagSpoiler FileFlags = 1 << iota
	FileFlagsNone   FileFlags = 0
)

all FileFlags

func (FileFlags) Add

func (f FileFlags) Add(bits ...FileFlags) FileFlags

Add allows you to add multiple bits together, producing a new bit

func (FileFlags) Has

func (f FileFlags) Has(bits ...FileFlags) bool

Has will ensure that the bit includes all the bits entered

func (FileFlags) Missing

func (f FileFlags) Missing(bits ...FileFlags) bool

Missing will check whether the bit is missing any one of the bits

func (FileFlags) Remove

func (f FileFlags) Remove(bits ...FileFlags) FileFlags

Remove allows you to subtract multiple bits from the first, producing a new bit

type FileFormat added in v0.16.8

type FileFormat string

FileFormat is the type of file on Discord's CDN (https://discord.com/developers/docs/reference#image-formatting-image-formats)

const (
	FileFormatNone   FileFormat = ""
	FileFormatPNG    FileFormat = "png"
	FileFormatJPEG   FileFormat = "jpg"
	FileFormatWebP   FileFormat = "webp"
	FileFormatGIF    FileFormat = "gif"
	FileFormatLottie FileFormat = "json"
)

The available FileFormat(s)

func (FileFormat) Animated added in v0.16.8

func (f FileFormat) Animated() bool

Animated returns true if the FileFormat is animated

func (FileFormat) String added in v0.16.8

func (f FileFormat) String() string

String returns the string representation of the FileFormat

type FollowChannel added in v0.8.9

type FollowChannel struct {
	ChannelID snowflake.ID `json:"webhook_channel_id"`
}

type FollowedChannel added in v0.8.9

type FollowedChannel struct {
	ChannelID snowflake.ID `json:"channel_id"`
	WebhookID snowflake.ID `json:"webhook_id"`
}

type Gateway

type Gateway struct {
	URL string `json:"url"`
}

type GatewayBot

type GatewayBot struct {
	URL               string            `json:"url"`
	Shards            int               `json:"shards"`
	SessionStartLimit SessionStartLimit `json:"session_start_limit"`
}

type GatewayGuild

type GatewayGuild struct {
	RestGuild
	Large                bool                  `json:"large"`
	Unavailable          bool                  `json:"unavailable"`
	VoiceStates          []VoiceState          `json:"voice_states"`
	Members              []Member              `json:"members"`
	Channels             []GuildChannel        `json:"channels"`
	Threads              []GuildThread         `json:"threads"`
	Presences            []Presence            `json:"presences"`
	StageInstances       []StageInstance       `json:"stage_instances"`
	GuildScheduledEvents []GuildScheduledEvent `json:"guild_scheduled_events"`
}

func (*GatewayGuild) UnmarshalJSON

func (g *GatewayGuild) UnmarshalJSON(data []byte) error

type GetAllThreads

type GetAllThreads struct {
	Threads []GuildThread  `json:"threads"`
	Members []ThreadMember `json:"members"`
}

type GetThreads

type GetThreads struct {
	Threads []GuildThread  `json:"threads"`
	Members []ThreadMember `json:"members"`
	HasMore bool           `json:"has_more"`
}

type GrantType

type GrantType string

GrantType defines what type of request is being made.

const (
	GrantTypeAuthorizationCode GrantType = "authorization_code"
	GrantTypeRefreshToken      GrantType = "refresh_token"
)

Discord's supported GrantType(s).

func (GrantType) String

func (t GrantType) String() string

String returns the GrantType as a string.

type GroupDMChannel added in v0.18.6

type GroupDMChannel struct {
	// contains filtered or unexported fields
}

func (GroupDMChannel) CreatedAt added in v0.18.6

func (c GroupDMChannel) CreatedAt() time.Time

func (GroupDMChannel) ID added in v0.18.6

func (c GroupDMChannel) ID() snowflake.ID

func (GroupDMChannel) IconURL added in v0.18.6

func (c GroupDMChannel) IconURL(opts ...CDNOpt) *string

IconURL returns the icon URL of this group DM or nil if not set

func (GroupDMChannel) LastMessageID added in v0.18.6

func (c GroupDMChannel) LastMessageID() *snowflake.ID

func (GroupDMChannel) LastPinTimestamp added in v0.18.6

func (c GroupDMChannel) LastPinTimestamp() *time.Time

func (GroupDMChannel) MarshalJSON added in v0.18.6

func (c GroupDMChannel) MarshalJSON() ([]byte, error)

func (GroupDMChannel) Name added in v0.18.6

func (c GroupDMChannel) Name() string

func (GroupDMChannel) OwnerID added in v0.18.6

func (c GroupDMChannel) OwnerID() *snowflake.ID

func (GroupDMChannel) String added in v0.18.6

func (c GroupDMChannel) String() string

func (GroupDMChannel) Type added in v0.18.6

func (GroupDMChannel) Type() ChannelType

func (*GroupDMChannel) UnmarshalJSON added in v0.18.6

func (c *GroupDMChannel) UnmarshalJSON(data []byte) error

type Guild

type Guild struct {
	ID                          snowflake.ID               `json:"id"`
	Name                        string                     `json:"name"`
	Icon                        *string                    `json:"icon"`
	Splash                      *string                    `json:"splash"`
	DiscoverySplash             *string                    `json:"discovery_splash"`
	OwnerID                     snowflake.ID               `json:"owner_id"`
	AfkChannelID                *snowflake.ID              `json:"afk_channel_id"`
	AfkTimeout                  int                        `json:"afk_timeout"`
	WidgetEnabled               bool                       `json:"widget_enabled"`
	WidgetChannelID             snowflake.ID               `json:"widget_channel_id"`
	VerificationLevel           VerificationLevel          `json:"verification_level"`
	DefaultMessageNotifications MessageNotificationsLevel  `json:"default_message_notifications"`
	ExplicitContentFilter       ExplicitContentFilterLevel `json:"explicit_content_filter"`
	Features                    []GuildFeature             `json:"features"`
	MFALevel                    MFALevel                   `json:"mfa_level"`
	ApplicationID               *snowflake.ID              `json:"application_id"`
	SystemChannelID             *snowflake.ID              `json:"system_channel_id"`
	SystemChannelFlags          SystemChannelFlags         `json:"system_channel_flags"`
	RulesChannelID              *snowflake.ID              `json:"rules_channel_id"`
	MemberCount                 int                        `json:"member_count"`
	MaxPresences                *int                       `json:"max_presences"`
	MaxMembers                  int                        `json:"max_members"`
	VanityURLCode               *string                    `json:"vanity_url_code"`
	Description                 *string                    `json:"description"`
	Banner                      *string                    `json:"banner"`
	PremiumTier                 PremiumTier                `json:"premium_tier"`
	PremiumSubscriptionCount    int                        `json:"premium_subscription_count"`
	PreferredLocale             string                     `json:"preferred_locale"`
	PublicUpdatesChannelID      *snowflake.ID              `json:"public_updates_channel_id"`
	MaxVideoChannelUsers        int                        `json:"max_video_channel_users"`
	MaxStageVideoChannelUsers   int                        `json:"max_stage_video_channel_users"`
	WelcomeScreen               GuildWelcomeScreen         `json:"welcome_screen"`
	NSFWLevel                   NSFWLevel                  `json:"nsfw_level"`
	PremiumProgressBarEnabled   bool                       `json:"premium_progress_bar_enabled"`
	JoinedAt                    time.Time                  `json:"joined_at"`
	SafetyAlertsChannelID       *snowflake.ID              `json:"safety_alerts_channel_id"`

	// only over GET /guilds/{guild.id}
	ApproximateMemberCount   int `json:"approximate_member_count"`
	ApproximatePresenceCount int `json:"approximate_presence_count"`
}

Guild represents a discord Guild

func (Guild) BannerURL

func (g Guild) BannerURL(opts ...CDNOpt) *string

func (Guild) CreatedAt added in v0.13.17

func (g Guild) CreatedAt() time.Time

func (Guild) DiscoverySplashURL

func (g Guild) DiscoverySplashURL(opts ...CDNOpt) *string

func (Guild) IconURL

func (g Guild) IconURL(opts ...CDNOpt) *string

func (Guild) SplashURL

func (g Guild) SplashURL(opts ...CDNOpt) *string

type GuildActiveThreads added in v0.18.11

type GuildActiveThreads struct {
	Threads []GuildThread  `json:"threads"`
	Members []ThreadMember `json:"members"`
}

type GuildAudioChannel

type GuildAudioChannel interface {
	GuildChannel

	// Bitrate returns the configured bitrate of the GuildAudioChannel.
	Bitrate() int

	// RTCRegion returns the configured voice server region of the GuildAudioChannel.
	RTCRegion() string
	// contains filtered or unexported methods
}

type GuildCategoryChannel

type GuildCategoryChannel struct {
	// contains filtered or unexported fields
}

func (GuildCategoryChannel) CreatedAt added in v0.13.17

func (c GuildCategoryChannel) CreatedAt() time.Time

func (GuildCategoryChannel) GuildID

func (c GuildCategoryChannel) GuildID() snowflake.ID

func (GuildCategoryChannel) ID

func (c GuildCategoryChannel) ID() snowflake.ID

func (GuildCategoryChannel) MarshalJSON

func (c GuildCategoryChannel) MarshalJSON() ([]byte, error)

func (GuildCategoryChannel) Mention

func (c GuildCategoryChannel) Mention() string

func (GuildCategoryChannel) Name

func (c GuildCategoryChannel) Name() string

func (GuildCategoryChannel) ParentID

func (c GuildCategoryChannel) ParentID() *snowflake.ID

ParentID always returns nil for GuildCategoryChannel as they can't be nested.

func (GuildCategoryChannel) PermissionOverwrites

func (c GuildCategoryChannel) PermissionOverwrites() PermissionOverwrites

func (GuildCategoryChannel) Position

func (c GuildCategoryChannel) Position() int

func (GuildCategoryChannel) String

func (c GuildCategoryChannel) String() string

func (GuildCategoryChannel) Type

func (*GuildCategoryChannel) UnmarshalJSON

func (c *GuildCategoryChannel) UnmarshalJSON(data []byte) error

type GuildCategoryChannelCreate

type GuildCategoryChannelCreate struct {
	Name                 string                `json:"name"`
	Topic                string                `json:"topic,omitempty"`
	Position             int                   `json:"position,omitempty"`
	PermissionOverwrites []PermissionOverwrite `json:"permission_overwrites,omitempty"`
}

func (GuildCategoryChannelCreate) MarshalJSON

func (c GuildCategoryChannelCreate) MarshalJSON() ([]byte, error)

func (GuildCategoryChannelCreate) Type

type GuildCategoryChannelUpdate

type GuildCategoryChannelUpdate struct {
	Name                 *string                `json:"name,omitempty"`
	Position             *int                   `json:"position,omitempty"`
	PermissionOverwrites *[]PermissionOverwrite `json:"permission_overwrites,omitempty"`
}

type GuildChannel

type GuildChannel interface {
	Channel
	Mentionable

	// GuildID returns the Guild ID of the GuildChannel
	GuildID() snowflake.ID

	// Position returns the position of the GuildChannel in the channel list.
	// This is always 0 for GuildThread(s).
	Position() int

	// ParentID returns the parent Channel ID of the GuildChannel.
	// This is never nil for GuildThread(s).
	ParentID() *snowflake.ID

	// PermissionOverwrites returns the GuildChannel's PermissionOverwrites for Role(s) and Member(s).
	// This is always nil for GuildThread(s).
	PermissionOverwrites() PermissionOverwrites
	// contains filtered or unexported methods
}

func ApplyGuildIDToChannel added in v0.8.5

func ApplyGuildIDToChannel(channel GuildChannel, guildID snowflake.ID) GuildChannel

type GuildChannelCreate

type GuildChannelCreate interface {
	ChannelCreate
	// contains filtered or unexported methods
}

type GuildChannelPositionUpdate

type GuildChannelPositionUpdate struct {
	ID              snowflake.ID         `json:"id"`
	Position        *json.Nullable[int]  `json:"position"`
	LockPermissions *json.Nullable[bool] `json:"lock_permissions,omitempty"`
	ParentID        *snowflake.ID        `json:"parent_id,omitempty"`
}

type GuildChannelUpdate

type GuildChannelUpdate interface {
	ChannelUpdate
	// contains filtered or unexported methods
}

type GuildCreate

type GuildCreate struct {
	Name                            string                     `json:"name"`
	Icon                            *Icon                      `json:"icon,omitempty"`
	VerificationLevel               VerificationLevel          `json:"verification_level,omitempty"`
	DefaultMessageNotificationLevel MessageNotificationsLevel  `json:"default_message_notification_level,omitempty"`
	ExplicitContentFilterLevel      ExplicitContentFilterLevel `json:"explicit_content_filter_level,omitempty"`
	Roles                           []GuildCreateRole          `json:"roles,omitempty"`
	Channels                        []GuildCreateChannel       `json:"channels,omitempty"`
	AFKChannelID                    snowflake.ID               `json:"afk_channel_id,omitempty"`
	AFKTimeout                      int                        `json:"afk_timeout,omitempty"`
	SystemChannelID                 snowflake.ID               `json:"system_channel_id,omitempty"`
	SystemChannelFlags              SystemChannelFlags         `json:"system_channel_flags,omitempty"`
}

GuildCreate is the payload used to create a Guild

type GuildCreateChannel

type GuildCreateChannel struct {
	ChannelCreate
	ID       int `json:"id,omitempty"`
	ParentID int `json:"parent_id,omitempty"`
}

type GuildCreateRole

type GuildCreateRole struct {
	RoleCreate
	ID int `json:"id,omitempty"`
}

type GuildFeature

type GuildFeature string

The GuildFeature (s) that a Guild contains

const (
	GuildFeatureAnimatedBanner                        GuildFeature = "ANIMATED_BANNER"
	GuildFeatureAnimatedIcon                          GuildFeature = "ANIMATED_ICON"
	GuildFeatureAutoModeration                        GuildFeature = "AUTO_MODERATION"
	GuildFeatureBanner                                GuildFeature = "BANNER"
	GuildFeatureCommunity                             GuildFeature = "COMMUNITY"
	GuildFeatureCreatorMonetizableProvisional         GuildFeature = "CREATOR_MONETIZABLE_PROVISIONAL"
	GuildFeatureCreatorStorePage                      GuildFeature = "CREATOR_STORE_PAGE"
	GuildFeatureDeveloperSupportServer                GuildFeature = "DEVELOPER_SUPPORT_SERVER"
	GuildFeatureDiscoverable                          GuildFeature = "DISCOVERABLE"
	GuildFeatureFeaturable                            GuildFeature = "FEATURABLE"
	GuildFeatureInvitesDisabled                       GuildFeature = "INVITES_DISABLED"
	GuildFeatureInviteSplash                          GuildFeature = "INVITE_SPLASH"
	GuildFeatureMemberVerificationGateEnabled         GuildFeature = "MEMBER_VERIFICATION_GATE_ENABLED"
	GuildFeatureMoreStickers                          GuildFeature = "MORE_STICKERS"
	GuildFeatureNews                                  GuildFeature = "NEWS"
	GuildFeaturePartnered                             GuildFeature = "PARTNERED"
	GuildFeaturePreviewEnabled                        GuildFeature = "PREVIEW_ENABLED"
	GuildFeatureRaidAlertsDisabled                    GuildFeature = "RAID_ALERTS_DISABLED"
	GuildFeatureRoleIcons                             GuildFeature = "ROLE_ICONS"
	GuildFeatureRoleSubscriptionsAvailableForPurchase GuildFeature = "ROLE_SUBSCRIPTIONS_AVAILABLE_FOR_PURCHASE"
	GuildFeatureRoleSubscriptionsEnabled              GuildFeature = "ROLE_SUBSCRIPTIONS_ENABLED"
	GuildFeatureTicketedEventsEnabled                 GuildFeature = "TICKETED_EVENTS_ENABLED"
	GuildFeatureVanityURL                             GuildFeature = "VANITY_URL"
	GuildFeatureVerified                              GuildFeature = "VERIFIED"
	GuildFeatureVipRegions                            GuildFeature = "VIP_REGIONS"
	GuildFeatureWelcomeScreenEnabled                  GuildFeature = "WELCOME_SCREEN_ENABLED"
)

Constants for GuildFeature

type GuildForumChannel added in v0.13.12

type GuildForumChannel struct {
	LastPostID                    *snowflake.ID
	Topic                         *string
	NSFW                          bool
	RateLimitPerUser              int
	Flags                         ChannelFlags
	AvailableTags                 []ChannelTag
	DefaultReactionEmoji          *DefaultReactionEmoji
	DefaultThreadRateLimitPerUser int
	DefaultSortOrder              *DefaultSortOrder
	DefaultForumLayout            DefaultForumLayout
	// contains filtered or unexported fields
}

func (GuildForumChannel) CreatedAt added in v0.13.17

func (c GuildForumChannel) CreatedAt() time.Time

func (GuildForumChannel) GuildID added in v0.13.12

func (c GuildForumChannel) GuildID() snowflake.ID

func (GuildForumChannel) ID added in v0.13.12

func (c GuildForumChannel) ID() snowflake.ID

func (GuildForumChannel) MarshalJSON added in v0.13.12

func (c GuildForumChannel) MarshalJSON() ([]byte, error)

func (GuildForumChannel) Mention added in v0.13.12

func (c GuildForumChannel) Mention() string

func (GuildForumChannel) Name added in v0.13.12

func (c GuildForumChannel) Name() string

func (GuildForumChannel) ParentID added in v0.13.12

func (c GuildForumChannel) ParentID() *snowflake.ID

func (GuildForumChannel) PermissionOverwrites added in v0.13.12

func (c GuildForumChannel) PermissionOverwrites() PermissionOverwrites

func (GuildForumChannel) Position added in v0.13.12

func (c GuildForumChannel) Position() int

func (GuildForumChannel) String added in v0.13.12

func (c GuildForumChannel) String() string

func (GuildForumChannel) Type added in v0.13.12

func (*GuildForumChannel) UnmarshalJSON added in v0.13.12

func (c *GuildForumChannel) UnmarshalJSON(data []byte) error

type GuildForumChannelCreate added in v0.13.12

type GuildForumChannelCreate struct {
	Name                          string                `json:"name"`
	Topic                         string                `json:"topic,omitempty"`
	Position                      int                   `json:"position,omitempty"`
	PermissionOverwrites          []PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID                      snowflake.ID          `json:"parent_id,omitempty"`
	RateLimitPerUser              int                   `json:"rate_limit_per_user,omitempty"`
	DefaultReactionEmoji          DefaultReactionEmoji  `json:"default_reaction_emoji"`
	AvailableTags                 []ChannelTag          `json:"available_tags"`
	DefaultSortOrder              DefaultSortOrder      `json:"default_sort_order"`
	DefaultForumLayout            DefaultForumLayout    `json:"default_forum_layout"`
	DefaultThreadRateLimitPerUser int                   `json:"default_thread_rate_limit_per_user,omitempty"`
}

func (GuildForumChannelCreate) MarshalJSON added in v0.13.12

func (c GuildForumChannelCreate) MarshalJSON() ([]byte, error)

func (GuildForumChannelCreate) Type added in v0.13.12

type GuildForumChannelUpdate added in v0.13.12

type GuildForumChannelUpdate struct {
	Name                          *string                              `json:"name,omitempty"`
	Position                      *int                                 `json:"position,omitempty"`
	Topic                         *string                              `json:"topic,omitempty"`
	NSFW                          *bool                                `json:"nsfw,omitempty"`
	PermissionOverwrites          *[]PermissionOverwrite               `json:"permission_overwrites,omitempty"`
	ParentID                      *snowflake.ID                        `json:"parent_id,omitempty"`
	RateLimitPerUser              *int                                 `json:"rate_limit_per_user"`
	AvailableTags                 *[]ChannelTag                        `json:"available_tags,omitempty"`
	Flags                         *ChannelFlags                        `json:"flags,omitempty"`
	DefaultReactionEmoji          *json.Nullable[DefaultReactionEmoji] `json:"default_reaction_emoji,omitempty"`
	DefaultThreadRateLimitPerUser *int                                 `json:"default_thread_rate_limit_per_user,omitempty"`
	DefaultSortOrder              *json.Nullable[DefaultSortOrder]     `json:"default_sort_order,omitempty"`
	DefaultForumLayout            *json.Nullable[DefaultForumLayout]   `json:"default_forum_layout,omitempty"`
}

type GuildFromTemplateCreate

type GuildFromTemplateCreate struct {
	Name string `json:"name"`
	Icon *Icon  `json:"icon,omitempty"`
}

GuildFromTemplateCreate is the data used to create a Guild from a GuildTemplate

type GuildMediaChannel added in v0.16.8

type GuildMediaChannel struct {
	LastPostID                    *snowflake.ID
	Topic                         *string
	NSFW                          bool
	RateLimitPerUser              int
	Flags                         ChannelFlags
	AvailableTags                 []ChannelTag
	DefaultReactionEmoji          *DefaultReactionEmoji
	DefaultThreadRateLimitPerUser int
	DefaultSortOrder              *DefaultSortOrder
	// contains filtered or unexported fields
}

func (GuildMediaChannel) CreatedAt added in v0.16.8

func (c GuildMediaChannel) CreatedAt() time.Time

func (GuildMediaChannel) GuildID added in v0.16.8

func (c GuildMediaChannel) GuildID() snowflake.ID

func (GuildMediaChannel) ID added in v0.16.8

func (c GuildMediaChannel) ID() snowflake.ID

func (GuildMediaChannel) MarshalJSON added in v0.16.8

func (c GuildMediaChannel) MarshalJSON() ([]byte, error)

func (GuildMediaChannel) Mention added in v0.16.8

func (c GuildMediaChannel) Mention() string

func (GuildMediaChannel) Name added in v0.16.8

func (c GuildMediaChannel) Name() string

func (GuildMediaChannel) ParentID added in v0.16.8

func (c GuildMediaChannel) ParentID() *snowflake.ID

func (GuildMediaChannel) PermissionOverwrites added in v0.16.8

func (c GuildMediaChannel) PermissionOverwrites() PermissionOverwrites

func (GuildMediaChannel) Position added in v0.16.8

func (c GuildMediaChannel) Position() int

func (GuildMediaChannel) String added in v0.16.8

func (c GuildMediaChannel) String() string

func (GuildMediaChannel) Type added in v0.16.8

func (*GuildMediaChannel) UnmarshalJSON added in v0.16.8

func (c *GuildMediaChannel) UnmarshalJSON(data []byte) error

type GuildMediaChannelCreate added in v0.16.8

type GuildMediaChannelCreate struct {
	Name                          string                `json:"name"`
	Topic                         string                `json:"topic,omitempty"`
	Position                      int                   `json:"position,omitempty"`
	PermissionOverwrites          []PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID                      snowflake.ID          `json:"parent_id,omitempty"`
	RateLimitPerUser              int                   `json:"rate_limit_per_user,omitempty"`
	DefaultReactionEmoji          DefaultReactionEmoji  `json:"default_reaction_emoji"`
	AvailableTags                 []ChannelTag          `json:"available_tags"`
	DefaultSortOrder              DefaultSortOrder      `json:"default_sort_order"`
	DefaultThreadRateLimitPerUser int                   `json:"default_thread_rate_limit_per_user,omitempty"`
}

func (GuildMediaChannelCreate) MarshalJSON added in v0.16.8

func (c GuildMediaChannelCreate) MarshalJSON() ([]byte, error)

func (GuildMediaChannelCreate) Type added in v0.16.8

type GuildMediaChannelUpdate added in v0.16.8

type GuildMediaChannelUpdate struct {
	Name                          *string                              `json:"name,omitempty"`
	Position                      *int                                 `json:"position,omitempty"`
	Topic                         *string                              `json:"topic,omitempty"`
	NSFW                          *bool                                `json:"nsfw,omitempty"`
	PermissionOverwrites          *[]PermissionOverwrite               `json:"permission_overwrites,omitempty"`
	ParentID                      *snowflake.ID                        `json:"parent_id,omitempty"`
	RateLimitPerUser              *int                                 `json:"rate_limit_per_user"`
	AvailableTags                 *[]ChannelTag                        `json:"available_tags,omitempty"`
	Flags                         *ChannelFlags                        `json:"flags,omitempty"`
	DefaultReactionEmoji          *json.Nullable[DefaultReactionEmoji] `json:"default_reaction_emoji,omitempty"`
	DefaultThreadRateLimitPerUser *int                                 `json:"default_thread_rate_limit_per_user,omitempty"`
	DefaultSortOrder              *json.Nullable[DefaultSortOrder]     `json:"default_sort_order,omitempty"`
}

type GuildMessageChannel

type GuildMessageChannel interface {
	GuildChannel
	MessageChannel

	// Topic returns the topic of a GuildMessageChannel.
	// This is always nil for GuildThread(s).
	Topic() *string

	// NSFW returns whether the GuildMessageChannel is marked as not safe for work.
	NSFW() bool

	// DefaultAutoArchiveDuration returns the default AutoArchiveDuration for GuildThread(s) in this GuildMessageChannel.
	// This is always 0 for GuildThread(s).
	DefaultAutoArchiveDuration() AutoArchiveDuration
	RateLimitPerUser() int
	// contains filtered or unexported methods
}

func ApplyLastMessageIDToChannel added in v0.12.1

func ApplyLastMessageIDToChannel(channel GuildMessageChannel, lastMessageID snowflake.ID) GuildMessageChannel

func ApplyLastPinTimestampToChannel added in v0.13.0

func ApplyLastPinTimestampToChannel(channel GuildMessageChannel, lastPinTimestamp *time.Time) GuildMessageChannel

type GuildNewsChannel

type GuildNewsChannel struct {
	// contains filtered or unexported fields
}

func (GuildNewsChannel) CreatedAt added in v0.13.17

func (c GuildNewsChannel) CreatedAt() time.Time

func (GuildNewsChannel) DefaultAutoArchiveDuration

func (c GuildNewsChannel) DefaultAutoArchiveDuration() AutoArchiveDuration

func (GuildNewsChannel) GuildID

func (c GuildNewsChannel) GuildID() snowflake.ID

func (GuildNewsChannel) ID

func (c GuildNewsChannel) ID() snowflake.ID

func (GuildNewsChannel) LastMessageID

func (c GuildNewsChannel) LastMessageID() *snowflake.ID

func (GuildNewsChannel) LastPinTimestamp

func (c GuildNewsChannel) LastPinTimestamp() *time.Time

func (GuildNewsChannel) MarshalJSON

func (c GuildNewsChannel) MarshalJSON() ([]byte, error)

func (GuildNewsChannel) Mention

func (c GuildNewsChannel) Mention() string

func (GuildNewsChannel) NSFW

func (c GuildNewsChannel) NSFW() bool

func (GuildNewsChannel) Name

func (c GuildNewsChannel) Name() string

func (GuildNewsChannel) ParentID

func (c GuildNewsChannel) ParentID() *snowflake.ID

func (GuildNewsChannel) PermissionOverwrites

func (c GuildNewsChannel) PermissionOverwrites() PermissionOverwrites

func (GuildNewsChannel) Position

func (c GuildNewsChannel) Position() int

func (GuildNewsChannel) RateLimitPerUser added in v0.13.12

func (c GuildNewsChannel) RateLimitPerUser() int

func (GuildNewsChannel) String

func (c GuildNewsChannel) String() string

func (GuildNewsChannel) Topic

func (c GuildNewsChannel) Topic() *string

func (GuildNewsChannel) Type

func (*GuildNewsChannel) UnmarshalJSON

func (c *GuildNewsChannel) UnmarshalJSON(data []byte) error

type GuildNewsChannelCreate

type GuildNewsChannelCreate struct {
	Name                          string                `json:"name"`
	Topic                         string                `json:"topic,omitempty"`
	RateLimitPerUser              int                   `json:"rate_limit_per_user,omitempty"`
	Position                      int                   `json:"position,omitempty"`
	PermissionOverwrites          []PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID                      snowflake.ID          `json:"parent_id,omitempty"`
	NSFW                          bool                  `json:"nsfw,omitempty"`
	DefaultAutoArchiveDuration    AutoArchiveDuration   `json:"default_auto_archive_days,omitempty"`
	DefaultThreadRateLimitPerUser int                   `json:"default_thread_rate_limit_per_user,omitempty"`
}

func (GuildNewsChannelCreate) MarshalJSON

func (c GuildNewsChannelCreate) MarshalJSON() ([]byte, error)

func (GuildNewsChannelCreate) Type

type GuildNewsChannelUpdate

type GuildNewsChannelUpdate struct {
	Name                       *string                `json:"name,omitempty"`
	Type                       *ChannelType           `json:"type,omitempty"`
	Position                   *int                   `json:"position,omitempty"`
	Topic                      *string                `json:"topic,omitempty"`
	RateLimitPerUser           *int                   `json:"rate_limit_per_user,omitempty"`
	PermissionOverwrites       *[]PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID                   *snowflake.ID          `json:"parent_id,omitempty"`
	DefaultAutoArchiveDuration *int                   `json:"default_auto_archive_duration,omitempty"`
}

type GuildNewsThreadCreate

type GuildNewsThreadCreate struct {
	Name                string              `json:"name"`
	AutoArchiveDuration AutoArchiveDuration `json:"auto_archive_duration,omitempty"`
}

func (GuildNewsThreadCreate) MarshalJSON

func (c GuildNewsThreadCreate) MarshalJSON() ([]byte, error)

func (GuildNewsThreadCreate) Type

type GuildOnboarding added in v0.16.0

type GuildOnboarding struct {
	GuildID           snowflake.ID            `json:"guild_id"`
	Prompts           []GuildOnboardingPrompt `json:"prompts"`
	DefaultChannelIDs []snowflake.ID          `json:"default_channel_ids"`
	Enabled           bool                    `json:"enabled"`
	Mode              GuildOnboardingMode     `json:"mode"`
}

type GuildOnboardingMode added in v0.16.8

type GuildOnboardingMode int
const (
	GuildOnboardingModeDefault GuildOnboardingMode = iota
	GuildOnboardingModeAdvanced
)

type GuildOnboardingPrompt added in v0.16.0

type GuildOnboardingPrompt struct {
	ID           snowflake.ID                  `json:"id"`
	Options      []GuildOnboardingPromptOption `json:"options"`
	Title        string                        `json:"title"`
	SingleSelect bool                          `json:"single_select"`
	Required     bool                          `json:"required"`
	InOnboarding bool                          `json:"in_onboarding"`
	Type         GuildOnboardingPromptType     `json:"type"`
}

type GuildOnboardingPromptOption added in v0.16.0

type GuildOnboardingPromptOption struct {
	ID         snowflake.ID   `json:"id"`
	ChannelIDs []snowflake.ID `json:"channel_ids"`
	RoleIDs    []snowflake.ID `json:"role_ids"`
	// When creating or updating prompts and their options, this field will be broken down into 3 separate fields in the payload: https://github.com/discord/discord-api-docs/pull/6479
	Emoji       PartialEmoji `json:"emoji"`
	Title       string       `json:"title"`
	Description *string      `json:"description"`
}

func (GuildOnboardingPromptOption) MarshalJSON added in v0.17.0

func (o GuildOnboardingPromptOption) MarshalJSON() ([]byte, error)

type GuildOnboardingPromptType added in v0.16.0

type GuildOnboardingPromptType int
const (
	GuildOnboardingPromptTypeMultipleChoice GuildOnboardingPromptType = iota
	GuildOnboardingPromptTypeDropdown
)

type GuildOnboardingUpdate added in v0.16.8

type GuildOnboardingUpdate struct {
	Prompts           *[]GuildOnboardingPrompt `json:"prompts,omitempty"`
	DefaultChannelIDs *[]snowflake.ID          `json:"default_channel_ids,omitempty"`
	Enabled           *bool                    `json:"enabled,omitempty"`
	Mode              *GuildOnboardingMode     `json:"mode,omitempty"`
}

type GuildPostUpdate added in v0.16.8

type GuildPostUpdate struct {
	Name                *string              `json:"name,omitempty"`
	Archived            *bool                `json:"archived,omitempty"`
	AutoArchiveDuration *AutoArchiveDuration `json:"auto_archive_duration,omitempty"`
	Locked              *bool                `json:"locked,omitempty"`
	Invitable           *bool                `json:"invitable,omitempty"`
	RateLimitPerUser    *int                 `json:"rate_limit_per_user,omitempty"`
	Flags               *ChannelFlags        `json:"flags,omitempty"`
	AppliedTags         *[]snowflake.ID      `json:"applied_tags,omitempty"`
}

type GuildPreview

type GuildPreview struct {
	ID                       snowflake.ID   `json:"id"`
	Name                     string         `json:"name"`
	Icon                     *string        `json:"icon"`
	DiscoverySplash          *string        `json:"discovery_splash"`
	Splash                   *string        `json:"splash"`
	Features                 []GuildFeature `json:"features"`
	Description              *string        `json:"description"`
	ApproximateMemberCount   *int           `json:"approximate_member_count"`
	ApproximatePresenceCount *int           `json:"approximate_presence_count"`
	Emojis                   []Emoji        `json:"emojis"`
	Stickers                 []Sticker      `json:"stickers"`
}

GuildPreview is used for previewing public Guild(s) before joining them

type GuildPrivateThreadCreate

type GuildPrivateThreadCreate struct {
	Name                string              `json:"name"`
	AutoArchiveDuration AutoArchiveDuration `json:"auto_archive_duration,omitempty"`
	Invitable           *bool               `json:"invitable,omitempty"`
}

func (GuildPrivateThreadCreate) MarshalJSON

func (c GuildPrivateThreadCreate) MarshalJSON() ([]byte, error)

func (GuildPrivateThreadCreate) Type

type GuildPrune added in v0.14.1

type GuildPrune struct {
	Days              int            `json:"days"`
	ComputePruneCount bool           `json:"compute_prune_count"`
	IncludeRoles      []snowflake.ID `json:"include_roles"`
}

type GuildPruneResult added in v0.14.1

type GuildPruneResult struct {
	Pruned *int `json:"pruned"`
}

type GuildPublicThreadCreate

type GuildPublicThreadCreate struct {
	Name                string              `json:"name"`
	AutoArchiveDuration AutoArchiveDuration `json:"auto_archive_duration,omitempty"`
}

func (GuildPublicThreadCreate) MarshalJSON

func (c GuildPublicThreadCreate) MarshalJSON() ([]byte, error)

func (GuildPublicThreadCreate) Type

type GuildScheduledEvent

type GuildScheduledEvent struct {
	ID                 snowflake.ID                  `json:"id"`
	GuildID            snowflake.ID                  `json:"guild_id"`
	ChannelID          *snowflake.ID                 `json:"channel_id"`
	CreatorID          snowflake.ID                  `json:"creator_id"`
	Name               string                        `json:"name"`
	Description        string                        `json:"description"`
	ScheduledStartTime time.Time                     `json:"scheduled_start_time"`
	ScheduledEndTime   *time.Time                    `json:"scheduled_end_time"`
	PrivacyLevel       ScheduledEventPrivacyLevel    `json:"privacy_level"`
	Status             ScheduledEventStatus          `json:"status"`
	EntityType         ScheduledEventEntityType      `json:"entity_type"`
	EntityID           *snowflake.ID                 `json:"entity_id"`
	EntityMetaData     *EntityMetaData               `json:"entity_metadata"`
	Creator            User                          `json:"creator"`
	UserCount          int                           `json:"user_count"`
	Image              *string                       `json:"image"`
	RecurrenceRule     *ScheduledEventRecurrenceRule `json:"recurrence_rule"`
}

GuildScheduledEvent a representation of a scheduled event in a Guild (https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object)

func (GuildScheduledEvent) CoverURL added in v0.18.5

func (e GuildScheduledEvent) CoverURL(opts ...CDNOpt) *string

CoverURL returns the cover URL if set or nil

func (GuildScheduledEvent) CreatedAt added in v0.13.17

func (e GuildScheduledEvent) CreatedAt() time.Time

type GuildScheduledEventCreate

type GuildScheduledEventCreate struct {
	ChannelID          snowflake.ID                  `json:"channel_id,omitempty"`
	EntityMetaData     *EntityMetaData               `json:"entity_metadata,omitempty"`
	Name               string                        `json:"name"`
	PrivacyLevel       ScheduledEventPrivacyLevel    `json:"privacy_level"`
	ScheduledStartTime time.Time                     `json:"scheduled_start_time"`
	ScheduledEndTime   *time.Time                    `json:"scheduled_end_time,omitempty"`
	Description        string                        `json:"description,omitempty"`
	EntityType         ScheduledEventEntityType      `json:"entity_type"`
	Image              *Icon                         `json:"image,omitempty"`
	RecurrenceRule     *ScheduledEventRecurrenceRule `json:"recurrence_rule,omitempty"`
}

type GuildScheduledEventUpdate

type GuildScheduledEventUpdate struct {
	ChannelID          *snowflake.ID                                `json:"channel_id,omitempty"`
	EntityMetaData     *EntityMetaData                              `json:"entity_metadata,omitempty"`
	Name               string                                       `json:"name,omitempty"`
	PrivacyLevel       *ScheduledEventPrivacyLevel                  `json:"privacy_level,omitempty"`
	ScheduledStartTime *time.Time                                   `json:"scheduled_start_time,omitempty"`
	ScheduledEndTime   *time.Time                                   `json:"scheduled_end_time,omitempty"`
	Description        *string                                      `json:"description,omitempty"`
	EntityType         *ScheduledEventEntityType                    `json:"entity_type,omitempty"`
	Status             *ScheduledEventStatus                        `json:"status,omitempty"`
	Image              *json.Nullable[Icon]                         `json:"image,omitempty"`
	RecurrenceRule     *json.Nullable[ScheduledEventRecurrenceRule] `json:"recurrence_rule,omitempty"`
}

type GuildScheduledEventUser

type GuildScheduledEventUser struct {
	GuildScheduledEventID snowflake.ID `json:"guild_scheduled_event_id"`
	User                  User         `json:"user"`
	Member                *Member      `json:"member"`
}

type GuildStageVoiceChannel

type GuildStageVoiceChannel struct {
	VideoQualityMode VideoQualityMode
	// contains filtered or unexported fields
}

func (GuildStageVoiceChannel) Bitrate

func (c GuildStageVoiceChannel) Bitrate() int

func (GuildStageVoiceChannel) CreatedAt added in v0.13.17

func (c GuildStageVoiceChannel) CreatedAt() time.Time

func (GuildStageVoiceChannel) DefaultAutoArchiveDuration added in v0.16.10

func (c GuildStageVoiceChannel) DefaultAutoArchiveDuration() AutoArchiveDuration

DefaultAutoArchiveDuration is always 0 for GuildStageVoiceChannel(s) as they do not have their own AutoArchiveDuration.

func (GuildStageVoiceChannel) GuildID

func (c GuildStageVoiceChannel) GuildID() snowflake.ID

func (GuildStageVoiceChannel) ID

func (c GuildStageVoiceChannel) ID() snowflake.ID

func (GuildStageVoiceChannel) LastMessageID added in v0.16.10

func (c GuildStageVoiceChannel) LastMessageID() *snowflake.ID

func (GuildStageVoiceChannel) LastPinTimestamp added in v0.16.10

func (c GuildStageVoiceChannel) LastPinTimestamp() *time.Time

LastPinTimestamp always returns nil for GuildStageVoiceChannel(s) as they cannot have pinned messages.

func (GuildStageVoiceChannel) MarshalJSON

func (c GuildStageVoiceChannel) MarshalJSON() ([]byte, error)

func (GuildStageVoiceChannel) Mention

func (c GuildStageVoiceChannel) Mention() string

func (GuildStageVoiceChannel) NSFW added in v0.16.10

func (c GuildStageVoiceChannel) NSFW() bool

func (GuildStageVoiceChannel) Name

func (c GuildStageVoiceChannel) Name() string

func (GuildStageVoiceChannel) ParentID

func (c GuildStageVoiceChannel) ParentID() *snowflake.ID

func (GuildStageVoiceChannel) PermissionOverwrites

func (c GuildStageVoiceChannel) PermissionOverwrites() PermissionOverwrites

func (GuildStageVoiceChannel) Position

func (c GuildStageVoiceChannel) Position() int

func (GuildStageVoiceChannel) RTCRegion

func (c GuildStageVoiceChannel) RTCRegion() string

func (GuildStageVoiceChannel) RateLimitPerUser added in v0.16.10

func (c GuildStageVoiceChannel) RateLimitPerUser() int

func (GuildStageVoiceChannel) String

func (c GuildStageVoiceChannel) String() string

func (GuildStageVoiceChannel) Topic added in v0.16.10

func (c GuildStageVoiceChannel) Topic() *string

Topic always returns nil for GuildStageVoiceChannel(s) as they do not have their own topic.

func (GuildStageVoiceChannel) Type

func (*GuildStageVoiceChannel) UnmarshalJSON

func (c *GuildStageVoiceChannel) UnmarshalJSON(data []byte) error

type GuildStageVoiceChannelCreate added in v0.8.9

type GuildStageVoiceChannelCreate struct {
	Name                 string                `json:"name"`
	Bitrate              int                   `json:"bitrate,omitempty"`
	UserLimit            int                   `json:"user_limit,omitempty"`
	RateLimitPerUser     int                   `json:"rate_limit_per_user,omitempty"`
	Position             int                   `json:"position,omitempty"`
	PermissionOverwrites []PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID             snowflake.ID          `json:"parent_id,omitempty"`
	NSFW                 bool                  `json:"nsfw,omitempty"`
	RTCRegion            string                `json:"rtc_region,omitempty"`
	VideoQualityMode     VideoQualityMode      `json:"video_quality_mode,omitempty"`
}

func (GuildStageVoiceChannelCreate) MarshalJSON added in v0.8.9

func (c GuildStageVoiceChannelCreate) MarshalJSON() ([]byte, error)

func (GuildStageVoiceChannelCreate) Type added in v0.8.9

type GuildStageVoiceChannelUpdate

type GuildStageVoiceChannelUpdate struct {
	Name                 *string                `json:"name,omitempty"`
	Position             *int                   `json:"position,omitempty"`
	RateLimitPerUser     *int                   `json:"rate_limit_per_user,omitempty"`
	Bitrate              *int                   `json:"bitrate,omitempty"`
	UserLimit            *int                   `json:"user_limit,omitempty"`
	PermissionOverwrites *[]PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID             *snowflake.ID          `json:"parent_id,omitempty"`
	RTCRegion            *string                `json:"rtc_region,omitempty"`
	NSFW                 *bool                  `json:"nsfw,omitempty"`
	VideoQualityMode     *VideoQualityMode      `json:"video_quality_mode,omitempty"`
}

type GuildSubscriptionIntegration added in v0.16.9

type GuildSubscriptionIntegration struct {
	IntegrationID snowflake.ID       `json:"id"`
	Name          string             `json:"name"`
	Enabled       bool               `json:"enabled"`
	Account       IntegrationAccount `json:"account"`
}

func (GuildSubscriptionIntegration) CreatedAt added in v0.16.9

func (i GuildSubscriptionIntegration) CreatedAt() time.Time

func (GuildSubscriptionIntegration) ID added in v0.16.9

func (i GuildSubscriptionIntegration) ID() snowflake.ID

func (GuildSubscriptionIntegration) MarshalJSON added in v0.16.9

func (i GuildSubscriptionIntegration) MarshalJSON() ([]byte, error)

func (GuildSubscriptionIntegration) Type added in v0.16.9

type GuildTemplate

type GuildTemplate struct {
	Code        string        `json:"code"`
	Name        string        `json:"name"`
	Description *string       `json:"description,omitempty"`
	UsageCount  int           `json:"usage_count"`
	CreatorID   snowflake.ID  `json:"creator_id"`
	Creator     User          `json:"creator"`
	CreatedAt   time.Time     `json:"created_at"`
	UpdatedAt   time.Time     `json:"updated_at"`
	GuildID     snowflake.ID  `json:"source_guild_id"`
	Guild       TemplateGuild `json:"serialized_source_guild"`
	IsDirty     bool          `json:"is_dirty,omitempty"`
}

GuildTemplate is a template used for copying guilds https://discord.com/developers/docs/resources/guild-template

type GuildTemplateCreate

type GuildTemplateCreate struct {
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
}

GuildTemplateCreate is the data used to create a GuildTemplate

type GuildTemplateUpdate

type GuildTemplateUpdate struct {
	Name        *string `json:"name,omitempty"`
	Description *string `json:"description,omitempty"`
}

GuildTemplateUpdate is the data used to update a GuildTemplate

type GuildTextChannel

type GuildTextChannel struct {
	// contains filtered or unexported fields
}

func (GuildTextChannel) CreatedAt added in v0.13.17

func (c GuildTextChannel) CreatedAt() time.Time

func (GuildTextChannel) DefaultAutoArchiveDuration

func (c GuildTextChannel) DefaultAutoArchiveDuration() AutoArchiveDuration

func (GuildTextChannel) GuildID

func (c GuildTextChannel) GuildID() snowflake.ID

func (GuildTextChannel) ID

func (c GuildTextChannel) ID() snowflake.ID

func (GuildTextChannel) LastMessageID

func (c GuildTextChannel) LastMessageID() *snowflake.ID

func (GuildTextChannel) LastPinTimestamp

func (c GuildTextChannel) LastPinTimestamp() *time.Time

func (GuildTextChannel) MarshalJSON

func (c GuildTextChannel) MarshalJSON() ([]byte, error)

func (GuildTextChannel) Mention

func (c GuildTextChannel) Mention() string

func (GuildTextChannel) NSFW

func (c GuildTextChannel) NSFW() bool

func (GuildTextChannel) Name

func (c GuildTextChannel) Name() string

func (GuildTextChannel) ParentID

func (c GuildTextChannel) ParentID() *snowflake.ID

func (GuildTextChannel) PermissionOverwrites

func (c GuildTextChannel) PermissionOverwrites() PermissionOverwrites

func (GuildTextChannel) Position

func (c GuildTextChannel) Position() int

func (GuildTextChannel) RateLimitPerUser added in v0.13.12

func (c GuildTextChannel) RateLimitPerUser() int

func (GuildTextChannel) String

func (c GuildTextChannel) String() string

func (GuildTextChannel) Topic

func (c GuildTextChannel) Topic() *string

func (GuildTextChannel) Type

func (*GuildTextChannel) UnmarshalJSON

func (c *GuildTextChannel) UnmarshalJSON(data []byte) error

type GuildTextChannelCreate

type GuildTextChannelCreate struct {
	Name                          string                `json:"name"`
	Topic                         string                `json:"topic,omitempty"`
	RateLimitPerUser              int                   `json:"rate_limit_per_user,omitempty"`
	Position                      int                   `json:"position,omitempty"`
	PermissionOverwrites          []PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID                      snowflake.ID          `json:"parent_id,omitempty"`
	NSFW                          bool                  `json:"nsfw,omitempty"`
	DefaultAutoArchiveDuration    AutoArchiveDuration   `json:"default_auto_archive_days,omitempty"`
	DefaultThreadRateLimitPerUser int                   `json:"default_thread_rate_limit_per_user,omitempty"`
}

func (GuildTextChannelCreate) MarshalJSON

func (c GuildTextChannelCreate) MarshalJSON() ([]byte, error)

func (GuildTextChannelCreate) Type

type GuildTextChannelUpdate

type GuildTextChannelUpdate struct {
	Name                          *string                `json:"name,omitempty"`
	Type                          *ChannelType           `json:"type,omitempty"`
	Position                      *int                   `json:"position,omitempty"`
	Topic                         *string                `json:"topic,omitempty"`
	NSFW                          *bool                  `json:"nsfw,omitempty"`
	RateLimitPerUser              *int                   `json:"rate_limit_per_user,omitempty"`
	PermissionOverwrites          *[]PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID                      *snowflake.ID          `json:"parent_id,omitempty"`
	DefaultAutoArchiveDuration    *AutoArchiveDuration   `json:"default_auto_archive_duration,omitempty"`
	DefaultThreadRateLimitPerUser *int                   `json:"default_thread_rate_limit_per_user,omitempty"`
}

type GuildThread

type GuildThread struct {
	OwnerID snowflake.ID

	MessageCount     int
	TotalMessageSent int
	AppliedTags      []snowflake.ID
	MemberCount      int
	ThreadMetadata   ThreadMetadata
	// contains filtered or unexported fields
}

func ApplyGuildIDToThread added in v0.8.5

func ApplyGuildIDToThread(guildThread GuildThread, guildID snowflake.ID) GuildThread

func (GuildThread) CreatedAt added in v0.13.17

func (c GuildThread) CreatedAt() time.Time

func (GuildThread) DefaultAutoArchiveDuration added in v0.8.5

func (c GuildThread) DefaultAutoArchiveDuration() AutoArchiveDuration

DefaultAutoArchiveDuration is always 0 for GuildThread(s) as they do not have their own AutoArchiveDuration.

func (GuildThread) GuildID

func (c GuildThread) GuildID() snowflake.ID

func (GuildThread) ID

func (c GuildThread) ID() snowflake.ID

func (GuildThread) LastMessageID

func (c GuildThread) LastMessageID() *snowflake.ID

func (GuildThread) LastPinTimestamp

func (c GuildThread) LastPinTimestamp() *time.Time

func (GuildThread) MarshalJSON

func (c GuildThread) MarshalJSON() ([]byte, error)

func (GuildThread) Mention

func (c GuildThread) Mention() string

func (GuildThread) NSFW

func (c GuildThread) NSFW() bool

func (GuildThread) Name

func (c GuildThread) Name() string

func (GuildThread) ParentID

func (c GuildThread) ParentID() *snowflake.ID

ParentID is never nil for GuildThread(s).

func (GuildThread) PermissionOverwrites

func (c GuildThread) PermissionOverwrites() PermissionOverwrites

PermissionOverwrites always returns nil for GuildThread(s) as they do not have their own PermissionOverwrites.

func (GuildThread) Position

func (c GuildThread) Position() int

Position always returns 0 for GuildThread(s) as they do not have their own position.

func (GuildThread) RateLimitPerUser

func (c GuildThread) RateLimitPerUser() int

func (GuildThread) String

func (c GuildThread) String() string

func (GuildThread) Topic added in v0.8.5

func (c GuildThread) Topic() *string

Topic always returns nil for GuildThread(s) as they do not have their own topic.

func (GuildThread) Type

func (c GuildThread) Type() ChannelType

func (*GuildThread) UnmarshalJSON

func (c *GuildThread) UnmarshalJSON(data []byte) error

type GuildThreadUpdate

type GuildThreadUpdate struct {
	Name                *string              `json:"name,omitempty"`
	Archived            *bool                `json:"archived,omitempty"`
	AutoArchiveDuration *AutoArchiveDuration `json:"auto_archive_duration,omitempty"`
	Locked              *bool                `json:"locked,omitempty"`
	Invitable           *bool                `json:"invitable,omitempty"`
	RateLimitPerUser    *int                 `json:"rate_limit_per_user,omitempty"`
}

type GuildUpdate

type GuildUpdate struct {
	Name                            *string                                    `json:"name,omitempty"`
	VerificationLevel               *json.Nullable[VerificationLevel]          `json:"verification_level,omitempty"`
	DefaultMessageNotificationLevel *json.Nullable[MessageNotificationsLevel]  `json:"default_message_notification_level,omitempty"`
	ExplicitContentFilterLevel      *json.Nullable[ExplicitContentFilterLevel] `json:"explicit_content_filter_level,omitempty"`
	AFKChannelID                    *snowflake.ID                              `json:"afk_channel_id,omitempty"`
	AFKTimeout                      *int                                       `json:"afk_timeout,omitempty"`
	Icon                            *json.Nullable[Icon]                       `json:"icon,omitempty"`
	OwnerID                         *snowflake.ID                              `json:"owner_id,omitempty"`
	Splash                          *json.Nullable[Icon]                       `json:"splash,omitempty"`
	DiscoverySplash                 *json.Nullable[Icon]                       `json:"discovery_splash,omitempty"`
	Banner                          *json.Nullable[Icon]                       `json:"banner,omitempty"`
	SystemChannelID                 *snowflake.ID                              `json:"system_channel_id,omitempty"`
	SystemChannelFlags              *SystemChannelFlags                        `json:"system_channel_flags,omitempty"`
	RulesChannelID                  *snowflake.ID                              `json:"rules_channel_id,omitempty"`
	PublicUpdatesChannelID          *snowflake.ID                              `json:"public_updates_channel_id,omitempty"`
	SafetyAlertsChannelID           *snowflake.ID                              `json:"safety_alerts_channel_id,omitempty"`
	PreferredLocale                 *string                                    `json:"preferred_locale,omitempty"`
	Features                        *[]GuildFeature                            `json:"features,omitempty"`
	Description                     *string                                    `json:"description,omitempty"`
	PremiumProgressBarEnabled       *bool                                      `json:"premium_progress_bar_enabled,omitempty"`
}

GuildUpdate is the payload used to update a Guild

type GuildVoiceChannel

type GuildVoiceChannel struct {
	UserLimit int

	VideoQualityMode VideoQualityMode
	// contains filtered or unexported fields
}

func (GuildVoiceChannel) Bitrate

func (c GuildVoiceChannel) Bitrate() int

func (GuildVoiceChannel) CreatedAt added in v0.13.17

func (c GuildVoiceChannel) CreatedAt() time.Time

func (GuildVoiceChannel) DefaultAutoArchiveDuration added in v0.12.1

func (c GuildVoiceChannel) DefaultAutoArchiveDuration() AutoArchiveDuration

DefaultAutoArchiveDuration is always 0 for GuildVoiceChannel(s) as they do not have their own AutoArchiveDuration.

func (GuildVoiceChannel) GuildID

func (c GuildVoiceChannel) GuildID() snowflake.ID

func (GuildVoiceChannel) ID

func (c GuildVoiceChannel) ID() snowflake.ID

func (GuildVoiceChannel) LastMessageID added in v0.12.1

func (c GuildVoiceChannel) LastMessageID() *snowflake.ID

func (GuildVoiceChannel) LastPinTimestamp added in v0.12.1

func (c GuildVoiceChannel) LastPinTimestamp() *time.Time

LastPinTimestamp always returns nil for GuildVoiceChannel(s) as they cannot have pinned messages.

func (GuildVoiceChannel) MarshalJSON

func (c GuildVoiceChannel) MarshalJSON() ([]byte, error)

func (GuildVoiceChannel) Mention

func (c GuildVoiceChannel) Mention() string

func (GuildVoiceChannel) NSFW added in v0.12.1

func (c GuildVoiceChannel) NSFW() bool

func (GuildVoiceChannel) Name

func (c GuildVoiceChannel) Name() string

func (GuildVoiceChannel) ParentID

func (c GuildVoiceChannel) ParentID() *snowflake.ID

func (GuildVoiceChannel) PermissionOverwrites

func (c GuildVoiceChannel) PermissionOverwrites() PermissionOverwrites

func (GuildVoiceChannel) Position

func (c GuildVoiceChannel) Position() int

func (GuildVoiceChannel) RTCRegion

func (c GuildVoiceChannel) RTCRegion() string

func (GuildVoiceChannel) RateLimitPerUser added in v0.13.12

func (c GuildVoiceChannel) RateLimitPerUser() int

func (GuildVoiceChannel) String

func (c GuildVoiceChannel) String() string

func (GuildVoiceChannel) Topic added in v0.12.1

func (c GuildVoiceChannel) Topic() *string

Topic always returns nil for GuildVoiceChannel(s) as they do not have their own topic.

func (GuildVoiceChannel) Type

func (*GuildVoiceChannel) UnmarshalJSON

func (c *GuildVoiceChannel) UnmarshalJSON(data []byte) error

type GuildVoiceChannelCreate

type GuildVoiceChannelCreate struct {
	Name                 string                `json:"name"`
	Bitrate              int                   `json:"bitrate,omitempty"`
	UserLimit            int                   `json:"user_limit,omitempty"`
	RateLimitPerUser     int                   `json:"rate_limit_per_user,omitempty"`
	Position             int                   `json:"position,omitempty"`
	PermissionOverwrites []PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID             snowflake.ID          `json:"parent_id,omitempty"`
	NSFW                 bool                  `json:"nsfw,omitempty"`
	RTCRegion            string                `json:"rtc_region,omitempty"`
	VideoQualityMode     VideoQualityMode      `json:"video_quality_mode,omitempty"`
}

func (GuildVoiceChannelCreate) MarshalJSON

func (c GuildVoiceChannelCreate) MarshalJSON() ([]byte, error)

func (GuildVoiceChannelCreate) Type

type GuildVoiceChannelUpdate

type GuildVoiceChannelUpdate struct {
	Name                 *string                `json:"name,omitempty"`
	Position             *int                   `json:"position,omitempty"`
	RateLimitPerUser     *int                   `json:"rate_limit_per_user,omitempty"`
	Bitrate              *int                   `json:"bitrate,omitempty"`
	UserLimit            *int                   `json:"user_limit,omitempty"`
	PermissionOverwrites *[]PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID             *snowflake.ID          `json:"parent_id,omitempty"`
	RTCRegion            *string                `json:"rtc_region,omitempty"`
	NSFW                 *bool                  `json:"nsfw,omitempty"`
	VideoQualityMode     *VideoQualityMode      `json:"video_quality_mode,omitempty"`
}

type GuildWelcomeChannel

type GuildWelcomeChannel struct {
	ChannelID   snowflake.ID  `json:"channel_id"`
	Description string        `json:"description"`
	EmojiID     *snowflake.ID `json:"emoji_id,omitempty"`
	EmojiName   *string       `json:"emoji_name,omitempty"`
}

GuildWelcomeChannel is one of the channels in a GuildWelcomeScreen

type GuildWelcomeScreen added in v0.14.1

type GuildWelcomeScreen struct {
	Description     *string               `json:"description,omitempty"`
	WelcomeChannels []GuildWelcomeChannel `json:"welcome_channels"`
}

GuildWelcomeScreen is the Welcome Screen of a Guild

type GuildWelcomeScreenUpdate added in v0.14.1

type GuildWelcomeScreenUpdate struct {
	Enabled         *bool                  `json:"enabled,omitempty"`
	WelcomeChannels *[]GuildWelcomeChannel `json:"welcome_channels,omitempty"`
	Description     *string                `json:"description,omitempty"`
}

GuildWelcomeScreenUpdate is used to update the GuildWelcomeScreen of a Guild

type Icon

type Icon struct {
	Type IconType
	Data []byte
}

func NewIcon

func NewIcon(iconType IconType, reader io.Reader) (*Icon, error)

func NewIconRaw

func NewIconRaw(iconType IconType, src []byte) *Icon

func (Icon) MarshalJSON

func (i Icon) MarshalJSON() ([]byte, error)

func (Icon) String

func (i Icon) String() string

type IconType

type IconType string
const (
	IconTypeJPEG    IconType = "image/jpeg"
	IconTypePNG     IconType = "image/png"
	IconTypeWEBP    IconType = "image/webp"
	IconTypeGIF     IconType = "image/gif"
	IconTypeUnknown          = IconTypeJPEG
)

func (IconType) GetHeader

func (t IconType) GetHeader() string

func (IconType) GetMIME

func (t IconType) GetMIME() string

type IncomingWebhook

type IncomingWebhook struct {
	ChannelID     snowflake.ID  `json:"channel_id"`
	GuildID       snowflake.ID  `json:"guild_id"`
	Token         string        `json:"token"`
	ApplicationID *snowflake.ID `json:"application_id"`
	User          User          `json:"user"`
	// contains filtered or unexported fields
}

func (IncomingWebhook) Avatar

func (w IncomingWebhook) Avatar() *string

func (IncomingWebhook) AvatarURL

func (w IncomingWebhook) AvatarURL(opts ...CDNOpt) *string

func (IncomingWebhook) CreatedAt added in v0.13.17

func (w IncomingWebhook) CreatedAt() time.Time

func (IncomingWebhook) DefaultAvatarURL

func (w IncomingWebhook) DefaultAvatarURL(opts ...CDNOpt) string

func (IncomingWebhook) EffectiveAvatarURL

func (w IncomingWebhook) EffectiveAvatarURL(opts ...CDNOpt) string

func (IncomingWebhook) ID

func (w IncomingWebhook) ID() snowflake.ID

func (IncomingWebhook) MarshalJSON

func (w IncomingWebhook) MarshalJSON() ([]byte, error)

func (IncomingWebhook) Name

func (w IncomingWebhook) Name() string

func (IncomingWebhook) Type

func (IncomingWebhook) URL

func (w IncomingWebhook) URL() string

func (*IncomingWebhook) UnmarshalJSON

func (w *IncomingWebhook) UnmarshalJSON(data []byte) error

type InstallParams added in v0.14.1

type InstallParams struct {
	Scopes      []OAuth2Scope `json:"scopes"`
	Permissions Permissions   `json:"permissions"`
}

type Integration

type Integration interface {
	json.Marshaler
	Type() IntegrationType
	ID() snowflake.ID
	CreatedAt() time.Time
}

Integration (https://discord.com/developers/docs/resources/guild#integration-object)

type IntegrationAccount

type IntegrationAccount struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

IntegrationAccount (https://discord.com/developers/docs/resources/guild#integration-account-object)

type IntegrationApplication

type IntegrationApplication struct {
	ID          snowflake.ID `json:"id"`
	Name        string       `json:"name"`
	Icon        string       `json:"icon"`
	Description string       `json:"description"`
	Summary     string       `json:"summary"`
	Client      User         `json:"bot"`
}

IntegrationApplication (https://discord.com/developers/docs/resources/guild#integration-application-object)

type IntegrationExpireBehavior added in v0.15.0

type IntegrationExpireBehavior int
const (
	IntegrationExpireBehaviorRemoveRole IntegrationExpireBehavior = iota
	IntegrationExpireBehaviorKick
)

type IntegrationType

type IntegrationType string

IntegrationType the type of Integration

const (
	IntegrationTypeTwitch            IntegrationType = "twitch"
	IntegrationTypeYouTube           IntegrationType = "youtube"
	IntegrationTypeBot               IntegrationType = "discord"
	IntegrationTypeGuildSubscription IntegrationType = "guild_subscription"
)

All IntegrationType(s)

type Interaction

type Interaction interface {
	Type() InteractionType
	ID() snowflake.ID
	ApplicationID() snowflake.ID
	Token() string
	Version() int
	PartialGuild() *InteractionGuild
	GuildID() *snowflake.ID
	// Deprecated: Use Interaction.Channel instead
	ChannelID() snowflake.ID
	Channel() InteractionChannel
	Locale() Locale
	GuildLocale() *Locale
	Member() *ResolvedMember
	User() User
	AppPermissions() *Permissions
	Entitlements() []Entitlement
	AuthorizingIntegrationOwners() map[ApplicationIntegrationType]snowflake.ID
	Context() InteractionContextType
	CreatedAt() time.Time
	// contains filtered or unexported methods
}

Interaction is used for easier unmarshalling of different Interaction(s)

func UnmarshalInteraction

func UnmarshalInteraction(data []byte) (Interaction, error)

type InteractionCallback added in v0.18.11

type InteractionCallback struct {
	ID                       snowflake.ID    `json:"id"`
	Type                     InteractionType `json:"type"`
	ActivityInstanceID       string          `json:"activity_instance_id"`
	ResponseMessageID        snowflake.ID    `json:"response_message_id"`
	ResponseMessageLoading   bool            `json:"response_message_loading"`
	ResponseMessageEphemeral bool            `json:"response_message_ephemeral"`
}

type InteractionCallbackActivityInstance added in v0.18.11

type InteractionCallbackActivityInstance struct {
	ID string `json:"id"`
}

type InteractionCallbackResource added in v0.18.11

type InteractionCallbackResource struct {
	Type             InteractionResponseType              `json:"type"`
	ActivityInstance *InteractionCallbackActivityInstance `json:"activity_instance"`
	Message          *Message                             `json:"message"`
}

type InteractionCallbackResponse added in v0.18.11

type InteractionCallbackResponse struct {
	Interaction InteractionCallback          `json:"interaction"`
	Resource    *InteractionCallbackResource `json:"resource"`
}

type InteractionChannel added in v0.16.5

type InteractionChannel struct {
	MessageChannel
	Permissions Permissions `json:"permissions"`
}

func (InteractionChannel) MarshalJSON added in v0.16.5

func (c InteractionChannel) MarshalJSON() ([]byte, error)

func (*InteractionChannel) UnmarshalJSON added in v0.16.5

func (c *InteractionChannel) UnmarshalJSON(data []byte) error

type InteractionContextType added in v0.18.0

type InteractionContextType int
const (
	InteractionContextTypeGuild InteractionContextType = iota
	InteractionContextTypeBotDM
	InteractionContextTypePrivateChannel
)

type InteractionGuild added in v0.18.6

type InteractionGuild struct {
	ID       snowflake.ID   `json:"id"`
	Locale   Locale         `json:"locale"`
	Features []GuildFeature `json:"features"`
}

type InteractionMetadata added in v0.18.0

type InteractionMetadata struct {
	ID                            snowflake.ID                                `json:"id"`
	Type                          InteractionType                             `json:"type"`
	User                          User                                        `json:"user"`
	AuthorizingIntegrationOwners  map[ApplicationIntegrationType]snowflake.ID `json:"authorizing_integration_owners"`
	OriginalResponseMessageID     *snowflake.ID                               `json:"original_response_message_id"`
	Name                          *string                                     `json:"name"`
	InteractedMessageID           *snowflake.ID                               `json:"interacted_message_id"`
	TriggeringInteractionMetadata *InteractionMetadata                        `json:"triggering_interaction_metadata"`
}

type InteractionResponse

type InteractionResponse struct {
	Type InteractionResponseType `json:"type"`
	Data InteractionResponseData `json:"data,omitempty"`
}

InteractionResponse is how you answer interactions. If an answer is not sent within 3 seconds of receiving it, the interaction is failed, and you will be unable to respond to it.

func (InteractionResponse) ToBody

func (r InteractionResponse) ToBody() (any, error)

ToBody returns the InteractionResponse ready for body

type InteractionResponseCreator

type InteractionResponseCreator interface {
	ToResponseBody(response InteractionResponse) (any, error)
}

type InteractionResponseData added in v0.12.6

type InteractionResponseData interface {
	// contains filtered or unexported methods
}

type InteractionResponseType added in v0.12.6

type InteractionResponseType int

InteractionResponseType indicates the type of slash command response, whether it's responding immediately or deferring to edit your response later

const (
	InteractionResponseTypePong InteractionResponseType = iota + 1

	InteractionResponseTypeCreateMessage
	InteractionResponseTypeDeferredCreateMessage
	InteractionResponseTypeDeferredUpdateMessage
	InteractionResponseTypeUpdateMessage
	InteractionResponseTypeAutocompleteResult
	InteractionResponseTypeModal
	InteractionResponseTypePremiumRequired

	InteractionResponseTypeLaunchActivity
)

Constants for the InteractionResponseType(s)

type InteractionType

type InteractionType int

InteractionType is the type of Interaction

const (
	InteractionTypePing InteractionType = iota + 1
	InteractionTypeApplicationCommand
	InteractionTypeComponent
	InteractionTypeAutocomplete
	InteractionTypeModalSubmit
)

Supported InteractionType(s)

type InteractiveComponent

type InteractiveComponent interface {
	Component
	ID() string
	// contains filtered or unexported methods
}

type Invite

type Invite struct {
	Type                     InviteType           `json:"type"`
	Code                     string               `json:"code"`
	Guild                    *InviteGuild         `json:"guild"`
	Channel                  *InviteChannel       `json:"channel"`
	Inviter                  *User                `json:"inviter"`
	TargetUser               *User                `json:"target_user"`
	TargetType               InviteTargetType     `json:"target_user_type"`
	ApproximatePresenceCount int                  `json:"approximate_presence_count"`
	ApproximateMemberCount   int                  `json:"approximate_member_count"`
	ExpiresAt                *time.Time           `json:"expires_at"`
	GuildScheduledEvent      *GuildScheduledEvent `json:"guild_scheduled_event"`
}

Invite is a partial invite struct

func (Invite) URL

func (i Invite) URL() string

type InviteChannel

type InviteChannel struct {
	ID   snowflake.ID `json:"id"`
	Type ChannelType  `json:"type"`
	Name string       `json:"name"`
	Icon *string      `json:"icon,omitempty"`
}

func (InviteChannel) IconURL

func (c InviteChannel) IconURL(opts ...CDNOpt) *string

IconURL returns the Icon URL of this channel. This will be nil for every ChannelType except ChannelTypeGroupDM

type InviteCreate

type InviteCreate struct {
	MaxAge              *int             `json:"max_age,omitempty"`
	MaxUses             *int             `json:"max_uses,omitempty"`
	Temporary           bool             `json:"temporary,omitempty"`
	Unique              bool             `json:"unique,omitempty"`
	TargetType          InviteTargetType `json:"target_type,omitempty"`
	TargetUserID        snowflake.ID     `json:"target_user_id,omitempty"`
	TargetApplicationID snowflake.ID     `json:"target_application_id,omitempty"`
}

type InviteGuild

type InviteGuild struct {
	ID                snowflake.ID      `json:"id"`
	Name              string            `json:"name"`
	Splash            *string           `json:"splash"`
	Banner            *string           `json:"banner"`
	Description       *string           `json:"description"`
	Icon              *string           `json:"icon"`
	Features          []GuildFeature    `json:"features"`
	VerificationLevel VerificationLevel `json:"verification_level"`
	VanityURLCode     *string           `json:"vanity_url_code"`
}

An InviteGuild is the Guild of an Invite

type InviteTargetType

type InviteTargetType int

InviteTargetType is type of target an Invite uses

const (
	InviteTargetTypeStream InviteTargetType = iota + 1
	InviteTargetTypeEmbeddedApplication
	InviteTargetTypeRoleSubscriptionsPurchase
)

Constants for TargetType

type InviteType added in v0.18.6

type InviteType int
const (
	InviteTypeGuild InviteType = iota
	InviteTypeGroupDM
	InviteTypeFriend
)

type Locale

type Locale string
const (
	LocaleEnglishUS    Locale = "en-US"
	LocaleEnglishGB    Locale = "en-GB"
	LocaleBulgarian    Locale = "bg"
	LocaleChineseCN    Locale = "zh-CN"
	LocaleChineseTW    Locale = "zh-TW"
	LocaleCroatian     Locale = "hr"
	LocaleCzech        Locale = "cs"
	LocaleDanish       Locale = "da"
	LocaleDutch        Locale = "nl"
	LocaleFinnish      Locale = "fi"
	LocaleFrench       Locale = "fr"
	LocaleGerman       Locale = "de"
	LocaleGreek        Locale = "el"
	LocaleHindi        Locale = "hi"
	LocaleHungarian    Locale = "hu"
	LocaleIndonesian   Locale = "id"
	LocaleItalian      Locale = "it"
	LocaleJapanese     Locale = "ja"
	LocaleKorean       Locale = "ko"
	LocaleLithuanian   Locale = "lt"
	LocaleNorwegian    Locale = "no"
	LocalePolish       Locale = "pl"
	LocalePortugueseBR Locale = "pt-BR"
	LocaleRomanian     Locale = "ro"
	LocaleRussian      Locale = "ru"
	LocaleSpanishES    Locale = "es-ES"
	LocaleSwedish      Locale = "sv-SE"
	LocaleThai         Locale = "th"
	LocaleTurkish      Locale = "tr"
	LocaleUkrainian    Locale = "uk"
	LocaleVietnamese   Locale = "vi"
	LocaleUnknown      Locale = ""
)

func (Locale) Code

func (l Locale) Code() string

func (Locale) String

func (l Locale) String() string

type MFALevel

type MFALevel int

The MFALevel of a Guild

const (
	MFALevelNone MFALevel = iota
	MFALevelElevated
)

Constants for MFALevel

type Member

type Member struct {
	User                       User                  `json:"user"`
	Nick                       *string               `json:"nick"`
	Avatar                     *string               `json:"avatar"`
	Banner                     *string               `json:"banner"`
	RoleIDs                    []snowflake.ID        `json:"roles,omitempty"`
	JoinedAt                   time.Time             `json:"joined_at"`
	PremiumSince               *time.Time            `json:"premium_since,omitempty"`
	Deaf                       bool                  `json:"deaf,omitempty"`
	Mute                       bool                  `json:"mute,omitempty"`
	Flags                      MemberFlags           `json:"flags"`
	Pending                    bool                  `json:"pending"`
	CommunicationDisabledUntil *time.Time            `json:"communication_disabled_until"`
	AvatarDecorationData       *AvatarDecorationData `json:"avatar_decoration_data"`

	// This field is not present everywhere in the API and often populated by disgo
	GuildID snowflake.ID `json:"guild_id"`
}

Member is a discord GuildMember

func (Member) AvatarDecorationURL added in v0.18.0

func (m Member) AvatarDecorationURL(opts ...CDNOpt) *string

AvatarDecorationURL returns the avatar decoration URL if set or nil

func (Member) AvatarURL

func (m Member) AvatarURL(opts ...CDNOpt) *string

AvatarURL returns the guild-specific avatar URL of the user if set or nil

func (Member) BannerURL added in v0.18.9

func (m Member) BannerURL(opts ...CDNOpt) *string

BannerURL returns the guild-specific banner URL of the user if set or nil

func (Member) CreatedAt added in v0.13.17

func (m Member) CreatedAt() time.Time

func (Member) EffectiveAvatarURL

func (m Member) EffectiveAvatarURL(opts ...CDNOpt) string

EffectiveAvatarURL returns the guild-specific avatar URL of the user if set, falling back to the effective avatar URL of the user

func (Member) EffectiveBannerURL added in v0.18.9

func (m Member) EffectiveBannerURL(opts ...CDNOpt) string

EffectiveBannerURL returns the guild-specific banner URL of the user if set, falling back to the banner URL of the user

func (Member) EffectiveName

func (m Member) EffectiveName() string

EffectiveName returns the nickname of the member if set, falling back to User.EffectiveName()

func (Member) Mention

func (m Member) Mention() string

Mention returns a mention of the user

func (Member) String

func (m Member) String() string

String returns a mention of the user

type MemberAdd

type MemberAdd struct {
	AccessToken string         `json:"access_token"`
	Nick        string         `json:"nick,omitempty"`
	Roles       []snowflake.ID `json:"roles,omitempty"`
	Mute        bool           `json:"mute,omitempty"`
	Deaf        bool           `json:"deaf,omitempty"`
}

MemberAdd is used to add a member via the oauth2 access token to a guild

type MemberFlags added in v0.15.0

type MemberFlags int
const (
	MemberFlagDidRejoin MemberFlags = 1 << iota
	MemberFlagCompletedOnboarding
	MemberFlagBypassesVerification
	MemberFlagStartedOnboarding
	MemberFlagIsGuest
	MemberFlagStartedHomeActions
	MemberFlagCompletedHomeActions
	MemberFlagAutomodQuarantinedUsername

	MemberFlagDMSettingsUpsellAcknowledged
	MemberFlagsNone MemberFlags = 0
)

func (MemberFlags) Add added in v0.15.0

func (f MemberFlags) Add(bits ...MemberFlags) MemberFlags

Add allows you to add multiple bits together, producing a new bit

func (MemberFlags) Has added in v0.15.0

func (f MemberFlags) Has(bits ...MemberFlags) bool

Has will ensure that the bit includes all the bits entered

func (MemberFlags) Missing added in v0.15.0

func (f MemberFlags) Missing(bits ...MemberFlags) bool

Missing will check whether the bit is missing any one of the bits

func (MemberFlags) Remove added in v0.15.0

func (f MemberFlags) Remove(bits ...MemberFlags) MemberFlags

Remove allows you to subtract multiple bits from the first, producing a new bit

type MemberPermissionOverwrite

type MemberPermissionOverwrite struct {
	UserID snowflake.ID `json:"id"`
	Allow  Permissions  `json:"allow"`
	Deny   Permissions  `json:"deny"`
}

func (MemberPermissionOverwrite) ID

func (o MemberPermissionOverwrite) ID() snowflake.ID

func (MemberPermissionOverwrite) MarshalJSON

func (o MemberPermissionOverwrite) MarshalJSON() ([]byte, error)

func (MemberPermissionOverwrite) Type

type MemberPermissionOverwriteUpdate

type MemberPermissionOverwriteUpdate struct {
	Allow *Permissions `json:"allow,omitempty"`
	Deny  *Permissions `json:"deny,omitempty"`
}

func (MemberPermissionOverwriteUpdate) MarshalJSON

func (u MemberPermissionOverwriteUpdate) MarshalJSON() ([]byte, error)

func (MemberPermissionOverwriteUpdate) Type

type MemberUpdate

type MemberUpdate struct {
	ChannelID                  *snowflake.ID             `json:"channel_id,omitempty"`
	Nick                       *string                   `json:"nick,omitempty"`
	Roles                      *[]snowflake.ID           `json:"roles,omitempty"`
	Mute                       *bool                     `json:"mute,omitempty"`
	Deaf                       *bool                     `json:"deaf,omitempty"`
	Flags                      *MemberFlags              `json:"flags,omitempty"`
	CommunicationDisabledUntil *json.Nullable[time.Time] `json:"communication_disabled_until,omitempty"`
}

MemberUpdate is used to modify a member

type MembershipState

type MembershipState int
const (
	MembershipStateInvited MembershipState = iota + 1
	MembershipStateAccepted
)

type MentionChannel added in v0.17.1

type MentionChannel struct {
	ID      snowflake.ID `json:"id"`
	GuildID snowflake.ID `json:"guild_id"`
	Type    ChannelType  `json:"type"`
	Name    string       `json:"name"`
}

type MentionType

type MentionType struct {
	*regexp.Regexp
}

type Mentionable

type Mentionable interface {
	fmt.Stringer
	Mention() string
}

type MentionableSelectMenuComponent added in v0.14.0

type MentionableSelectMenuComponent struct {
	CustomID      string                   `json:"custom_id"`
	Placeholder   string                   `json:"placeholder,omitempty"`
	DefaultValues []SelectMenuDefaultValue `json:"default_values,omitempty"`
	MinValues     *int                     `json:"min_values,omitempty"`
	MaxValues     int                      `json:"max_values,omitempty"`
	Disabled      bool                     `json:"disabled,omitempty"`
}

func NewMentionableSelectMenu added in v0.14.0

func NewMentionableSelectMenu(customID string, placeholder string) MentionableSelectMenuComponent

NewMentionableSelectMenu builds a new SelectMenuComponent from the provided values

func (MentionableSelectMenuComponent) AddDefaultValue added in v0.16.10

AddDefaultValue returns a new MentionableSelectMenuComponent with the provided default value added. SelectMenuDefaultValue can easily be constructed using helpers like NewSelectMenuDefaultUser or NewSelectMenuDefaultRole

func (MentionableSelectMenuComponent) AsDisabled added in v0.14.0

AsDisabled returns a new MentionableSelectMenuComponent but disabled

func (MentionableSelectMenuComponent) AsEnabled added in v0.14.0

AsEnabled returns a new MentionableSelectMenuComponent but enabled

func (MentionableSelectMenuComponent) ID added in v0.14.0

func (MentionableSelectMenuComponent) MarshalJSON added in v0.14.0

func (c MentionableSelectMenuComponent) MarshalJSON() ([]byte, error)

func (MentionableSelectMenuComponent) RemoveDefaultValue added in v0.16.10

RemoveDefaultValue returns a new MentionableSelectMenuComponent with the provided default value at the index removed

func (MentionableSelectMenuComponent) SetDefaultValues added in v0.16.10

SetDefaultValues returns a new MentionableSelectMenuComponent with the provided default values

func (MentionableSelectMenuComponent) Type added in v0.14.0

func (MentionableSelectMenuComponent) WithCustomID added in v0.14.0

WithCustomID returns a new MentionableSelectMenuComponent with the provided customID

func (MentionableSelectMenuComponent) WithDisabled added in v0.14.0

WithDisabled returns a new MentionableSelectMenuComponent with the provided disabled

func (MentionableSelectMenuComponent) WithMaxValues added in v0.14.0

WithMaxValues returns a new MentionableSelectMenuComponent with the provided maxValue

func (MentionableSelectMenuComponent) WithMinValues added in v0.14.0

WithMinValues returns a new MentionableSelectMenuComponent with the provided minValue

func (MentionableSelectMenuComponent) WithPlaceholder added in v0.14.0

WithPlaceholder returns a new MentionableSelectMenuComponent with the provided placeholder

type MentionableSelectMenuInteractionData added in v0.14.0

type MentionableSelectMenuInteractionData struct {
	Resolved MentionableSelectMenuResolved `json:"resolved"`
	Values   []snowflake.ID                `json:"values"`
	// contains filtered or unexported fields
}

func (MentionableSelectMenuInteractionData) CustomID added in v0.14.0

func (MentionableSelectMenuInteractionData) MarshalJSON added in v0.14.0

func (d MentionableSelectMenuInteractionData) MarshalJSON() ([]byte, error)

func (MentionableSelectMenuInteractionData) Members added in v0.14.0

func (MentionableSelectMenuInteractionData) Roles added in v0.14.0

func (MentionableSelectMenuInteractionData) Type added in v0.14.0

func (*MentionableSelectMenuInteractionData) UnmarshalJSON added in v0.14.0

func (d *MentionableSelectMenuInteractionData) UnmarshalJSON(data []byte) error

func (MentionableSelectMenuInteractionData) Users added in v0.14.0

type MentionableSelectMenuResolved added in v0.14.0

type MentionableSelectMenuResolved struct {
	Users   map[snowflake.ID]User           `json:"users"`
	Members map[snowflake.ID]ResolvedMember `json:"members"`
	Roles   map[snowflake.ID]Role           `json:"roles"`
}

type Message

type Message struct {
	ID                   snowflake.ID          `json:"id"`
	GuildID              *snowflake.ID         `json:"guild_id"`
	Reactions            []MessageReaction     `json:"reactions"`
	Attachments          []Attachment          `json:"attachments"`
	TTS                  bool                  `json:"tts"`
	Embeds               []Embed               `json:"embeds,omitempty"`
	Components           []ContainerComponent  `json:"components,omitempty"`
	CreatedAt            time.Time             `json:"timestamp"`
	Mentions             []User                `json:"mentions"`
	MentionEveryone      bool                  `json:"mention_everyone"`
	MentionRoles         []snowflake.ID        `json:"mention_roles"`
	MentionChannels      []MentionChannel      `json:"mention_channels"`
	Pinned               bool                  `json:"pinned"`
	EditedTimestamp      *time.Time            `json:"edited_timestamp"`
	Author               User                  `json:"author"`
	Member               *Member               `json:"member"`
	Content              string                `json:"content,omitempty"`
	ChannelID            snowflake.ID          `json:"channel_id"`
	Type                 MessageType           `json:"type"`
	Flags                MessageFlags          `json:"flags"`
	MessageReference     *MessageReference     `json:"message_reference,omitempty"`
	MessageSnapshots     []MessageSnapshot     `json:"message_snapshots,omitempty"`
	Interaction          *MessageInteraction   `json:"interaction,omitempty"`
	WebhookID            *snowflake.ID         `json:"webhook_id,omitempty"`
	Activity             *MessageActivity      `json:"activity,omitempty"`
	Application          *MessageApplication   `json:"application,omitempty"`
	ApplicationID        *snowflake.ID         `json:"application_id,omitempty"`
	StickerItems         []MessageSticker      `json:"sticker_items,omitempty"`
	ReferencedMessage    *Message              `json:"referenced_message,omitempty"`
	LastUpdated          *time.Time            `json:"last_updated,omitempty"`
	Thread               *MessageThread        `json:"thread,omitempty"`
	Position             *int                  `json:"position,omitempty"`
	RoleSubscriptionData *RoleSubscriptionData `json:"role_subscription_data,omitempty"`
	InteractionMetadata  *InteractionMetadata  `json:"interaction_metadata,omitempty"`
	Resolved             *ResolvedData         `json:"resolved,omitempty"`
	Poll                 *Poll                 `json:"poll,omitempty"`
	Call                 *MessageCall          `json:"call,omitempty"`
}

Message is a struct for messages sent in discord text-based channels

func (Message) ActionRows

func (m Message) ActionRows() []ActionRowComponent

ActionRows returns all ActionRowComponent(s) from this Message

func (Message) ButtonByID

func (m Message) ButtonByID(customID string) (ButtonComponent, bool)

ButtonByID returns a ButtonComponent with the specific customID from this Message

func (Message) Buttons

func (m Message) Buttons() []ButtonComponent

Buttons returns all ButtonComponent(s) from this Message

func (Message) ChannelSelectMenuByID added in v0.14.0

func (m Message) ChannelSelectMenuByID(customID string) (ChannelSelectMenuComponent, bool)

ChannelSelectMenuByID returns a ChannelSelectMenuComponent with the specific customID from this Message

func (Message) ChannelSelectMenus added in v0.14.0

func (m Message) ChannelSelectMenus() []ChannelSelectMenuComponent

ChannelSelectMenus returns all ChannelSelectMenuComponent(s) from this Message

func (Message) ComponentByID

func (m Message) ComponentByID(customID string) InteractiveComponent

ComponentByID returns the Component with the specific CustomID

func (Message) InteractiveComponents

func (m Message) InteractiveComponents() []InteractiveComponent

InteractiveComponents returns the InteractiveComponent(s) from this Message

func (Message) JumpURL added in v0.13.19

func (m Message) JumpURL() string

func (Message) MentionableSelectMenuByID added in v0.14.0

func (m Message) MentionableSelectMenuByID(customID string) (MentionableSelectMenuComponent, bool)

MentionableSelectMenuByID returns a MentionableSelectMenuComponent with the specific customID from this Message

func (Message) MentionableSelectMenus added in v0.14.0

func (m Message) MentionableSelectMenus() []MentionableSelectMenuComponent

MentionableSelectMenus returns all MentionableSelectMenuComponent(s) from this Message

func (Message) RoleSelectMenuByID added in v0.14.0

func (m Message) RoleSelectMenuByID(customID string) (RoleSelectMenuComponent, bool)

RoleSelectMenuByID returns a RoleSelectMenuComponent with the specific customID from this Message

func (Message) RoleSelectMenus added in v0.14.0

func (m Message) RoleSelectMenus() []RoleSelectMenuComponent

RoleSelectMenus returns all RoleSelectMenuComponent(s) from this Message

func (Message) SelectMenuByID

func (m Message) SelectMenuByID(customID string) (SelectMenuComponent, bool)

SelectMenuByID returns a SelectMenuComponent with the specific customID from this Message

func (Message) SelectMenus

func (m Message) SelectMenus() []SelectMenuComponent

SelectMenus returns all SelectMenuComponent(s) from this Message

func (*Message) UnmarshalJSON

func (m *Message) UnmarshalJSON(data []byte) error

func (Message) UserSelectMenuByID added in v0.14.0

func (m Message) UserSelectMenuByID(customID string) (UserSelectMenuComponent, bool)

UserSelectMenuByID returns a UserSelectMenuComponent with the specific customID from this Message

func (Message) UserSelectMenus added in v0.14.0

func (m Message) UserSelectMenus() []UserSelectMenuComponent

UserSelectMenus returns all UserSelectMenuComponent(s) from this Message

type MessageActivity

type MessageActivity struct {
	Type    MessageActivityType `json:"type"`
	PartyID *string             `json:"party_id,omitempty"`
}

MessageActivity is used for rich presence-related chat embeds in a Message

type MessageActivityType

type MessageActivityType int

MessageActivityType is the type of MessageActivity https://com/developers/docs/resources/channel#message-object-message-activity-types

const (
	MessageActivityTypeJoin MessageActivityType = iota + 1
	MessageActivityTypeSpectate
	MessageActivityTypeListen

	MessageActivityTypeJoinRequest
)

Constants for MessageActivityType

type MessageApplication

type MessageApplication struct {
	ID          snowflake.ID `json:"id"`
	CoverImage  *string      `json:"cover_image,omitempty"`
	Description string       `json:"description"`
	Icon        *string      `json:"icon,omitempty"`
	Name        string       `json:"name"`
}

MessageApplication is used for rich presence-related chat embeds in a Message

type MessageBulkDelete

type MessageBulkDelete struct {
	Messages []snowflake.ID `json:"messages"`
}

type MessageCall added in v0.18.6

type MessageCall struct {
	Participants   []snowflake.ID `json:"participants"`
	EndedTimestamp *time.Time     `json:"ended_timestamp"`
}

type MessageChannel

type MessageChannel interface {
	Channel

	// LastMessageID returns the ID of the last Message sent in this MessageChannel.
	// This is nil if no Message has been sent yet.
	LastMessageID() *snowflake.ID

	// LastPinTimestamp returns when the last Message in this MessageChannel was pinned.
	// This is nil if no Message has been pinned yet.
	LastPinTimestamp() *time.Time
	// contains filtered or unexported methods
}

type MessageCommand

type MessageCommand struct {
	// contains filtered or unexported fields
}

func (MessageCommand) ApplicationID

func (c MessageCommand) ApplicationID() snowflake.ID

func (MessageCommand) Contexts added in v0.18.0

func (c MessageCommand) Contexts() []InteractionContextType

func (MessageCommand) CreatedAt added in v0.13.17

func (c MessageCommand) CreatedAt() time.Time

func (MessageCommand) DMPermission added in v0.10.2

func (c MessageCommand) DMPermission() bool

func (MessageCommand) DefaultMemberPermissions added in v0.10.2

func (c MessageCommand) DefaultMemberPermissions() Permissions

func (MessageCommand) GuildID

func (c MessageCommand) GuildID() *snowflake.ID

func (MessageCommand) ID

func (c MessageCommand) ID() snowflake.ID

func (MessageCommand) IntegrationTypes added in v0.18.0

func (c MessageCommand) IntegrationTypes() []ApplicationIntegrationType

func (MessageCommand) MarshalJSON

func (c MessageCommand) MarshalJSON() ([]byte, error)

func (MessageCommand) NSFW added in v0.14.0

func (c MessageCommand) NSFW() bool

func (MessageCommand) Name

func (c MessageCommand) Name() string

func (MessageCommand) NameLocalizations

func (c MessageCommand) NameLocalizations() map[Locale]string

func (MessageCommand) NameLocalized

func (c MessageCommand) NameLocalized() string

func (MessageCommand) Type

func (*MessageCommand) UnmarshalJSON

func (c *MessageCommand) UnmarshalJSON(data []byte) error

func (MessageCommand) Version

func (c MessageCommand) Version() snowflake.ID

type MessageCommandCreate

type MessageCommandCreate struct {
	Name                     string                      `json:"name"`
	NameLocalizations        map[Locale]string           `json:"name_localizations,omitempty"`
	DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"`
	// Deprecated: Use Contexts instead
	DMPermission     *bool                        `json:"dm_permission,omitempty"`
	IntegrationTypes []ApplicationIntegrationType `json:"integration_types,omitempty"`
	Contexts         []InteractionContextType     `json:"contexts,omitempty"`
	NSFW             *bool                        `json:"nsfw,omitempty"`
}

func (MessageCommandCreate) CommandName

func (c MessageCommandCreate) CommandName() string

func (MessageCommandCreate) MarshalJSON

func (c MessageCommandCreate) MarshalJSON() ([]byte, error)

func (MessageCommandCreate) Type

type MessageCommandInteractionData

type MessageCommandInteractionData struct {
	Resolved MessageCommandResolved `json:"resolved"`
	// contains filtered or unexported fields
}

func (MessageCommandInteractionData) CommandID

func (d MessageCommandInteractionData) CommandID() snowflake.ID

func (MessageCommandInteractionData) CommandName

func (d MessageCommandInteractionData) CommandName() string

func (MessageCommandInteractionData) GuildID added in v0.8.9

func (d MessageCommandInteractionData) GuildID() *snowflake.ID

func (*MessageCommandInteractionData) MarshalJSON

func (d *MessageCommandInteractionData) MarshalJSON() ([]byte, error)

func (MessageCommandInteractionData) TargetID

func (d MessageCommandInteractionData) TargetID() snowflake.ID

func (MessageCommandInteractionData) TargetMessage

func (d MessageCommandInteractionData) TargetMessage() Message

func (MessageCommandInteractionData) Type

func (*MessageCommandInteractionData) UnmarshalJSON

func (d *MessageCommandInteractionData) UnmarshalJSON(data []byte) error

type MessageCommandResolved

type MessageCommandResolved struct {
	Messages map[snowflake.ID]Message `json:"messages,omitempty"`
}

type MessageCommandUpdate

type MessageCommandUpdate struct {
	Name                     *string                     `json:"name,omitempty"`
	NameLocalizations        *map[Locale]string          `json:"name_localizations,omitempty"`
	DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"`
	// Deprecated: Use Contexts instead
	DMPermission     *bool                         `json:"dm_permission,omitempty"`
	IntegrationTypes *[]ApplicationIntegrationType `json:"integration_types,omitempty"`
	Contexts         *[]InteractionContextType     `json:"contexts,omitempty"`
	NSFW             *bool                         `json:"nsfw,omitempty"`
}

func (MessageCommandUpdate) CommandName

func (c MessageCommandUpdate) CommandName() *string

func (MessageCommandUpdate) MarshalJSON

func (c MessageCommandUpdate) MarshalJSON() ([]byte, error)

func (MessageCommandUpdate) Type

type MessageCreate

type MessageCreate struct {
	Nonce            string               `json:"nonce,omitempty"`
	Content          string               `json:"content,omitempty"`
	TTS              bool                 `json:"tts,omitempty"`
	Embeds           []Embed              `json:"embeds,omitempty"`
	Components       []ContainerComponent `json:"components,omitempty"`
	StickerIDs       []snowflake.ID       `json:"sticker_ids,omitempty"`
	Files            []*File              `json:"-"`
	Attachments      []AttachmentCreate   `json:"attachments,omitempty"`
	AllowedMentions  *AllowedMentions     `json:"allowed_mentions,omitempty"`
	MessageReference *MessageReference    `json:"message_reference,omitempty"`
	Flags            MessageFlags         `json:"flags,omitempty"`
	EnforceNonce     bool                 `json:"enforce_nonce,omitempty"`
	Poll             *PollCreate          `json:"poll,omitempty"`
}

MessageCreate is the struct to create a new Message with

func (MessageCreate) ToBody

func (m MessageCreate) ToBody() (any, error)

ToBody returns the MessageCreate ready for body

func (MessageCreate) ToResponseBody

func (m MessageCreate) ToResponseBody(response InteractionResponse) (any, error)

type MessageCreateBuilder

type MessageCreateBuilder struct {
	MessageCreate
}

MessageCreateBuilder helper to build Message(s) easier

func NewMessageCreateBuilder

func NewMessageCreateBuilder() *MessageCreateBuilder

NewMessageCreateBuilder creates a new MessageCreateBuilder to be built later

func (*MessageCreateBuilder) AddActionRow

func (b *MessageCreateBuilder) AddActionRow(components ...InteractiveComponent) *MessageCreateBuilder

AddActionRow adds a new discord.ActionRowComponent with the provided discord.InteractiveComponent(s) to the Message

func (*MessageCreateBuilder) AddContainerComponents

func (b *MessageCreateBuilder) AddContainerComponents(containers ...ContainerComponent) *MessageCreateBuilder

AddContainerComponents adds the discord.ContainerComponent(s) to the Message

func (*MessageCreateBuilder) AddEmbeds

func (b *MessageCreateBuilder) AddEmbeds(embeds ...Embed) *MessageCreateBuilder

AddEmbeds adds multiple embeds to the Message

func (*MessageCreateBuilder) AddFile

func (b *MessageCreateBuilder) AddFile(name string, description string, reader io.Reader, flags ...FileFlags) *MessageCreateBuilder

AddFile adds a discord.File to the discord.MessageCreate

func (*MessageCreateBuilder) AddFiles

func (b *MessageCreateBuilder) AddFiles(files ...*File) *MessageCreateBuilder

AddFiles adds the discord.File(s) to the discord.MessageCreate

func (*MessageCreateBuilder) AddFlags

AddFlags adds the MessageFlags of the Message

func (*MessageCreateBuilder) AddStickers

func (b *MessageCreateBuilder) AddStickers(stickerIds ...snowflake.ID) *MessageCreateBuilder

AddStickers adds provided stickers to the Message

func (*MessageCreateBuilder) Build

Build builds the MessageCreateBuilder to a MessageCreate struct

func (*MessageCreateBuilder) ClearAllowedMentions

func (b *MessageCreateBuilder) ClearAllowedMentions() *MessageCreateBuilder

ClearAllowedMentions clears the discord.AllowedMentions of the Message

func (*MessageCreateBuilder) ClearContainerComponents

func (b *MessageCreateBuilder) ClearContainerComponents() *MessageCreateBuilder

ClearContainerComponents removes all the discord.ContainerComponent(s) of the Message

func (*MessageCreateBuilder) ClearEmbeds

func (b *MessageCreateBuilder) ClearEmbeds() *MessageCreateBuilder

ClearEmbeds removes all the embeds from the Message

func (*MessageCreateBuilder) ClearFiles

func (b *MessageCreateBuilder) ClearFiles() *MessageCreateBuilder

ClearFiles removes all discord.File(s) of this discord.MessageCreate

func (*MessageCreateBuilder) ClearFlags

func (b *MessageCreateBuilder) ClearFlags() *MessageCreateBuilder

ClearFlags clears the discord.MessageFlags of the Message

func (*MessageCreateBuilder) ClearPoll added in v0.18.3

ClearPoll clears the Poll of the Message

func (*MessageCreateBuilder) ClearStickers

func (b *MessageCreateBuilder) ClearStickers() *MessageCreateBuilder

ClearStickers removes all Sticker(s) from the Message

func (*MessageCreateBuilder) RemoveContainerComponent

func (b *MessageCreateBuilder) RemoveContainerComponent(i int) *MessageCreateBuilder

RemoveContainerComponent removes a discord.ActionRowComponent from the Message

func (*MessageCreateBuilder) RemoveEmbed

func (b *MessageCreateBuilder) RemoveEmbed(i int) *MessageCreateBuilder

RemoveEmbed removes an embed from the Message

func (*MessageCreateBuilder) RemoveFile

func (b *MessageCreateBuilder) RemoveFile(i int) *MessageCreateBuilder

RemoveFile removes the discord.File at this index

func (*MessageCreateBuilder) RemoveFlags

func (b *MessageCreateBuilder) RemoveFlags(flags ...MessageFlags) *MessageCreateBuilder

RemoveFlags removes the MessageFlags of the Message

func (*MessageCreateBuilder) SetAllowedMentions

func (b *MessageCreateBuilder) SetAllowedMentions(allowedMentions *AllowedMentions) *MessageCreateBuilder

SetAllowedMentions sets the AllowedMentions of the Message

func (*MessageCreateBuilder) SetContainerComponent

func (b *MessageCreateBuilder) SetContainerComponent(i int, container ContainerComponent) *MessageCreateBuilder

SetContainerComponent sets the provided discord.InteractiveComponent at the index of discord.InteractiveComponent(s)

func (*MessageCreateBuilder) SetContainerComponents

func (b *MessageCreateBuilder) SetContainerComponents(containerComponents ...ContainerComponent) *MessageCreateBuilder

SetContainerComponents sets the discord.ContainerComponent(s) of the Message

func (*MessageCreateBuilder) SetContent

func (b *MessageCreateBuilder) SetContent(content string) *MessageCreateBuilder

SetContent sets the content of the Message

func (*MessageCreateBuilder) SetContentf

func (b *MessageCreateBuilder) SetContentf(content string, a ...any) *MessageCreateBuilder

SetContentf sets the content of the Message but with format

func (*MessageCreateBuilder) SetEmbed

func (b *MessageCreateBuilder) SetEmbed(i int, embed Embed) *MessageCreateBuilder

SetEmbed sets the provided Embed at the index of the Message

func (*MessageCreateBuilder) SetEmbeds

func (b *MessageCreateBuilder) SetEmbeds(embeds ...Embed) *MessageCreateBuilder

SetEmbeds sets the Embed(s) of the Message

func (*MessageCreateBuilder) SetEnforceNonce added in v0.17.2

func (b *MessageCreateBuilder) SetEnforceNonce(enforce bool) *MessageCreateBuilder

SetEnforceNonce sets whether the Message should be checked for uniqueness (use with SetNonce)

func (*MessageCreateBuilder) SetEphemeral

func (b *MessageCreateBuilder) SetEphemeral(ephemeral bool) *MessageCreateBuilder

SetEphemeral adds/removes discord.MessageFlagEphemeral to the Message flags

func (*MessageCreateBuilder) SetFile

func (b *MessageCreateBuilder) SetFile(i int, file *File) *MessageCreateBuilder

SetFile sets the discord.File at the index for this discord.MessageCreate

func (*MessageCreateBuilder) SetFiles

func (b *MessageCreateBuilder) SetFiles(files ...*File) *MessageCreateBuilder

SetFiles sets the File(s) for this MessageCreate

func (*MessageCreateBuilder) SetFlags

SetFlags sets the message flags of the Message

func (*MessageCreateBuilder) SetMessageReference

func (b *MessageCreateBuilder) SetMessageReference(messageReference *MessageReference) *MessageCreateBuilder

SetMessageReference allows you to specify a MessageReference to reply to

func (*MessageCreateBuilder) SetMessageReferenceByID

func (b *MessageCreateBuilder) SetMessageReferenceByID(messageID snowflake.ID) *MessageCreateBuilder

SetMessageReferenceByID allows you to specify a Message CommandID to reply to

func (*MessageCreateBuilder) SetNonce added in v0.17.2

func (b *MessageCreateBuilder) SetNonce(nonce string) *MessageCreateBuilder

SetNonce sets the Message nonce

func (*MessageCreateBuilder) SetPoll added in v0.18.3

SetPoll sets the Poll of the Message

func (*MessageCreateBuilder) SetStickers

func (b *MessageCreateBuilder) SetStickers(stickerIds ...snowflake.ID) *MessageCreateBuilder

SetStickers sets the stickers of the Message

func (*MessageCreateBuilder) SetSuppressEmbeds

func (b *MessageCreateBuilder) SetSuppressEmbeds(suppressEmbeds bool) *MessageCreateBuilder

SetSuppressEmbeds adds/removes discord.MessageFlagSuppressEmbeds to the Message flags

func (*MessageCreateBuilder) SetTTS

SetTTS sets whether the Message should be text to speech

type MessageFlags

type MessageFlags int

The MessageFlags of a Message

const (
	MessageFlagCrossposted MessageFlags = 1 << iota
	MessageFlagIsCrosspost
	MessageFlagSuppressEmbeds
	MessageFlagSourceMessageDeleted
	MessageFlagUrgent
	MessageFlagHasThread
	MessageFlagEphemeral
	MessageFlagLoading // Message is an interaction of type 5, awaiting further response
	MessageFlagFailedToMentionSomeRolesInThread

	MessageFlagSuppressNotifications
	MessageFlagIsVoiceMessage
	MessageFlagsNone MessageFlags = 0
)

Constants for MessageFlags

func (MessageFlags) Add

func (f MessageFlags) Add(bits ...MessageFlags) MessageFlags

Add allows you to add multiple bits together, producing a new bit

func (MessageFlags) Has

func (f MessageFlags) Has(bits ...MessageFlags) bool

Has will ensure that the bit includes all the bits entered

func (MessageFlags) Missing

func (f MessageFlags) Missing(bits ...MessageFlags) bool

Missing will check whether the bit is missing any one of the bits

func (MessageFlags) Remove

func (f MessageFlags) Remove(bits ...MessageFlags) MessageFlags

Remove allows you to subtract multiple bits from the first, producing a new bit

type MessageInteraction

type MessageInteraction struct {
	ID   snowflake.ID    `json:"id"`
	Type InteractionType `json:"type"`
	Name string          `json:"name"`
	User User            `json:"user"`
}

MessageInteraction is sent on the Message object when the message is a response to an interaction

type MessageNotificationsLevel

type MessageNotificationsLevel int

MessageNotificationsLevel indicates whether users receive @ mentions on a new message

const (
	MessageNotificationsLevelAllMessages MessageNotificationsLevel = iota
	MessageNotificationsLevelOnlyMentions
)

Constants for MessageNotificationsLevel

type MessageReaction

type MessageReaction struct {
	Count        int                  `json:"count"`
	CountDetails ReactionCountDetails `json:"count_details"`
	Me           bool                 `json:"me"`
	MeBurst      bool                 `json:"me_burst"`
	Emoji        Emoji                `json:"emoji"`
	BurstColors  []string             `json:"burst_colors"`
}

MessageReaction contains information about the reactions of a message

type MessageReactionType added in v0.18.6

type MessageReactionType int
const (
	MessageReactionTypeNormal MessageReactionType = iota
	MessageReactionTypeBurst
)

type MessageReference

type MessageReference struct {
	Type            MessageReferenceType `json:"type,omitempty"`
	MessageID       *snowflake.ID        `json:"message_id"`
	ChannelID       *snowflake.ID        `json:"channel_id,omitempty"`
	GuildID         *snowflake.ID        `json:"guild_id,omitempty"`
	FailIfNotExists bool                 `json:"fail_if_not_exists,omitempty"`
}

MessageReference is a reference to another message

type MessageReferenceType added in v0.18.9

type MessageReferenceType int
const (
	MessageReferenceTypeDefault MessageReferenceType = iota
	MessageReferenceTypeForward
)

type MessageSnapshot added in v0.18.9

type MessageSnapshot struct {
	Message PartialMessage `json:"message"`
}

type MessageSticker

type MessageSticker struct {
	ID         snowflake.ID      `json:"id"`
	Name       string            `json:"name"`
	FormatType StickerFormatType `json:"format_type"`
}

type MessageThread added in v0.11.0

type MessageThread struct {
	GuildThread
	Member ThreadMember `json:"member"`
}

type MessageType

type MessageType int

The MessageType indicates the Message type

const (
	MessageTypeDefault MessageType = iota
	MessageTypeRecipientAdd
	MessageTypeRecipientRemove
	MessageTypeCall
	MessageTypeChannelNameChange
	MessageTypeChannelIconChange
	MessageTypeChannelPinnedMessage
	MessageTypeUserJoin
	MessageTypeGuildBoost
	MessageTypeGuildBoostTier1
	MessageTypeGuildBoostTier2
	MessageTypeGuildBoostTier3
	MessageTypeChannelFollowAdd

	MessageTypeGuildDiscoveryDisqualified
	MessageTypeGuildDiscoveryRequalified
	MessageTypeGuildDiscoveryGracePeriodInitialWarning
	MessageTypeGuildDiscoveryGracePeriodFinalWarning
	MessageTypeThreadCreated
	MessageTypeReply
	MessageTypeSlashCommand
	MessageTypeThreadStarterMessage
	MessageTypeGuildInviteReminder
	MessageTypeContextMenuCommand
	MessageTypeAutoModerationAction
	MessageTypeRoleSubscriptionPurchase
	MessageTypeInteractionPremiumUpsell
	MessageTypeStageStart
	MessageTypeStageEnd
	MessageTypeStageSpeaker

	MessageTypeStageTopic
	MessageTypeGuildApplicationPremiumSubscription
	MessageTypePurchaseNotification MessageType = iota + 11

	MessageTypePollResult
)

Constants for the MessageType

func (MessageType) Deleteable added in v0.12.7

func (t MessageType) Deleteable() bool

func (MessageType) System added in v0.12.7

func (t MessageType) System() bool

type MessageUpdate

type MessageUpdate struct {
	Content         *string               `json:"content,omitempty"`
	Embeds          *[]Embed              `json:"embeds,omitempty"`
	Components      *[]ContainerComponent `json:"components,omitempty"`
	Attachments     *[]AttachmentUpdate   `json:"attachments,omitempty"`
	Files           []*File               `json:"-"`
	AllowedMentions *AllowedMentions      `json:"allowed_mentions,omitempty"`
	// Flags are the MessageFlags of the message.
	// Be careful not to override the current flags when editing messages from other users - this will result in a permission error.
	// Use MessageFlags.Add for flags like discord.MessageFlagSuppressEmbeds.
	Flags *MessageFlags `json:"flags,omitempty"`
}

MessageUpdate is used to edit a Message

func (MessageUpdate) ToBody

func (m MessageUpdate) ToBody() (any, error)

ToBody returns the MessageUpdate ready for body

func (MessageUpdate) ToResponseBody

func (m MessageUpdate) ToResponseBody(response InteractionResponse) (any, error)

type MessageUpdateBuilder

type MessageUpdateBuilder struct {
	MessageUpdate
}

MessageUpdateBuilder helper to build MessageUpdate easier

func NewMessageUpdateBuilder

func NewMessageUpdateBuilder() *MessageUpdateBuilder

NewMessageUpdateBuilder creates a new MessageUpdateBuilder to be built later

func (*MessageUpdateBuilder) AddActionRow

func (b *MessageUpdateBuilder) AddActionRow(components ...InteractiveComponent) *MessageUpdateBuilder

AddActionRow adds a new discord.ActionRowComponent with the provided discord.InteractiveComponent(s) to the Message

func (*MessageUpdateBuilder) AddContainerComponents

func (b *MessageUpdateBuilder) AddContainerComponents(containers ...ContainerComponent) *MessageUpdateBuilder

AddContainerComponents adds the discord.ContainerComponent(s) to the Message

func (*MessageUpdateBuilder) AddEmbeds

func (b *MessageUpdateBuilder) AddEmbeds(embeds ...Embed) *MessageUpdateBuilder

AddEmbeds adds multiple embeds to the Message

func (*MessageUpdateBuilder) AddFile

func (b *MessageUpdateBuilder) AddFile(name string, description string, reader io.Reader, flags ...FileFlags) *MessageUpdateBuilder

AddFile adds a new discord.File to the discord.MessageUpdate

func (*MessageUpdateBuilder) AddFiles

func (b *MessageUpdateBuilder) AddFiles(files ...*File) *MessageUpdateBuilder

AddFiles adds the new discord.File(s) to the discord.MessageUpdate

func (*MessageUpdateBuilder) AddFlags

AddFlags adds the MessageFlags of the Message

func (*MessageUpdateBuilder) Build

Build builds the MessageUpdateBuilder to a MessageUpdate struct

func (*MessageUpdateBuilder) ClearAllowedMentions

func (b *MessageUpdateBuilder) ClearAllowedMentions() *MessageUpdateBuilder

ClearAllowedMentions clears the allowed mentions of the Message

func (*MessageUpdateBuilder) ClearContainerComponents

func (b *MessageUpdateBuilder) ClearContainerComponents() *MessageUpdateBuilder

ClearContainerComponents removes all the discord.ContainerComponent(s) of the Message

func (*MessageUpdateBuilder) ClearContent

func (b *MessageUpdateBuilder) ClearContent() *MessageUpdateBuilder

ClearContent removes content of the Message

func (*MessageUpdateBuilder) ClearEmbeds

func (b *MessageUpdateBuilder) ClearEmbeds() *MessageUpdateBuilder

ClearEmbeds removes all the embeds from the Message

func (*MessageUpdateBuilder) ClearFiles

func (b *MessageUpdateBuilder) ClearFiles() *MessageUpdateBuilder

ClearFiles removes all new files of this discord.MessageUpdate

func (*MessageUpdateBuilder) ClearFlags

func (b *MessageUpdateBuilder) ClearFlags() *MessageUpdateBuilder

ClearFlags clears the MessageFlags of the Message

func (*MessageUpdateBuilder) RemoveContainerComponent

func (b *MessageUpdateBuilder) RemoveContainerComponent(i int) *MessageUpdateBuilder

RemoveContainerComponent removes a discord.ContainerComponent from the Message

func (*MessageUpdateBuilder) RemoveEmbed

func (b *MessageUpdateBuilder) RemoveEmbed(i int) *MessageUpdateBuilder

RemoveEmbed removes an embed from the Message

func (*MessageUpdateBuilder) RemoveFile

func (b *MessageUpdateBuilder) RemoveFile(i int) *MessageUpdateBuilder

RemoveFile removes the new discord.File at this index

func (*MessageUpdateBuilder) RemoveFlags

func (b *MessageUpdateBuilder) RemoveFlags(flags ...MessageFlags) *MessageUpdateBuilder

RemoveFlags removes the MessageFlags of the Message

func (*MessageUpdateBuilder) RetainAttachments

func (b *MessageUpdateBuilder) RetainAttachments(attachments ...Attachment) *MessageUpdateBuilder

RetainAttachments removes all Attachment(s) from this Message except the ones provided

func (*MessageUpdateBuilder) RetainAttachmentsByID

func (b *MessageUpdateBuilder) RetainAttachmentsByID(attachmentIDs ...snowflake.ID) *MessageUpdateBuilder

RetainAttachmentsByID removes all Attachment(s) from this Message except the ones provided

func (*MessageUpdateBuilder) SetAllowedMentions

func (b *MessageUpdateBuilder) SetAllowedMentions(allowedMentions *AllowedMentions) *MessageUpdateBuilder

SetAllowedMentions sets the AllowedMentions of the Message

func (*MessageUpdateBuilder) SetContainerComponent

func (b *MessageUpdateBuilder) SetContainerComponent(i int, container ContainerComponent) *MessageUpdateBuilder

SetContainerComponent sets the provided discord.InteractiveComponent at the index of discord.InteractiveComponent(s)

func (*MessageUpdateBuilder) SetContainerComponents

func (b *MessageUpdateBuilder) SetContainerComponents(containerComponents ...ContainerComponent) *MessageUpdateBuilder

SetContainerComponents sets the discord.ContainerComponent(s) of the Message

func (*MessageUpdateBuilder) SetContent

func (b *MessageUpdateBuilder) SetContent(content string) *MessageUpdateBuilder

SetContent sets content of the Message

func (*MessageUpdateBuilder) SetContentf

func (b *MessageUpdateBuilder) SetContentf(content string, a ...any) *MessageUpdateBuilder

SetContentf sets content of the Message

func (*MessageUpdateBuilder) SetEmbed

func (b *MessageUpdateBuilder) SetEmbed(i int, embed Embed) *MessageUpdateBuilder

SetEmbed sets the provided discord.Embed at the index of the Message

func (*MessageUpdateBuilder) SetEmbeds

func (b *MessageUpdateBuilder) SetEmbeds(embeds ...Embed) *MessageUpdateBuilder

SetEmbeds sets the discord.Embed(s) of the Message

func (*MessageUpdateBuilder) SetFile

func (b *MessageUpdateBuilder) SetFile(i int, file *File) *MessageUpdateBuilder

SetFile sets the new discord.File at the index for this discord.MessageUpdate

func (*MessageUpdateBuilder) SetFiles

func (b *MessageUpdateBuilder) SetFiles(files ...*File) *MessageUpdateBuilder

SetFiles sets the new discord.File(s) for this discord.MessageUpdate

func (*MessageUpdateBuilder) SetFlags

SetFlags sets the MessageFlags of the Message. Be careful not to override the current flags when editing messages from other users - this will result in a permission error. Use SetSuppressEmbeds or AddFlags for flags like discord.MessageFlagSuppressEmbeds.

func (*MessageUpdateBuilder) SetSuppressEmbeds

func (b *MessageUpdateBuilder) SetSuppressEmbeds(suppressEmbeds bool) *MessageUpdateBuilder

SetSuppressEmbeds adds/removes discord.MessageFlagSuppressEmbeds to the Message flags

type ModalCreate

type ModalCreate struct {
	CustomID   string               `json:"custom_id"`
	Title      string               `json:"title"`
	Components []ContainerComponent `json:"components"`
}

type ModalCreateBuilder

type ModalCreateBuilder struct {
	ModalCreate
}

func NewModalCreateBuilder

func NewModalCreateBuilder() *ModalCreateBuilder

NewModalCreateBuilder creates a new ModalCreateBuilder to be built later

func (*ModalCreateBuilder) AddActionRow

func (b *ModalCreateBuilder) AddActionRow(components ...InteractiveComponent) *ModalCreateBuilder

AddActionRow adds a new discord.ActionRowComponent with the provided discord.InteractiveComponent(s) to the ModalCreate

func (*ModalCreateBuilder) AddContainerComponents

func (b *ModalCreateBuilder) AddContainerComponents(containers ...ContainerComponent) *ModalCreateBuilder

AddContainerComponents adds the discord.ContainerComponent(s) to the ModalCreate

func (*ModalCreateBuilder) Build

func (b *ModalCreateBuilder) Build() ModalCreate

Build builds the ModalCreateBuilder to a ModalCreate struct

func (*ModalCreateBuilder) ClearContainerComponents

func (b *ModalCreateBuilder) ClearContainerComponents() *ModalCreateBuilder

ClearContainerComponents removes all the discord.ContainerComponent(s) of the ModalCreate

func (*ModalCreateBuilder) RemoveContainerComponent

func (b *ModalCreateBuilder) RemoveContainerComponent(i int) *ModalCreateBuilder

RemoveContainerComponent removes a discord.ActionRowComponent from the ModalCreate

func (*ModalCreateBuilder) SetContainerComponent

func (b *ModalCreateBuilder) SetContainerComponent(i int, container ContainerComponent) *ModalCreateBuilder

SetContainerComponent sets the provided discord.InteractiveComponent at the index of discord.InteractiveComponent(s)

func (*ModalCreateBuilder) SetContainerComponents

func (b *ModalCreateBuilder) SetContainerComponents(containerComponents ...ContainerComponent) *ModalCreateBuilder

SetContainerComponents sets the discord.ContainerComponent(s) of the ModalCreate

func (*ModalCreateBuilder) SetCustomID

func (b *ModalCreateBuilder) SetCustomID(customID string) *ModalCreateBuilder

SetCustomID sets the CustomID of the ModalCreate

func (*ModalCreateBuilder) SetTitle

func (b *ModalCreateBuilder) SetTitle(title string) *ModalCreateBuilder

SetTitle sets the title of the ModalCreate

type ModalSubmitInteraction

type ModalSubmitInteraction struct {
	Data ModalSubmitInteractionData `json:"data"`
	// contains filtered or unexported fields
}

func (ModalSubmitInteraction) AppPermissions added in v0.15.1

func (i ModalSubmitInteraction) AppPermissions() *Permissions

func (ModalSubmitInteraction) ApplicationID added in v0.15.1

func (i ModalSubmitInteraction) ApplicationID() snowflake.ID

func (ModalSubmitInteraction) AuthorizingIntegrationOwners added in v0.18.0

func (i ModalSubmitInteraction) AuthorizingIntegrationOwners() map[ApplicationIntegrationType]snowflake.ID

func (ModalSubmitInteraction) Channel added in v0.16.1

func (i ModalSubmitInteraction) Channel() InteractionChannel

func (ModalSubmitInteraction) ChannelID deprecated added in v0.15.1

func (i ModalSubmitInteraction) ChannelID() snowflake.ID

Deprecated: Use Channel() instead

func (ModalSubmitInteraction) Context added in v0.18.0

func (i ModalSubmitInteraction) Context() InteractionContextType

func (ModalSubmitInteraction) CreatedAt added in v0.15.1

func (i ModalSubmitInteraction) CreatedAt() time.Time

func (ModalSubmitInteraction) Entitlements added in v0.16.11

func (i ModalSubmitInteraction) Entitlements() []Entitlement

func (ModalSubmitInteraction) GuildID added in v0.15.1

func (i ModalSubmitInteraction) GuildID() *snowflake.ID

func (ModalSubmitInteraction) GuildLocale added in v0.15.1

func (i ModalSubmitInteraction) GuildLocale() *Locale

func (ModalSubmitInteraction) ID added in v0.15.1

func (i ModalSubmitInteraction) ID() snowflake.ID

func (ModalSubmitInteraction) Locale added in v0.15.1

func (i ModalSubmitInteraction) Locale() Locale

func (ModalSubmitInteraction) MarshalJSON added in v0.15.1

func (i ModalSubmitInteraction) MarshalJSON() ([]byte, error)

func (ModalSubmitInteraction) Member added in v0.15.1

func (i ModalSubmitInteraction) Member() *ResolvedMember

func (ModalSubmitInteraction) PartialGuild added in v0.18.6

func (i ModalSubmitInteraction) PartialGuild() *InteractionGuild

func (ModalSubmitInteraction) Token added in v0.15.1

func (i ModalSubmitInteraction) Token() string

func (ModalSubmitInteraction) Type

func (*ModalSubmitInteraction) UnmarshalJSON

func (i *ModalSubmitInteraction) UnmarshalJSON(data []byte) error

func (ModalSubmitInteraction) User added in v0.15.1

func (i ModalSubmitInteraction) User() User

func (ModalSubmitInteraction) Version added in v0.15.1

func (i ModalSubmitInteraction) Version() int

type ModalSubmitInteractionData

type ModalSubmitInteractionData struct {
	CustomID   string                          `json:"custom_id"`
	Components map[string]InteractiveComponent `json:"components"`
}

func (ModalSubmitInteractionData) Component

func (ModalSubmitInteractionData) OptText

func (d ModalSubmitInteractionData) OptText(customID string) (string, bool)

func (ModalSubmitInteractionData) Text

func (d ModalSubmitInteractionData) Text(customID string) string

func (ModalSubmitInteractionData) TextInputComponent

func (d ModalSubmitInteractionData) TextInputComponent(customID string) (TextInputComponent, bool)

func (*ModalSubmitInteractionData) UnmarshalJSON

func (d *ModalSubmitInteractionData) UnmarshalJSON(data []byte) error

type MultipartBuffer

type MultipartBuffer struct {
	Buffer      *bytes.Buffer
	ContentType string
}

MultipartBuffer holds the Body & ContentType of the multipart body

func PayloadWithFiles

func PayloadWithFiles(v any, files ...*File) (*MultipartBuffer, error)

PayloadWithFiles returns the given payload as multipart body with all files in it

type NSFWLevel

type NSFWLevel int
const (
	NSFWLevelDefault NSFWLevel = iota
	NSFWLevelExplicit
	NSFWLevelSafe
	NSFWLevelAgeRestricted
)

type OAuth2Guild

type OAuth2Guild struct {
	ID                       snowflake.ID   `json:"id"`
	Name                     string         `json:"name"`
	Icon                     *string        `json:"icon"`
	Banner                   *string        `json:"banner"`
	Owner                    bool           `json:"owner"`
	Permissions              Permissions    `json:"permissions"`
	Features                 []GuildFeature `json:"features"`
	ApproximateMemberCount   int            `json:"approximate_member_count"`
	ApproximatePresenceCount int            `json:"approximate_presence_count"`
}

OAuth2Guild is returned on the GetGuilds route

func (OAuth2Guild) BannerURL added in v0.18.9

func (g OAuth2Guild) BannerURL(opts ...CDNOpt) *string

func (OAuth2Guild) IconURL added in v0.18.9

func (g OAuth2Guild) IconURL(opts ...CDNOpt) *string

type OAuth2Scope added in v0.12.0

type OAuth2Scope string

OAuth2Scope are the scopes you can request in the OAuth2 flow.

const (
	// OAuth2ScopeActivitiesRead allows your app to fetch data from a user's "Now Playing/Recently Played" list - requires Discord approval
	OAuth2ScopeActivitiesRead OAuth2Scope = "activities.read"
	// OAuth2ScopeActivitiesWrite allows your app to update a user's activity - requires Discord approval (NOT REQUIRED FOR GAMESDK ACTIVITY MANAGER)
	OAuth2ScopeActivitiesWrite OAuth2Scope = "activities.write"

	// OAuth2ScopeApplicationsBuildsRead allows your app to read build data for a user's applications
	OAuth2ScopeApplicationsBuildsRead OAuth2Scope = "applications.builds.read"
	// OAuth2ScopeApplicationsBuildsUpload allows your app to upload/update builds for a user's applications - requires Discord approval
	OAuth2ScopeApplicationsBuildsUpload OAuth2Scope = "applications.builds.upload"

	OAuth2ScopeApplicationsCommands                  OAuth2Scope = "applications.commands"
	OAuth2ScopeApplicationsCommandsUpdate            OAuth2Scope = "applications.commands.update"
	OAuth2ScopeApplicationsCommandsPermissionsUpdate OAuth2Scope = "applications.commands.permissions.update"
	OAuth2ScopeApplicationsEntitlements              OAuth2Scope = "applications.entitlements"
	OAuth2ScopeApplicationsStoreUpdate               OAuth2Scope = "applications.store.update"

	OAuth2ScopeRPC                  OAuth2Scope = "rpc"
	OAuth2ScopeRPCNotificationsRead OAuth2Scope = "rpc.notifications.read"
	OAuth2ScopeRPCVoiceWrite        OAuth2Scope = "rpc.voice.write"
	OAuth2ScopeRPCVoiceRead         OAuth2Scope = "rpc.voice.read"
	OAuth2ScopeRPCActivitiesWrite   OAuth2Scope = "rpc.activities.write"

	OAuth2ScopeGuilds            OAuth2Scope = "guilds"
	OAuth2ScopeGuildsJoin        OAuth2Scope = "guilds.join"
	OAuth2ScopeGuildsMembersRead OAuth2Scope = "guilds.members.read"
	OAuth2ScopeGDMJoin           OAuth2Scope = "gdm.join"

	OAuth2ScopeRelationshipsRead    OAuth2Scope = "relationships.read"
	OAuth2ScopeRoleConnectionsWrite OAuth2Scope = "role_connections.write"
	OAuth2ScopeIdentify             OAuth2Scope = "identify"
	OAuth2ScopeEmail                OAuth2Scope = "email"
	OAuth2ScopeConnections          OAuth2Scope = "connections"
	OAuth2ScopeBot                  OAuth2Scope = "bot"
	OAuth2ScopeMessagesRead         OAuth2Scope = "messages.read"
	OAuth2ScopeWebhookIncoming      OAuth2Scope = "webhook.incoming"
)

func SplitScopes

func SplitScopes(joinedScopes string) []OAuth2Scope

func (OAuth2Scope) String added in v0.12.0

func (s OAuth2Scope) String() string

type OAuth2User

type OAuth2User struct {
	User
	// Requires OAuth2ScopeIdentify
	MfaEnabled  bool        `json:"mfa_enabled"`
	Locale      string      `json:"locale"`
	Flags       UserFlags   `json:"flags"`
	PremiumType PremiumType `json:"premium_type"`

	// Requires OAuth2ScopeEmail
	Verified bool   `json:"verified"`
	Email    string `json:"email"`
}

OAuth2User represents a full User returned by the oauth2 endpoints

type OnlineStatus

type OnlineStatus string

OnlineStatus (https://discord.com/developers/docs/topics/gateway#update-presence-status-types)

const (
	OnlineStatusOnline    OnlineStatus = "online"
	OnlineStatusDND       OnlineStatus = "dnd"
	OnlineStatusIdle      OnlineStatus = "idle"
	OnlineStatusInvisible OnlineStatus = "invisible"
	OnlineStatusOffline   OnlineStatus = "offline"
)

type OptionalAuditLogEntryInfo

type OptionalAuditLogEntryInfo struct {
	DeleteMemberDays              *string                    `json:"delete_member_days"`
	MembersRemoved                *string                    `json:"members_removed"`
	ChannelID                     *snowflake.ID              `json:"channel_id"`
	MessageID                     *snowflake.ID              `json:"message_id"`
	Count                         *string                    `json:"count"`
	ID                            *string                    `json:"id"`
	Type                          *string                    `json:"type"`
	RoleName                      *string                    `json:"role_name"`
	ApplicationID                 *snowflake.ID              `json:"application_id"`
	AutoModerationRuleName        *string                    `json:"auto_moderation_rule_name"`
	AutoModerationRuleTriggerType *AutoModerationTriggerType `json:"auto_moderation_rule_trigger_type,string"`
	IntegrationType               *IntegrationType           `json:"integration_type"`
}

OptionalAuditLogEntryInfo (https://discord.com/developers/docs/resources/audit-log#audit-log-entry-object-optional-audit-entry-info)

type PartialApplication

type PartialApplication struct {
	ID    snowflake.ID     `json:"id"`
	Flags ApplicationFlags `json:"flags"`
}

type PartialChannel added in v0.16.1

type PartialChannel struct {
	ID   snowflake.ID `json:"id"`
	Type ChannelType  `json:"type"`
}

type PartialEmoji added in v0.16.0

type PartialEmoji struct {
	ID       *snowflake.ID `json:"id,omitempty"`
	Name     *string       `json:"name,omitempty"`
	Animated bool          `json:"animated,omitempty"`
}

func (PartialEmoji) Reaction added in v0.16.3

func (e PartialEmoji) Reaction() string

Reaction returns a string used for manipulating with reactions. May be empty if the Name is nil

type PartialInvite added in v0.14.1

type PartialInvite struct {
	Code *string `json:"code"`
	Uses int     `json:"uses"`
}

type PartialMessage added in v0.18.9

type PartialMessage struct {
	Type            MessageType          `json:"type"`
	Content         string               `json:"content,omitempty"`
	Embeds          []Embed              `json:"embeds,omitempty"`
	Attachments     []Attachment         `json:"attachments"`
	CreatedAt       time.Time            `json:"timestamp"`
	EditedTimestamp *time.Time           `json:"edited_timestamp"`
	Flags           MessageFlags         `json:"flags"`
	Mentions        []User               `json:"mentions"`
	MentionRoles    []snowflake.ID       `json:"mention_roles"`
	Stickers        []Sticker            `json:"stickers"`
	StickerItems    []MessageSticker     `json:"sticker_items,omitempty"`
	Components      []ContainerComponent `json:"components,omitempty"`
}

func (*PartialMessage) UnmarshalJSON added in v0.18.12

func (m *PartialMessage) UnmarshalJSON(data []byte) error

type PartialRole

type PartialRole struct {
	ID   snowflake.ID `json:"id"`
	Name string       `json:"name"`
}

PartialRole holds basic info about a Role

type Payload

type Payload interface {
	ToBody() (any, error)
}

type PermissionOverwrite

type PermissionOverwrite interface {
	Type() PermissionOverwriteType
	ID() snowflake.ID
}

PermissionOverwrite is used to determine who can perform particular actions in a GetGuildChannel

type PermissionOverwriteType

type PermissionOverwriteType int

PermissionOverwriteType is the type of PermissionOverwrite

const (
	PermissionOverwriteTypeRole PermissionOverwriteType = iota
	PermissionOverwriteTypeMember
)

Constants for PermissionOverwriteType

type PermissionOverwriteUpdate

type PermissionOverwriteUpdate interface {
	Type() PermissionOverwriteType
}

type PermissionOverwrites added in v0.9.0

type PermissionOverwrites []PermissionOverwrite

func (PermissionOverwrites) Get added in v0.9.0

func (p PermissionOverwrites) Get(overwriteType PermissionOverwriteType, id snowflake.ID) (PermissionOverwrite, bool)

func (PermissionOverwrites) Member added in v0.9.0

func (p PermissionOverwrites) Member(id snowflake.ID) (MemberPermissionOverwrite, bool)

func (PermissionOverwrites) Role added in v0.9.0

func (p PermissionOverwrites) Role(id snowflake.ID) (RolePermissionOverwrite, bool)

type Permissions

type Permissions int64

Permissions extends the Bit structure, and is used within roles and channels (https://discord.com/developers/docs/topics/permissions#permissions)

const (
	PermissionCreateInstantInvite Permissions = 1 << iota
	PermissionKickMembers
	PermissionBanMembers
	PermissionAdministrator
	PermissionManageChannels
	PermissionManageGuild
	PermissionAddReactions
	PermissionViewAuditLog
	PermissionPrioritySpeaker
	PermissionStream
	PermissionViewChannel
	PermissionSendMessages
	PermissionSendTTSMessages
	PermissionManageMessages
	PermissionEmbedLinks
	PermissionAttachFiles
	PermissionReadMessageHistory
	PermissionMentionEveryone
	PermissionUseExternalEmojis
	PermissionViewGuildInsights
	PermissionConnect
	PermissionSpeak
	PermissionMuteMembers
	PermissionDeafenMembers
	PermissionMoveMembers
	PermissionUseVAD
	PermissionChangeNickname
	PermissionManageNicknames
	PermissionManageRoles
	PermissionManageWebhooks
	PermissionManageGuildExpressions
	PermissionUseApplicationCommands
	PermissionRequestToSpeak
	PermissionManageEvents
	PermissionManageThreads
	PermissionCreatePublicThreads
	PermissionCreatePrivateThreads
	PermissionUseExternalStickers
	PermissionSendMessagesInThreads
	PermissionUseEmbeddedActivities
	PermissionModerateMembers
	PermissionViewCreatorMonetizationAnalytics
	PermissionUseSoundboard
	PermissionCreateGuildExpressions
	PermissionCreateEvents
	PermissionUseExternalSounds
	PermissionSendVoiceMessages

	PermissionSendPolls
	PermissionUseExternalApps

	PermissionsAllText = PermissionViewChannel |
		PermissionSendMessages |
		PermissionSendTTSMessages |
		PermissionManageMessages |
		PermissionEmbedLinks |
		PermissionAttachFiles |
		PermissionReadMessageHistory |
		PermissionMentionEveryone |
		PermissionSendVoiceMessages |
		PermissionSendPolls |
		PermissionUseExternalApps

	PermissionsAllThread = PermissionManageThreads |
		PermissionCreatePublicThreads |
		PermissionCreatePrivateThreads |
		PermissionSendMessagesInThreads

	PermissionsAllVoice = PermissionViewChannel |
		PermissionConnect |
		PermissionSpeak |
		PermissionStream |
		PermissionMuteMembers |
		PermissionDeafenMembers |
		PermissionMoveMembers |
		PermissionUseVAD |
		PermissionPrioritySpeaker |
		PermissionUseSoundboard |
		PermissionUseExternalSounds |
		PermissionRequestToSpeak |
		PermissionUseEmbeddedActivities |
		PermissionCreateGuildExpressions |
		PermissionCreateEvents |
		PermissionManageEvents

	PermissionsAllChannel = PermissionsAllText |
		PermissionsAllThread |
		PermissionsAllVoice |
		PermissionCreateInstantInvite |
		PermissionManageChannels |
		PermissionAddReactions |
		PermissionUseExternalEmojis |
		PermissionUseApplicationCommands |
		PermissionUseExternalStickers

	PermissionsAll = PermissionsAllChannel |
		PermissionKickMembers |
		PermissionBanMembers |
		PermissionManageGuild |
		PermissionAdministrator |
		PermissionManageWebhooks |
		PermissionManageGuildExpressions |
		PermissionViewCreatorMonetizationAnalytics |
		PermissionViewGuildInsights |
		PermissionViewAuditLog |
		PermissionManageRoles |
		PermissionChangeNickname |
		PermissionManageNicknames |
		PermissionModerateMembers

	PermissionsNone Permissions = 0
)

func (Permissions) Add

func (p Permissions) Add(bits ...Permissions) Permissions

Add allows you to add multiple bits together, producing a new bit

func (Permissions) Has

func (p Permissions) Has(bits ...Permissions) bool

Has will ensure that the bit includes all the bits entered

func (Permissions) MarshalJSON

func (p Permissions) MarshalJSON() ([]byte, error)

MarshalJSON marshals permissions into a string

func (Permissions) Missing

func (p Permissions) Missing(bits ...Permissions) bool

Missing will check whether the bit is missing any one of the bits

func (Permissions) Remove

func (p Permissions) Remove(bits ...Permissions) Permissions

Remove allows you to subtract multiple bits from the first, producing a new bit

func (Permissions) String added in v0.14.0

func (p Permissions) String() string

func (*Permissions) UnmarshalJSON

func (p *Permissions) UnmarshalJSON(data []byte) error

UnmarshalJSON unmarshalls permissions into an int64

type PingInteraction

type PingInteraction struct {
	// contains filtered or unexported fields
}

func (PingInteraction) AppPermissions added in v0.12.7

func (PingInteraction) AppPermissions() *Permissions

func (PingInteraction) ApplicationID

func (i PingInteraction) ApplicationID() snowflake.ID

func (PingInteraction) AuthorizingIntegrationOwners added in v0.18.0

func (PingInteraction) AuthorizingIntegrationOwners() map[ApplicationIntegrationType]snowflake.ID

func (PingInteraction) Channel added in v0.16.1

func (PingInteraction) ChannelID

func (PingInteraction) ChannelID() snowflake.ID

func (PingInteraction) Context added in v0.18.0

func (PingInteraction) CreatedAt added in v0.13.17

func (i PingInteraction) CreatedAt() time.Time

func (PingInteraction) Entitlements added in v0.16.11

func (PingInteraction) Entitlements() []Entitlement

func (PingInteraction) GuildID

func (PingInteraction) GuildID() *snowflake.ID

func (PingInteraction) GuildLocale

func (PingInteraction) GuildLocale() *Locale

func (PingInteraction) ID

func (i PingInteraction) ID() snowflake.ID

func (PingInteraction) Locale

func (PingInteraction) Locale() Locale

func (PingInteraction) MarshalJSON

func (i PingInteraction) MarshalJSON() ([]byte, error)

func (PingInteraction) Member

func (PingInteraction) Member() *ResolvedMember

func (PingInteraction) PartialGuild added in v0.18.6

func (PingInteraction) PartialGuild() *InteractionGuild

func (PingInteraction) Token

func (i PingInteraction) Token() string

func (PingInteraction) Type

func (*PingInteraction) UnmarshalJSON

func (i *PingInteraction) UnmarshalJSON(data []byte) error

func (PingInteraction) User

func (PingInteraction) User() User

func (PingInteraction) Version

func (i PingInteraction) Version() int

type Poll added in v0.18.3

type Poll struct {
	Question         PollMedia      `json:"question"`
	Answers          []PollAnswer   `json:"answers"`
	Expiry           *time.Time     `json:"expiry"`
	AllowMultiselect bool           `json:"allow_multiselect"`
	LayoutType       PollLayoutType `json:"layout_type"`
	Results          *PollResults   `json:"results"`
}

type PollAnswer added in v0.18.3

type PollAnswer struct {
	AnswerID  *int      `json:"answer_id,omitempty"`
	PollMedia PollMedia `json:"poll_media"`
}

type PollAnswerCount added in v0.18.3

type PollAnswerCount struct {
	ID      int  `json:"id"`
	Count   int  `json:"count"`
	MeVoted bool `json:"me_voted"`
}

type PollCreate added in v0.18.3

type PollCreate struct {
	Question         PollMedia      `json:"question"`
	Answers          []PollMedia    `json:"-"`
	Duration         int            `json:"duration"`
	AllowMultiselect bool           `json:"allow_multiselect"`
	LayoutType       PollLayoutType `json:"layout_type,omitempty"`
}

func (PollCreate) MarshalJSON added in v0.18.3

func (p PollCreate) MarshalJSON() ([]byte, error)

type PollCreateBuilder added in v0.18.3

type PollCreateBuilder struct {
	PollCreate
}

PollCreateBuilder helps create PollCreate structs easier

func (*PollCreateBuilder) AddAnswer added in v0.18.4

func (b *PollCreateBuilder) AddAnswer(text string, emoji *PartialEmoji) *PollCreateBuilder

AddAnswer adds an answer to the Poll

func (*PollCreateBuilder) Build added in v0.18.3

func (b *PollCreateBuilder) Build() PollCreate

Build builds the PollCreateBuilder to a PollCreate struct

func (*PollCreateBuilder) ClearAnswers added in v0.18.3

func (b *PollCreateBuilder) ClearAnswers() *PollCreateBuilder

ClearAnswers removes all answers of the Poll

func (*PollCreateBuilder) RemoveAnswer added in v0.18.3

func (b *PollCreateBuilder) RemoveAnswer(i int) *PollCreateBuilder

RemoveAnswer removes an answer from the Poll

func (*PollCreateBuilder) SetAllowMultiselect added in v0.18.3

func (b *PollCreateBuilder) SetAllowMultiselect(multiselect bool) *PollCreateBuilder

SetAllowMultiselect sets whether users will be able to vote for more than one answer of the Poll

func (*PollCreateBuilder) SetAnswers added in v0.18.4

func (b *PollCreateBuilder) SetAnswers(answers ...PollMedia) *PollCreateBuilder

SetAnswers sets the answers of the Poll

func (*PollCreateBuilder) SetDuration added in v0.18.3

func (b *PollCreateBuilder) SetDuration(duration int) *PollCreateBuilder

SetDuration sets the duration of the Poll (in hours)

func (*PollCreateBuilder) SetLayoutType added in v0.18.3

func (b *PollCreateBuilder) SetLayoutType(layout PollLayoutType) *PollCreateBuilder

SetLayoutType sets the layout of the Poll

func (*PollCreateBuilder) SetQuestion added in v0.18.3

func (b *PollCreateBuilder) SetQuestion(text string) *PollCreateBuilder

SetQuestion sets the question of the Poll

type PollLayoutType added in v0.18.3

type PollLayoutType int
const (
	PollLayoutTypeDefault PollLayoutType = iota + 1
)

type PollMedia added in v0.18.3

type PollMedia struct {
	Text  *string       `json:"text"`
	Emoji *PartialEmoji `json:"emoji,omitempty"`
}

type PollResults added in v0.18.3

type PollResults struct {
	IsFinalized  bool              `json:"is_finalized"`
	AnswerCounts []PollAnswerCount `json:"answer_counts"`
}

type PremiumTier

type PremiumTier int

PremiumTier tells you the boost level of a Guild

const (
	PremiumTierNone PremiumTier = iota
	PremiumTier1
	PremiumTier2
	PremiumTier3
)

Constants for PremiumTier

type PremiumType

type PremiumType int

PremiumType defines the different discord nitro tiers a user can have (https://discord.com/developers/docs/resources/user#user-object-premium-types)

const (
	PremiumTypeNone PremiumType = iota
	PremiumTypeNitroClassic
	PremiumTypeNitro
	PremiumTypeNitroBasic
)

All PremiumType(s)

type Presence

type Presence struct {
	PresenceUser PresenceUser `json:"user"`
	GuildID      snowflake.ID `json:"guild_id"`
	Status       OnlineStatus `json:"status"`
	Activities   []Activity   `json:"activities"`
	ClientStatus ClientStatus `json:"client_status"`
}

Presence (https://discord.com/developers/docs/topics/gateway#presence-update)

type PresenceUser

type PresenceUser struct {
	ID snowflake.ID `json:"id"`
}

type QueryValues added in v0.13.11

type QueryValues map[string]any

QueryValues holds key value pairs of query values

func (QueryValues) Encode added in v0.13.11

func (q QueryValues) Encode() string

Encode encodes the QueryValues into a string to append to the url

type ReactionCountDetails added in v0.16.9

type ReactionCountDetails struct {
	Burst  int `json:"burst"`
	Normal int `json:"normal"`
}

type ResolvedChannel

type ResolvedChannel struct {
	ID             snowflake.ID   `json:"id"`
	Name           string         `json:"name"`
	Type           ChannelType    `json:"type"`
	Permissions    Permissions    `json:"permissions"`
	ThreadMetadata ThreadMetadata `json:"thread_metadata"`
	ParentID       snowflake.ID   `json:"parent_id"`
}

type ResolvedData added in v0.16.10

type ResolvedData struct {
	Users       map[snowflake.ID]User            `json:"users,omitempty"`
	Members     map[snowflake.ID]ResolvedMember  `json:"members,omitempty"`
	Roles       map[snowflake.ID]Role            `json:"roles,omitempty"`
	Channels    map[snowflake.ID]ResolvedChannel `json:"channels,omitempty"`
	Attachments map[snowflake.ID]Attachment      `json:"attachments,omitempty"`
}

func (*ResolvedData) UnmarshalJSON added in v0.16.10

func (r *ResolvedData) UnmarshalJSON(data []byte) error

type ResolvedMember

type ResolvedMember struct {
	Member
	Permissions Permissions `json:"permissions,omitempty"`
}

type RestGuild added in v0.8.6

type RestGuild struct {
	Guild
	Stickers []Sticker `json:"stickers"`
	Roles    []Role    `json:"roles"`
	Emojis   []Emoji   `json:"emojis"`
}

type Role

type Role struct {
	ID          snowflake.ID `json:"id"`
	GuildID     snowflake.ID `json:"guild_id,omitempty"` // not present in the API but we need it
	Name        string       `json:"name"`
	Description *string      `json:"description,omitempty"`
	Color       int          `json:"color"`
	Hoist       bool         `json:"hoist"`
	Position    int          `json:"position"`
	Permissions Permissions  `json:"permissions"`
	Managed     bool         `json:"managed"`
	Icon        *string      `json:"icon"`
	Emoji       *string      `json:"unicode_emoji"`
	Mentionable bool         `json:"mentionable"`
	Tags        *RoleTag     `json:"tags,omitempty"`
	Flags       RoleFlags    `json:"flags"`
}

Role is a Guild Role object

func (Role) CreatedAt added in v0.13.17

func (r Role) CreatedAt() time.Time

func (Role) IconURL

func (r Role) IconURL(opts ...CDNOpt) *string

func (Role) Mention

func (r Role) Mention() string

func (Role) String

func (r Role) String() string

type RoleCreate

type RoleCreate struct {
	Name        string       `json:"name,omitempty"`
	Permissions *Permissions `json:"permissions,omitempty"`
	Color       int          `json:"color,omitempty"`
	Hoist       bool         `json:"hoist,omitempty"`
	Icon        *Icon        `json:"icon,omitempty"`
	Emoji       string       `json:"unicode_emoji,omitempty"`
	Mentionable bool         `json:"mentionable,omitempty"`
}

RoleCreate is the payload to create a Role

type RoleFlags added in v0.16.8

type RoleFlags int
const (
	RoleFlagInPrompt RoleFlags = 1 << iota
	RoleFlagsNone    RoleFlags = 0
)

type RolePermissionOverwrite

type RolePermissionOverwrite struct {
	RoleID snowflake.ID `json:"id"`
	Allow  Permissions  `json:"allow"`
	Deny   Permissions  `json:"deny"`
}

func (RolePermissionOverwrite) ID

func (o RolePermissionOverwrite) ID() snowflake.ID

func (RolePermissionOverwrite) MarshalJSON

func (o RolePermissionOverwrite) MarshalJSON() ([]byte, error)

func (RolePermissionOverwrite) Type

type RolePermissionOverwriteUpdate

type RolePermissionOverwriteUpdate struct {
	Allow *Permissions `json:"allow,omitempty"`
	Deny  *Permissions `json:"deny,omitempty"`
}

func (RolePermissionOverwriteUpdate) MarshalJSON

func (u RolePermissionOverwriteUpdate) MarshalJSON() ([]byte, error)

func (RolePermissionOverwriteUpdate) Type

type RolePositionUpdate

type RolePositionUpdate struct {
	ID       snowflake.ID `json:"id"`
	Position *int         `json:"position,omitempty"`
}

RolePositionUpdate is the payload to update a Role(s) position

type RoleSelectMenuComponent added in v0.14.0

type RoleSelectMenuComponent struct {
	CustomID      string                   `json:"custom_id"`
	Placeholder   string                   `json:"placeholder,omitempty"`
	DefaultValues []SelectMenuDefaultValue `json:"default_values,omitempty"`
	MinValues     *int                     `json:"min_values,omitempty"`
	MaxValues     int                      `json:"max_values,omitempty"`
	Disabled      bool                     `json:"disabled,omitempty"`
}

func NewRoleSelectMenu added in v0.14.0

func NewRoleSelectMenu(customID string, placeholder string) RoleSelectMenuComponent

NewRoleSelectMenu builds a new SelectMenuComponent from the provided values

func (RoleSelectMenuComponent) AddDefaultValue added in v0.16.10

func (c RoleSelectMenuComponent) AddDefaultValue(defaultValue snowflake.ID) RoleSelectMenuComponent

AddDefaultValue returns a new RoleSelectMenuComponent with the provided default value added

func (RoleSelectMenuComponent) AsDisabled added in v0.14.0

AsDisabled returns a new RoleSelectMenuComponent but disabled

func (RoleSelectMenuComponent) AsEnabled added in v0.14.0

AsEnabled returns a new RoleSelectMenuComponent but enabled

func (RoleSelectMenuComponent) ID added in v0.14.0

func (RoleSelectMenuComponent) MarshalJSON added in v0.14.0

func (c RoleSelectMenuComponent) MarshalJSON() ([]byte, error)

func (RoleSelectMenuComponent) RemoveDefaultValue added in v0.16.10

func (c RoleSelectMenuComponent) RemoveDefaultValue(index int) RoleSelectMenuComponent

RemoveDefaultValue returns a new RoleSelectMenuComponent with the provided default value at the index removed

func (RoleSelectMenuComponent) SetDefaultValues added in v0.16.10

func (c RoleSelectMenuComponent) SetDefaultValues(defaultValues ...snowflake.ID) RoleSelectMenuComponent

SetDefaultValues returns a new RoleSelectMenuComponent with the provided default values

func (RoleSelectMenuComponent) Type added in v0.14.0

func (RoleSelectMenuComponent) WithCustomID added in v0.14.0

func (c RoleSelectMenuComponent) WithCustomID(customID string) RoleSelectMenuComponent

WithCustomID returns a new RoleSelectMenuComponent with the provided customID

func (RoleSelectMenuComponent) WithDisabled added in v0.14.0

func (c RoleSelectMenuComponent) WithDisabled(disabled bool) RoleSelectMenuComponent

WithDisabled returns a new RoleSelectMenuComponent with the provided disabled

func (RoleSelectMenuComponent) WithMaxValues added in v0.14.0

func (c RoleSelectMenuComponent) WithMaxValues(maxValue int) RoleSelectMenuComponent

WithMaxValues returns a new RoleSelectMenuComponent with the provided maxValue

func (RoleSelectMenuComponent) WithMinValues added in v0.14.0

func (c RoleSelectMenuComponent) WithMinValues(minValue int) RoleSelectMenuComponent

WithMinValues returns a new RoleSelectMenuComponent with the provided minValue

func (RoleSelectMenuComponent) WithPlaceholder added in v0.14.0

func (c RoleSelectMenuComponent) WithPlaceholder(placeholder string) RoleSelectMenuComponent

WithPlaceholder returns a new RoleSelectMenuComponent with the provided placeholder

type RoleSelectMenuInteractionData added in v0.14.0

type RoleSelectMenuInteractionData struct {
	Resolved RoleSelectMenuResolved `json:"resolved"`
	Values   []snowflake.ID         `json:"values"`
	// contains filtered or unexported fields
}

func (RoleSelectMenuInteractionData) CustomID added in v0.14.0

func (RoleSelectMenuInteractionData) MarshalJSON added in v0.14.0

func (d RoleSelectMenuInteractionData) MarshalJSON() ([]byte, error)

func (RoleSelectMenuInteractionData) Roles added in v0.14.0

func (d RoleSelectMenuInteractionData) Roles() []Role

func (RoleSelectMenuInteractionData) Type added in v0.14.0

func (*RoleSelectMenuInteractionData) UnmarshalJSON added in v0.14.0

func (d *RoleSelectMenuInteractionData) UnmarshalJSON(data []byte) error

type RoleSelectMenuResolved added in v0.14.0

type RoleSelectMenuResolved struct {
	Roles map[snowflake.ID]Role `json:"roles"`
}

type RoleSubscriptionData added in v0.16.9

type RoleSubscriptionData struct {
	RoleSubscriptionListingID snowflake.ID `json:"role_subscription_listing_id"`
	TierName                  string       `json:"tier_name"`
	TotalMonthsSubscribed     int          `json:"total_months_subscribed"`
	IsRenewal                 bool         `json:"is_renewal"`
}

type RoleTag

type RoleTag struct {
	BotID                 *snowflake.ID `json:"bot_id,omitempty"`
	IntegrationID         *snowflake.ID `json:"integration_id,omitempty"`
	PremiumSubscriber     bool          `json:"premium_subscriber"`
	SubscriptionListingID *snowflake.ID `json:"subscription_listing_id,omitempty"`
	AvailableForPurchase  bool          `json:"available_for_purchase"`
	GuildConnections      bool          `json:"guild_connections"`
}

RoleTag are tags a Role has

type RoleUpdate

type RoleUpdate struct {
	Name        *string              `json:"name,omitempty"`
	Permissions *Permissions         `json:"permissions,omitempty"`
	Color       *int                 `json:"color,omitempty"`
	Hoist       *bool                `json:"hoist,omitempty"`
	Icon        *json.Nullable[Icon] `json:"icon,omitempty"`
	Emoji       *string              `json:"unicode_emoji,omitempty"`
	Mentionable *bool                `json:"mentionable,omitempty"`
}

RoleUpdate is the payload to update a Role

type SKU added in v0.16.11

type SKU struct {
	ID             snowflake.ID  `json:"id"`
	Type           SKUType       `json:"type"`
	ApplicationID  snowflake.ID  `json:"application_id"`
	Name           string        `json:"name"`
	Slug           string        `json:"slug"`
	DependentSkuID *snowflake.ID `json:"dependent_sku_id"`
	AccessType     int           `json:"access_type"`
	Features       []string      `json:"features"`
	ReleaseDate    *time.Time    `json:"release_date"`
	Premium        bool          `json:"premium"`
	Flags          SKUFlags      `json:"flags"`
	ShowAgeGate    bool          `json:"show_age_gate"`
}

type SKUFlags added in v0.16.11

type SKUFlags int
const (
	SKUFlagAvailable SKUFlags = 1 << (iota + 2)

	SKUFlagGuildSubscription
	SKUFlagUserSubscription
)

type SKUType added in v0.16.11

type SKUType int
const (
	SKUTypeDurable SKUType = iota + 2
	SKUTypeConsumable

	SKUTypeSubscription
	SKUTypeSubscriptionGroup
)

type ScheduledEventEntityType

type ScheduledEventEntityType int

ScheduledEventEntityType the type of the scheduled event (https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types)

const (
	ScheduledEventEntityTypeStageInstance ScheduledEventEntityType = iota + 1
	ScheduledEventEntityTypeVoice
	ScheduledEventEntityTypeExternal
)

type ScheduledEventPrivacyLevel

type ScheduledEventPrivacyLevel int

ScheduledEventPrivacyLevel the privacy level of the ScheduledEventPrivacyLevel (https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level)

const (
	ScheduledEventPrivacyLevelGuildOnly ScheduledEventPrivacyLevel
)

type ScheduledEventRecurrenceRule added in v0.18.10

type ScheduledEventRecurrenceRule struct {
	Start      time.Time                              `json:"start"`
	End        *time.Time                             `json:"end"`
	Frequency  ScheduledEventRecurrenceRuleFrequency  `json:"frequency"`
	Interval   int                                    `json:"interval"`
	ByWeekday  []ScheduledEventRecurrenceRuleWeekday  `json:"by_weekday"`
	ByNWeekday []ScheduledEventRecurrenceRuleNWeekday `json:"by_n_weekday"`
	ByMonth    []ScheduledEventRecurrenceRuleMonth    `json:"by_month"`
	ByMonthDay []int                                  `json:"by_month_day"`
	ByYearDay  []int                                  `json:"by_year_day"`
	Count      *int                                   `json:"count"`
}

type ScheduledEventRecurrenceRuleFrequency added in v0.18.10

type ScheduledEventRecurrenceRuleFrequency int
const (
	ScheduledEventRecurrenceRuleFrequencyYearly ScheduledEventRecurrenceRuleFrequency = iota
	ScheduledEventRecurrenceRuleFrequencyMonthly
	ScheduledEventRecurrenceRuleFrequencyWeekly
	ScheduledEventRecurrenceRuleFrequencyDaily
)

type ScheduledEventRecurrenceRuleMonth added in v0.18.10

type ScheduledEventRecurrenceRuleMonth int
const (
	ScheduledEventRecurrenceRuleMonthJanuary ScheduledEventRecurrenceRuleMonth = iota + 1
	ScheduledEventRecurrenceRuleMonthFebruary
	ScheduledEventRecurrenceRuleMonthMarch
	ScheduledEventRecurrenceRuleMonthApril
	ScheduledEventRecurrenceRuleMonthMay
	ScheduledEventRecurrenceRuleMonthJune
	ScheduledEventRecurrenceRuleMonthJuly
	ScheduledEventRecurrenceRuleMonthAugust
	ScheduledEventRecurrenceRuleMonthSeptember
	ScheduledEventRecurrenceRuleMonthOctober
	ScheduledEventRecurrenceRuleMonthNovember
	ScheduledEventRecurrenceRuleMonthDecember
)

type ScheduledEventRecurrenceRuleNWeekday added in v0.18.10

type ScheduledEventRecurrenceRuleNWeekday struct {
	N   int                                 `json:"n"`
	Day ScheduledEventRecurrenceRuleWeekday `json:"day"`
}

type ScheduledEventRecurrenceRuleWeekday added in v0.18.10

type ScheduledEventRecurrenceRuleWeekday int
const (
	ScheduledEventRecurrenceRuleWeekdayMonday ScheduledEventRecurrenceRuleWeekday = iota
	ScheduledEventRecurrenceRuleWeekdayTuesday
	ScheduledEventRecurrenceRuleWeekdayWednesday
	ScheduledEventRecurrenceRuleWeekdayThursday
	ScheduledEventRecurrenceRuleWeekdayFriday
	ScheduledEventRecurrenceRuleWeekdaySaturday
	ScheduledEventRecurrenceRuleWeekdaySunday
)

type ScheduledEventStatus

type ScheduledEventStatus int

ScheduledEventStatus the status of the scheduled event (https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status)

const (
	ScheduledEventStatusScheduled ScheduledEventStatus = iota + 1
	ScheduledEventStatusActive
	ScheduledEventStatusCompleted
	ScheduledEventStatusCancelled
)

type SelectMenuComponent

type SelectMenuComponent interface {
	InteractiveComponent
	// contains filtered or unexported methods
}

type SelectMenuDefaultValue added in v0.16.10

type SelectMenuDefaultValue struct {
	ID   snowflake.ID               `json:"id"`
	Type SelectMenuDefaultValueType `json:"type"`
}

func NewSelectMenuDefaultChannel added in v0.16.10

func NewSelectMenuDefaultChannel(id snowflake.ID) SelectMenuDefaultValue

NewSelectMenuDefaultChannel returns a new SelectMenuDefaultValue of type SelectMenuDefaultValueTypeChannel

func NewSelectMenuDefaultRole added in v0.16.10

func NewSelectMenuDefaultRole(id snowflake.ID) SelectMenuDefaultValue

NewSelectMenuDefaultRole returns a new SelectMenuDefaultValue of type SelectMenuDefaultValueTypeRole

func NewSelectMenuDefaultUser added in v0.16.10

func NewSelectMenuDefaultUser(id snowflake.ID) SelectMenuDefaultValue

NewSelectMenuDefaultUser returns a new SelectMenuDefaultValue of type SelectMenuDefaultValueTypeUser

type SelectMenuDefaultValueType added in v0.16.10

type SelectMenuDefaultValueType string
const (
	SelectMenuDefaultValueTypeUser    SelectMenuDefaultValueType = "user"
	SelectMenuDefaultValueTypeRole    SelectMenuDefaultValueType = "role"
	SelectMenuDefaultValueTypeChannel SelectMenuDefaultValueType = "channel"
)

type SelectMenuInteractionData

type SelectMenuInteractionData interface {
	ComponentInteractionData
	// contains filtered or unexported methods
}

type SessionStartLimit

type SessionStartLimit struct {
	Total          int `json:"total"`
	Remaining      int `json:"remaining"`
	ResetAfter     int `json:"reset_after"`
	MaxConcurrency int `json:"max_concurrency"`
}

type SlashCommand

type SlashCommand struct {
	Description              string
	DescriptionLocalizations map[Locale]string
	DescriptionLocalized     string
	Options                  []ApplicationCommandOption
	// contains filtered or unexported fields
}

func (SlashCommand) ApplicationID

func (c SlashCommand) ApplicationID() snowflake.ID

func (SlashCommand) Contexts added in v0.18.0

func (c SlashCommand) Contexts() []InteractionContextType

func (SlashCommand) CreatedAt added in v0.13.17

func (c SlashCommand) CreatedAt() time.Time

func (SlashCommand) DMPermission added in v0.10.2

func (c SlashCommand) DMPermission() bool

func (SlashCommand) DefaultMemberPermissions added in v0.10.2

func (c SlashCommand) DefaultMemberPermissions() Permissions

func (SlashCommand) GuildID

func (c SlashCommand) GuildID() *snowflake.ID

func (SlashCommand) ID

func (c SlashCommand) ID() snowflake.ID

func (SlashCommand) IntegrationTypes added in v0.18.0

func (c SlashCommand) IntegrationTypes() []ApplicationIntegrationType

func (SlashCommand) MarshalJSON

func (c SlashCommand) MarshalJSON() ([]byte, error)

func (SlashCommand) Mention added in v0.13.17

func (c SlashCommand) Mention() string

func (SlashCommand) NSFW added in v0.14.0

func (c SlashCommand) NSFW() bool

func (SlashCommand) Name

func (c SlashCommand) Name() string

func (SlashCommand) NameLocalizations

func (c SlashCommand) NameLocalizations() map[Locale]string

func (SlashCommand) NameLocalized

func (c SlashCommand) NameLocalized() string

func (SlashCommand) Type

func (*SlashCommand) UnmarshalJSON

func (c *SlashCommand) UnmarshalJSON(data []byte) error

func (SlashCommand) Version

func (c SlashCommand) Version() snowflake.ID

type SlashCommandCreate

type SlashCommandCreate struct {
	Name                     string                      `json:"name"`
	NameLocalizations        map[Locale]string           `json:"name_localizations,omitempty"`
	Description              string                      `json:"description"`
	DescriptionLocalizations map[Locale]string           `json:"description_localizations,omitempty"`
	Options                  []ApplicationCommandOption  `json:"options,omitempty"`
	DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"` // different behavior for 0 and null, optional
	// Deprecated: Use Contexts instead
	DMPermission     *bool                        `json:"dm_permission,omitempty"`
	IntegrationTypes []ApplicationIntegrationType `json:"integration_types,omitempty"`
	Contexts         []InteractionContextType     `json:"contexts,omitempty"`
	NSFW             *bool                        `json:"nsfw,omitempty"`
}

func (SlashCommandCreate) CommandName

func (c SlashCommandCreate) CommandName() string

func (SlashCommandCreate) MarshalJSON

func (c SlashCommandCreate) MarshalJSON() ([]byte, error)

func (SlashCommandCreate) Type

type SlashCommandInteractionData

type SlashCommandInteractionData struct {
	SubCommandName      *string
	SubCommandGroupName *string
	Resolved            ResolvedData
	Options             map[string]SlashCommandOption
	// contains filtered or unexported fields
}

func (SlashCommandInteractionData) All

func (SlashCommandInteractionData) Attachment added in v0.12.0

func (d SlashCommandInteractionData) Attachment(name string) Attachment

func (SlashCommandInteractionData) Bool

func (SlashCommandInteractionData) Channel

func (SlashCommandInteractionData) CommandID

func (d SlashCommandInteractionData) CommandID() snowflake.ID

func (SlashCommandInteractionData) CommandName

func (d SlashCommandInteractionData) CommandName() string

func (SlashCommandInteractionData) CommandPath added in v0.15.0

func (d SlashCommandInteractionData) CommandPath() string

func (SlashCommandInteractionData) Find

func (d SlashCommandInteractionData) Find(optionFindFunc func(option SlashCommandOption) bool) (SlashCommandOption, bool)

func (SlashCommandInteractionData) FindAll

func (d SlashCommandInteractionData) FindAll(optionFindFunc func(option SlashCommandOption) bool) []SlashCommandOption

func (SlashCommandInteractionData) Float

func (SlashCommandInteractionData) GetByType

func (SlashCommandInteractionData) GuildID added in v0.8.9

func (d SlashCommandInteractionData) GuildID() *snowflake.ID

func (SlashCommandInteractionData) Int

func (SlashCommandInteractionData) MarshalJSON

func (d SlashCommandInteractionData) MarshalJSON() ([]byte, error)

func (SlashCommandInteractionData) Member

func (SlashCommandInteractionData) OptAttachment added in v0.12.0

func (d SlashCommandInteractionData) OptAttachment(name string) (Attachment, bool)

func (SlashCommandInteractionData) OptBool

func (d SlashCommandInteractionData) OptBool(name string) (bool, bool)

func (SlashCommandInteractionData) OptChannel

func (SlashCommandInteractionData) OptFloat

func (d SlashCommandInteractionData) OptFloat(name string) (float64, bool)

func (SlashCommandInteractionData) OptInt

func (d SlashCommandInteractionData) OptInt(name string) (int, bool)

func (SlashCommandInteractionData) OptMember

func (SlashCommandInteractionData) OptRole

func (d SlashCommandInteractionData) OptRole(name string) (Role, bool)

func (SlashCommandInteractionData) OptSnowflake

func (d SlashCommandInteractionData) OptSnowflake(name string) (snowflake.ID, bool)

func (SlashCommandInteractionData) OptString

func (d SlashCommandInteractionData) OptString(name string) (string, bool)

func (SlashCommandInteractionData) OptUser

func (d SlashCommandInteractionData) OptUser(name string) (User, bool)

func (SlashCommandInteractionData) Option

func (SlashCommandInteractionData) Role

func (SlashCommandInteractionData) Snowflake

func (d SlashCommandInteractionData) Snowflake(name string) snowflake.ID

func (SlashCommandInteractionData) String

func (d SlashCommandInteractionData) String(name string) string

func (SlashCommandInteractionData) Type

func (*SlashCommandInteractionData) UnmarshalJSON

func (d *SlashCommandInteractionData) UnmarshalJSON(data []byte) error

func (SlashCommandInteractionData) User

type SlashCommandOption

type SlashCommandOption struct {
	Name  string                       `json:"name"`
	Type  ApplicationCommandOptionType `json:"type"`
	Value json.RawMessage              `json:"value"`
}

type SlashCommandOptionSubCommand

type SlashCommandOptionSubCommand struct {
	Name    string                       `json:"name"`
	Type    ApplicationCommandOptionType `json:"type"`
	Options []SlashCommandOption         `json:"options,omitempty"`
}

type SlashCommandOptionSubCommandGroup

type SlashCommandOptionSubCommandGroup struct {
	Name    string                         `json:"name"`
	Type    ApplicationCommandOptionType   `json:"type"`
	Options []SlashCommandOptionSubCommand `json:"options,omitempty"`
}

type SlashCommandUpdate

type SlashCommandUpdate struct {
	Name                     *string                     `json:"name,omitempty"`
	NameLocalizations        *map[Locale]string          `json:"name_localizations,omitempty"`
	Description              *string                     `json:"description,omitempty"`
	DescriptionLocalizations *map[Locale]string          `json:"description_localizations,omitempty"`
	Options                  *[]ApplicationCommandOption `json:"options,omitempty"`
	DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"`
	// Deprecated: Use Contexts instead
	DMPermission     *bool                         `json:"dm_permission,omitempty"`
	IntegrationTypes *[]ApplicationIntegrationType `json:"integration_types,omitempty"`
	Contexts         *[]InteractionContextType     `json:"contexts,omitempty"`
	NSFW             *bool                         `json:"nsfw,omitempty"`
}

func (SlashCommandUpdate) CommandName

func (c SlashCommandUpdate) CommandName() *string

func (SlashCommandUpdate) MarshalJSON

func (c SlashCommandUpdate) MarshalJSON() ([]byte, error)

func (SlashCommandUpdate) Type

type StageInstance

type StageInstance struct {
	ID                   snowflake.ID      `json:"id"`
	GuildID              snowflake.ID      `json:"guild_id"`
	ChannelID            snowflake.ID      `json:"channel_id"`
	Topic                string            `json:"topic"`
	PrivacyLevel         StagePrivacyLevel `json:"privacy_level"`
	DiscoverableDisabled bool              `json:"discoverable_disabled"`
}

func (StageInstance) CreatedAt added in v0.13.17

func (e StageInstance) CreatedAt() time.Time

type StageInstanceCreate

type StageInstanceCreate struct {
	ChannelID             snowflake.ID      `json:"channel_id"`
	Topic                 string            `json:"topic,omitempty"`
	PrivacyLevel          StagePrivacyLevel `json:"privacy_level,omitempty"`
	SendStartNotification bool              `json:"send_start_notification,omitempty"`
	GuildScheduledEventID snowflake.ID      `json:"guild_scheduled_event_id,omitempty"`
}

type StageInstanceUpdate

type StageInstanceUpdate struct {
	Topic        *string            `json:"topic,omitempty"`
	PrivacyLevel *StagePrivacyLevel `json:"privacy_level,omitempty"`
}

type StagePrivacyLevel

type StagePrivacyLevel int
const (
	StagePrivacyLevelPublic StagePrivacyLevel = iota + 1
	StagePrivacyLevelGuildOnly
)

type Sticker

type Sticker struct {
	ID          snowflake.ID      `json:"id"`
	PackID      *snowflake.ID     `json:"pack_id"`
	Name        string            `json:"name"`
	Description string            `json:"description"`
	Tags        string            `json:"tags"`
	Type        StickerType       `json:"type"`
	FormatType  StickerFormatType `json:"format_type"`
	Available   *bool             `json:"available"`
	GuildID     *snowflake.ID     `json:"guild_id,omitempty"`
	User        *User             `json:"user,omitempty"`
	SortValue   *int              `json:"sort_value"`
}

Sticker is a sticker sent with a Message

func (Sticker) CreatedAt added in v0.13.17

func (s Sticker) CreatedAt() time.Time

func (Sticker) URL

func (s Sticker) URL(opts ...CDNOpt) string

type StickerCreate

type StickerCreate struct {
	Name        string `json:"name"`
	Description string `json:"description,omitempty"`
	Tags        string `json:"tags"`
	File        *File  `json:"-"`
}

func (StickerCreate) ToBody

func (c StickerCreate) ToBody() (any, error)

ToBody returns the MessageCreate ready for body

type StickerFormatType

type StickerFormatType int

StickerFormatType is the Format type of Sticker

const (
	StickerFormatTypePNG StickerFormatType = iota + 1
	StickerFormatTypeAPNG
	StickerFormatTypeLottie
	StickerFormatTypeGIF
)

Constants for StickerFormatType

type StickerPack

type StickerPack struct {
	ID             snowflake.ID  `json:"id"`
	Stickers       []Sticker     `json:"stickers"`
	Name           string        `json:"name"`
	SkuID          snowflake.ID  `json:"sku_id"`
	CoverStickerID snowflake.ID  `json:"cover_sticker_id"`
	Description    string        `json:"description"`
	BannerAssetID  *snowflake.ID `json:"banner_asset_id"`
}

func (StickerPack) BannerURL

func (p StickerPack) BannerURL(opts ...CDNOpt) *string

type StickerPacks

type StickerPacks struct {
	StickerPacks []StickerPack `json:"sticker_packs"`
}

type StickerType

type StickerType int
const (
	StickerTypeStandard StickerType = iota + 1
	StickerTypeGuild
)

type StickerUpdate

type StickerUpdate struct {
	Name        *string `json:"name,omitempty"`
	Description *string `json:"description,omitempty"`
	Tags        *string `json:"tags,omitempty"`
}

type StringSelectMenuComponent added in v0.14.0

type StringSelectMenuComponent struct {
	CustomID    string                   `json:"custom_id"`
	Placeholder string                   `json:"placeholder,omitempty"`
	MinValues   *int                     `json:"min_values,omitempty"`
	MaxValues   int                      `json:"max_values,omitempty"`
	Disabled    bool                     `json:"disabled,omitempty"`
	Options     []StringSelectMenuOption `json:"options,omitempty"`
}

func NewStringSelectMenu added in v0.14.0

func NewStringSelectMenu(customID string, placeholder string, options ...StringSelectMenuOption) StringSelectMenuComponent

NewStringSelectMenu builds a new SelectMenuComponent from the provided values

func (StringSelectMenuComponent) AddOptions added in v0.14.0

AddOptions returns a new StringSelectMenuComponent with the provided StringSelectMenuOption(s) added

func (StringSelectMenuComponent) AsDisabled added in v0.14.0

AsDisabled returns a new StringSelectMenuComponent but disabled

func (StringSelectMenuComponent) AsEnabled added in v0.14.0

AsEnabled returns a new StringSelectMenuComponent but enabled

func (StringSelectMenuComponent) ID added in v0.14.0

func (StringSelectMenuComponent) MarshalJSON added in v0.14.0

func (c StringSelectMenuComponent) MarshalJSON() ([]byte, error)

func (StringSelectMenuComponent) RemoveOption added in v0.14.0

RemoveOption returns a new StringSelectMenuComponent with the provided StringSelectMenuOption at the index removed

func (StringSelectMenuComponent) SetOption added in v0.14.0

SetOption returns a new StringSelectMenuComponent with the StringSelectMenuOption which has the value replaced

func (StringSelectMenuComponent) SetOptions added in v0.14.0

SetOptions returns a new StringSelectMenuComponent with the provided StringSelectMenuOption(s)

func (StringSelectMenuComponent) Type added in v0.14.0

func (StringSelectMenuComponent) WithCustomID added in v0.14.0

WithCustomID returns a new StringSelectMenuComponent with the provided customID

func (StringSelectMenuComponent) WithDisabled added in v0.14.0

func (c StringSelectMenuComponent) WithDisabled(disabled bool) StringSelectMenuComponent

WithDisabled returns a new StringSelectMenuComponent with the provided disabled

func (StringSelectMenuComponent) WithMaxValues added in v0.14.0

func (c StringSelectMenuComponent) WithMaxValues(maxValue int) StringSelectMenuComponent

WithMaxValues returns a new StringSelectMenuComponent with the provided maxValue

func (StringSelectMenuComponent) WithMinValues added in v0.14.0

func (c StringSelectMenuComponent) WithMinValues(minValue int) StringSelectMenuComponent

WithMinValues returns a new StringSelectMenuComponent with the provided minValue

func (StringSelectMenuComponent) WithPlaceholder added in v0.14.0

func (c StringSelectMenuComponent) WithPlaceholder(placeholder string) StringSelectMenuComponent

WithPlaceholder returns a new StringSelectMenuComponent with the provided placeholder

type StringSelectMenuInteractionData added in v0.14.0

type StringSelectMenuInteractionData struct {
	Values []string
	// contains filtered or unexported fields
}

func (StringSelectMenuInteractionData) CustomID added in v0.14.0

func (StringSelectMenuInteractionData) MarshalJSON added in v0.14.0

func (d StringSelectMenuInteractionData) MarshalJSON() ([]byte, error)

func (StringSelectMenuInteractionData) Type added in v0.14.0

func (*StringSelectMenuInteractionData) UnmarshalJSON added in v0.14.0

func (d *StringSelectMenuInteractionData) UnmarshalJSON(data []byte) error

type StringSelectMenuOption added in v0.14.0

type StringSelectMenuOption struct {
	Label       string          `json:"label"`
	Value       string          `json:"value"`
	Description string          `json:"description,omitempty"`
	Emoji       *ComponentEmoji `json:"emoji,omitempty"`
	Default     bool            `json:"default,omitempty"`
}

StringSelectMenuOption represents an option in a StringSelectMenuComponent

func NewStringSelectMenuOption added in v0.14.0

func NewStringSelectMenuOption(label string, value string) StringSelectMenuOption

NewStringSelectMenuOption builds a new StringSelectMenuOption

func (StringSelectMenuOption) WithDefault added in v0.14.0

func (o StringSelectMenuOption) WithDefault(defaultOption bool) StringSelectMenuOption

WithDefault returns a new StringSelectMenuOption as default/non-default

func (StringSelectMenuOption) WithDescription added in v0.14.0

func (o StringSelectMenuOption) WithDescription(description string) StringSelectMenuOption

WithDescription returns a new StringSelectMenuOption with the provided description

func (StringSelectMenuOption) WithEmoji added in v0.14.0

WithEmoji returns a new StringSelectMenuOption with the provided Emoji

func (StringSelectMenuOption) WithLabel added in v0.14.0

WithLabel returns a new StringSelectMenuOption with the provided label

func (StringSelectMenuOption) WithValue added in v0.14.0

WithValue returns a new StringSelectMenuOption with the provided value

type Subscription added in v0.18.11

type Subscription struct {
	ID                 snowflake.ID       `json:"id"`
	UserID             snowflake.ID       `json:"user_id"`
	SkuIDs             []snowflake.ID     `json:"sku_ids"`
	EntitlementIDs     []snowflake.ID     `json:"entitlement_ids"`
	CurrentPeriodStart time.Time          `json:"current_period_start"`
	CurrentPeriodEnd   time.Time          `json:"current_period_end"`
	Status             SubscriptionStatus `json:"status"`
	CanceledAt         *time.Time         `json:"canceled_at"`
	Country            *string            `json:"country"`
}

type SubscriptionStatus added in v0.18.11

type SubscriptionStatus int
const (
	SubscriptionStatusActive SubscriptionStatus = iota
	SubscriptionStatusEnding
	SubscriptionStatusInactive
)

type SystemChannelFlags

type SystemChannelFlags int

SystemChannelFlags contains the settings for the Guild(s) system channel

const (
	SystemChannelFlagSuppressJoinNotifications SystemChannelFlags = 1 << iota
	SystemChannelFlagSuppressPremiumSubscriptions
	SystemChannelFlagSuppressGuildReminderNotifications
	SystemChannelFlagSuppressJoinNotificationReplies
	SystemChannelFlagSuppressRoleSubscriptionPurchaseNotifications
	SystemChannelFlagSuppressRoleSubscriptionPurchaseNotificationReplies
)

Constants for SystemChannelFlags

func (SystemChannelFlags) Add added in v0.13.21

Add allows you to add multiple bits together, producing a new bit

func (SystemChannelFlags) Has added in v0.13.21

Has will ensure that the bit includes all the bits entered

func (SystemChannelFlags) Missing added in v0.13.21

func (f SystemChannelFlags) Missing(bits ...SystemChannelFlags) bool

Missing will check whether the bit is missing any one of the bits

func (SystemChannelFlags) Remove added in v0.13.21

Remove allows you to subtract multiple bits from the first, producing a new bit

type Team

type Team struct {
	Icon    *string      `json:"icon"`
	ID      snowflake.ID `json:"id"`
	Members []TeamMember `json:"members"`
	Name    string       `json:"name"`
	OwnerID snowflake.ID `json:"owner_user_id"`
}

func (Team) CreatedAt added in v0.13.17

func (t Team) CreatedAt() time.Time

func (Team) IconURL

func (t Team) IconURL(opts ...CDNOpt) *string

type TeamMember

type TeamMember struct {
	MembershipState MembershipState `json:"membership_state"`
	TeamID          snowflake.ID    `json:"team_id"`
	User            User            `json:"user"`
	Role            TeamRole        `json:"role"`
}

type TeamRole added in v0.18.0

type TeamRole string
const (
	TeamRoleAdmin     TeamRole = "admin"
	TeamRoleDeveloper TeamRole = "developer"
	TeamRoleReadOnly  TeamRole = "read_only"
)

type TemplateGuild

type TemplateGuild struct {
	Name                        string                     `json:"name"`
	Description                 *string                    `json:"description"`
	Icon                        *string                    `json:"icon_hash"`
	VerificationLevel           VerificationLevel          `json:"verification_level"`
	DefaultMessageNotifications MessageNotificationsLevel  `json:"default_message_notifications"`
	ExplicitContentFilter       ExplicitContentFilterLevel `json:"explicit_content_filter"`
	SystemChannelID             *snowflake.ID              `json:"system_channel_id"`
	SystemChannelFlags          SystemChannelFlags         `json:"system_channel_flags"`
	PreferredLocale             string                     `json:"preferred_locale"`
	AfkChannelID                *snowflake.ID              `json:"afk_channel_id"`
	AfkTimeout                  int                        `json:"afk_timeout"`
	Roles                       []GuildCreateRole          `json:"roles"`
	Channels                    []GuildCreateChannel       `json:"channels"`
}

type TestEntitlementCreate added in v0.16.11

type TestEntitlementCreate struct {
	SkuID     snowflake.ID         `json:"sku_id"`
	OwnerID   snowflake.ID         `json:"owner_id"`
	OwnerType EntitlementOwnerType `json:"owner_type"`
}

type TextInputComponent

type TextInputComponent struct {
	CustomID    string         `json:"custom_id"`
	Style       TextInputStyle `json:"style"`
	Label       string         `json:"label"`
	MinLength   *int           `json:"min_length,omitempty"`
	MaxLength   int            `json:"max_length,omitempty"`
	Required    bool           `json:"required"`
	Placeholder string         `json:"placeholder,omitempty"`
	Value       string         `json:"value,omitempty"`
}

func NewParagraphTextInput

func NewParagraphTextInput(customID string, label string) TextInputComponent

func NewShortTextInput

func NewShortTextInput(customID string, label string) TextInputComponent

func NewTextInput

func NewTextInput(customID string, style TextInputStyle, label string) TextInputComponent

func (TextInputComponent) ID

func (c TextInputComponent) ID() string

func (TextInputComponent) MarshalJSON

func (c TextInputComponent) MarshalJSON() ([]byte, error)

func (TextInputComponent) Type

func (TextInputComponent) WithCustomID

func (c TextInputComponent) WithCustomID(customID string) TextInputComponent

WithCustomID returns a new SelectMenuComponent with the provided customID

func (TextInputComponent) WithMaxLength

func (c TextInputComponent) WithMaxLength(maxLength int) TextInputComponent

WithMaxLength returns a new TextInputComponent with the provided maxLength

func (TextInputComponent) WithMinLength

func (c TextInputComponent) WithMinLength(minLength int) TextInputComponent

WithMinLength returns a new TextInputComponent with the provided minLength

func (TextInputComponent) WithPlaceholder

func (c TextInputComponent) WithPlaceholder(placeholder string) TextInputComponent

WithPlaceholder returns a new TextInputComponent with the provided placeholder

func (TextInputComponent) WithRequired

func (c TextInputComponent) WithRequired(required bool) TextInputComponent

WithRequired returns a new TextInputComponent with the provided required

func (TextInputComponent) WithStyle

WithStyle returns a new SelectMenuComponent with the provided TextInputStyle

func (TextInputComponent) WithValue

func (c TextInputComponent) WithValue(value string) TextInputComponent

WithValue returns a new TextInputComponent with the provided value

type TextInputStyle

type TextInputStyle int
const (
	TextInputStyleShort TextInputStyle = iota + 1
	TextInputStyleParagraph
)

type ThreadChannelPost added in v0.16.8

type ThreadChannelPost struct {
	GuildThread
	Message Message `json:"message"`
}

type ThreadChannelPostCreate added in v0.16.8

type ThreadChannelPostCreate struct {
	Name                string              `json:"name"`
	AutoArchiveDuration AutoArchiveDuration `json:"auto_archive_duration,omitempty"`
	RateLimitPerUser    int                 `json:"rate_limit_per_user,omitempty"`
	Message             MessageCreate       `json:"message"`
	AppliedTags         []snowflake.ID      `json:"applied_tags,omitempty"`
}

func (ThreadChannelPostCreate) ToBody added in v0.16.8

func (c ThreadChannelPostCreate) ToBody() (any, error)

type ThreadCreate

type ThreadCreate interface {
	json.Marshaler
	Type() ChannelType
}

type ThreadCreateFromMessage added in v0.13.12

type ThreadCreateFromMessage struct {
	Name                string              `json:"name"`
	AutoArchiveDuration AutoArchiveDuration `json:"auto_archive_duration,omitempty"`
	RateLimitPerUser    int                 `json:"rate_limit_per_user,omitempty"`
}

type ThreadMember

type ThreadMember struct {
	ThreadID      snowflake.ID      `json:"id"`
	UserID        snowflake.ID      `json:"user_id"`
	JoinTimestamp time.Time         `json:"join_timestamp"`
	Flags         ThreadMemberFlags `json:"flags"`
	Member        *Member           `json:"member,omitempty"`
}

type ThreadMemberFlags

type ThreadMemberFlags int

type ThreadMetadata

type ThreadMetadata struct {
	Archived            bool                `json:"archived"`
	AutoArchiveDuration AutoArchiveDuration `json:"auto_archive_duration"`
	ArchiveTimestamp    time.Time           `json:"archive_timestamp"`
	Locked              bool                `json:"locked"`
	Invitable           bool                `json:"invitable"`
	CreateTimestamp     time.Time           `json:"create_timestamp"`
}

type Timestamp

type Timestamp struct {
	time.Time
	TimestampStyle TimestampStyle
}

Timestamp represents a timestamp markdown object https://discord.com/developers/docs/reference#message-formatting

func NewTimestamp

func NewTimestamp(style TimestampStyle, time time.Time) Timestamp

NewTimestamp returns a new Timestamp with the given TimestampStyle & time.Time

func ParseTimestamp

func ParseTimestamp(str string) (*Timestamp, error)

ParseTimestamp parses the first Timestamp found in the provided string

func ParseTimestamps

func ParseTimestamps(str string, n int) ([]Timestamp, error)

ParseTimestamps parses all Timestamp(s) found in the provided string

func (Timestamp) Format

func (t Timestamp) Format() string

Format returns the Timestamp as markdown

func (Timestamp) FormatWith

func (t Timestamp) FormatWith(style TimestampStyle) string

FormatWith returns the Timestamp as markdown with the given TimestampStyle

func (Timestamp) String

func (t Timestamp) String() string

String returns the Timestamp as markdown

type TimestampStyle

type TimestampStyle string

TimestampStyle is used to determine how to display the Timestamp for the User in the client

const (
	// TimestampStyleNone formats as default
	TimestampStyleNone TimestampStyle = ""

	// TimestampStyleShortTime formats time as 16:20
	TimestampStyleShortTime TimestampStyle = "t"

	// TimestampStyleLongTime formats time as 16:20:30
	TimestampStyleLongTime TimestampStyle = "T"

	// TimestampStyleShortDate formats time as 20/04/2021
	TimestampStyleShortDate TimestampStyle = "d"

	// TimestampStyleLongDate formats time as 20 April 2021
	TimestampStyleLongDate TimestampStyle = "D"

	// TimestampStyleShortDateTime formats time as 20 April 2021 16:20
	TimestampStyleShortDateTime TimestampStyle = "f"

	// TimestampStyleLongDateTime formats time as Tuesday, 20 April 2021 16:20
	TimestampStyleLongDateTime TimestampStyle = "F"

	// TimestampStyleRelative formats time as 2 months ago
	TimestampStyleRelative TimestampStyle = "R"
)

func (TimestampStyle) Format

func (f TimestampStyle) Format(seconds int64) string

Format returns the seconds formatted as markdown string

func (TimestampStyle) FormatTime

func (f TimestampStyle) FormatTime(time time.Time) string

FormatTime returns the time.Time formatted as markdown string

type TokenType

type TokenType string
const (
	TokenTypeBearer TokenType = "Bearer"
	TokenTypeBot    TokenType = "Bot"
)

func (TokenType) Apply

func (t TokenType) Apply(token string) string

func (TokenType) String

func (t TokenType) String() string

type TwitchIntegration

type TwitchIntegration struct {
	IntegrationID     snowflake.ID              `json:"id"`
	Name              string                    `json:"name"`
	Enabled           bool                      `json:"enabled"`
	Syncing           bool                      `json:"syncing"`
	RoleID            snowflake.ID              `json:"role_id"`
	EnableEmoticons   bool                      `json:"enable_emoticons"`
	ExpireBehavior    IntegrationExpireBehavior `json:"expire_behavior"`
	ExpireGracePeriod int                       `json:"expire_grace_period"`
	User              User                      `json:"user"`
	Account           IntegrationAccount        `json:"account"`
	SyncedAt          string                    `json:"synced_at"`
	SubscriberCount   int                       `json:"subscriber_account"`
	Revoked           bool                      `json:"revoked"`
}

func (TwitchIntegration) CreatedAt added in v0.13.17

func (i TwitchIntegration) CreatedAt() time.Time

func (TwitchIntegration) ID

func (i TwitchIntegration) ID() snowflake.ID

func (TwitchIntegration) MarshalJSON

func (i TwitchIntegration) MarshalJSON() ([]byte, error)

func (TwitchIntegration) Type

type UnavailableGuild

type UnavailableGuild struct {
	ID          snowflake.ID `json:"id"`
	Unavailable bool         `json:"unavailable"`
}

type UnmarshalApplicationCommand

type UnmarshalApplicationCommand struct {
	ApplicationCommand
}

func (*UnmarshalApplicationCommand) UnmarshalJSON

func (u *UnmarshalApplicationCommand) UnmarshalJSON(data []byte) error

type UnmarshalApplicationCommandOption

type UnmarshalApplicationCommandOption struct {
	ApplicationCommandOption
}

func (*UnmarshalApplicationCommandOption) UnmarshalJSON

func (u *UnmarshalApplicationCommandOption) UnmarshalJSON(data []byte) error

type UnmarshalApplicationCommandPermission

type UnmarshalApplicationCommandPermission struct {
	ApplicationCommandPermission
}

func (*UnmarshalApplicationCommandPermission) UnmarshalJSON

func (p *UnmarshalApplicationCommandPermission) UnmarshalJSON(data []byte) error

type UnmarshalAutocompleteOption

type UnmarshalAutocompleteOption struct {
	// contains filtered or unexported fields
}

func (*UnmarshalAutocompleteOption) UnmarshalJSON

func (o *UnmarshalAutocompleteOption) UnmarshalJSON(data []byte) error

type UnmarshalChannel

type UnmarshalChannel struct {
	Channel
}

func (*UnmarshalChannel) UnmarshalJSON

func (u *UnmarshalChannel) UnmarshalJSON(data []byte) error

type UnmarshalComponent

type UnmarshalComponent struct {
	Component
}

func (*UnmarshalComponent) UnmarshalJSON

func (u *UnmarshalComponent) UnmarshalJSON(data []byte) error

type UnmarshalIntegration

type UnmarshalIntegration struct {
	Integration
}

func (*UnmarshalIntegration) UnmarshalJSON

func (i *UnmarshalIntegration) UnmarshalJSON(data []byte) error

type UnmarshalPermissionOverwrite

type UnmarshalPermissionOverwrite struct {
	PermissionOverwrite
}

func (*UnmarshalPermissionOverwrite) UnmarshalJSON

func (o *UnmarshalPermissionOverwrite) UnmarshalJSON(data []byte) error

type UnmarshalSlashCommandOption

type UnmarshalSlashCommandOption struct {
	// contains filtered or unexported fields
}

func (*UnmarshalSlashCommandOption) UnmarshalJSON

func (o *UnmarshalSlashCommandOption) UnmarshalJSON(data []byte) error

type UnmarshalWebhook

type UnmarshalWebhook struct {
	Webhook
}

func (*UnmarshalWebhook) UnmarshalJSON

func (w *UnmarshalWebhook) UnmarshalJSON(data []byte) error

type User

type User struct {
	ID                   snowflake.ID          `json:"id"`
	Username             string                `json:"username"`
	Discriminator        string                `json:"discriminator"`
	GlobalName           *string               `json:"global_name"`
	Avatar               *string               `json:"avatar"`
	Banner               *string               `json:"banner"`
	AccentColor          *int                  `json:"accent_color"`
	Bot                  bool                  `json:"bot"`
	System               bool                  `json:"system"`
	PublicFlags          UserFlags             `json:"public_flags"`
	AvatarDecorationData *AvatarDecorationData `json:"avatar_decoration_data"`
}

User is a struct for interacting with discord's users

func (User) AvatarDecorationURL added in v0.16.8

func (u User) AvatarDecorationURL(opts ...CDNOpt) *string

AvatarDecorationURL returns the avatar decoration URL if set or nil

func (User) AvatarURL

func (u User) AvatarURL(opts ...CDNOpt) *string

AvatarURL returns the avatar URL of the user if set or nil

func (User) BannerURL

func (u User) BannerURL(opts ...CDNOpt) *string

BannerURL returns the banner URL if set or nil

func (User) CreatedAt added in v0.13.17

func (u User) CreatedAt() time.Time

func (User) DefaultAvatarURL

func (u User) DefaultAvatarURL(opts ...CDNOpt) string

DefaultAvatarURL calculates and returns the default avatar URL

func (User) EffectiveAvatarURL

func (u User) EffectiveAvatarURL(opts ...CDNOpt) string

EffectiveAvatarURL returns the avatar URL of the user if set, falling back to the default avatar URL

func (User) EffectiveName added in v0.16.6

func (u User) EffectiveName() string

EffectiveName returns the global (display) name of the user if set, falling back to the username

func (User) Mention

func (u User) Mention() string

Mention returns a mention of the user

func (User) String

func (u User) String() string

String returns a mention of the user

func (User) Tag

func (u User) Tag() string

Tag returns a formatted string of "Username#Discriminator", falling back to the username if discriminator is "0"

type UserCommand

type UserCommand struct {
	// contains filtered or unexported fields
}

func (UserCommand) ApplicationID

func (c UserCommand) ApplicationID() snowflake.ID

func (UserCommand) Contexts added in v0.18.0

func (c UserCommand) Contexts() []InteractionContextType

func (UserCommand) CreatedAt added in v0.13.17

func (c UserCommand) CreatedAt() time.Time

func (UserCommand) DMPermission added in v0.10.2

func (c UserCommand) DMPermission() bool

func (UserCommand) DefaultMemberPermissions added in v0.10.2

func (c UserCommand) DefaultMemberPermissions() Permissions

func (UserCommand) GuildID

func (c UserCommand) GuildID() *snowflake.ID

func (UserCommand) ID

func (c UserCommand) ID() snowflake.ID

func (UserCommand) IntegrationTypes added in v0.18.0

func (c UserCommand) IntegrationTypes() []ApplicationIntegrationType

func (UserCommand) MarshalJSON

func (c UserCommand) MarshalJSON() ([]byte, error)

func (UserCommand) NSFW added in v0.14.0

func (c UserCommand) NSFW() bool

func (UserCommand) Name

func (c UserCommand) Name() string

func (UserCommand) NameLocalizations

func (c UserCommand) NameLocalizations() map[Locale]string

func (UserCommand) NameLocalized

func (c UserCommand) NameLocalized() string

func (UserCommand) Type

func (*UserCommand) UnmarshalJSON

func (c *UserCommand) UnmarshalJSON(data []byte) error

func (UserCommand) Version

func (c UserCommand) Version() snowflake.ID

type UserCommandCreate

type UserCommandCreate struct {
	Name                     string                      `json:"name"`
	NameLocalizations        map[Locale]string           `json:"name_localizations,omitempty"`
	DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"`
	// Deprecated: Use Contexts instead
	DMPermission     *bool                        `json:"dm_permission,omitempty"`
	IntegrationTypes []ApplicationIntegrationType `json:"integration_types,omitempty"`
	Contexts         []InteractionContextType     `json:"contexts,omitempty"`
	NSFW             *bool                        `json:"nsfw,omitempty"`
}

func (UserCommandCreate) CommandName

func (c UserCommandCreate) CommandName() string

func (UserCommandCreate) MarshalJSON

func (c UserCommandCreate) MarshalJSON() ([]byte, error)

func (UserCommandCreate) Type

type UserCommandInteractionData

type UserCommandInteractionData struct {
	Resolved UserCommandResolved `json:"resolved"`
	// contains filtered or unexported fields
}

func (UserCommandInteractionData) CommandID

func (d UserCommandInteractionData) CommandID() snowflake.ID

func (UserCommandInteractionData) CommandName

func (d UserCommandInteractionData) CommandName() string

func (UserCommandInteractionData) GuildID added in v0.8.9

func (d UserCommandInteractionData) GuildID() *snowflake.ID

func (*UserCommandInteractionData) MarshalJSON

func (d *UserCommandInteractionData) MarshalJSON() ([]byte, error)

func (UserCommandInteractionData) TargetID

func (d UserCommandInteractionData) TargetID() snowflake.ID

func (UserCommandInteractionData) TargetMember

func (d UserCommandInteractionData) TargetMember() ResolvedMember

func (UserCommandInteractionData) TargetUser

func (d UserCommandInteractionData) TargetUser() User

func (UserCommandInteractionData) Type

func (*UserCommandInteractionData) UnmarshalJSON

func (d *UserCommandInteractionData) UnmarshalJSON(data []byte) error

type UserCommandResolved

type UserCommandResolved struct {
	Users   map[snowflake.ID]User           `json:"users,omitempty"`
	Members map[snowflake.ID]ResolvedMember `json:"members,omitempty"`
}

func (*UserCommandResolved) UnmarshalJSON added in v0.16.4

func (r *UserCommandResolved) UnmarshalJSON(data []byte) error

type UserCommandUpdate

type UserCommandUpdate struct {
	Name                     *string                     `json:"name,omitempty"`
	NameLocalizations        *map[Locale]string          `json:"name_localizations,omitempty"`
	DefaultMemberPermissions *json.Nullable[Permissions] `json:"default_member_permissions,omitempty"`
	// Deprecated: Use Contexts instead
	DMPermission     *bool                         `json:"dm_permission,omitempty"`
	IntegrationTypes *[]ApplicationIntegrationType `json:"integration_types,omitempty"`
	Contexts         *[]InteractionContextType     `json:"contexts,omitempty"`
	NSFW             *bool                         `json:"nsfw,omitempty"`
}

func (UserCommandUpdate) CommandName

func (c UserCommandUpdate) CommandName() *string

func (UserCommandUpdate) MarshalJSON

func (c UserCommandUpdate) MarshalJSON() ([]byte, error)

func (UserCommandUpdate) Type

type UserFlags

type UserFlags int

UserFlags defines certain flags/badges a user can have (https://discord.com/developers/docs/resources/user#user-object-user-flags)

const (
	UserFlagDiscordEmployee UserFlags = 1 << iota
	UserFlagPartneredServerOwner
	UserFlagHypeSquadEvents
	UserFlagBugHunterLevel1

	UserFlagHouseBravery
	UserFlagHouseBrilliance
	UserFlagHouseBalance
	UserFlagEarlySupporter
	UserFlagTeamUser

	UserFlagBugHunterLevel2

	UserFlagVerifiedBot
	UserFlagEarlyVerifiedBotDeveloper
	UserFlagDiscordCertifiedModerator
	UserFlagBotHTTPInteractions

	UserFlagActiveDeveloper
	UserFlagsNone UserFlags = 0
)

All UserFlags

func (UserFlags) Add added in v0.13.21

func (f UserFlags) Add(bits ...UserFlags) UserFlags

Add allows you to add multiple bits together, producing a new bit

func (UserFlags) Has added in v0.13.21

func (f UserFlags) Has(bits ...UserFlags) bool

Has will ensure that the bit includes all the bits entered

func (UserFlags) Missing added in v0.13.21

func (f UserFlags) Missing(bits ...UserFlags) bool

Missing will check whether the bit is missing any one of the bits

func (UserFlags) Remove added in v0.13.21

func (f UserFlags) Remove(bits ...UserFlags) UserFlags

Remove allows you to subtract multiple bits from the first, producing a new bit

type UserSelectMenuComponent added in v0.14.0

type UserSelectMenuComponent struct {
	CustomID      string                   `json:"custom_id"`
	Placeholder   string                   `json:"placeholder,omitempty"`
	DefaultValues []SelectMenuDefaultValue `json:"default_values,omitempty"`
	MinValues     *int                     `json:"min_values,omitempty"`
	MaxValues     int                      `json:"max_values,omitempty"`
	Disabled      bool                     `json:"disabled,omitempty"`
}

func NewUserSelectMenu added in v0.14.0

func NewUserSelectMenu(customID string, placeholder string) UserSelectMenuComponent

NewUserSelectMenu builds a new SelectMenuComponent from the provided values

func (UserSelectMenuComponent) AddDefaultValue added in v0.16.10

func (c UserSelectMenuComponent) AddDefaultValue(defaultValue snowflake.ID) UserSelectMenuComponent

AddDefaultValue returns a new UserSelectMenuComponent with the provided default value added

func (UserSelectMenuComponent) AsDisabled added in v0.14.0

AsDisabled returns a new UserSelectMenuComponent but disabled

func (UserSelectMenuComponent) AsEnabled added in v0.14.0

AsEnabled returns a new UserSelectMenuComponent but enabled

func (UserSelectMenuComponent) ID added in v0.14.0

func (UserSelectMenuComponent) MarshalJSON added in v0.14.0

func (c UserSelectMenuComponent) MarshalJSON() ([]byte, error)

func (UserSelectMenuComponent) RemoveDefaultValue added in v0.16.10

func (c UserSelectMenuComponent) RemoveDefaultValue(index int) UserSelectMenuComponent

RemoveDefaultValue returns a new UserSelectMenuComponent with the provided default value at the index removed

func (UserSelectMenuComponent) SetDefaultValues added in v0.16.10

func (c UserSelectMenuComponent) SetDefaultValues(defaultValues ...snowflake.ID) UserSelectMenuComponent

SetDefaultValues returns a new UserSelectMenuComponent with the provided default values

func (UserSelectMenuComponent) Type added in v0.14.0

func (UserSelectMenuComponent) WithCustomID added in v0.14.0

func (c UserSelectMenuComponent) WithCustomID(customID string) UserSelectMenuComponent

WithCustomID returns a new UserSelectMenuComponent with the provided customID

func (UserSelectMenuComponent) WithDisabled added in v0.14.0

func (c UserSelectMenuComponent) WithDisabled(disabled bool) UserSelectMenuComponent

WithDisabled returns a new UserSelectMenuComponent with the provided disabled

func (UserSelectMenuComponent) WithMaxValues added in v0.14.0

func (c UserSelectMenuComponent) WithMaxValues(maxValue int) UserSelectMenuComponent

WithMaxValues returns a new UserSelectMenuComponent with the provided maxValue

func (UserSelectMenuComponent) WithMinValues added in v0.14.0

func (c UserSelectMenuComponent) WithMinValues(minValue int) UserSelectMenuComponent

WithMinValues returns a new UserSelectMenuComponent with the provided minValue

func (UserSelectMenuComponent) WithPlaceholder added in v0.14.0

func (c UserSelectMenuComponent) WithPlaceholder(placeholder string) UserSelectMenuComponent

WithPlaceholder returns a new UserSelectMenuComponent with the provided placeholder

type UserSelectMenuInteractionData added in v0.14.0

type UserSelectMenuInteractionData struct {
	Resolved UserSelectMenuResolved `json:"resolved"`
	Values   []snowflake.ID         `json:"values"`
	// contains filtered or unexported fields
}

func (UserSelectMenuInteractionData) CustomID added in v0.14.0

func (UserSelectMenuInteractionData) MarshalJSON added in v0.14.0

func (d UserSelectMenuInteractionData) MarshalJSON() ([]byte, error)

func (UserSelectMenuInteractionData) Members added in v0.14.0

func (UserSelectMenuInteractionData) Type added in v0.14.0

func (*UserSelectMenuInteractionData) UnmarshalJSON added in v0.14.0

func (d *UserSelectMenuInteractionData) UnmarshalJSON(data []byte) error

func (UserSelectMenuInteractionData) Users added in v0.14.0

func (d UserSelectMenuInteractionData) Users() []User

type UserSelectMenuResolved added in v0.14.0

type UserSelectMenuResolved struct {
	Users   map[snowflake.ID]User           `json:"users"`
	Members map[snowflake.ID]ResolvedMember `json:"members"`
}

type UserUpdate added in v0.16.12

type UserUpdate struct {
	Username string               `json:"username,omitempty"`
	Avatar   *json.Nullable[Icon] `json:"avatar,omitempty"`
	Banner   *json.Nullable[Icon] `json:"banner,omitempty"`
}

UserUpdate is the payload used to update the OAuth2User

type UserVoiceStateUpdate

type UserVoiceStateUpdate struct {
	ChannelID *snowflake.ID `json:"channel_id,omitempty"`
	Suppress  *bool         `json:"suppress,omitempty"`
}

type VerificationLevel

type VerificationLevel int

The VerificationLevel of a Guild that members must be to send messages

const (
	VerificationLevelNone VerificationLevel = iota
	VerificationLevelLow
	VerificationLevelMedium
	VerificationLevelHigh
	VerificationLevelVeryHigh
)

Constants for VerificationLevel

type VideoQualityMode

type VideoQualityMode int

VideoQualityMode https://com/developers/docs/resources/channel#channel-object-video-quality-modes

const (
	VideoQualityModeAuto VideoQualityMode = iota + 1
	VideoQualityModeFull
)

type VisibilityType

type VisibilityType int
const (
	VisibilityTypeNone VisibilityType = iota
	VisibilityTypeEveryone
)

type VoiceChannelEffectAnimationType added in v0.18.11

type VoiceChannelEffectAnimationType int
const (
	VoiceChannelEffectAnimationTypePremium VoiceChannelEffectAnimationType = iota
	VoiceChannelEffectAnimationTypeBasic
)

type VoiceRegion

type VoiceRegion struct {
	ID         string `json:"id"`
	Name       string `json:"name"`
	Vip        bool   `json:"vip"`
	Optimal    bool   `json:"optimal"`
	Deprecated bool   `json:"deprecated"`
	Custom     bool   `json:"custom"`
}

VoiceRegion (https://discord.com/developers/docs/resources/voice#voice-region-object)

type VoiceState

type VoiceState struct {
	GuildID                 snowflake.ID  `json:"guild_id,omitempty"`
	ChannelID               *snowflake.ID `json:"channel_id"`
	UserID                  snowflake.ID  `json:"user_id"`
	SessionID               string        `json:"session_id"`
	GuildDeaf               bool          `json:"deaf"`
	GuildMute               bool          `json:"mute"`
	SelfDeaf                bool          `json:"self_deaf"`
	SelfMute                bool          `json:"self_mute"`
	SelfStream              bool          `json:"self_stream"`
	SelfVideo               bool          `json:"self_video"`
	Suppress                bool          `json:"suppress"`
	RequestToSpeakTimestamp *time.Time    `json:"request_to_speak_timestamp"`
}

VoiceState from Discord

type Webhook

type Webhook interface {
	json.Marshaler
	Type() WebhookType
	ID() snowflake.ID
	Name() string
	Avatar() *string
	AvatarURL(opts ...CDNOpt) *string
	CreatedAt() time.Time
	// contains filtered or unexported methods
}

Webhook (https://discord.com/developers/docs/resources/webhook) is a way to post messages to Discord using the Discord API which do not require bot authentication or use.

type WebhookCreate

type WebhookCreate struct {
	Name   string `json:"name"`
	Avatar *Icon  `json:"avatar,omitempty"`
}

WebhookCreate is used to create a Webhook

type WebhookMessageCreate

type WebhookMessageCreate struct {
	Content         string               `json:"content,omitempty"`
	Username        string               `json:"username,omitempty"`
	AvatarURL       string               `json:"avatar_url,omitempty"`
	TTS             bool                 `json:"tts,omitempty"`
	Embeds          []Embed              `json:"embeds,omitempty"`
	Components      []ContainerComponent `json:"components,omitempty"`
	Attachments     []AttachmentCreate   `json:"attachments,omitempty"`
	Files           []*File              `json:"-"`
	AllowedMentions *AllowedMentions     `json:"allowed_mentions,omitempty"`
	Flags           MessageFlags         `json:"flags,omitempty"`
	ThreadName      string               `json:"thread_name,omitempty"`
	AppliedTags     []snowflake.ID       `json:"applied_tags,omitempty"`
	Poll            *PollCreate          `json:"poll,omitempty"`
}

func (WebhookMessageCreate) ToBody

func (m WebhookMessageCreate) ToBody() (any, error)

ToBody returns the MessageCreate ready for body

type WebhookMessageCreateBuilder

type WebhookMessageCreateBuilder struct {
	WebhookMessageCreate
}

WebhookMessageCreateBuilder helper to build Message(s) easier

func NewWebhookMessageCreateBuilder

func NewWebhookMessageCreateBuilder() *WebhookMessageCreateBuilder

NewWebhookMessageCreateBuilder creates a new WebhookMessageCreateBuilder to be built later

func (*WebhookMessageCreateBuilder) AddActionRow

AddActionRow adds a new discord.ActionRowComponent with the provided discord.InteractiveComponent(s) to the Message

func (*WebhookMessageCreateBuilder) AddContainerComponents

func (b *WebhookMessageCreateBuilder) AddContainerComponents(containers ...ContainerComponent) *WebhookMessageCreateBuilder

AddContainerComponents adds the discord.ContainerComponent(s) to the Message

func (*WebhookMessageCreateBuilder) AddEmbeds

AddEmbeds adds multiple embeds to the Message

func (*WebhookMessageCreateBuilder) AddFile

func (b *WebhookMessageCreateBuilder) AddFile(name string, description string, reader io.Reader, flags ...FileFlags) *WebhookMessageCreateBuilder

AddFile adds a discord.File to the discord.MessageCreate

func (*WebhookMessageCreateBuilder) AddFiles

AddFiles adds the discord.File(s) to the discord.MessageCreate

func (*WebhookMessageCreateBuilder) AddFlags added in v0.12.1

AddFlags adds the MessageFlags of the Message

func (*WebhookMessageCreateBuilder) Build

Build builds the WebhookMessageCreateBuilder to a MessageCreate struct

func (*WebhookMessageCreateBuilder) ClearAllowedMentions

func (b *WebhookMessageCreateBuilder) ClearAllowedMentions() *WebhookMessageCreateBuilder

ClearAllowedMentions clears the allowed mentions of the Message

func (*WebhookMessageCreateBuilder) ClearContainerComponents

func (b *WebhookMessageCreateBuilder) ClearContainerComponents() *WebhookMessageCreateBuilder

ClearContainerComponents removes all the discord.ContainerComponent(s) of the Message

func (*WebhookMessageCreateBuilder) ClearEmbeds

ClearEmbeds removes all the embeds from the Message

func (*WebhookMessageCreateBuilder) ClearFiles

ClearFiles removes all discord.File(s) of this discord.MessageCreate

func (*WebhookMessageCreateBuilder) ClearFlags added in v0.12.1

ClearFlags clears the discord.MessageFlags of the Message

func (*WebhookMessageCreateBuilder) ClearPoll added in v0.18.3

ClearPoll clears the Poll of the webhook Message

func (*WebhookMessageCreateBuilder) RemoveContainerComponent

func (b *WebhookMessageCreateBuilder) RemoveContainerComponent(i int) *WebhookMessageCreateBuilder

RemoveContainerComponent removes a discord.ActionRowComponent from the Message

func (*WebhookMessageCreateBuilder) RemoveEmbed

RemoveEmbed removes an embed from the Message

func (*WebhookMessageCreateBuilder) RemoveFile

RemoveFile removes the discord.File at this index

func (*WebhookMessageCreateBuilder) RemoveFlags added in v0.12.1

RemoveFlags removes the MessageFlags of the Message

func (*WebhookMessageCreateBuilder) SetAllowedMentions

func (b *WebhookMessageCreateBuilder) SetAllowedMentions(allowedMentions *AllowedMentions) *WebhookMessageCreateBuilder

SetAllowedMentions sets the AllowedMentions of the Message

func (*WebhookMessageCreateBuilder) SetAvatarURL

func (*WebhookMessageCreateBuilder) SetContainerComponent

func (b *WebhookMessageCreateBuilder) SetContainerComponent(i int, container ContainerComponent) *WebhookMessageCreateBuilder

SetContainerComponent sets the provided discord.InteractiveComponent at the index of discord.InteractiveComponent(s)

func (*WebhookMessageCreateBuilder) SetContainerComponents

func (b *WebhookMessageCreateBuilder) SetContainerComponents(containerComponents ...ContainerComponent) *WebhookMessageCreateBuilder

SetContainerComponents sets the discord.ContainerComponent(s) of the Message

func (*WebhookMessageCreateBuilder) SetContent

SetContent sets content of the Message

func (*WebhookMessageCreateBuilder) SetContentf

func (b *WebhookMessageCreateBuilder) SetContentf(content string, a ...any) *WebhookMessageCreateBuilder

SetContentf sets content of the Message

func (*WebhookMessageCreateBuilder) SetEmbed

SetEmbed sets the provided Embed at the index of the Message

func (*WebhookMessageCreateBuilder) SetEmbeds

SetEmbeds sets the Embed(s) of the Message

func (*WebhookMessageCreateBuilder) SetFile

SetFile sets the discord.File at the index for this discord.MessageCreate

func (*WebhookMessageCreateBuilder) SetFiles

SetFiles sets the File(s) for this MessageCreate

func (*WebhookMessageCreateBuilder) SetFlags added in v0.12.1

SetFlags sets the message flags of the Message

func (*WebhookMessageCreateBuilder) SetPoll added in v0.18.3

SetPoll sets the Poll of the webhook Message

func (*WebhookMessageCreateBuilder) SetSuppressEmbeds added in v0.12.1

func (b *WebhookMessageCreateBuilder) SetSuppressEmbeds(suppressEmbeds bool) *WebhookMessageCreateBuilder

SetSuppressEmbeds adds/removes discord.MessageFlagSuppressEmbeds to the Message flags

func (*WebhookMessageCreateBuilder) SetTTS

SetTTS sets the text to speech of the Message

func (*WebhookMessageCreateBuilder) SetThreadName added in v0.12.1

func (b *WebhookMessageCreateBuilder) SetThreadName(threadName string) *WebhookMessageCreateBuilder

SetThreadName sets the thread name the new webhook message should create.

func (*WebhookMessageCreateBuilder) SetUsername

type WebhookMessageUpdate

type WebhookMessageUpdate struct {
	Content         *string               `json:"content,omitempty"`
	Embeds          *[]Embed              `json:"embeds,omitempty"`
	Components      *[]ContainerComponent `json:"components,omitempty"`
	Attachments     *[]AttachmentUpdate   `json:"attachments,omitempty"`
	Files           []*File               `json:"-"`
	AllowedMentions *AllowedMentions      `json:"allowed_mentions,omitempty"`
	Poll            *PollCreate           `json:"poll,omitempty"`
}

WebhookMessageUpdate is used to edit a Message

func (WebhookMessageUpdate) ToBody

func (m WebhookMessageUpdate) ToBody() (any, error)

ToBody returns the WebhookMessageUpdate ready for body

type WebhookMessageUpdateBuilder

type WebhookMessageUpdateBuilder struct {
	WebhookMessageUpdate
}

WebhookMessageUpdateBuilder helper to build MessageUpdate easier

func NewWebhookMessageUpdateBuilder

func NewWebhookMessageUpdateBuilder() *WebhookMessageUpdateBuilder

NewWebhookMessageUpdateBuilder creates a new WebhookMessageUpdateBuilder to be built later

func (*WebhookMessageUpdateBuilder) AddActionRow

AddActionRow adds a new discord.ActionRowComponent with the provided discord.InteractiveComponent(s) to the Message

func (*WebhookMessageUpdateBuilder) AddContainerComponents

func (b *WebhookMessageUpdateBuilder) AddContainerComponents(containers ...ContainerComponent) *WebhookMessageUpdateBuilder

AddContainerComponents adds the discord.ContainerComponent(s) to the Message

func (*WebhookMessageUpdateBuilder) AddEmbeds

AddEmbeds adds multiple embeds to the Message

func (*WebhookMessageUpdateBuilder) AddFile

func (b *WebhookMessageUpdateBuilder) AddFile(name string, description string, reader io.Reader, flags ...FileFlags) *WebhookMessageUpdateBuilder

AddFile adds a new discord.File to the discord.MessageUpdate

func (*WebhookMessageUpdateBuilder) AddFiles

AddFiles adds the new discord.File(s) to the discord.MessageUpdate

func (*WebhookMessageUpdateBuilder) Build

Build builds the WebhookMessageUpdateBuilder to a MessageUpdate struct

func (*WebhookMessageUpdateBuilder) ClearAllowedMentions

func (b *WebhookMessageUpdateBuilder) ClearAllowedMentions() *WebhookMessageUpdateBuilder

ClearAllowedMentions clears the allowed mentions of the Message

func (*WebhookMessageUpdateBuilder) ClearContainerComponents

func (b *WebhookMessageUpdateBuilder) ClearContainerComponents() *WebhookMessageUpdateBuilder

ClearContainerComponents removes all the discord.ContainerComponent(s) of the Message

func (*WebhookMessageUpdateBuilder) ClearContent

ClearContent removes content of the Message

func (*WebhookMessageUpdateBuilder) ClearEmbeds

ClearEmbeds removes all the embeds from the Message

func (*WebhookMessageUpdateBuilder) ClearFiles

ClearFiles removes all new discord.File(s) of this discord.MessageUpdate

func (*WebhookMessageUpdateBuilder) ClearPoll added in v0.18.12

ClearPoll clears the Poll of the webhook Message

func (*WebhookMessageUpdateBuilder) RemoveContainerComponent

func (b *WebhookMessageUpdateBuilder) RemoveContainerComponent(i int) *WebhookMessageUpdateBuilder

RemoveContainerComponent removes a discord.ContainerComponent from the Message

func (*WebhookMessageUpdateBuilder) RemoveEmbed

RemoveEmbed removes an embed from the Message

func (*WebhookMessageUpdateBuilder) RemoveFile

RemoveFile removes the new discord.File at this index

func (*WebhookMessageUpdateBuilder) RetainAttachments

func (b *WebhookMessageUpdateBuilder) RetainAttachments(attachments ...Attachment) *WebhookMessageUpdateBuilder

RetainAttachments removes all Attachment(s) from this Message except the ones provided

func (*WebhookMessageUpdateBuilder) RetainAttachmentsByID

func (b *WebhookMessageUpdateBuilder) RetainAttachmentsByID(attachmentIDs ...snowflake.ID) *WebhookMessageUpdateBuilder

RetainAttachmentsByID removes all Attachment(s) from this Message except the ones provided

func (*WebhookMessageUpdateBuilder) SetAllowedMentions

func (b *WebhookMessageUpdateBuilder) SetAllowedMentions(allowedMentions *AllowedMentions) *WebhookMessageUpdateBuilder

SetAllowedMentions sets the AllowedMentions of the Message

func (*WebhookMessageUpdateBuilder) SetContainerComponent

func (b *WebhookMessageUpdateBuilder) SetContainerComponent(i int, container ContainerComponent) *WebhookMessageUpdateBuilder

SetContainerComponent sets the provided discord.InteractiveComponent at the index of discord.InteractiveComponent(s)

func (*WebhookMessageUpdateBuilder) SetContainerComponents

func (b *WebhookMessageUpdateBuilder) SetContainerComponents(containerComponents ...ContainerComponent) *WebhookMessageUpdateBuilder

SetContainerComponents sets the discord.ContainerComponent(s) of the Message

func (*WebhookMessageUpdateBuilder) SetContent

SetContent sets content of the Message

func (*WebhookMessageUpdateBuilder) SetContentf

func (b *WebhookMessageUpdateBuilder) SetContentf(content string, a ...any) *WebhookMessageUpdateBuilder

SetContentf sets content of the Message

func (*WebhookMessageUpdateBuilder) SetEmbed

SetEmbed sets the provided Embed at the index of the Message

func (*WebhookMessageUpdateBuilder) SetEmbeds

SetEmbeds sets the Embed(s) of the Message

func (*WebhookMessageUpdateBuilder) SetFile

SetFile sets the new discord.File at the index for this discord.MessageUpdate

func (*WebhookMessageUpdateBuilder) SetFiles

SetFiles sets the new discord.File(s) for this discord.MessageUpdate

func (*WebhookMessageUpdateBuilder) SetPoll added in v0.18.12

SetPoll sets the Poll of the webhook Message

type WebhookSourceChannel

type WebhookSourceChannel struct {
	ID   snowflake.ID `json:"id"`
	Name string       `json:"name"`
}

type WebhookSourceGuild

type WebhookSourceGuild struct {
	ID   snowflake.ID         `json:"id"`
	Name string               `json:"name"`
	Icon *json.Nullable[Icon] `json:"icon"`
}

type WebhookType

type WebhookType int

WebhookType (https: //discord.com/developers/docs/resources/webhook#webhook-object-webhook-types)

const (
	WebhookTypeIncoming WebhookType = iota + 1
	WebhookTypeChannelFollower
	WebhookTypeApplication
)

All WebhookType(s)

type WebhookUpdate

type WebhookUpdate struct {
	Name      *string              `json:"name,omitempty"`
	Avatar    *json.Nullable[Icon] `json:"avatar,omitempty"`
	ChannelID *snowflake.ID        `json:"channel_id,omitempty"`
}

WebhookUpdate is used to update a Webhook

type WebhookUpdateWithToken

type WebhookUpdateWithToken struct {
	Name   *string              `json:"name,omitempty"`
	Avatar *json.Nullable[Icon] `json:"avatar,omitempty"`
}

WebhookUpdateWithToken is used to update a Webhook with the token

type YouTubeIntegration

type YouTubeIntegration struct {
	IntegrationID     snowflake.ID              `json:"id"`
	Name              string                    `json:"name"`
	Enabled           bool                      `json:"enabled"`
	Syncing           bool                      `json:"syncing"`
	RoleID            snowflake.ID              `json:"role_id"`
	ExpireBehavior    IntegrationExpireBehavior `json:"expire_behavior"`
	ExpireGracePeriod int                       `json:"expire_grace_period"`
	User              User                      `json:"user"`
	Account           IntegrationAccount        `json:"account"`
	SyncedAt          string                    `json:"synced_at"`
	SubscriberCount   int                       `json:"subscriber_account"`
	Revoked           bool                      `json:"revoked"`
}

func (YouTubeIntegration) CreatedAt added in v0.13.17

func (i YouTubeIntegration) CreatedAt() time.Time

func (YouTubeIntegration) ID

func (i YouTubeIntegration) ID() snowflake.ID

func (YouTubeIntegration) MarshalJSON

func (i YouTubeIntegration) MarshalJSON() ([]byte, error)

func (YouTubeIntegration) Type

Jump to

Keyboard shortcuts

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