discord

package
v0.101.0 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2023 License: Apache-2.0 Imports: 16 Imported by: 1

Documentation

Index

Constants

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

	ApplicationFlagGatewayPresence
	ApplicationFlagGatewayPresenceLimited
	ApplicationFlagGatewayGuildMembers
	ApplicationFlagGatewayGuildMemberLimited
	ApplicationFlagVerificationPendingGuildLimit
	ApplicationFlagEmbedded
	ApplicationFlagGatewayMessageContent
	ApplicationFlagGatewayMessageContentLimited

	ApplicationFlagApplicationCommandBadge
)
View Source
const (
	MembershipStateInvited = iota + 1
	MembershipStateAccepted
)
View Source
const (
	ApplicationCommandTypeSlash = iota + 1
	ApplicationCommandTypeUser
	ApplicationCommandTypeMessage
)
View Source
const (
	ApplicationCommandPermissionTypeRole = iota + 1
	ApplicationCommandPermissionTypeUser
	ApplicationCommandPermissionTypeChannel
)

types of ApplicationCommandPermissionType

View Source
const (
	VideoQualityModeAuto = iota + 1
	VideoQualityModeFull
)
View Source
const (
	ComponentTypeActionRow = iota + 1
	ComponentTypeButton
	ComponentTypeStringSelectMenu
	ComponentTypeTextInput
	ComponentTypeUserSelectMenu
	ComponentTypeRoleSelectMenu
	ComponentTypeMentionableSelectMenu
	ComponentTypeChannelSelectMenu
)

Supported ComponentType(s)

View Source
const (
	ButtonStylePrimary = iota + 1
	ButtonStyleSecondary
	ButtonStyleSuccess
	ButtonStyleDanger
	ButtonStyleLink
)

Supported ButtonStyle(s)

View Source
const (
	TextInputStyleShort = iota + 1
	TextInputStyleParagraph
)
View Source
const CDN = "https://cdn.discordapp.com"
View Source
const MessageURLFmt = "https://discord.com/channels/%s/%d/%d"
View Source
const ScopeSeparator = " "
View Source
const (
	TeamPermissionAdmin = "*"
)

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)

	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)

	UserAvatarDecoration = NewCDN("/avatar-decorations/{user.id}/{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)>")}
)
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

func AllGuildChannels(guildID snowflake.ID) snowflake.ID

func AnimatedEmojiMention

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

func AuthorizeURL

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

func InviteURL(code string) string

InviteURL formats the invite code as an url

func JoinScopes

func JoinScopes(scopes []OAuth2Scope) string

func MessageURL

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

func RoleMention

func RoleMention(id snowflake.ID) string

func SlashCommandMention

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

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

WebhookURL returns the url over which the webhook can be called

Types

type AccessTokenResponse

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

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

func (*AccessTokenResponse) UnmarshalJSON

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

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"`
	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"`
}

Activity represents the fields of a user's presence

func (Activity) MarshalJSON

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

func (*Activity) UnmarshalJSON

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

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

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

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

func (ActivityFlags) Has

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

Has will ensure that the bit includes all the bits entered

func (ActivityFlags) Missing

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

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

func (ActivityFlags) Remove

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

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

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

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

func (*ActivityTimestamps) UnmarshalJSON

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"`
	TermsOfServiceURL              *string          `json:"terms_of_service_url,omitempty"`
	PrivacyPolicyURL               *string          `json:"privacy_policy_url,omitempty"`
	CustomInstallURL               *string          `json:"custom_install_url,omitempty"`
	RoleConnectionsVerificationURL *string          `json:"role_connections_verification_url"`
	InstallParams                  *InstallParams   `json:"install_params"`
	Tags                           []string         `json:"tags"`
	Owner                          *User            `json:"owner,omitempty"`
	Summary                        string           `json:"summary"`
	VerifyKey                      string           `json:"verify_key"`
	Team                           *Team            `json:"team,omitempty"`
	GuildID                        *snowflake.ID    `json:"guild_id,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"`
}

func (Application) CoverImageURL

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

func (Application) CreatedAt

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
	// 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

func (i ApplicationCommandInteraction) AppPermissions() *Permissions

func (ApplicationCommandInteraction) ApplicationID

func (i ApplicationCommandInteraction) ApplicationID() snowflake.ID

func (ApplicationCommandInteraction) Channel

func (i ApplicationCommandInteraction) Channel() InteractionChannel

func (ApplicationCommandInteraction) ChannelID deprecated

func (i ApplicationCommandInteraction) ChannelID() snowflake.ID

Deprecated: Use Channel() instead

func (ApplicationCommandInteraction) CreatedAt

func (i ApplicationCommandInteraction) CreatedAt() time.Time

func (ApplicationCommandInteraction) GuildID

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

func (ApplicationCommandInteraction) GuildLocale

func (i ApplicationCommandInteraction) GuildLocale() *Locale

func (ApplicationCommandInteraction) ID

func (i ApplicationCommandInteraction) ID() snowflake.ID

func (ApplicationCommandInteraction) Locale

func (i ApplicationCommandInteraction) Locale() Locale

func (ApplicationCommandInteraction) MarshalJSON

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

func (ApplicationCommandInteraction) Member

func (i ApplicationCommandInteraction) Member() *ResolvedMember

func (ApplicationCommandInteraction) MessageCommandInteractionData

func (i ApplicationCommandInteraction) MessageCommandInteractionData() MessageCommandInteractionData

func (ApplicationCommandInteraction) SlashCommandInteractionData

func (i ApplicationCommandInteraction) SlashCommandInteractionData() SlashCommandInteractionData

func (ApplicationCommandInteraction) Token

func (i ApplicationCommandInteraction) Token() string

func (ApplicationCommandInteraction) Type

func (*ApplicationCommandInteraction) UnmarshalJSON

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

func (ApplicationCommandInteraction) User

func (i ApplicationCommandInteraction) User() User

func (ApplicationCommandInteraction) UserCommandInteractionData

func (i ApplicationCommandInteraction) UserCommandInteractionData() UserCommandInteractionData

func (ApplicationCommandInteraction) Version

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

func (o ApplicationCommandOptionAttachment) OptionDescription() string

func (ApplicationCommandOptionAttachment) OptionName

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

func (o ApplicationCommandOptionBool) OptionDescription() string

func (ApplicationCommandOptionBool) OptionName

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

func (o ApplicationCommandOptionChannel) OptionDescription() string

func (ApplicationCommandOptionChannel) OptionName

func (o ApplicationCommandOptionChannel) OptionName() string

func (ApplicationCommandOptionChannel) Type

type ApplicationCommandOptionChoice

type ApplicationCommandOptionChoice interface {
	// 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"`
}

type ApplicationCommandOptionChoiceInt

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

type ApplicationCommandOptionChoiceString

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

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

func (o ApplicationCommandOptionFloat) OptionDescription() string

func (ApplicationCommandOptionFloat) OptionName

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

func (o ApplicationCommandOptionInt) OptionDescription() string

func (ApplicationCommandOptionInt) OptionName

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

func (o ApplicationCommandOptionMentionable) OptionDescription() string

func (ApplicationCommandOptionMentionable) OptionName

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

func (o ApplicationCommandOptionRole) OptionDescription() string

func (ApplicationCommandOptionRole) OptionName

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

func (o ApplicationCommandOptionString) OptionDescription() string

func (ApplicationCommandOptionString) OptionName

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

func (o ApplicationCommandOptionSubCommand) OptionDescription() string

func (ApplicationCommandOptionSubCommand) OptionName

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

func (o ApplicationCommandOptionSubCommandGroup) OptionDescription() string

func (ApplicationCommandOptionSubCommandGroup) OptionName

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

func (o ApplicationCommandOptionUser) OptionDescription() string

func (ApplicationCommandOptionUser) OptionName

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

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

func (ApplicationCommandPermissionChannel) ID

func (p ApplicationCommandPermissionChannel) ID() snowflake.ID

func (ApplicationCommandPermissionChannel) MarshalJSON

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

func (ApplicationCommandPermissionChannel) Type

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

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

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 ApplicationRoleConnection

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

type ApplicationRoleConnectionMetadata

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

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

type ApplicationRoleConnectionUpdate

type ApplicationRoleConnectionUpdate struct {
	PlatformName     *string            `json:"platform_name,omitempty"`
	PlatformUsername *string            `json:"platform_username,omitempty"`
	Metadata         *map[string]string `json:"metadata,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

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"`
	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

func (a Attachment) CreatedAt() time.Time

type AttachmentCreate

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

type AttachmentFlags added in v0.5.0

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 AuditLogChangeKey

type AuditLogChangeKey struct {
	Name                        *string                     `json:"name"`
	Description                 *string                     `json:"description"`
	IconHash                    *string                     `json:"icon_hash"`
	SplashHash                  *string                     `json:"splash_hash"`
	DiscoverySplashHash         *string                     `json:"discovery_splash_hash"`
	BannerHash                  *string                     `json:"banner_hash"`
	OwnerID                     *snowflake.ID               `json:"owner_id"`
	Region                      *string                     `json:"region"`
	PreferredLocale             *string                     `json:"preferred_locale"`
	AFKChannelID                *snowflake.ID               `json:"afk_channel_id"`
	AFKTimeout                  *int                        `json:"afk_timeout"`
	RulesChannelID              *snowflake.ID               `json:"rules_channel_id"`
	PublicUpdatesChannelID      *snowflake.ID               `json:"public_updates_channel_id"`
	MFALevel                    *MFALevel                   `json:"mfa_level"`
	VerificationLevel           *VerificationLevel          `json:"verification_level"`
	ExplicitContentFilterLevel  *ExplicitContentFilterLevel `json:"explicit_content_filter"`
	DefaultMessageNotifications *MessageNotificationsLevel  `json:"default_message_notifications"`
	VanityURLCode               *string                     `json:"vanity_url_code"`
	Add                         []PartialRole               `json:"$add"`
	Remove                      []PartialRole               `json:"$remove"`
	PruneDeleteDays             *int                        `json:"prune_delete_days"`
	WidgetEnabled               *bool                       `json:"widget_enabled"`
	WidgetChannelID             *string                     `json:"widget_channel_id"`
	SystemChannelID             *string                     `json:"system_channel_id"`
	Position                    *int                        `json:"position"`
	Topic                       *string                     `json:"topic"`
	Bitrate                     *int                        `json:"bitrate"`
	PermissionOverwrites        []PermissionOverwrite       `json:"permission_overwrites"`
	NSFW                        *bool                       `json:"nsfw"`
	ApplicationID               *snowflake.ID               `json:"application_id"`
	RateLimitPerUser            *int                        `json:"ratelimit_per_user"`
	Permissions                 *string                     `json:"permissions"`
	Color                       *int                        `json:"color"`
	Hoist                       *bool                       `json:"hoist"`
	Mentionable                 *bool                       `json:"mentionable"`
	Allow                       *Permissions                `json:"allow"`
	Deny                        *Permissions                `json:"deny"`
	Code                        *string                     `json:"code"`
	ChannelID                   *snowflake.ID               `json:"channel_id"`
	InviterID                   *snowflake.ID               `json:"inviter_id"`
	MaxUses                     *int                        `json:"max_uses"`
	Uses                        *int                        `json:"uses"`
	MaxAge                      *string                     `json:"max_age"`
	Temporary                   *bool                       `json:"temporary"`
	Deaf                        *bool                       `json:"deaf"`
	Mute                        *bool                       `json:"mute"`
	Nick                        *string                     `json:"nick"`
	AvatarHash                  *string                     `json:"avatar_hash"`
	ID                          *snowflake.ID               `json:"id"`
	Type                        any                         `json:"type"`
	EnableEmoticons             *bool                       `json:"enable_emoticons"`
	ExpireBehavior              *IntegrationExpireBehavior  `json:"expire_behavior"`
	ExpireGracePeriod           *int                        `json:"expire_grace_period"`
	UserLimit                   *int                        `json:"user_limit"`
	PrivacyLevel                *StagePrivacyLevel          `json:"privacy_level"`
}

AuditLogChangeKey (https://discord.com/developers/docs/resources/audit-log#audit-log-change-object-audit-log-change-key) is data representing changes values/settings in an audit log.

type AuditLogEntry

type AuditLogEntry struct {
	TargetID   *snowflake.ID              `json:"target_id"`
	Changes    []AuditLogChangeKey        `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
)

AuditLogEventChannelCreate

const (
	AuditLogEventMemberKick AuditLogEvent = iota + 20
	AuditLogEventMemberPrune
	AuditLogEventMemberBanAdd
	AuditLogEventMemberBanRemove
	AuditLogEventMemberUpdate
	AuditLogEventMemberRoleUpdate
	AuditLogEventMemberMove
	AuditLogEventMemberDisconnect
	AuditLogEventBotAdd
)

AuditLogEventMemberKick

const (
	AuditLogEventRoleCreate AuditLogEvent = iota + 30
	AuditLogEventRoleUpdate
	AuditLogEventRoleDelete
)

AuditLogEventRoleCreate

const (
	AuditLogEventInviteCreate AuditLogEvent = iota + 40
	AuditLogEventInviteUpdate
	AuditLogEventInviteDelete
)

AuditLogEventInviteCreate

const (
	AuditLogEventWebhookCreate AuditLogEvent = iota + 50
	AuditLogEventWebhookUpdate
	AuditLogEventWebhookDelete
)

AuditLogEventWebhookCreate

const (
	AuditLogEventEmojiCreate AuditLogEvent = iota + 60
	AuditLogEventEmojiUpdate
	AuditLogEventEmojiDelete
)

AuditLogEventEmojiCreate

const (
	AuditLogEventMessageDelete AuditLogEvent = iota + 72
	AuditLogEventMessageBulkDelete
	AuditLogEventMessagePin
	AuditLogEventMessageUnpin
)

AuditLogEventMessageDelete

const (
	AuditLogEventIntegrationCreate AuditLogEvent = iota + 80
	AuditLogEventIntegrationUpdate
	AuditLogEventIntegrationDelete
	AuditLogEventStageInstanceCreate
	AuditLogEventStageInstanceUpdate
	AuditLogEventStageInstanceDelete
)

AuditLogEventIntegrationCreate

const (
	AuditLogEventStickerCreate AuditLogEvent = iota + 90
	AuditLogEventStickerUpdate
	AuditLogEventStickerDelete
)

AuditLogEventStickerCreate

const (
	AuditLogGuildScheduledEventCreate AuditLogEvent = iota + 100
	AuditLogGuildScheduledEventUpdate
	AuditLogGuildScheduledEventDelete
)

AuditLogGuildScheduledEventCreate

const (
	AuditLogThreadCreate AuditLogEvent = iota + 110
	AuditLogThreadUpdate
	AuditLogThreadDelete
)

AuditLogThreadCreate

const (
	AuditLogAutoModerationRuleCreate AuditLogEvent = iota + 140
	AuditLogAutoModerationRuleUpdate
	AuditLogAutoModerationRuleDelete
	AuditLogAutoModerationBlockMessage
	AuditLogAutoModerationFlagToChannel
	AuditLogAutoModerationUserCommunicationDisabled
)
const (
	AuditLogCreatorMonetizationRequestCreated AuditLogEvent = iota + 150
	AuditLogCreatorMonetizationTermsAccepted
)
const (
	AuditLogApplicationCommandPermissionUpdate AuditLogEvent = 121
)

AuditLogApplicationCommandPermissionUpdate ...

const (
	AuditLogEventGuildUpdate AuditLogEvent = 1
)

AuditLogEventGuildUpdate ...

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

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

type AutoModerationActionMetadata

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

type AutoModerationActionType

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

type AutoModerationEventType

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

type AutoModerationKeywordPreset

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

type AutoModerationRule

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

func (r AutoModerationRule) CreatedAt() time.Time

type AutoModerationRuleCreate

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

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

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

type AutoModerationTriggerType int
const (
	AutoModerationTriggerTypeKeyword AutoModerationTriggerType = iota + 1

	AutoModerationTriggerTypeSpam
	AutoModerationTriggerTypeKeywordPresent
	AutoModerationTriggerTypeMentionSpam
)

type AutocompleteChoice

type AutocompleteChoice interface {
	// 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"`
}

type AutocompleteChoiceInt

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

type AutocompleteChoiceString

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

type AutocompleteInteraction

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

func (AutocompleteInteraction) AppPermissions

func (i AutocompleteInteraction) AppPermissions() *Permissions

func (AutocompleteInteraction) ApplicationID

func (i AutocompleteInteraction) ApplicationID() snowflake.ID

func (AutocompleteInteraction) Channel

func (i AutocompleteInteraction) Channel() InteractionChannel

func (AutocompleteInteraction) ChannelID deprecated

func (i AutocompleteInteraction) ChannelID() snowflake.ID

Deprecated: Use Channel() instead

func (AutocompleteInteraction) CreatedAt

func (i AutocompleteInteraction) CreatedAt() time.Time

func (AutocompleteInteraction) GuildID

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

func (AutocompleteInteraction) GuildLocale

func (i AutocompleteInteraction) GuildLocale() *Locale

func (AutocompleteInteraction) ID

func (i AutocompleteInteraction) ID() snowflake.ID

func (AutocompleteInteraction) Locale

func (i AutocompleteInteraction) Locale() Locale

func (AutocompleteInteraction) MarshalJSON

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

func (AutocompleteInteraction) Member

func (i AutocompleteInteraction) Member() *ResolvedMember

func (AutocompleteInteraction) Token

func (i AutocompleteInteraction) Token() string

func (AutocompleteInteraction) Type

func (*AutocompleteInteraction) UnmarshalJSON

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

func (AutocompleteInteraction) User

func (i AutocompleteInteraction) User() User

func (AutocompleteInteraction) Version

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

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) 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 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

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 ButtonComponent

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

func NewButton

func NewButton(style ButtonStyle, label string, customID string, url string) 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 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) 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)

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

type CDNEndpoint struct {
	Route   string
	Formats []FileFormat
}

func NewCDN

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

func (CDNEndpoint) URL

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

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

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

func (ChannelFlags) Add

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

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

func (ChannelFlags) Has

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

Has will ensure that the bit includes all the bits entered

func (ChannelFlags) Missing

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

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

func (ChannelFlags) Remove

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

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

type ChannelSelectMenuComponent 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"`
	ChannelTypes []ChannelType `json:"channel_types,omitempty"`
}

func NewChannelSelectMenu

func NewChannelSelectMenu(customID string, placeholder string) ChannelSelectMenuComponent

NewChannelSelectMenu builds a new SelectMenuComponent from the provided values

func (ChannelSelectMenuComponent) AsDisabled

AsDisabled returns a new ChannelSelectMenuComponent but disabled

func (ChannelSelectMenuComponent) AsEnabled

AsEnabled returns a new ChannelSelectMenuComponent but enabled

func (ChannelSelectMenuComponent) ID

func (ChannelSelectMenuComponent) MarshalJSON

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

func (ChannelSelectMenuComponent) Type

func (ChannelSelectMenuComponent) WithChannelTypes

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

WithChannelTypes returns a new ChannelSelectMenuComponent with the provided channelTypes

func (ChannelSelectMenuComponent) WithCustomID

WithCustomID returns a new ChannelSelectMenuComponent with the provided customID

func (ChannelSelectMenuComponent) WithDisabled

WithDisabled returns a new ChannelSelectMenuComponent with the provided disabled

func (ChannelSelectMenuComponent) WithMaxValues

func (c ChannelSelectMenuComponent) WithMaxValues(maxValue int) ChannelSelectMenuComponent

WithMaxValues returns a new ChannelSelectMenuComponent with the provided maxValue

func (ChannelSelectMenuComponent) WithMinValues

func (c ChannelSelectMenuComponent) WithMinValues(minValue int) ChannelSelectMenuComponent

WithMinValues returns a new ChannelSelectMenuComponent with the provided minValue

func (ChannelSelectMenuComponent) WithPlaceholder

func (c ChannelSelectMenuComponent) WithPlaceholder(placeholder string) ChannelSelectMenuComponent

WithPlaceholder returns a new ChannelSelectMenuComponent with the provided placeholder

type ChannelSelectMenuInteractionData

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

func (ChannelSelectMenuInteractionData) Channels

func (ChannelSelectMenuInteractionData) CustomID

func (ChannelSelectMenuInteractionData) MarshalJSON

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

func (ChannelSelectMenuInteractionData) Type

func (*ChannelSelectMenuInteractionData) UnmarshalJSON

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

type ChannelSelectMenuResolved

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

type ChannelTag added in v0.5.0

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

func (i ComponentInteraction) AppPermissions() *Permissions

func (ComponentInteraction) ApplicationID

func (i ComponentInteraction) ApplicationID() snowflake.ID

func (ComponentInteraction) ButtonInteractionData

func (i ComponentInteraction) ButtonInteractionData() ButtonInteractionData

func (ComponentInteraction) Channel

func (i ComponentInteraction) Channel() InteractionChannel

func (ComponentInteraction) ChannelID deprecated

func (i ComponentInteraction) ChannelID() snowflake.ID

Deprecated: Use Channel() instead

func (ComponentInteraction) ChannelSelectMenuInteractionData

func (i ComponentInteraction) ChannelSelectMenuInteractionData() ChannelSelectMenuInteractionData

func (ComponentInteraction) CreatedAt

func (i ComponentInteraction) CreatedAt() time.Time

func (ComponentInteraction) GuildID

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

func (ComponentInteraction) GuildLocale

func (i ComponentInteraction) GuildLocale() *Locale

func (ComponentInteraction) ID

func (i ComponentInteraction) ID() snowflake.ID

func (ComponentInteraction) Locale

func (i ComponentInteraction) Locale() Locale

func (ComponentInteraction) MarshalJSON

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

func (ComponentInteraction) Member

func (i ComponentInteraction) Member() *ResolvedMember

func (ComponentInteraction) MentionableSelectMenuInteractionData

func (i ComponentInteraction) MentionableSelectMenuInteractionData() MentionableSelectMenuInteractionData

func (ComponentInteraction) RoleSelectMenuInteractionData

func (i ComponentInteraction) RoleSelectMenuInteractionData() RoleSelectMenuInteractionData

func (ComponentInteraction) SelectMenuInteractionData

func (i ComponentInteraction) SelectMenuInteractionData() SelectMenuInteractionData

func (ComponentInteraction) StringSelectMenuInteractionData

func (i ComponentInteraction) StringSelectMenuInteractionData() StringSelectMenuInteractionData

func (ComponentInteraction) Token

func (i ComponentInteraction) Token() string

func (ComponentInteraction) Type

func (*ComponentInteraction) UnmarshalJSON

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

func (ComponentInteraction) User

func (i ComponentInteraction) User() User

func (ComponentInteraction) UserSelectMenuInteractionData

func (i ComponentInteraction) UserSelectMenuInteractionData() UserSelectMenuInteractionData

func (ComponentInteraction) Version

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)

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 (
	ConnectionTypeBattleNet          ConnectionType = "battlenet"
	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"
	ConnectionTypeSpotify            ConnectionType = "spotify"
	ConnectionTypeSkype              ConnectionType = "skype"
	ConnectionTypeSteam              ConnectionType = "steam"
	ConnectionTypeTikTok             ConnectionType = "tiktok"
	ConnectionTypeTwitch             ConnectionType = "twitch"
	ConnectionTypeTwitter            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

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

CurrentMemberUpdate is used to update the current member

type CurrentUserVoiceStateUpdate

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

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

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

type DefaultReactionEmoji

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

type DefaultSortOrder

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

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

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

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

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

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

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

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

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

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 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 = "rich"
	EmbedTypeArticle EmbedType = "article"
	EmbedTypeLink    EmbedType = "link"
)

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:"creator,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

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

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 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 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.4.1

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.4.1

func (f FileFormat) Animated() bool

Animated returns true if the FileFormat is animated

func (FileFormat) String added in v0.4.1

func (f FileFormat) String() string

String returns the string representation of the FileFormat

type FollowChannel

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

type FollowedChannel

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 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

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 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

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

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

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

func (c GuildForumChannel) CreatedAt() time.Time

func (GuildForumChannel) GuildID

func (c GuildForumChannel) GuildID() snowflake.ID

func (GuildForumChannel) ID

func (c GuildForumChannel) ID() snowflake.ID

func (GuildForumChannel) MarshalJSON

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

func (GuildForumChannel) Mention

func (c GuildForumChannel) Mention() string

func (GuildForumChannel) Name

func (c GuildForumChannel) Name() string

func (GuildForumChannel) ParentID

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

func (GuildForumChannel) PermissionOverwrites

func (c GuildForumChannel) PermissionOverwrites() PermissionOverwrites

func (GuildForumChannel) Position

func (c GuildForumChannel) Position() int

func (GuildForumChannel) String

func (c GuildForumChannel) String() string

func (GuildForumChannel) Type

func (*GuildForumChannel) UnmarshalJSON

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

type GuildForumChannelCreate

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"`
	DefaultReactionEmoji DefaultReactionEmoji  `json:"default_reaction_emoji"`
	AvailableTags        []ChannelTag          `json:"available_tags"`
	DefaultSortOrder     DefaultSortOrder      `json:"default_sort_order"`
	DefaultForumLayout   DefaultForumLayout    `json:"default_forum_layout"`
}

func (GuildForumChannelCreate) MarshalJSON

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

func (GuildForumChannelCreate) Type

type GuildForumChannelUpdate

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.4.0

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.4.0

func (c GuildMediaChannel) CreatedAt() time.Time

func (GuildMediaChannel) GuildID added in v0.4.0

func (c GuildMediaChannel) GuildID() snowflake.ID

func (GuildMediaChannel) ID added in v0.4.0

func (c GuildMediaChannel) ID() snowflake.ID

func (GuildMediaChannel) MarshalJSON added in v0.4.0

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

func (GuildMediaChannel) Mention added in v0.4.0

func (c GuildMediaChannel) Mention() string

func (GuildMediaChannel) Name added in v0.4.0

func (c GuildMediaChannel) Name() string

func (GuildMediaChannel) ParentID added in v0.4.0

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

func (GuildMediaChannel) PermissionOverwrites added in v0.4.0

func (c GuildMediaChannel) PermissionOverwrites() PermissionOverwrites

func (GuildMediaChannel) Position added in v0.4.0

func (c GuildMediaChannel) Position() int

func (GuildMediaChannel) String added in v0.4.0

func (c GuildMediaChannel) String() string

func (GuildMediaChannel) Type added in v0.4.0

func (*GuildMediaChannel) UnmarshalJSON added in v0.4.0

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

type GuildMediaChannelCreate added in v0.4.0

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"`
	DefaultReactionEmoji DefaultReactionEmoji  `json:"default_reaction_emoji"`
	AvailableTags        []ChannelTag          `json:"available_tags"`
	DefaultSortOrder     DefaultSortOrder      `json:"default_sort_order"`
}

func (GuildMediaChannelCreate) MarshalJSON added in v0.4.0

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

func (GuildMediaChannelCreate) Type added in v0.4.0

type GuildMediaChannelUpdate added in v0.5.0

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

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

func ApplyLastPinTimestampToChannel

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

type GuildNewsChannel

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

func (GuildNewsChannel) CreatedAt

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

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"`
}

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

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.5.0

type GuildOnboardingMode int
const (
	GuildOnboardingModeDefault GuildOnboardingMode = iota
	GuildOnboardingModeAdvanced
)

type GuildOnboardingPrompt

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

type GuildOnboardingPromptOption struct {
	ID          snowflake.ID   `json:"id"`
	ChannelIDs  []snowflake.ID `json:"channel_ids"`
	RoleIDs     []snowflake.ID `json:"role_ids"`
	Emoji       PartialEmoji   `json:"emoji"`
	Title       string         `json:"title"`
	Description *string        `json:"description"`
}

type GuildOnboardingPromptType

type GuildOnboardingPromptType int
const (
	GuildOnboardingPromptTypeMultipleChoice GuildOnboardingPromptType = iota
	GuildOnboardingPromptTypeDropdown
)

type GuildOnboardingUpdate added in v0.5.0

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.5.0

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

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

type GuildPruneResult

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"`
}

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) CreatedAt

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"`
}

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"`
}

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 {
	// contains filtered or unexported fields
}

func (GuildStageVoiceChannel) Bitrate

func (c GuildStageVoiceChannel) Bitrate() int

func (GuildStageVoiceChannel) CreatedAt

func (c GuildStageVoiceChannel) CreatedAt() time.Time

func (GuildStageVoiceChannel) GuildID

func (c GuildStageVoiceChannel) GuildID() snowflake.ID

func (GuildStageVoiceChannel) ID

func (c GuildStageVoiceChannel) ID() snowflake.ID

func (GuildStageVoiceChannel) MarshalJSON

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

func (GuildStageVoiceChannel) Mention

func (c GuildStageVoiceChannel) Mention() string

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) String

func (c GuildStageVoiceChannel) String() string

func (GuildStageVoiceChannel) Type

func (*GuildStageVoiceChannel) UnmarshalJSON

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

type GuildStageVoiceChannelCreate

type GuildStageVoiceChannelCreate struct {
	Name                 string                `json:"name"`
	Topic                string                `json:"topic,omitempty"`
	Bitrate              int                   `json:"bitrate,omitempty"`
	UserLimit            int                   `json:"user_limit,omitempty"`
	Position             int                   `json:"position,omitempty"`
	PermissionOverwrites []PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID             snowflake.ID          `json:"parent_id,omitempty"`
}

func (GuildStageVoiceChannelCreate) MarshalJSON

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

func (GuildStageVoiceChannelCreate) Type

type GuildStageVoiceChannelUpdate

type GuildStageVoiceChannelUpdate struct {
	Name                 *string                `json:"name,omitempty"`
	Position             *int                   `json:"position,omitempty"`
	Topic                *string                `json:"topic,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.5.1

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.5.1

func (i GuildSubscriptionIntegration) CreatedAt() time.Time

func (GuildSubscriptionIntegration) ID added in v0.5.1

func (i GuildSubscriptionIntegration) ID() snowflake.ID

func (GuildSubscriptionIntegration) MarshalJSON added in v0.5.1

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

func (GuildSubscriptionIntegration) Type added in v0.5.1

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

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

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"`
}

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

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

func (GuildThread) CreatedAt

func (c GuildThread) CreatedAt() time.Time

func (GuildThread) DefaultAutoArchiveDuration

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

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

func (c GuildVoiceChannel) CreatedAt() time.Time

func (GuildVoiceChannel) DefaultAutoArchiveDuration

func (c GuildVoiceChannel) DefaultAutoArchiveDuration() AutoArchiveDuration

func (GuildVoiceChannel) GuildID

func (c GuildVoiceChannel) GuildID() snowflake.ID

func (GuildVoiceChannel) ID

func (c GuildVoiceChannel) ID() snowflake.ID

func (GuildVoiceChannel) LastMessageID

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

func (GuildVoiceChannel) LastPinTimestamp

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

func (GuildVoiceChannel) MarshalJSON

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

func (GuildVoiceChannel) Mention

func (c GuildVoiceChannel) Mention() string

func (GuildVoiceChannel) NSFW

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

func (c GuildVoiceChannel) RateLimitPerUser() int

func (GuildVoiceChannel) String

func (c GuildVoiceChannel) String() string

func (GuildVoiceChannel) Topic

func (c GuildVoiceChannel) Topic() *string

func (GuildVoiceChannel) Type

func (*GuildVoiceChannel) UnmarshalJSON

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

type GuildVoiceChannelCreate

type GuildVoiceChannelCreate struct {
	Name                 string                `json:"name"`
	Topic                string                `json:"topic,omitempty"`
	Bitrate              int                   `json:"bitrate,omitempty"`
	UserLimit            int                   `json:"user_limit,omitempty"`
	Position             int                   `json:"position,omitempty"`
	PermissionOverwrites []PermissionOverwrite `json:"permission_overwrites,omitempty"`
	ParentID             snowflake.ID          `json:"parent_id,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"`
	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

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

GuildWelcomeScreen is the Welcome Screen of a Guild

type GuildWelcomeScreenUpdate

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

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

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

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
	GuildID() *snowflake.ID
	// Deprecated: Use Interaction.Channel instead
	ChannelID() snowflake.ID
	Channel() InteractionChannel
	Locale() Locale
	GuildLocale() *Locale
	Member() *ResolvedMember
	User() User
	AppPermissions() *Permissions
	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 InteractionChannel

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

func (InteractionChannel) MarshalJSON

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

func (*InteractionChannel) UnmarshalJSON

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

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

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

type InteractionResponseType

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
	InteractionResponseTypeApplicationCommandAutocompleteResult
	InteractionResponseTypeModal
)

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 {
	Code                     string               `json:"code"`
	Guild                    *InviteGuild         `json:"guild"`
	Channel                  *InviteChannel       `json:"channel"`
	ChannelID                snowflake.ID         `json:"channel_id"`
	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 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"`
	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"`

	// 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) AvatarURL

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

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

func (Member) CreatedAt

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) 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

type MemberFlags int
const (
	MemberFlagDidRejoin MemberFlags = 1 << iota
	MemberFlagCompletedOnboarding
	MemberFlagBypassesVerification
	MemberFlagStartedOnboarding
	MemberFlagsNone MemberFlags = 0
)

func (MemberFlags) Add

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

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

func (MemberFlags) Has

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

Has will ensure that the bit includes all the bits entered

func (MemberFlags) Missing

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

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

func (MemberFlags) Remove

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

type MentionType

type MentionType struct {
	*regexp.Regexp
}

type Mentionable

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

type MentionableSelectMenuComponent

type MentionableSelectMenuComponent 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"`
}

func NewMentionableSelectMenu

func NewMentionableSelectMenu(customID string, placeholder string) MentionableSelectMenuComponent

NewMentionableSelectMenu builds a new SelectMenuComponent from the provided values

func (MentionableSelectMenuComponent) AsDisabled

AsDisabled returns a new MentionableSelectMenuComponent but disabled

func (MentionableSelectMenuComponent) AsEnabled

AsEnabled returns a new MentionableSelectMenuComponent but enabled

func (MentionableSelectMenuComponent) ID

func (MentionableSelectMenuComponent) MarshalJSON

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

func (MentionableSelectMenuComponent) Type

func (MentionableSelectMenuComponent) WithCustomID

WithCustomID returns a new MentionableSelectMenuComponent with the provided customID

func (MentionableSelectMenuComponent) WithDisabled

WithDisabled returns a new MentionableSelectMenuComponent with the provided disabled

func (MentionableSelectMenuComponent) WithMaxValues

WithMaxValues returns a new MentionableSelectMenuComponent with the provided maxValue

func (MentionableSelectMenuComponent) WithMinValues

WithMinValues returns a new MentionableSelectMenuComponent with the provided minValue

func (MentionableSelectMenuComponent) WithPlaceholder

WithPlaceholder returns a new MentionableSelectMenuComponent with the provided placeholder

type MentionableSelectMenuInteractionData

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

func (MentionableSelectMenuInteractionData) CustomID

func (MentionableSelectMenuInteractionData) MarshalJSON

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

func (MentionableSelectMenuInteractionData) Members

func (MentionableSelectMenuInteractionData) Roles

func (MentionableSelectMenuInteractionData) Type

func (*MentionableSelectMenuInteractionData) UnmarshalJSON

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

func (MentionableSelectMenuInteractionData) Users

type MentionableSelectMenuResolved

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      []Channel             `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"`
	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"`
}

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) Builder added in v0.101.0

func (m Message) Builder() MessageBuilder

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

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

ChannelSelectMenuByID returns a ChannelSelectMenuComponent with the specific customID from this Message

func (Message) ChannelSelectMenus

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

func (m Message) JumpURL() string

func (Message) MentionableSelectMenuByID

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

MentionableSelectMenuByID returns a MentionableSelectMenuComponent with the specific customID from this Message

func (Message) MentionableSelectMenus

func (m Message) MentionableSelectMenus() []MentionableSelectMenuComponent

MentionableSelectMenus returns all MentionableSelectMenuComponent(s) from this Message

func (Message) RoleSelectMenuByID

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

RoleSelectMenuByID returns a RoleSelectMenuComponent with the specific customID from this Message

func (Message) RoleSelectMenus

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

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

UserSelectMenuByID returns a UserSelectMenuComponent with the specific customID from this Message

func (Message) UserSelectMenus

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 MessageBuilder added in v0.101.0

type MessageBuilder interface {
	AddActionRow(components ...InteractiveComponent) MessageBuilder
	AddContainerComponents(containers ...ContainerComponent) MessageBuilder
	AddEmbeds(embeds ...Embed) MessageBuilder
	AddFile(name string, description string, reader io.Reader, flags ...FileFlags) MessageBuilder
	AddFiles(files ...*File) MessageBuilder
	AddFlags(flags ...MessageFlags) MessageBuilder
	AddStickers(stickerIds ...snowflake.ID) MessageBuilder
	Create() MessageCreate
	Update() MessageUpdate
	ClearAllowedMentions() MessageBuilder
	ClearContainerComponents() MessageBuilder
	ClearEmbeds() MessageBuilder
	ClearFiles() MessageBuilder
	ClearFlags() MessageBuilder
	ClearStickers() MessageBuilder
	RemoveContainerComponent(i int) MessageBuilder
	RemoveEmbed(i int) MessageBuilder
	RemoveFile(i int) MessageBuilder
	RemoveFlags(flags ...MessageFlags) MessageBuilder
	SetAllowedMentions(allowedMentions *AllowedMentions) MessageBuilder
	SetContainerComponent(i int, container ContainerComponent) MessageBuilder
	SetContainerComponents(containerComponents ...ContainerComponent) MessageBuilder
	SetContent(content string) MessageBuilder
	SetContentf(content string, a ...any) MessageBuilder
	SetEmbed(i int, embed Embed) MessageBuilder
	SetEmbeds(embeds ...Embed) MessageBuilder
	SetEphemeral(ephemeral bool) MessageBuilder
	SetFile(i int, file *File) MessageBuilder
	SetFiles(files ...*File) MessageBuilder
	SetFlags(flags MessageFlags) MessageBuilder
	SetMessageReference(messageReference *MessageReference) MessageBuilder
	SetMessageReferenceByID(messageID snowflake.ID) MessageBuilder
	SetStickers(stickerIds ...snowflake.ID) MessageBuilder
	SetSuppressEmbeds(suppressEmbeds bool) MessageBuilder
}

func NewMessageBuilder added in v0.101.0

func NewMessageBuilder() MessageBuilder

func NewMessageBuilderFromMessageCreate added in v0.101.0

func NewMessageBuilderFromMessageCreate(m MessageCreate) MessageBuilder

type MessageBulkDelete

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

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) CreatedAt

func (c MessageCommand) CreatedAt() time.Time

func (MessageCommand) DMPermission

func (c MessageCommand) DMPermission() bool

func (MessageCommand) DefaultMemberPermissions

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) MarshalJSON

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

func (MessageCommand) NSFW

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"`
	DMPermission             *bool                       `json:"dm_permission,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

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"`
	DMPermission             *bool                       `json:"dm_permission,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"`
}

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) 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) 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) 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 MessageReference

type MessageReference struct {
	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 MessageSticker

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

type MessageThread

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
	ChannelPinnedMessage
	MessageTypeUserJoin
	MessageTypeGuildBoost
	MessageTypeGuildBoostTier1
	MessageTypeGuildBoostTier2
	MessageTypeGuildBoostTier3
	MessageTypeChannelFollowAdd

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

	MessageTypeStageTopic
	MessageTypeGuildApplicationPremiumSubscription
)

Constants for the MessageType

func (MessageType) Deleteable

func (t MessageType) Deleteable() bool

func (MessageType) System

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           *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 message flags of the Message

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

func (i ModalSubmitInteraction) AppPermissions() *Permissions

func (ModalSubmitInteraction) ApplicationID

func (i ModalSubmitInteraction) ApplicationID() snowflake.ID

func (ModalSubmitInteraction) Channel

func (i ModalSubmitInteraction) Channel() InteractionChannel

func (ModalSubmitInteraction) ChannelID deprecated

func (i ModalSubmitInteraction) ChannelID() snowflake.ID

Deprecated: Use Channel() instead

func (ModalSubmitInteraction) CreatedAt

func (i ModalSubmitInteraction) CreatedAt() time.Time

func (ModalSubmitInteraction) GuildID

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

func (ModalSubmitInteraction) GuildLocale

func (i ModalSubmitInteraction) GuildLocale() *Locale

func (ModalSubmitInteraction) ID

func (i ModalSubmitInteraction) ID() snowflake.ID

func (ModalSubmitInteraction) Locale

func (i ModalSubmitInteraction) Locale() Locale

func (ModalSubmitInteraction) MarshalJSON

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

func (ModalSubmitInteraction) Member

func (i ModalSubmitInteraction) Member() *ResolvedMember

func (ModalSubmitInteraction) Token

func (i ModalSubmitInteraction) Token() string

func (ModalSubmitInteraction) Type

func (*ModalSubmitInteraction) UnmarshalJSON

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

func (ModalSubmitInteraction) User

func (i ModalSubmitInteraction) User() User

func (ModalSubmitInteraction) Version

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"`
	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

type OAuth2Scope

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

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

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

type PartialEmoji

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

func (PartialEmoji) Reaction

func (e PartialEmoji) Reaction() string

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

type PartialInvite

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

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

type PermissionOverwrites []PermissionOverwrite

func (PermissionOverwrites) Get

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

func (PermissionOverwrites) Member

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

func (PermissionOverwrites) Role

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

	PermissionUseExternalSounds
	PermissionSendVoiceMessages

	PermissionsAllText = PermissionCreateInstantInvite |
		PermissionManageChannels |
		PermissionAddReactions |
		PermissionViewChannel |
		PermissionSendMessages |
		PermissionSendTTSMessages |
		PermissionManageMessages |
		PermissionEmbedLinks |
		PermissionAttachFiles |
		PermissionReadMessageHistory |
		PermissionMentionEveryone |
		PermissionUseExternalEmojis |
		PermissionManageRoles |
		PermissionManageWebhooks |
		PermissionUseApplicationCommands |
		PermissionManageThreads |
		PermissionCreatePublicThreads |
		PermissionCreatePrivateThreads |
		PermissionUseExternalStickers |
		PermissionSendMessagesInThreads |
		PermissionUseEmbeddedActivities |
		PermissionSendVoiceMessages

	PermissionsAllVoice = PermissionCreateInstantInvite |
		PermissionManageChannels |
		PermissionAddReactions |
		PermissionPrioritySpeaker |
		PermissionStream |
		PermissionViewChannel |
		PermissionSendMessages |
		PermissionSendTTSMessages |
		PermissionManageMessages |
		PermissionEmbedLinks |
		PermissionAttachFiles |
		PermissionReadMessageHistory |
		PermissionMentionEveryone |
		PermissionUseExternalEmojis |
		PermissionConnect |
		PermissionSpeak |
		PermissionMuteMembers |
		PermissionDeafenMembers |
		PermissionMoveMembers |
		PermissionUseVAD |
		PermissionManageRoles |
		PermissionManageWebhooks |
		PermissionUseApplicationCommands |
		PermissionManageEvents |
		PermissionUseExternalStickers |
		PermissionUseEmbeddedActivities |
		PermissionUseSoundboard |
		PermissionUseExternalSounds |
		PermissionSendVoiceMessages

	PermissionsAllStage = PermissionCreateInstantInvite |
		PermissionManageChannels |
		PermissionAddReactions |
		PermissionStream |
		PermissionViewChannel |
		PermissionSendMessages |
		PermissionManageMessages |
		PermissionEmbedLinks |
		PermissionAttachFiles |
		PermissionReadMessageHistory |
		PermissionMentionEveryone |
		PermissionUseExternalEmojis |
		PermissionConnect |
		PermissionMuteMembers |
		PermissionMoveMembers |
		PermissionManageRoles |
		PermissionManageWebhooks |
		PermissionUseApplicationCommands |
		PermissionRequestToSpeak |
		PermissionManageEvents |
		PermissionUseExternalStickers |
		PermissionSendVoiceMessages

	PermissionsAllForum = PermissionCreateInstantInvite |
		PermissionManageChannels |
		PermissionAddReactions |
		PermissionViewChannel |
		PermissionSendMessages |
		PermissionSendTTSMessages |
		PermissionManageMessages |
		PermissionEmbedLinks |
		PermissionAttachFiles |
		PermissionReadMessageHistory |
		PermissionMentionEveryone |
		PermissionUseExternalEmojis |
		PermissionManageRoles |
		PermissionManageWebhooks |
		PermissionUseApplicationCommands |
		PermissionManageThreads |
		PermissionUseExternalStickers |
		PermissionUseEmbeddedActivities |
		PermissionSendVoiceMessages

	PermissionsAllChannel = PermissionsAllText |
		PermissionsAllVoice |
		PermissionsAllStage

	PermissionsAllGuild = PermissionKickMembers |
		PermissionBanMembers |
		PermissionManageGuild |
		PermissionAdministrator |
		PermissionManageWebhooks |
		PermissionManageGuildExpressions |
		PermissionViewCreatorMonetizationAnalytics |
		PermissionViewGuildInsights |
		PermissionViewAuditLog |
		PermissionManageRoles |
		PermissionChangeNickname |
		PermissionManageNicknames |
		PermissionManageEvents |
		PermissionModerateMembers

	PermissionsAll = PermissionsAllChannel |
		PermissionsAllGuild

	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

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

func (PingInteraction) AppPermissions() *Permissions

func (PingInteraction) ApplicationID

func (i PingInteraction) ApplicationID() snowflake.ID

func (PingInteraction) Channel

func (PingInteraction) ChannelID

func (PingInteraction) ChannelID() snowflake.ID

func (PingInteraction) CreatedAt

func (i PingInteraction) CreatedAt() time.Time

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) 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 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

type QueryValues map[string]any

QueryValues holds key value pairs of query values

func (QueryValues) Encode

func (q QueryValues) Encode() string

Encode encodes the QueryValues into a string to append to the url

type ReactionCountDetails added in v0.5.1

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 ResolvedMember

type ResolvedMember struct {
	Member
	Permissions Permissions `json:"permissions,omitempty"`
}

type RestGuild

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

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.5.0

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

type RoleSelectMenuComponent 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"`
}

func NewRoleSelectMenu

func NewRoleSelectMenu(customID string, placeholder string) RoleSelectMenuComponent

NewRoleSelectMenu builds a new SelectMenuComponent from the provided values

func (RoleSelectMenuComponent) AsDisabled

AsDisabled returns a new RoleSelectMenuComponent but disabled

func (RoleSelectMenuComponent) AsEnabled

AsEnabled returns a new RoleSelectMenuComponent but enabled

func (RoleSelectMenuComponent) ID

func (RoleSelectMenuComponent) MarshalJSON

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

func (RoleSelectMenuComponent) Type

func (RoleSelectMenuComponent) WithCustomID

func (c RoleSelectMenuComponent) WithCustomID(customID string) RoleSelectMenuComponent

WithCustomID returns a new RoleSelectMenuComponent with the provided customID

func (RoleSelectMenuComponent) WithDisabled

func (c RoleSelectMenuComponent) WithDisabled(disabled bool) RoleSelectMenuComponent

WithDisabled returns a new RoleSelectMenuComponent with the provided disabled

func (RoleSelectMenuComponent) WithMaxValues

func (c RoleSelectMenuComponent) WithMaxValues(maxValue int) RoleSelectMenuComponent

WithMaxValues returns a new RoleSelectMenuComponent with the provided maxValue

func (RoleSelectMenuComponent) WithMinValues

func (c RoleSelectMenuComponent) WithMinValues(minValue int) RoleSelectMenuComponent

WithMinValues returns a new RoleSelectMenuComponent with the provided minValue

func (RoleSelectMenuComponent) WithPlaceholder

func (c RoleSelectMenuComponent) WithPlaceholder(placeholder string) RoleSelectMenuComponent

WithPlaceholder returns a new RoleSelectMenuComponent with the provided placeholder

type RoleSelectMenuInteractionData

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

func (RoleSelectMenuInteractionData) CustomID

func (RoleSelectMenuInteractionData) MarshalJSON

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

func (RoleSelectMenuInteractionData) Roles

func (d RoleSelectMenuInteractionData) Roles() []Role

func (RoleSelectMenuInteractionData) Type

func (*RoleSelectMenuInteractionData) UnmarshalJSON

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

type RoleSelectMenuResolved

type RoleSelectMenuResolved struct {
	Roles map[snowflake.ID]Role `json:"roles"`
}

type RoleSubscriptionData added in v0.5.1

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 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 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 SelectMenuInteractionData

type SelectMenuInteractionData interface {
	ComponentInteractionData
	// contains filtered or unexported methods
}

type SelfUserUpdate

type SelfUserUpdate struct {
	Username string               `json:"username,omitempty"`
	Avatar   *json.Nullable[Icon] `json:"avatar,omitempty"`
}

SelfUserUpdate is the payload used to update the OAuth2User

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) CreatedAt

func (c SlashCommand) CreatedAt() time.Time

func (SlashCommand) DMPermission

func (c SlashCommand) DMPermission() bool

func (SlashCommand) DefaultMemberPermissions

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) MarshalJSON

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

func (SlashCommand) Mention

func (c SlashCommand) Mention() string

func (SlashCommand) NSFW

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
	DMPermission             *bool                       `json:"dm_permission,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            SlashCommandResolved
	Options             map[string]SlashCommandOption
	// contains filtered or unexported fields
}

func (SlashCommandInteractionData) All

func (SlashCommandInteractionData) Attachment

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

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

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

func (SlashCommandInteractionData) Int

func (SlashCommandInteractionData) MarshalJSON

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

func (SlashCommandInteractionData) Member

func (SlashCommandInteractionData) OptAttachment

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 SlashCommandResolved

type SlashCommandResolved 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 (*SlashCommandResolved) UnmarshalJSON

func (r *SlashCommandResolved) UnmarshalJSON(data []byte) error

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"`
	DMPermission             *bool                       `json:"dm_permission,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

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"`
}

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

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

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

func NewStringSelectMenu(customID string, placeholder string, options ...StringSelectMenuOption) StringSelectMenuComponent

NewStringSelectMenu builds a new SelectMenuComponent from the provided values

func (StringSelectMenuComponent) AddOptions

AddOptions returns a new StringSelectMenuComponent with the provided StringSelectMenuOption(s) added

func (StringSelectMenuComponent) AsDisabled

AsDisabled returns a new StringSelectMenuComponent but disabled

func (StringSelectMenuComponent) AsEnabled

AsEnabled returns a new StringSelectMenuComponent but enabled

func (StringSelectMenuComponent) ID

func (StringSelectMenuComponent) MarshalJSON

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

func (StringSelectMenuComponent) RemoveOption

RemoveOption returns a new StringSelectMenuComponent with the provided StringSelectMenuOption at the index removed

func (StringSelectMenuComponent) SetOption

SetOption returns a new StringSelectMenuComponent with the StringSelectMenuOption which has the value replaced

func (StringSelectMenuComponent) SetOptions

SetOptions returns a new StringSelectMenuComponent with the provided StringSelectMenuOption(s)

func (StringSelectMenuComponent) Type

func (StringSelectMenuComponent) WithCustomID

WithCustomID returns a new StringSelectMenuComponent with the provided customID

func (StringSelectMenuComponent) WithDisabled

func (c StringSelectMenuComponent) WithDisabled(disabled bool) StringSelectMenuComponent

WithDisabled returns a new StringSelectMenuComponent with the provided disabled

func (StringSelectMenuComponent) WithMaxValues

func (c StringSelectMenuComponent) WithMaxValues(maxValue int) StringSelectMenuComponent

WithMaxValues returns a new StringSelectMenuComponent with the provided maxValue

func (StringSelectMenuComponent) WithMinValues

func (c StringSelectMenuComponent) WithMinValues(minValue int) StringSelectMenuComponent

WithMinValues returns a new StringSelectMenuComponent with the provided minValue

func (StringSelectMenuComponent) WithPlaceholder

func (c StringSelectMenuComponent) WithPlaceholder(placeholder string) StringSelectMenuComponent

WithPlaceholder returns a new StringSelectMenuComponent with the provided placeholder

type StringSelectMenuInteractionData

type StringSelectMenuInteractionData struct {
	Values []string
	// contains filtered or unexported fields
}

func (StringSelectMenuInteractionData) CustomID

func (StringSelectMenuInteractionData) MarshalJSON

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

func (StringSelectMenuInteractionData) Type

func (*StringSelectMenuInteractionData) UnmarshalJSON

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

type StringSelectMenuOption

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

func NewStringSelectMenuOption(label string, value string) StringSelectMenuOption

NewStringSelectMenuOption builds a new StringSelectMenuOption

func (StringSelectMenuOption) WithDefault

func (o StringSelectMenuOption) WithDefault(defaultOption bool) StringSelectMenuOption

WithDefault returns a new StringSelectMenuOption as default/non-default

func (StringSelectMenuOption) WithDescription

func (o StringSelectMenuOption) WithDescription(description string) StringSelectMenuOption

WithDescription returns a new StringSelectMenuOption with the provided description

func (StringSelectMenuOption) WithEmoji

WithEmoji returns a new StringSelectMenuOption with the provided Emoji

func (StringSelectMenuOption) WithLabel

WithLabel returns a new StringSelectMenuOption with the provided label

func (StringSelectMenuOption) WithValue

WithValue returns a new StringSelectMenuOption with the provided value

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

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

func (SystemChannelFlags) Has

Has will ensure that the bit includes all the bits entered

func (SystemChannelFlags) Missing

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

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

func (SystemChannelFlags) Remove

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

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"`
	Permissions     []TeamPermissions `json:"permissions"`
	TeamID          snowflake.ID      `json:"team_id"`
	User            User              `json:"user"`
}

type TeamPermissions

type TeamPermissions string

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 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

type ThreadChannelPost added in v0.5.0

type ThreadChannelPost struct {
	GuildThread
	Message Message `json:"message"`
}

type ThreadChannelPostCreate added in v0.5.0

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.5.0

func (c ThreadChannelPostCreate) ToBody() (any, error)

type ThreadCreate

type ThreadCreate interface {
	json.Marshaler
	Type() ChannelType
}

type ThreadCreateFromMessage

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

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"`
	AvatarDecoration *string      `json:"avatar_decoration"`
}

User is a struct for interacting with discord's users

func (User) AvatarDecorationURL added in v0.5.0

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

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.2.1

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) CreatedAt

func (c UserCommand) CreatedAt() time.Time

func (UserCommand) DMPermission

func (c UserCommand) DMPermission() bool

func (UserCommand) DefaultMemberPermissions

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) MarshalJSON

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

func (UserCommand) NSFW

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"`
	DMPermission             *bool                       `json:"dm_permission,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

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

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"`
	DMPermission             *bool                       `json:"dm_permission,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

func (f UserFlags) Add(bits ...UserFlags) UserFlags

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

func (UserFlags) Has

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

Has will ensure that the bit includes all the bits entered

func (UserFlags) Missing

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

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

func (UserFlags) Remove

func (f UserFlags) Remove(bits ...UserFlags) UserFlags

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

type UserSelectMenuComponent

type UserSelectMenuComponent 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"`
}

func NewUserSelectMenu

func NewUserSelectMenu(customID string, placeholder string) UserSelectMenuComponent

NewUserSelectMenu builds a new SelectMenuComponent from the provided values

func (UserSelectMenuComponent) AsDisabled

AsDisabled returns a new UserSelectMenuComponent but disabled

func (UserSelectMenuComponent) AsEnabled

AsEnabled returns a new UserSelectMenuComponent but enabled

func (UserSelectMenuComponent) ID

func (UserSelectMenuComponent) MarshalJSON

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

func (UserSelectMenuComponent) Type

func (UserSelectMenuComponent) WithCustomID

func (c UserSelectMenuComponent) WithCustomID(customID string) UserSelectMenuComponent

WithCustomID returns a new UserSelectMenuComponent with the provided customID

func (UserSelectMenuComponent) WithDisabled

func (c UserSelectMenuComponent) WithDisabled(disabled bool) UserSelectMenuComponent

WithDisabled returns a new UserSelectMenuComponent with the provided disabled

func (UserSelectMenuComponent) WithMaxValues

func (c UserSelectMenuComponent) WithMaxValues(maxValue int) UserSelectMenuComponent

WithMaxValues returns a new UserSelectMenuComponent with the provided maxValue

func (UserSelectMenuComponent) WithMinValues

func (c UserSelectMenuComponent) WithMinValues(minValue int) UserSelectMenuComponent

WithMinValues returns a new UserSelectMenuComponent with the provided minValue

func (UserSelectMenuComponent) WithPlaceholder

func (c UserSelectMenuComponent) WithPlaceholder(placeholder string) UserSelectMenuComponent

WithPlaceholder returns a new UserSelectMenuComponent with the provided placeholder

type UserSelectMenuInteractionData

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

func (UserSelectMenuInteractionData) CustomID

func (UserSelectMenuInteractionData) MarshalJSON

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

func (UserSelectMenuInteractionData) Members

func (UserSelectMenuInteractionData) Type

func (*UserSelectMenuInteractionData) UnmarshalJSON

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

func (UserSelectMenuInteractionData) Users

func (d UserSelectMenuInteractionData) Users() []User

type UserSelectMenuResolved

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

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 VisibilityType

type VisibilityType int
const (
	VisibilityTypeNone VisibilityType = iota
	VisibilityTypeEveryone
)

type VoiceRegion

type VoiceRegion struct {
	ID         snowflake.ID `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"`
}

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

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

ClearFlags clears the discord.MessageFlags of the 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

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

SetFlags sets the message flags of the Message

func (*WebhookMessageCreateBuilder) SetSuppressEmbeds

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

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"`
}

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) 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

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 *string      `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

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