Documentation ¶
Index ¶
- Constants
- Variables
- type Activity
- type ActivityAssets
- type ActivityFlag
- type ActivityParty
- type ActivitySecrets
- type ActivityTimestamp
- type ActivityType
- type Application
- type ApplicationFlag
- type Attachment
- type Buttons
- type Channel
- type ChannelMention
- type ChannelType
- type ClientStatus
- type Embed
- type EmbedAuthor
- type EmbedField
- type EmbedFooter
- type EmbedImage
- type EmbedProvider
- type EmbedThumbnail
- type EmbedType
- type EmbedVideo
- type Emoji
- type ExplicitContentFilterLevel
- type GEvent
- type GatewayErrorEventCode
- type GatewayEvent
- type GatewayEventChannelCreate
- type GatewayEventChannelDelete
- type GatewayEventChannelPinsUpdate
- type GatewayEventChannelUpdate
- type GatewayEventClientShutdown
- type GatewayEventGuildBanAdd
- type GatewayEventGuildBanRemove
- type GatewayEventGuildCreate
- type GatewayEventGuildDelete
- type GatewayEventGuildEmojisUpdate
- type GatewayEventGuildIntegrationDelete
- type GatewayEventGuildIntegrationUpdate
- type GatewayEventGuildIntegrationsUpdate
- type GatewayEventGuildMemberAdd
- type GatewayEventGuildMemberRemove
- type GatewayEventGuildMemberUpdate
- type GatewayEventGuildMembersChunk
- type GatewayEventGuildRoleCreate
- type GatewayEventGuildRoleDelete
- type GatewayEventGuildRoleUpdate
- type GatewayEventGuildScheduledEventCreate
- type GatewayEventGuildScheduledEventDelete
- type GatewayEventGuildScheduledEventUpdate
- type GatewayEventGuildScheduledEventUserAdd
- type GatewayEventGuildScheduledEventUserRemove
- type GatewayEventGuildStickersUpdate
- type GatewayEventGuildUpdate
- type GatewayEventHeartBeatRequest
- type GatewayEventHeartbeatACK
- type GatewayEventHello
- type GatewayEventIntegrationCreate
- type GatewayEventInvalidSession
- type GatewayEventInviteCreate
- type GatewayEventInviteDelete
- type GatewayEventMessageCreate
- type GatewayEventMessageDelete
- type GatewayEventMessageDeleteBulk
- type GatewayEventMessageReactionAdd
- type GatewayEventMessageReactionRemove
- type GatewayEventMessageReactionRemoveAll
- type GatewayEventMessageReactionRemoveEmoji
- type GatewayEventMessageUpdate
- type GatewayEventPresenceUpdate
- type GatewayEventReady
- type GatewayEventReconnect
- type GatewayEventResumed
- type GatewayEventStageInstanceCreate
- type GatewayEventStageInstanceDelete
- type GatewayEventStageInstanceUpdate
- type GatewayEventThreadCreate
- type GatewayEventThreadDelete
- type GatewayEventThreadListSync
- type GatewayEventThreadMemberUpdate
- type GatewayEventThreadMembersUpdate
- type GatewayEventThreadUpdate
- type GatewayEventType
- type GatewayEventTypingStart
- type GatewayEventUserUpdate
- type GatewayEventVoiceServerUpdate
- type GatewayEventVoiceStateUpdate
- type GatewayEventWebhooksUpdate
- type GatewayIdentify
- type GatewayIdentifyData
- type GatewayIdentifyProperties
- type GatewayIntent
- type GatewayOpcode
- type Guild
- type GuildFeature
- type GuildMember
- type GuildScheduledEvent
- type GuildScheduledEventEntityMetadata
- type GuildScheduledEventEntityType
- type GuildScheduledEventPrivacyLevel
- type GuildScheduledEventStatus
- type ImageHash
- type ImageType
- type Invite
- type InviteMetadata
- type InviteStageInstance
- type InviteTargetType
- type MFALevel
- type Message
- type MessageActivity
- type MessageActivityType
- type MessageFlag
- type MessageNotificationsLevel
- type MessageReference
- type MessageType
- type NSFWLevel
- type Overwrite
- type OverwriteIDType
- type PermissionFlag
- type PremiumTier
- type PremiumType
- type PresenceStatus
- type PresenceUpdate
- type PrivacyLevel
- type Reaction
- type Role
- type RoleTag
- type ShardInformation
- type Snowflake
- func (snowflake Snowflake) Increment() uint16
- func (snowflake Snowflake) InternalProcessID() uint8
- func (snowflake Snowflake) InternalWorkerID() uint8
- func (snowflake Snowflake) IsValid() bool
- func (snowflake Snowflake) Timestamp() time.Time
- func (snowflake *Snowflake) UnmarshalJSON(data []byte) error
- type StageInstance
- type Sticker
- type StickerFormatType
- type StickerType
- type SystemChannelFlag
- type Team
- type TeamMember
- type TeamMembershipState
- type ThreadMember
- type ThreadMetadata
- type UnavailableGuild
- type User
- type UserFlag
- type VerificationLevel
- type VoiceQualityMode
- type VoiceRegion
- type VoiceState
- type WelcomeScreen
Constants ¶
const (
//DiscordCDNBaseURL is the baseUrl for all CDN endpoints
DiscordCDNBaseURL = "https://cdn.discordapp.com/"
)
const (
DiscordEpoch int64 = 1420070400000
)
Variables ¶
var ( //ErrorInvalidUTF8 is when a message does not contain valid utf8 ErrorInvalidUTF8 = fmt.Errorf("primitives: message contains invalid utf8") //ErrorEmbedTooLarge is when the combined sum of characters in Embed.Title, Embed.Description, all EmbedFields (EmbedField.Name, EmbedField.Value), EmbedFooter.Text, and EmbedAuthor.Name fields across all embeds attached to a message exceeds 6000 characters ErrorEmbedTooLarge = fmt.Errorf("primitives: embed data too large") //ErrorEmbedTitleTooLarge is when Embed.Title is over 256 characters ErrorEmbedTitleTooLarge = fmt.Errorf("primitives: embed title too large") //ErrorEmbedDescriptionTooLarge is when Embed.Description is over 4096 characters ErrorEmbedDescriptionTooLarge = fmt.Errorf("primitives: embed description too large") //ErrorEmbedFieldsTooLarge is when len(Embed.Fields) > 25 ErrorEmbedFieldsTooLarge = fmt.Errorf("primitives: too many embed fields") //ErrorEmbedFieldNameTooLarge is when EmbedField.Name is over 256 characters ErrorEmbedFieldNameTooLarge = fmt.Errorf("primitives: embedfield name too large") //ErrorEmbedFieldValueTooLarge is when EmbedField.Value is over 1024 characters ErrorEmbedFieldValueTooLarge = fmt.Errorf("primitives: embedfield value too large") ErrorEmbedFooterTextTooLarge = fmt.Errorf("primitives: embed footer text too large") //ErrorEmbedAuthorNameTooLarge is when EmbedAuthor.Name is over 256 characters ErrorEmbedAuthorNameTooLarge = fmt.Errorf("primitives: embed author name too large") )
var ErrorNoGatewayEventByName = fmt.Errorf("primitives: no valid GatewayEvent for given GatewayEventName")
Functions ¶
This section is empty.
Types ¶
type Activity ¶
type Activity struct { //Name of Activity Name string `json:"name"` //Type of Activity Type ActivityType `json:"type,string"` //Url of Stream when Type=Streaming Url string `json:"url"` //CreatedAt unix timestamp in milliseconds when activity was created in user session CreatedAt time.Time `json:"created_at"` //Timestamps for start and end of game Timestamps []ActivityTimestamp `json:"timestamps"` //ApplicationID of game ApplicationID Snowflake `json:"application_id"` //Details of what User is doing Details string `json:"details"` //State of current User party State string `json:"state"` //Emoji for in custom status Emoji Emoji `json:"emoji"` //Party of User Party ActivityParty `json:"party"` //Assets such as images and hover-texts for presence Assets ActivityAssets `json:"assets"` //Secrets for Rich Presence joining and spectating Secrets ActivitySecrets `json:"secrets"` //IsInstance of game session IsInstance bool `json:"is_instance,string"` //Flags of Activity ORed together Flags ActivityFlag `json:"flags,string"` //Buttons shown in RichPresence (max 2) Buttons []Buttons `json:"buttons"` }
Activity struct documented at https://discord.com/developers/docs/topics/gateway#activity-object
type ActivityAssets ¶
type ActivityAssets struct { //LargeImage Asset todo: check if this is for CDN LargeImage Snowflake `json:"large_image"` //LargeText shown when hovering over large image of Activity LargeText string `json:"large_text"` //SmallImage Asset todo: check if this is for CDN SmallImage Snowflake `json:"small_image"` //SmallText shown when hovering over small image of Activity SmallText Snowflake `json:"small_text"` }
ActivityAssets documented at https://discord.com/developers/docs/topics/gateway#activity-object-activity-assets
type ActivityFlag ¶
type ActivityFlag uint8
ActivityFlag (bitwise, potential combination of flags) documented at https://discord.com/developers/docs/topics/gateway#activity-object-activity-flags
const ( //ActivityFlagInvalid is a purposefully invalid Flag; for it is the default value of ActivityFlag ActivityFlagInvalid ActivityFlag = 0 //ActivityFlagInstance of an Activity ActivityFlagInstance ActivityFlag = 1 << (iota - 1) //ActivityFlagJoin of an Activity ActivityFlagJoin //ActivityFlagSpectate of an Activity ActivityFlagSpectate //ActivityFlagJoinRequest of an Activity ActivityFlagJoinRequest //ActivityFlagSync of an Activity ActivityFlagSync //ActivityFlagPlay of an Activity ActivityFlagPlay //ActivityFlagAll ANDed bitmask of all ActivityFlag(s) ActivityFlagAll ActivityFlag = (1 << (iota - 1)) - 1 )
func (ActivityFlag) Contains ¶
func (activityFlag ActivityFlag) Contains(flags ActivityFlag) bool
Contains a ActivityFlag
type ActivityParty ¶
type ActivityParty struct { //ID of ActivityParty ID string `json:"id"` //Size of ActivityParty; size[0] is current size, size[1] is max size Size [2]int `json:"size"` }
ActivityParty documented at https://discord.com/developers/docs/topics/gateway#activity-object-activity-party
type ActivitySecrets ¶
type ActivitySecrets struct { //Join Secret for ActivityParty Join string `json:"join"` //Spectate Secret for ActivityParty Spectate string `json:"spectate"` //Match Secret for an Instanced Match Match string `json:"match"` }
ActivitySecrets documented at https://discord.com/developers/docs/topics/gateway#activity-object-activity-secrets
type ActivityTimestamp ¶
type ActivityTimestamp struct { //Start of Activity Start time.Time `json:"start"` //End of Activity End time.Time `json:"end"` }
ActivityTimestamp documented at https://discord.com/developers/docs/topics/gateway#activity-object-activity-timestamps
type ActivityType ¶
type ActivityType uint8
ActivityType documented at https://discord.com/developers/docs/topics/gateway#activity-object-activity-types
const ( //ActivityTypeGame is when ActivityType is a Game ActivityTypeGame ActivityType = iota //ActivityTypeStreaming is when ActivityType is a Stream ActivityTypeStreaming //ActivityTypeListening is when ActivityType is Listening ActivityTypeListening //ActivityTypeWatching is when ActivityType is Watching ActivityTypeWatching //ActivityTypeCustom is when ActivityType is a Custom PresenceStatus ActivityTypeCustom //ActivityTypeCompeting is when ActivityType is Competing ActivityTypeCompeting //ActivityTypeInvalid is purposefully when ActivityType is Invalid ActivityTypeInvalid = math.MaxUint8 )
todo: potentially make ActivityType default value not the same as the discord API; makes the default value not ActivityTypeGame
type Application ¶
type Application struct { //ID of Application ID Snowflake `json:"id,string"` //Name of Application Name string `json:"name"` //IconHash of Application IconHash ImageHash `json:"icon"` //Description of Application Description string `json:"description"` //RPCOriginsURLs if RPC enabled RPCOriginURLS []string `json:"rpc_origin_urls"` //IsBotPublic or can only Owner User join this Bot to Guild(s) IsBotPublic bool `json:"bot_public"` //BotRequiresCodeGrant completion of oauth2 flow BotRequiresCodeGrant bool `json:"bot_require_code_grant"` //TermsOfServiceURL of Application TermsOfServiceURL string `json:"terms_of_service_url"` //PrivacyPolicyURL of Application PrivacyPolicyURL string `json:"privacy_policy_url"` //Owner of Application (with discriminator, flags, id, and username fields filled) Owner User `json:"owner"` //Summary of Application if sold on Discord Store Summary string `json:"summary"` //VerifyKey in HEX for Application Interactions and GameSDK GetTicker VerifyKey string `json:"verify_key"` //Team if Application belongs to a Team Team Team `json:"team"` //GuildID Application has been linked to GuildID Snowflake `json:"guild_id,string"` //PrimarySKUID of Game SKU PrimarySKUID Snowflake `json:"primary_sku_id,string"` //URLSlug if sold on Discord as a Game URLSlug string `json:"slug"` //CoverImageHash of Application's default rich presence Invite CoverImageHash ImageHash `json:"cover_image"` //Flags of Application that are public Flags ApplicationFlag `json:"flags"` }
Application documented at https://discord.com/developers/docs/resources/application#application-object
type ApplicationFlag ¶
type ApplicationFlag uint32
ApplicationFlag documented at https://discord.com/developers/docs/resources/application#application-object-application-flags
type Attachment ¶
type Attachment struct { //ID of the Attachment ID Snowflake `json:"id"` //FileName of the Attachment FileName string `json:"filename"` //Description for the File Description string `json:"description"` //ContentType is the MIME type of the Attachment ContentType string `json:"content_type"` //Size of the File in bytes Size int `json:"size"` //URL for File URL string `json:"URL"` //ProxyURL of a proxied Attachment ProxyURL string `json:"proxy_url"` //Height of File (if image) Height int `json:"height"` //Width of File (if image)k Width int `json:"width"` //IsEphemeral Attachment that will be removed after set period of time IsEphemeral bool `json:"ephemeral"` }
Attachment documented at https://discord.com/developers/docs/resources/channel#attachment-object
type Buttons ¶
type Buttons struct { //Label of Button (1-32 characters) Label string `json:"label"` //Url opened when clicking button (1-512 characters) Url string `json:"url"` }
Buttons documented at https://discord.com/developers/docs/topics/gateway#activity-object-activity-buttons
type Channel ¶
type Channel struct { //ID of Channel ID Snowflake `json:"id,string"` //Type of Channel Type ChannelType `json:"type"` //GuildID of Guild; may be missing for some channel objects received over gateway guild dispatches) GuildID Snowflake `json:"guild_id,string"` //Position of sorting Position int `json:"position"` //PermissionOverwrites for GuildMembers and Roles; these are explicit PermissionOverwrites []Overwrite `json:"permission_overwrites"` //Name of Channel (1-100 characters) Name string `json:"name"` //Topic of Channel (0-1024 characters) Topic string `json:"topic"` //IsNSFW Channel IsNSFW bool `json:"nsfw"` //LastMessageID for Channel (may not point to actual message) LastMessageID Snowflake `json:"last_message_id,string"` //Bitrate of Channel if VC Bitrate int `json:"bitrate"` //MemberLimit of Channel if VC MemberLimit int `json:"user_limit"` //RateLimitPerMember that a GuildMember has to wait before sending another message (0-21600); members with MANAGE_MESSAGES or MANAGE_CHANNEL are unaffected; applies to both message and create creation RateLimitPerMember int `json:"rate_limit_per_user"` //Recipients of a DM Recipients []User `json:"recipients"` //IconHash for grabbing Icon from CDN IconHash ImageHash `json:"icon"` //OwnerID of group DM or Thread OwnerID Snowflake `json:"owner_id,string"` //ApplicationID if group DM is bot-created ApplicationID Snowflake `json:"application_id,string"` //ParentID for a Guild Channel: category, Thread: Channel where created ParentID Snowflake `json:"parent_id,string"` //LastPinTimestamp maybe nil when no Messages have been pinned LastPinTimestamp time.Time `json:"last_pin_timestamp"` //VoiceRegion, empty if automatic VoiceRegion VoiceRegion `json:"rtc_region"` //VideoQualityMode of Channel, 1 when not present VoiceQualityMode VoiceQualityMode `json:"voice_quality_mode"` //MessageCount, this is Approximate, stops after 50 MessageCount int `json:"message_count"` //MemberCount, this is Approximate, stops after 50 MemberCount int `json:"member_count"` //ThreadMetadata not needed by other channels ThreadMetadata ThreadMetadata `json:"thread_metadata"` //Member aka current user if they have joined thread; only available for certain API Endpoints Member ThreadMember `json:"member"` //DefaultAutoArchiveDuration that clients use for newly made threads in minutes after activity; can be set to 60, 1440, 4320, 10080 DefaultAutoArchiveDuration int `json:"default_auto_archive_duration"` //Permissions of Bot user including overwrites; only included when part of RESOLVED data received from SlashCommandInteraction Permissions string `json:"permissions"` }
Channel struct from https://discord.com/developers/docs/resources/channel#channel-object
type ChannelMention ¶
type ChannelMention struct { //ID of Channel ID Snowflake `json:"id,string"` //GuildID containing Channel GuildID Snowflake `json:"guild_id,string"` //Type of Channel Type ChannelType `json:"type"` //Name of Channel Name string `json:"name"` }
ChannelMention documented at https://discord.com/developers/docs/resources/channel#channel-mention-object
type ChannelType ¶
type ChannelType uint8
ChannelType from https://discord.com/developers/docs/resources/channel#channel-object-channel-types
const ( //ChannelTypeGuildText is a text Channel within a Guild ChannelTypeGuildText ChannelType = iota //ChannelTypeDM is a direct message between User(s) ChannelTypeDM //ChannelTypeGuildVoice is a voice Channel within a Guild ChannelTypeGuildVoice //ChannelTypeGroupDM is a direct message between multiple User(s) ChannelTypeGroupDM //ChannelTypeGuildCategory is an OrganizationalCategory (max 50 Channel(s)) documented at https://support.discord.com/hc/en-us/articles/115001580171-Channel-Categories-101 ChannelTypeGuildCategory //ChannelTypeGuildNews is a followable Channel that duplications messages into another Guild ChannelTypeGuildNews //ChannelTypeGuildStore is a Channel for game sellers ChannelTypeGuildStore //ChannelTypeGuildNewsThread is a Thread within ChannelTypeGuildNews ChannelTypeGuildNewsThread ChannelType = iota + 3 //ChannelTypeGuildPublicThread is a Thread within ChannelTypeGuildText ChannelTypeGuildPublicThread //ChannelTypeGuildPrivateThread is a private Thread shown to those with Permission(s) ChannelTypeGuildPrivateThread //ChannelTypeGuildStageVoice is a Voice Channel for a GuildMember to many GuildMember(s) with options for choosing hosts or raising hands ChannelTypeGuildStageVoice //ChannelTypeINVALID is a purposefully invalid and not used ChannelType ChannelTypeINVALID ChannelType = math.MaxUint8 )
todo: potentially change ChannelType to not follow discord, as default value is 0 and discord defines GuildText as 0
type ClientStatus ¶
type ClientStatus struct { //IsDesktop application session Desktop string `json:"desktop"` //IsMobile application session Mobile string `json:"mobile"` //IsWeb or Bot application session Web string `json:"web"` }
ClientStatus struct documented at https://discord.com/developers/docs/topics/gateway#client-status-object
type Embed ¶
type Embed struct { //Title of Embed Title string `json:"title"` //Type of Embed, always EmbedTypeRich for a webhook Embed Type EmbedType `json:"type"` //Description of Embed Description string `json:"description"` //URL of Embed URL string `json:"URL"` //Timestamp of Embed Timestamp time.Time `json:"timestamp"` //ColorCode of Embed ColorCode int `json:"color"` Footer EmbedFooter `json:"footer"` //Image of Embed Image EmbedImage `json:"image"` //Thumbnail of Embed Thumbnail EmbedThumbnail `json:"thumbnail"` //Video of Embed Video EmbedVideo `json:"video"` //Provider of Embed Provider EmbedProvider `json:"provider"` //Author of Embed Author EmbedAuthor `json:"author"` //Fields of Embed Fields []EmbedField `json:"fields"` }
Embed documented https://discord.com/developers/docs/resources/channel#embed-object
func (Embed) IsValid ¶
IsValid Embed following https://discord.com/developers/docs/resources/channel#embed-object-embed-limits, nil if valid, don't know if discord considers a rune a character or an utf-8 character, assuming utf-8
type EmbedAuthor ¶
type EmbedAuthor struct { //Name of EmbedAuthor Name string `json:"name"` //URL for EmbedAuthor URL string `json:"url"` //IconURL of EmbedAuthor IconURL string `json:"icon_url"` //ProxyIconUrl for EmbedAuthor ProxyIconURL string `json:"proxy_icon_url"` }
EmbedAuthor documented at https://discord.com/developers/docs/resources/channel#embed-object-embed-author-structure
type EmbedField ¶
type EmbedField struct { //Name of EmbedField Name string `json:"name"` //Value of EmbedField Value string `json:"value"` //IsInline displayed IsInline bool `json:"inline"` }
EmbedField documented at https://discord.com/developers/docs/resources/channel#embed-object-embed-field-structure
type EmbedFooter ¶
type EmbedFooter struct { string `json:"text"` IconURL string `json:"icon_url"` ProxyIconURL string `json:"proxy_icon_url"` }Text
EmbedFooter documented at https://discord.com/developers/docs/resources/channel#embed-object-embed-footer-structure
type EmbedImage ¶
type EmbedImage struct { //URL for EmbedImage URL string `json:"url"` //ProxyURL for EmbedImage ProxyURL string `json:"proxy_url"` //Height of EmbedImage Height int `json:"height"` //Width of EmbedImage Width int `json:"width"` }
EmbedImage documented at https://discord.com/developers/docs/resources/channel#embed-object-embed-image-structure
type EmbedProvider ¶
type EmbedProvider struct { //Name of EmbedProvider Name string `json:"name"` //URL for EmbedProvider URL string `json:"url"` }
EmbedProvider documented at https://discord.com/developers/docs/resources/channel#embed-object-embed-provider-structure
type EmbedThumbnail ¶
type EmbedThumbnail struct { //URL for EmbedThumbnail URL string `json:"url"` //ProxyURL for EmbedThumbnail ProxyURL string `json:"proxy_url"` //Height of EmbedThumbnail Height int `json:"height"` //Width of EmbedThumbnail Width int `json:"width"` }
EmbedThumbnail documented at https://discord.com/developers/docs/resources/channel#embed-object-embed-thumbnail-structure
type EmbedType ¶
type EmbedType string
EmbedType is documented at https://discord.com/developers/docs/resources/channel#embed-object-embed-types
type EmbedVideo ¶
type EmbedVideo struct { //URL for EmbedVideo URL string `json:"url"` //ProxyURL for EmbedVideo ProxyURL string `json:"proxy_url"` //Height of EmbedVideo Height int `json:"height"` //Width of EmbedVideo Width int `json:"width"` }
EmbedVideo documented at https://discord.com/developers/docs/resources/channel#embed-object-embed-video-structure
type Emoji ¶
type Emoji struct { //ID of Emoji ID Snowflake `json:"id,string"` //Name of Emoji; empty in reaction Emoji Name string `json:"name"` //Roles allowed to use this Emoji Roles []Role `json:"roles"` //Creator of this Emoji Creator User `json:"user"` //RequiresColons wrapped around Name to use RequiresColons bool `json:"require_colons"` //IsManaged Emoji? IsManaged bool `json:"managed"` //IsAnimated Emoji? IsAnimated bool `json:"animated"` //IsAvailable to use; may be false if Guild Boosts are removed IsAvailable bool `json:"available"` }
Emoji struct from https://discord.com/developers/docs/resources/emoji#emoji-object
type ExplicitContentFilterLevel ¶
type ExplicitContentFilterLevel uint8
ExplicitContentFilterLevel from https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level
type GEvent ¶
type GEvent struct { //Opcode for payload; Opcode GatewayOpcode `json:"op"` Data json.RawMessage `json:"d,omitempty"` SequenceNumber int `json:"s,omitempty"` Name string `json:"t,omitempty"` }
GEvent is an Opcode event from the Gateway, I really wish discord didn't send data like this, makes it essentially impossible to parse without multiple passes maybe look into seeing if ETF is any better
type GatewayErrorEventCode ¶
type GatewayErrorEventCode int
GatewayErrorEventCode documented at https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-close-event-codes
const ( GatewayErrorEventCodeUnknownError GatewayErrorEventCode = 4000 GatewayErrorEventCodeUnknownOpcode GatewayErrorEventCode = 4001 GatewayErrorEventCodeDecodeError GatewayErrorEventCode = 4002 GatewayErrorEventCodeNotAuthenticated GatewayErrorEventCode = 4003 GatewayErrorEventCodeAuthenticationFailed GatewayErrorEventCode = 4004 GatewayErrorEventCodeAlreadyAuthenticated GatewayErrorEventCode = 4005 GatewayErrorEventCodeInvalidSequence GatewayErrorEventCode = 4007 GatewayErrorEventCodeRateLimited GatewayErrorEventCode = 4008 GatewayErrorEventCodeSessionTimedOut GatewayErrorEventCode = 4009 GatewayErrorEventCodeInvalidShard GatewayErrorEventCode = 4010 GatewayErrorEventCodeSharingRequired GatewayErrorEventCode = 4011 GatewayErrorEventCodeInvalidAPIVersion GatewayErrorEventCode = 4012 GatewayErrorEventCodeInvalidIntents GatewayErrorEventCode = 4013 GatewayErrorEventCodeDisallowedIntents GatewayErrorEventCode = 4014 )
type GatewayEvent ¶
type GatewayEvent interface { //Type of GatewayEvent Type() GatewayEventType Opcode() GatewayOpcode }
func GetGatewayEventByName ¶
func GetGatewayEventByName(name string) (GatewayEvent, error)
GetGatewayEventByName returns an interface which is a pointer to an empty struct of the corresponding GatewayEventType
type GatewayEventChannelCreate ¶
type GatewayEventChannelCreate struct {
Channel
}
func (GatewayEventChannelCreate) Opcode ¶
func (GatewayEventChannelCreate) Opcode() GatewayOpcode
func (GatewayEventChannelCreate) Type ¶
func (GatewayEventChannelCreate) Type() GatewayEventType
type GatewayEventChannelDelete ¶
type GatewayEventChannelDelete struct {
Channel
}
func (GatewayEventChannelDelete) Opcode ¶
func (GatewayEventChannelDelete) Opcode() GatewayOpcode
func (GatewayEventChannelDelete) Type ¶
func (GatewayEventChannelDelete) Type() GatewayEventType
type GatewayEventChannelPinsUpdate ¶
type GatewayEventChannelPinsUpdate struct { GuildID Snowflake `json:"guild_id"` ChannelID Snowflake `json:"channel_id"` LastPinTimestamp time.Time `json:"last_pin_timestamp"` }
GatewayEventChannelPinsUpdate documented at https://discord.com/developers/docs/topics/gateway#channel-pins-update This is *NOT* sent when a pinned message is deleted
func (GatewayEventChannelPinsUpdate) Opcode ¶
func (GatewayEventChannelPinsUpdate) Opcode() GatewayOpcode
func (GatewayEventChannelPinsUpdate) Type ¶
func (GatewayEventChannelPinsUpdate) Type() GatewayEventType
type GatewayEventChannelUpdate ¶
type GatewayEventChannelUpdate struct {
Channel
}
GatewayEventChannelUpdate documented at https://discord.com/developers/docs/topics/gateway#channel-update; todo: state for "last_message_id" is only tracked when listening for MessageCreate events
func (GatewayEventChannelUpdate) Opcode ¶
func (GatewayEventChannelUpdate) Opcode() GatewayOpcode
func (GatewayEventChannelUpdate) Type ¶
func (GatewayEventChannelUpdate) Type() GatewayEventType
type GatewayEventClientShutdown ¶
type GatewayEventClientShutdown struct { //err that caused shutdown Err error }
GatewayEventClientShutdown is the event thrown when the Client Library is shutdown
func (GatewayEventClientShutdown) Error ¶
func (g GatewayEventClientShutdown) Error() error
Error that caused the shutdown, nil if no error and standard shutdown
func (GatewayEventClientShutdown) Opcode ¶
func (GatewayEventClientShutdown) Opcode() GatewayOpcode
func (GatewayEventClientShutdown) Type ¶
func (GatewayEventClientShutdown) Type() GatewayEventType
type GatewayEventGuildBanAdd ¶
type GatewayEventGuildBanAdd struct { //GuildID User is banned from GuildID Snowflake `json:"guild_id"` //User that is banned User User `json:"user"` }
GatewayEventGuildBanAdd documented at https://discord.com/developers/docs/topics/gateway#guild-ban-add
func (GatewayEventGuildBanAdd) Opcode ¶
func (GatewayEventGuildBanAdd) Opcode() GatewayOpcode
func (GatewayEventGuildBanAdd) Type ¶
func (GatewayEventGuildBanAdd) Type() GatewayEventType
type GatewayEventGuildBanRemove ¶
type GatewayEventGuildBanRemove struct { //GuildID User is unbanned from GuildID Snowflake `json:"guild_id"` //User that is unbanned User User `json:"user"` }
GatewayEventGuildBanRemove documented at https://discord.com/developers/docs/topics/gateway#guild-ban-remove
func (GatewayEventGuildBanRemove) Opcode ¶
func (GatewayEventGuildBanRemove) Opcode() GatewayOpcode
func (GatewayEventGuildBanRemove) Type ¶
func (GatewayEventGuildBanRemove) Type() GatewayEventType
type GatewayEventGuildCreate ¶
type GatewayEventGuildCreate struct {
Guild
}
GatewayEventGuildCreate documented at https://discord.com/developers/docs/topics/gateway#guilds sent in scenarios: initial connection, after guild is available, Bot joins new Guild note: needs GatewayIntentGuildPresences Members and Presences in Guild(s) over 75k members contain only the Bot and ChannelTypeGuildVoice User(s)
func (GatewayEventGuildCreate) Opcode ¶
func (GatewayEventGuildCreate) Opcode() GatewayOpcode
func (GatewayEventGuildCreate) Type ¶
func (GatewayEventGuildCreate) Type() GatewayEventType
type GatewayEventGuildDelete ¶
type GatewayEventGuildDelete struct {
}GatewayEventGuildDelete documented at https://discord.com/developers/docs/topics/gateway#guild-delete if unavailable field is not set, user was removed from guild
func (GatewayEventGuildDelete) Opcode ¶
func (GatewayEventGuildDelete) Opcode() GatewayOpcode
func (GatewayEventGuildDelete) Type ¶
func (GatewayEventGuildDelete) Type() GatewayEventType
type GatewayEventGuildEmojisUpdate ¶
type GatewayEventGuildEmojisUpdate struct { //GuildID for Emoji(s) update GuildID Snowflake `json:"guild_id"` //Emojis of Guild //todo: check if this is actually an array of the changed or just all Emojis []Emoji `json:"emojis"` }
GatewayEventGuildEmojisUpdate documented at https://discord.com/developers/docs/topics/gateway#guild-emojis-update-guild-emojis-update-event-fields
func (GatewayEventGuildEmojisUpdate) Opcode ¶
func (GatewayEventGuildEmojisUpdate) Opcode() GatewayOpcode
func (GatewayEventGuildEmojisUpdate) Type ¶
func (GatewayEventGuildEmojisUpdate) Type() GatewayEventType
type GatewayEventGuildIntegrationDelete ¶
type GatewayEventGuildIntegrationDelete struct { //ID of the integration ID Snowflake `json:"id"` //GuildID of the integration GuildID Snowflake `json:"guild_id"` //ApplicationID of bot/OAuth2 application for this discord integration ApplicationID Snowflake `json:"application_id"` }
GatewayEventGuildIntegrationDelete documented at https://discord.com/developers/docs/topics/gateway#integration-delete
func (GatewayEventGuildIntegrationDelete) Opcode ¶
func (g GatewayEventGuildIntegrationDelete) Opcode() GatewayOpcode
func (GatewayEventGuildIntegrationDelete) Type ¶
func (g GatewayEventGuildIntegrationDelete) Type() GatewayEventType
type GatewayEventGuildIntegrationUpdate ¶
type GatewayEventGuildIntegrationUpdate struct { //GuildID of Guild that integration is updated in GuildID Snowflake `json:"guild_id"` }
GatewayEventGuildIntegrationUpdate documented at https://discord.com/developers/docs/topics/gateway#integration-update
func (GatewayEventGuildIntegrationUpdate) Opcode ¶
func (g GatewayEventGuildIntegrationUpdate) Opcode() GatewayOpcode
func (GatewayEventGuildIntegrationUpdate) Type ¶
func (g GatewayEventGuildIntegrationUpdate) Type() GatewayEventType
type GatewayEventGuildIntegrationsUpdate ¶
type GatewayEventGuildIntegrationsUpdate struct { //GuildID for Integration update GuildID Snowflake `json:"guild_id"` }
GatewayEventGuildIntegrationsUpdate documented at https://discord.com/developers/docs/topics/gateway#guild-integrations-update
func (GatewayEventGuildIntegrationsUpdate) Opcode ¶
func (GatewayEventGuildIntegrationsUpdate) Opcode() GatewayOpcode
func (GatewayEventGuildIntegrationsUpdate) Type ¶
func (GatewayEventGuildIntegrationsUpdate) Type() GatewayEventType
type GatewayEventGuildMemberAdd ¶
type GatewayEventGuildMemberAdd struct { //GuildID of that GuildMember was added to GuildID Snowflake `json:"guild_id"` GuildMember }
GatewayEventGuildMemberAdd documented at https://discord.com/developers/docs/topics/gateway#guild-member-add this requires GatewayIntentGuildMembers
func (GatewayEventGuildMemberAdd) Opcode ¶
func (GatewayEventGuildMemberAdd) Opcode() GatewayOpcode
func (GatewayEventGuildMemberAdd) Type ¶
func (GatewayEventGuildMemberAdd) Type() GatewayEventType
type GatewayEventGuildMemberRemove ¶
type GatewayEventGuildMemberRemove struct { //GuildID of the User removed GuildID Snowflake `json:"guild_id"` //User removed from Guild User User `json:"user"` }
GatewayEventGuildMemberRemove documented at https://discord.com/developers/docs/topics/gateway#guild-member-remove requires GatewayIntentGuildMembers
func (GatewayEventGuildMemberRemove) Opcode ¶
func (GatewayEventGuildMemberRemove) Opcode() GatewayOpcode
func (GatewayEventGuildMemberRemove) Type ¶
func (GatewayEventGuildMemberRemove) Type() GatewayEventType
type GatewayEventGuildMemberUpdate ¶
type GatewayEventGuildMemberUpdate struct { //GuildID of the User updated GuildID Snowflake `json:"guild_id"` //Roles of User Roles []Role `json:"roles"` //User updated User User `json:"user"` //Nickname of User Nickname string `json:"nick"` //AvatarHash of User AvatarHash ImageHash `json:"avatar_hash"` //JoinedAt time to Guild JoinedAt time.Time `json:"joined_at"` //PremiumSince Time in Guild PremiumSince time.Time `json:"premium_since"` //IsDeafened in Voice Channels IsDeafened bool `json:"deaf"` //IsMuted in Voice Channels IsMuted bool `json:"is_muted"` //IsPending membership screening IsPending bool `json:"is_pending"` //CommunicationDisabledUntil time.Time that the GuildMember will be able to communication is enabled again CommunicationDisabledUntil time.Time `json:"communication_disabled_until"` }
GatewayEventGuildMemberUpdate documented at https://discord.com/developers/docs/topics/gateway#guild-member-update requires GatewayIntentGuildMembers
func (GatewayEventGuildMemberUpdate) Opcode ¶
func (GatewayEventGuildMemberUpdate) Opcode() GatewayOpcode
func (GatewayEventGuildMemberUpdate) Type ¶
func (GatewayEventGuildMemberUpdate) Type() GatewayEventType
type GatewayEventGuildMembersChunk ¶
type GatewayEventGuildMembersChunk struct { //GuildID of the User updated GuildID Snowflake `json:"guild_id"` //Members of Chunk Members []GuildMember `json:"members"` //Index of Chunk Index int `json:"index"` //Count of Chunks expected Count int `json:"count"` //NotFoundIDs is the invalid ID sent to GuildRequestMembers //todo: check if this is a string NotFoundIDs []string `json:"not_found"` //Presences if true passed to GuildRequestMembers Presences []PresenceUpdate `json:"presences"` //Nonce used in GuildRequestMembers Nonce string `json:"nonce"` }
GatewayEventGuildMembersChunk documented at https://discord.com/developers/docs/topics/gateway#guild-members-chunk send in response to GuildRequestMembers
func (GatewayEventGuildMembersChunk) Opcode ¶
func (GatewayEventGuildMembersChunk) Opcode() GatewayOpcode
func (GatewayEventGuildMembersChunk) Type ¶
func (GatewayEventGuildMembersChunk) Type() GatewayEventType
type GatewayEventGuildRoleCreate ¶
type GatewayEventGuildRoleCreate struct { //GuildID of the Role GuildID Snowflake `json:"guild_id"` //Role created Role Role `json:"role"` }
GatewayEventGuildRoleCreate documented at https://discord.com/developers/docs/topics/gateway#guild-role-create
func (GatewayEventGuildRoleCreate) Opcode ¶
func (GatewayEventGuildRoleCreate) Opcode() GatewayOpcode
func (GatewayEventGuildRoleCreate) Type ¶
func (GatewayEventGuildRoleCreate) Type() GatewayEventType
type GatewayEventGuildRoleDelete ¶
type GatewayEventGuildRoleDelete struct { //GuildID of the Role GuildID Snowflake `json:"guild_id"` //Role created RoleID Snowflake `json:"role_id"` }
GatewayEventGuildRoleDelete documented at https://discord.com/developers/docs/topics/gateway#guild-role-delete
func (GatewayEventGuildRoleDelete) Opcode ¶
func (GatewayEventGuildRoleDelete) Opcode() GatewayOpcode
func (GatewayEventGuildRoleDelete) Type ¶
func (GatewayEventGuildRoleDelete) Type() GatewayEventType
type GatewayEventGuildRoleUpdate ¶
type GatewayEventGuildRoleUpdate struct { //GuildID of the Role GuildID Snowflake `json:"guild_id"` //Role created Role Role `json:"role"` }
GatewayEventGuildRoleUpdate documented at https://discord.com/developers/docs/topics/gateway#guild-role-update
func (GatewayEventGuildRoleUpdate) Opcode ¶
func (GatewayEventGuildRoleUpdate) Opcode() GatewayOpcode
func (GatewayEventGuildRoleUpdate) Type ¶
func (GatewayEventGuildRoleUpdate) Type() GatewayEventType
type GatewayEventGuildScheduledEventCreate ¶
type GatewayEventGuildScheduledEventCreate struct {
GuildScheduledEvent
}
GatewayEventGuildScheduledEventCreate documented at https://discord.com/developers/docs/topics/gateway#guild-scheduled-event-create
func (GatewayEventGuildScheduledEventCreate) Opcode ¶
func (GatewayEventGuildScheduledEventCreate) Opcode() GatewayOpcode
func (GatewayEventGuildScheduledEventCreate) Type ¶
func (GatewayEventGuildScheduledEventCreate) Type() GatewayEventType
type GatewayEventGuildScheduledEventDelete ¶
type GatewayEventGuildScheduledEventDelete struct {
GuildScheduledEvent
}
GatewayEventGuildScheduledEventDelete documented at https://discord.com/developers/docs/topics/gateway#guild-scheduled-event-delete
func (GatewayEventGuildScheduledEventDelete) Opcode ¶
func (GatewayEventGuildScheduledEventDelete) Opcode() GatewayOpcode
func (GatewayEventGuildScheduledEventDelete) Type ¶
func (GatewayEventGuildScheduledEventDelete) Type() GatewayEventType
type GatewayEventGuildScheduledEventUpdate ¶
type GatewayEventGuildScheduledEventUpdate struct {
GuildScheduledEvent
}
GatewayEventGuildScheduledEventUpdate documented at https://discord.com/developers/docs/topics/gateway#guild-scheduled-event-update
func (GatewayEventGuildScheduledEventUpdate) Opcode ¶
func (GatewayEventGuildScheduledEventUpdate) Opcode() GatewayOpcode
func (GatewayEventGuildScheduledEventUpdate) Type ¶
func (GatewayEventGuildScheduledEventUpdate) Type() GatewayEventType
type GatewayEventGuildScheduledEventUserAdd ¶
type GatewayEventGuildScheduledEventUserAdd struct { //GuildScheduledEventID is the ID of the GuildScheduledEvent GuildScheduledEventID Snowflake `json:"guild_scheduled_event_id"` //UserID of the User added to the GuildScheduledEvent UserID Snowflake `json:"user_id"` //GuildID where GuildScheduledEvent is taking place GuildID Snowflake `json:"guild_id"` }
GatewayEventGuildScheduledEventUserAdd documented at https://discord.com/developers/docs/topics/gateway#guild-scheduled-event-user-add
func (GatewayEventGuildScheduledEventUserAdd) Opcode ¶
func (GatewayEventGuildScheduledEventUserAdd) Opcode() GatewayOpcode
func (GatewayEventGuildScheduledEventUserAdd) Type ¶
func (GatewayEventGuildScheduledEventUserAdd) Type() GatewayEventType
type GatewayEventGuildScheduledEventUserRemove ¶
type GatewayEventGuildScheduledEventUserRemove struct { //GuildScheduledEventID is the ID of the GuildScheduledEvent GuildScheduledEventID Snowflake `json:"guild_scheduled_event_id"` //UserID of the User removed from the GuildScheduledEvent UserID Snowflake `json:"user_id"` //GuildID where GuildScheduledEvent is taking place GuildID Snowflake `json:"guild_id"` }
GatewayEventGuildScheduledEventUserRemove documented at https://discord.com/developers/docs/topics/gateway#guild-scheduled-event-user-remove
func (GatewayEventGuildScheduledEventUserRemove) Opcode ¶
func (GatewayEventGuildScheduledEventUserRemove) Opcode() GatewayOpcode
func (GatewayEventGuildScheduledEventUserRemove) Type ¶
func (GatewayEventGuildScheduledEventUserRemove) Type() GatewayEventType
type GatewayEventGuildStickersUpdate ¶
type GatewayEventGuildStickersUpdate struct { //GuildID for Sticker(s) update GuildID Snowflake `json:"guild_id"` //Stickers of Guild //todo: check if this is actually an array of the changed or just all Stickers []Sticker `json:"stickers"` }
GatewayEventGuildStickersUpdate documented at https://discord.com/developers/docs/topics/gateway#guild-stickers-update
func (GatewayEventGuildStickersUpdate) Opcode ¶
func (GatewayEventGuildStickersUpdate) Opcode() GatewayOpcode
func (GatewayEventGuildStickersUpdate) Type ¶
func (GatewayEventGuildStickersUpdate) Type() GatewayEventType
type GatewayEventGuildUpdate ¶
type GatewayEventGuildUpdate struct {
Guild
}
GatewayEventGuildUpdate documented at https://discord.com/developers/docs/topics/gateway#guild-update
func (GatewayEventGuildUpdate) Opcode ¶
func (GatewayEventGuildUpdate) Opcode() GatewayOpcode
func (GatewayEventGuildUpdate) Type ¶
func (GatewayEventGuildUpdate) Type() GatewayEventType
type GatewayEventHeartBeatRequest ¶
type GatewayEventHeartBeatRequest struct{}
GatewayEventHeartBeatRequest is an internal event thrown when library receives a request from Websocket to heartbeat immediately
func (GatewayEventHeartBeatRequest) Opcode ¶
func (g GatewayEventHeartBeatRequest) Opcode() GatewayOpcode
func (GatewayEventHeartBeatRequest) Type ¶
func (g GatewayEventHeartBeatRequest) Type() GatewayEventType
type GatewayEventHeartbeatACK ¶
type GatewayEventHeartbeatACK struct{}
GatewayEventHeartbeatACK documented at https://discord.com/developers/docs/topics/gateway#heartbeating-example-gateway-heartbeat-ack
func (GatewayEventHeartbeatACK) Opcode ¶
func (GatewayEventHeartbeatACK) Opcode() GatewayOpcode
func (GatewayEventHeartbeatACK) Type ¶
func (GatewayEventHeartbeatACK) Type() GatewayEventType
type GatewayEventHello ¶
type GatewayEventHello struct {
Interval int `json:"heartbeat_interval"`
}
GatewayEventHello documented at https://discord.com/developers/docs/topics/gateway#hello
func (GatewayEventHello) Opcode ¶
func (gatewayHelloEvent GatewayEventHello) Opcode() GatewayOpcode
func (GatewayEventHello) Type ¶
func (gatewayHelloEvent GatewayEventHello) Type() GatewayEventType
type GatewayEventIntegrationCreate ¶
type GatewayEventIntegrationCreate struct { //GuildID is the ID of the Guild the Integration is created in GuildID Snowflake `json:"guild_id"` }
GatewayEventIntegrationCreate documented at https://discord.com/developers/docs/topics/gateway#integration-create
func (GatewayEventIntegrationCreate) Opcode ¶
func (GatewayEventIntegrationCreate) Opcode() GatewayOpcode
func (GatewayEventIntegrationCreate) Type ¶
func (GatewayEventIntegrationCreate) Type() GatewayEventType
type GatewayEventInvalidSession ¶
type GatewayEventInvalidSession struct{}
GatewayEventInvalidSession this struct is probably never used, because discord does not send their data in a sensible way with this specific event, https://discord.com/developers/docs/topics/gateway#invalid-session-example-gateway-invalid-session
func (GatewayEventInvalidSession) Opcode ¶
func (GatewayEventInvalidSession) Opcode() GatewayOpcode
func (GatewayEventInvalidSession) Type ¶
func (GatewayEventInvalidSession) Type() GatewayEventType
type GatewayEventInviteCreate ¶
type GatewayEventInviteCreate struct { //ChannelID is the Channel the Invite leads to ChannelID Snowflake `json:"channel_id"` //InviteCode is the unique Invite code InviteCode string `json:"code"` //CreatedAt is when the Invite was created CreatedAt time.Time `json:"created_at"` //GuildID is the Guild ID for the Invite GuildID Snowflake `json:"guild_id"` //Inviter is the User that created the Invite Inviter User `json:"inviter"` //MaxAge of Invite MaxAge int `json:"max_age"` //MaxUses of Invite MaxUses int `json:"max_uses"` //TargetType is the target type for a ChannelTypeGuildVoice Invite TargetType InviteTargetType `json:"target_type"` //TargetUser is the User whose Stream to display for a ChannelTypeGuildVoice Invite TargetUser User `json:"target_user"` //TargetApplication is the EmbeddedApplication to open for a ChannelTypeGuildVoice embedded application Invite TargetApplication Application `json:"target_application"` //IsTemporary Invite that will kick Users if they leave and not assigned a Role IsTemporary bool `json:"temporary"` //Uses of Invite Uses int `json:"uses"` }
GatewayEventInviteCreate is documented at https://discord.com/developers/docs/topics/gateway#invite-create
func (GatewayEventInviteCreate) Opcode ¶
func (g GatewayEventInviteCreate) Opcode() GatewayOpcode
func (GatewayEventInviteCreate) Type ¶
func (g GatewayEventInviteCreate) Type() GatewayEventType
type GatewayEventInviteDelete ¶
type GatewayEventInviteDelete struct { //ChannelID Invite is removed from ChannelID Snowflake `json:"channel_id"` //GuildID Invite is deleted from GuildID Snowflake `json:"guild_id"` //InviteCode for Invite InviteCode string `json:"code"` }
GatewayEventInviteDelete is documented at https://discord.com/developers/docs/topics/gateway#invite-delete
func (GatewayEventInviteDelete) Opcode ¶
func (GatewayEventInviteDelete) Opcode() GatewayOpcode
func (GatewayEventInviteDelete) Type ¶
func (GatewayEventInviteDelete) Type() GatewayEventType
type GatewayEventMessageCreate ¶
type GatewayEventMessageCreate struct {
Message
}
GatewayEventMessageCreate is documented at https://discord.com/developers/docs/topics/gateway#message-create
func (GatewayEventMessageCreate) Opcode ¶
func (GatewayEventMessageCreate) Opcode() GatewayOpcode
func (GatewayEventMessageCreate) Type ¶
func (GatewayEventMessageCreate) Type() GatewayEventType
type GatewayEventMessageDelete ¶
type GatewayEventMessageDelete struct { ID Snowflake `json:"id"` ChannelID Snowflake `json:"channel_id"` GuildID Snowflake `json:"guild_id"` }
func (GatewayEventMessageDelete) Opcode ¶
func (GatewayEventMessageDelete) Opcode() GatewayOpcode
func (GatewayEventMessageDelete) Type ¶
func (GatewayEventMessageDelete) Type() GatewayEventType
type GatewayEventMessageDeleteBulk ¶
type GatewayEventMessageDeleteBulk struct { IDs []Snowflake `json:"ids"` ChannelID Snowflake `json:"channel_id"` GuildID Snowflake `json:"guild_id"` }
func (GatewayEventMessageDeleteBulk) Opcode ¶
func (GatewayEventMessageDeleteBulk) Opcode() GatewayOpcode
func (GatewayEventMessageDeleteBulk) Type ¶
func (GatewayEventMessageDeleteBulk) Type() GatewayEventType
type GatewayEventMessageReactionAdd ¶
type GatewayEventMessageReactionAdd struct { UserID Snowflake `json:"user_id"` ChannelID Snowflake `json:"channel_id"` MessageID Snowflake `json:"message_id"` GuildID Snowflake `json:"guild_id"` Member GuildMember `json:"member"` Emoji Emoji `json:"emoji"` }
func (GatewayEventMessageReactionAdd) Opcode ¶
func (GatewayEventMessageReactionAdd) Opcode() GatewayOpcode
func (GatewayEventMessageReactionAdd) Type ¶
func (GatewayEventMessageReactionAdd) Type() GatewayEventType
type GatewayEventMessageReactionRemove ¶
type GatewayEventMessageReactionRemove struct { UserID Snowflake `json:"user_id"` ChannelID Snowflake `json:"channel_id"` MessageID Snowflake `json:"message_id"` GuildID Snowflake `json:"guild_id"` Emoji Emoji `json:"emoji"` }
func (GatewayEventMessageReactionRemove) Opcode ¶
func (GatewayEventMessageReactionRemove) Opcode() GatewayOpcode
func (GatewayEventMessageReactionRemove) Type ¶
func (GatewayEventMessageReactionRemove) Type() GatewayEventType
type GatewayEventMessageReactionRemoveAll ¶
type GatewayEventMessageReactionRemoveAll struct { ChannelID Snowflake `json:"channel_id"` MessageID Snowflake `json:"message_id"` GuildID Snowflake `json:"guild_id"` }
func (GatewayEventMessageReactionRemoveAll) Opcode ¶
func (GatewayEventMessageReactionRemoveAll) Opcode() GatewayOpcode
func (GatewayEventMessageReactionRemoveAll) Type ¶
func (GatewayEventMessageReactionRemoveAll) Type() GatewayEventType
type GatewayEventMessageReactionRemoveEmoji ¶
type GatewayEventMessageReactionRemoveEmoji struct { ChannelID Snowflake `json:"channel_id"` MessageID Snowflake `json:"message_id"` GuildID Snowflake `json:"guild_id"` Emoji Emoji `json:"emoji"` }
func (GatewayEventMessageReactionRemoveEmoji) Opcode ¶
func (GatewayEventMessageReactionRemoveEmoji) Opcode() GatewayOpcode
func (GatewayEventMessageReactionRemoveEmoji) Type ¶
func (GatewayEventMessageReactionRemoveEmoji) Type() GatewayEventType
type GatewayEventMessageUpdate ¶
type GatewayEventMessageUpdate struct {
Message
}
func (GatewayEventMessageUpdate) Opcode ¶
func (GatewayEventMessageUpdate) Opcode() GatewayOpcode
func (GatewayEventMessageUpdate) Type ¶
func (GatewayEventMessageUpdate) Type() GatewayEventType
type GatewayEventPresenceUpdate ¶
type GatewayEventPresenceUpdate struct { User User `json:"user"` GuildID Snowflake `json:"guild_id"` Status PresenceStatus `json:"status"` Activities []Activity `json:"activities"` ClientStatus ClientStatus `json:"client_status"` }
func (GatewayEventPresenceUpdate) Opcode ¶
func (GatewayEventPresenceUpdate) Opcode() GatewayOpcode
func (GatewayEventPresenceUpdate) Type ¶
func (GatewayEventPresenceUpdate) Type() GatewayEventType
type GatewayEventReady ¶
type GatewayEventReady struct { //Version of Gateway Version int `json:"v"` //User struct about Bot User User `json:"user"` UnavailableGuilds []UnavailableGuild `json:"unavailable_guilds"` //SessionID for resuming connections SessionID string `json:"session_id"` //ShardInformation associated with SessionID, if sent with Identify ShardInformation ShardInformation `json:"shard"` //Application of Bot (containing Application.ID and Application.Flags) Application Application `json:"application"` }
GatewayEventReady documented at https://discord.com/developers/docs/topics/gateway#ready
func (GatewayEventReady) Opcode ¶
func (gatewayEventReady GatewayEventReady) Opcode() GatewayOpcode
Opcode sent by gateway that contains this event
func (GatewayEventReady) Type ¶
func (gatewayEventReady GatewayEventReady) Type() GatewayEventType
Type of GatewayEventReady
type GatewayEventReconnect ¶
type GatewayEventReconnect struct{}
GatewayEventReconnect is documented at https://discord.com/developers/docs/topics/gateway#reconnect
func (GatewayEventReconnect) Opcode ¶
func (GatewayEventReconnect) Opcode() GatewayOpcode
func (GatewayEventReconnect) Type ¶
func (GatewayEventReconnect) Type() GatewayEventType
type GatewayEventResumed ¶
type GatewayEventResumed struct { //Token for Session Token string `json:"token"` //SessionID for Session SessionID string `json:"session_id"` //Sequence number last received from Gateway Sequence int `json:"seq"` }
GatewayEventResumed documented at https://discord.com/developers/docs/topics/gateway#resumed
func (GatewayEventResumed) Opcode ¶
func (GatewayEventResumed) Opcode() GatewayOpcode
func (GatewayEventResumed) Type ¶
func (GatewayEventResumed) Type() GatewayEventType
Type of GatewayEventResumed
type GatewayEventStageInstanceCreate ¶
type GatewayEventStageInstanceCreate struct {
StageInstance
}
func (GatewayEventStageInstanceCreate) Opcode ¶
func (GatewayEventStageInstanceCreate) Opcode() GatewayOpcode
func (GatewayEventStageInstanceCreate) Type ¶
func (GatewayEventStageInstanceCreate) Type() GatewayEventType
type GatewayEventStageInstanceDelete ¶
type GatewayEventStageInstanceDelete struct {
StageInstance
}
func (GatewayEventStageInstanceDelete) Opcode ¶
func (GatewayEventStageInstanceDelete) Opcode() GatewayOpcode
func (GatewayEventStageInstanceDelete) Type ¶
func (GatewayEventStageInstanceDelete) Type() GatewayEventType
type GatewayEventStageInstanceUpdate ¶
type GatewayEventStageInstanceUpdate struct {
StageInstance
}
func (GatewayEventStageInstanceUpdate) Opcode ¶
func (GatewayEventStageInstanceUpdate) Opcode() GatewayOpcode
func (GatewayEventStageInstanceUpdate) Type ¶
func (GatewayEventStageInstanceUpdate) Type() GatewayEventType
type GatewayEventThreadCreate ¶
type GatewayEventThreadCreate struct {
Channel
}
GatewayEventThreadCreate documented at https://discord.com/developers/docs/topics/gateway#thread-create todo: separate event for existing private thread, which has a thread member
func (GatewayEventThreadCreate) Opcode ¶
func (GatewayEventThreadCreate) Opcode() GatewayOpcode
func (GatewayEventThreadCreate) Type ¶
func (GatewayEventThreadCreate) Type() GatewayEventType
type GatewayEventThreadDelete ¶
type GatewayEventThreadDelete struct {
Channel
}
GatewayEventThreadDelete documented at https://discord.com/developers/docs/topics/gateway#thread-delete inner Channel only contains ID, GuildID, ParentID, and Type
func (GatewayEventThreadDelete) Opcode ¶
func (GatewayEventThreadDelete) Opcode() GatewayOpcode
func (GatewayEventThreadDelete) Type ¶
func (GatewayEventThreadDelete) Type() GatewayEventType
type GatewayEventThreadListSync ¶
type GatewayEventThreadListSync struct { GuildID Snowflake `json:"guild_id"` ChannelIDs []Snowflake `json:"channel_ids"` Threads []Channel `json:"threads"` Members []ThreadMember `json:"members"` }
GatewayEventThreadListSync documented at https://discord.com/developers/docs/topics/gateway#thread-list-sync
func (GatewayEventThreadListSync) Opcode ¶
func (GatewayEventThreadListSync) Opcode() GatewayOpcode
func (GatewayEventThreadListSync) Type ¶
func (GatewayEventThreadListSync) Type() GatewayEventType
type GatewayEventThreadMemberUpdate ¶
type GatewayEventThreadMemberUpdate struct {
ThreadMember
}
GatewayEventThreadMemberUpdate documented at https://discord.com/developers/docs/topics/gateway#thread-member-update
func (GatewayEventThreadMemberUpdate) Opcode ¶
func (GatewayEventThreadMemberUpdate) Opcode() GatewayOpcode
func (GatewayEventThreadMemberUpdate) Type ¶
func (GatewayEventThreadMemberUpdate) Type() GatewayEventType
type GatewayEventThreadMembersUpdate ¶
type GatewayEventThreadMembersUpdate struct { ID Snowflake `json:"id"` GuildID Snowflake `json:"guild_id"` MemberCount int `json:"member_count"` AddedMembers []ThreadMember `json:"added_members"` RemovedMembers []Snowflake `json:"removed_member_ids"` }
GatewayEventThreadMembersUpdate documented at https://discord.com/developers/docs/topics/gateway#thread-members-update
func (GatewayEventThreadMembersUpdate) Opcode ¶
func (GatewayEventThreadMembersUpdate) Opcode() GatewayOpcode
func (GatewayEventThreadMembersUpdate) Type ¶
func (GatewayEventThreadMembersUpdate) Type() GatewayEventType
type GatewayEventThreadUpdate ¶
type GatewayEventThreadUpdate struct {
Channel
}
GatewayEventThreadUpdate documented at https://discord.com/developers/docs/topics/gateway#thread-update not sent when Channel.LastMessageID is changed, only sent in MessageCreate events todo: we need to update the state in the ingestor for MessageCreate events for Channel.LastMessageID
func (GatewayEventThreadUpdate) Opcode ¶
func (GatewayEventThreadUpdate) Opcode() GatewayOpcode
func (GatewayEventThreadUpdate) Type ¶
func (GatewayEventThreadUpdate) Type() GatewayEventType
type GatewayEventType ¶
type GatewayEventType string
GatewayEventType documented at https://discord.com/developers/docs/topics/gateway#commands-and-events-gateway-events
const ( //GatewayEventTypeHello defines heartbeat interval; documented at https://discord.com/developers/docs/topics/gateway#hello GatewayEventTypeHello GatewayEventType = "HELLO" //GatewayEventTypeHeartbeatRequest is a request for an immediate heartbeat to be sent to the gateway GatewayEventTypeHeartbeatRequest GatewayEventType = "INGESTOR_INTERNAL_HEARTBEAT_REQUEST" //GatewayEventTypeClientShutdown is a shutdown by the DiscordClient Library GatewayEventTypeClientShutdown GatewayEventType = "INGESTOR_INTERNAL_CLIENT_SHUTDOWN" //GatewayEventTypeHeartbeatACK is an acknowledgement of a successful heartbeat GatewayEventTypeHeartbeatACK GatewayEventType = "INGESTOR_INTERNAL_HEARTBEAT_ACK" //GatewayEventTypeReady contains initial state information; documented at https://discord.com/developers/docs/topics/gateway#ready GatewayEventTypeReady GatewayEventType = "READY" //GatewayEventTypeResumed is the response to a Resume Gateway command GatewayEventTypeResumed GatewayEventType = "RESUMED" //GatewayEventTypeReconnect is Gateway instructed Client to reconnect and send a Resume GatewayEventTypeReconnect GatewayEventType = "RECONNECT" //GatewayEventTypeInvalidSession is a failure response to a Gateway Identity or a Resume GatewayEventTypeInvalidSession GatewayEventType = "INVALID_SESSION" //GatewayEventTypeChannelCreate is a creation of a Channel GatewayEventTypeChannelCreate GatewayEventType = "CHANNEL_CREATE" //GatewayEventTypeChannelUpdate is an update of a Channel GatewayEventTypeChannelUpdate GatewayEventType = "CHANNEL_UPDATE" //GatewayEventTypeChannelDelete is a deletion of a Channel GatewayEventTypeChannelDelete GatewayEventType = "CHANNEL_DELETE" //GatewayEventTypeChannelPinsUpdate is the update of a Channel's pins GatewayEventTypeChannelPinsUpdate GatewayEventType = "CHANNEL_PINS_UPDATE" //GatewayEventTypeThreadCreate is the creation of Thread GatewayEventTypeThreadCreate GatewayEventType = "THREAD_CREATE" //GatewayEventTypeThreadUpdate is the update of a Thread GatewayEventTypeThreadUpdate GatewayEventType = "THREAD_UPDATE" //GatewayEventTypeThreadDelete is the deletion of a Thread GatewayEventTypeThreadDelete GatewayEventType = "THREAD_DELETE" //GatewayEventTypeThreadListSync is sent when gaining access to a Channel, contains all active Thread(s) in that Channel GatewayEventTypeThreadListSync GatewayEventType = "THREAD_LIST_SYNC" //GatewayEventTypeThreadMemberUpdate ThreadMember for bot was updated GatewayEventTypeThreadMemberUpdate GatewayEventType = "THREAD_MEMBER_UPDATE" //GatewayEventTypeThreadMembersUpdate multiple ThreadMember(s) were added or removed from a thread GatewayEventTypeThreadMembersUpdate GatewayEventType = "THREAD_MEMBERS_UPDATE" //GatewayEventTypeGuildCreate lazy-load for unavailable Guild, Guild became available, or User joined a new Guild GatewayEventTypeGuildCreate GatewayEventType = "GUILD_CREATE" //GatewayEventTypeGuildUpdate is the update of a Guild GatewayEventTypeGuildUpdate GatewayEventType = "GUILD_UPDATE" //GatewayEventTypeGuildDelete is when a Guild became unavailable, or Bot left/was removed from Guild GatewayEventTypeGuildDelete GatewayEventType = "GUILD_DELETE" //GatewayEventTypeGuildBanAdd is when a User is banned from a Guild GatewayEventTypeGuildBanAdd GatewayEventType = "GUILD_BAN_ADD" //GatewayEventTypeGuildBanRemove is when a User was unbanned from a Guild GatewayEventTypeGuildBanRemove GatewayEventType = "GUILD_BAN_REMOVE" //GatewayEventTypeGuildEmojisUpdate is a change in Emoji(s) in a Guild GatewayEventTypeGuildEmojisUpdate GatewayEventType = "GUILD_EMOJIS_UPDATE" //GatewayEventTypeGuildStickersUpdate is a change in Sticker(s) in a Guild GatewayEventTypeGuildStickersUpdate GatewayEventType = "GUILD_STICKERS_UPDATE" //GatewayEventTypeGuildIntegrationsUpdate is a change in an Integration(s) in a guild GatewayEventTypeGuildIntegrationsUpdate GatewayEventType = "GUILD_INTEGRATIONS_UPDATE" //GatewayEventTypeGuildMemberAdd is when a new User joins a Guild GatewayEventTypeGuildMemberAdd GatewayEventType = "GUILD_MEMBER_ADD" //GatewayEventTypeGuildMemberRemove is when a User leaves or is removed from a Guild GatewayEventTypeGuildMemberRemove GatewayEventType = "GUILD_MEMBER_REMOVE" //GatewayEventTypeGuildMemberUpdate is when a GuildMember was updated GatewayEventTypeGuildMemberUpdate GatewayEventType = "GUILD_MEMBER_UPDATE" //GatewayEventTypeGuildMembersChunk is a response to a RequestGuildMembers (https://discord.com/developers/docs/topics/gateway#request-guild-members) GatewayEventTypeGuildMembersChunk GatewayEventType = "GUILD_MEMBERS_CHUNK" //GatewayEventTypeGuildRoleCreate is when a Role is created in a Guild GatewayEventTypeGuildRoleCreate GatewayEventType = "GUILD_ROLE_CREATE" //GatewayEventTypeGuildRoleUpdate is when a Role is updated in a Guild GatewayEventTypeGuildRoleUpdate GatewayEventType = "GUILD_ROLE_UPDATE" //GatewayEventTypeGuildRoleDelete is when a Role is deleted in a Guild GatewayEventTypeGuildRoleDelete GatewayEventType = "GUILD_ROLE_DELETE" //GatewayEventTypeGuildScheduledEventCreate is when a GuildScheduledEvent is created GatewayEventTypeGuildScheduledEventCreate GatewayEventType = "GUILD_SCHEDULED_EVENT_CREATE" //GatewayEventTypeGuildScheduledEventUpdate is when a GuildScheduledEvent is updated GatewayEventTypeGuildScheduledEventUpdate GatewayEventType = "GUILD_SCHEDULED_EVENT_UPDATE" //GatewayEventTypeGuildScheduledEventDelete is when a GuildScheduledEvent is deleted GatewayEventTypeGuildScheduledEventDelete GatewayEventType = "GUILD_SCHEDULED_EVENT_DELETE" //GatewayEventTypeGuildScheduledEventUserAdd is when a GuildScheduledEvent has a User added GatewayEventTypeGuildScheduledEventUserAdd GatewayEventType = "GUILD_SCHEDULED_EVENT_USER_ADD" //GatewayEventTypeGuildScheduledEventUserRemove is when a GuildScheduledEvent has a User removed GatewayEventTypeGuildScheduledEventUserRemove GatewayEventType = "GUILD_SCHEDULED_EVENT_USER_REMOVE" //GatewayEventTypeGuildIntegrationCreate is when a Guild Integration was created GatewayEventTypeGuildIntegrationCreate GatewayEventType = "GUILD_INTEGRATION_CREATE" //GatewayEventTypeGuildIntegrationUpdate is when a Guild Integration was updated GatewayEventTypeGuildIntegrationUpdate GatewayEventType = "GUILD_INTEGRATION_UPDATE" //GatewayEventTypeGuildIntegrationDelete is when a Guild Integration was deleted GatewayEventTypeGuildIntegrationDelete GatewayEventType = "GUILD_INTEGRATION_DELETE" //GatewayEventTypeGuildInteractionCreate is when a User uses an Interaction (like application commands, https://discord.com/developers/docs/interactions/application-commands) GatewayEventTypeGuildInteractionCreate GatewayEventType = "GUILD_INTEGRATION_CREATE" //GatewayEventTypeInviteCreate is when an Invite to a channel was created GatewayEventTypeInviteCreate GatewayEventType = "INVITE_CREATE" //GatewayEventTypeInviteDelete is when an Invite to a channel was deleted GatewayEventTypeInviteDelete GatewayEventType = "INVITE_DELETE" //GatewayEventTypeMessageCreate documented at https://discord.com/developers/docs/topics/gateway#message-create GatewayEventTypeMessageCreate GatewayEventType = "MESSAGE_CREATE" //GatewayEventTypeMessageUpdate is when a Message was edited GatewayEventTypeMessageUpdate GatewayEventType = "MESSAGE_UPDATE" //GatewayEventTypeMessageDelete is when a Message was deleted GatewayEventTypeMessageDelete GatewayEventType = "MESSAGE_DELETE" //GatewayEventTypeMessageDeleteBulk is when multiple Messages were deleted GatewayEventTypeMessageDeleteBulk GatewayEventType = "MESSAGE_DELETE_BULK" //GatewayEventTypeMessageReactionAdd is when a User reacts to a Message GatewayEventTypeMessageReactionAdd GatewayEventType = "MESSAGE_REACTION_ADD" //GatewayEventTypeMessageReactionRemove is when a User removed a reaction from a Message GatewayEventTypeMessageReactionRemove GatewayEventType = "MESSAGE_REACTION_REMOVE" //GatewayEventTypeMessageReactionRemoveAll is when all reactions were removed from a Message GatewayEventTypeMessageReactionRemoveAll GatewayEventType = "MESSAGE_REACTION_REMOVE_ALL" //GatewayEventTypeMessageReactionRemoveEmoji is when all reactions for a specific Emoji was removed from a Message GatewayEventTypeMessageReactionRemoveEmoji GatewayEventType = "MESSAGE_REACTION_REMOVE_EMOJI" //GatewayEventTypePresenceUpdate is when a Presence for a User was updated GatewayEventTypePresenceUpdate GatewayEventType = "PRESENCE_UPDATE" //GatewayEventTypeStageInstanceCreate is when a ChannelTypeGuildStageVoice was created in a Guild GatewayEventTypeStageInstanceCreate GatewayEventType = "STAGE_INSTANCE_CREATE" //GatewayEventTypeStageInstanceDelete is when a ChannelTypeGuildStageVoice was deleted in a Guild GatewayEventTypeStageInstanceDelete GatewayEventType = "STAGE_INSTANCE_DELETE" //GatewayEventTypeStageInstanceUpdate is when a ChannelTypeGuildStageVoice was updated in a Guild GatewayEventTypeStageInstanceUpdate GatewayEventType = "STAGE_INSTANCE_UPDATE" //GatewayEventTypeTypingStart is when a User has started typing in a Channel GatewayEventTypeTypingStart GatewayEventType = "TYPING_START" //GatewayEventTypeUserUpdate is when a User's properties have been updated GatewayEventTypeUserUpdate GatewayEventType = "USER_UPDATE" //GatewayEventTypeVoiceStateUpdate is when a User has joined, left, or moved Voice Channel(s); VoiceState GatewayEventTypeVoiceStateUpdate GatewayEventType = "VOICE_STATE_UPDATE" //GatewayEventTypeVoiceServerUpdate is when a Guild's ChannelTypeGuildVoice has changed Endpoints GatewayEventTypeVoiceServerUpdate GatewayEventType = "VOICE_SERVER_UPDATE" //GatewayEventTypeWebhooksUpdate is when a Guild's Channel's Webhook was created, updated, or deleted GatewayEventTypeWebhooksUpdate GatewayEventType = "WEBHOOKS_UPDATE" )
type GatewayEventTypingStart ¶
type GatewayEventTypingStart struct { ChannelID Snowflake `json:"channel_id"` GuildID Snowflake `json:"guild_id"` UserID Snowflake `json:"user_id"` Timestamp time.Time `json:"timestamp"` Member GuildMember `json:"member"` }
func (GatewayEventTypingStart) Opcode ¶
func (GatewayEventTypingStart) Opcode() GatewayOpcode
func (GatewayEventTypingStart) Type ¶
func (GatewayEventTypingStart) Type() GatewayEventType
type GatewayEventUserUpdate ¶
type GatewayEventUserUpdate struct {
User
}
func (GatewayEventUserUpdate) Opcode ¶
func (GatewayEventUserUpdate) Opcode() GatewayOpcode
func (GatewayEventUserUpdate) Type ¶
func (GatewayEventUserUpdate) Type() GatewayEventType
type GatewayEventVoiceServerUpdate ¶
type GatewayEventVoiceServerUpdate struct { Token string `json:"token"` GuildID Snowflake `json:"guild_id"` Endpoint string `json:"endpoint"` }
func (GatewayEventVoiceServerUpdate) Opcode ¶
func (GatewayEventVoiceServerUpdate) Opcode() GatewayOpcode
func (GatewayEventVoiceServerUpdate) Type ¶
func (GatewayEventVoiceServerUpdate) Type() GatewayEventType
type GatewayEventVoiceStateUpdate ¶
type GatewayEventVoiceStateUpdate struct {
VoiceState
}
func (GatewayEventVoiceStateUpdate) Opcode ¶
func (GatewayEventVoiceStateUpdate) Opcode() GatewayOpcode
func (GatewayEventVoiceStateUpdate) Type ¶
func (GatewayEventVoiceStateUpdate) Type() GatewayEventType
type GatewayEventWebhooksUpdate ¶
type GatewayEventWebhooksUpdate struct { GuildID Snowflake `json:"guild_id"` ChannelID Snowflake `json:"channel_id"` }
func (GatewayEventWebhooksUpdate) Opcode ¶
func (GatewayEventWebhooksUpdate) Opcode() GatewayOpcode
func (GatewayEventWebhooksUpdate) Type ¶
func (GatewayEventWebhooksUpdate) Type() GatewayEventType
type GatewayIdentify ¶
type GatewayIdentify struct { Opcode GatewayOpcode `json:"op"` Data GatewayIdentifyData `json:"d"` }
type GatewayIdentifyData ¶
type GatewayIdentifyData struct { Token string `json:"token"` Intents GatewayIntent `json:"intents"` Properties GatewayIdentifyProperties `json:"properties"` }
type GatewayIntent ¶
type GatewayIntent uint16
GatewayIntent from https://discord.com/developers/docs/topics/gateway#gateway-intents
const ( //GatewayIntentNil is when no GatewayIntent is set GatewayIntentNil GatewayIntent = 0 //GatewayIntentGuilds contains events: //- GuildCreate //- GuildUpdate //- GuildDelete //- GuildRoleCreate //- GuildRoleUpdate //- GuildRoleDelete //- ChannelCreate //- ChannelUpdate //- ChannelDelete //- ChannelPinsUpdate //- ThreadCreate //- ThreadUpdate //- ThreadDelete //- ThreadListSync //- ThreadMemberUpdate //- ThreadMembersUpdate; data is different depending on intents used //- StageInstanceCreate //- StageInstanceUpdate //- StageInstanceDelete GatewayIntentGuilds GatewayIntent = 1 << (iota - 1) //GatewayIntentGuildMembers contains events: //- GuildMemberAdd //- GuildMemberUpdate //- GuildMemberRemove //- ThreadMembersUpdate * GatewayIntentGuildMembers //GatewayIntentGuildBans contains events: //- GuildBanAdd //- GuildBanRemove GatewayIntentGuildBans //GatewayIntentGuildEmojisAndStickers contains events: //- GuildEmojisUpdate //- GuildStickersUpdate GatewayIntentGuildEmojisAndStickers //GatewayIntentGuildIntegrations contains events: //- GuildIntegrationsUpdate //- IntegrationCreate //- IntegrationUpdate //- IntegrationDelete GatewayIntentGuildIntegrations //GatewayIntentGuildWebhooks contains events: //- WebhooksUpdate GatewayIntentGuildWebhooks //GatewayIntentGuildInvites contains events: //- InviteCreate //- InviteDelete GatewayIntentGuildInvites //GatewayIntentGuildVoiceStates contains events: //- VoiceStateUpdate GatewayIntentGuildVoiceStates //GatewayIntentGuildPresences contains events: //- PresenceUpdate GatewayIntentGuildPresences //GatewayIntentGuildMessages contains events: //- MessageCreate //- MessageUpdate //- MessageDelete //- MessageDeleteBulk GatewayIntentGuildMessages //GatewayIntentGuildMessageReactions contains events: //- MessageReactionAdd //- MessageReactionRemove //- MessageReactionRemoveAll //- MessageReactionRemoveEmoji GatewayIntentGuildMessageReactions //GatewayIntentGuildMessageTyping contains events: //- TypingStart GatewayIntentGuildMessageTyping //GatewayIntentDirectMessages contains events: //- MessageCreate //- MessageUpdate //- MessageDelete //- ChannelPinsUpdate GatewayIntentDirectMessages //GatewayIntentDirectMessageReactions contains events: //- MessageReactionAdd //- MessageReactionRemove //- MessageReactionRemoveAll //- MessageReactionRemoveEmoji GatewayIntentDirectMessageReactions //GatewayIntentDirectMessageTyping contains events: //- TypingStart GatewayIntentDirectMessageTyping //GatewayIntentAll is a combination of all known GatewayIntents GatewayIntentAll GatewayIntent = (1 << (iota - 1)) - 1 )
func (GatewayIntent) Contains ¶
func (gatewayIntent GatewayIntent) Contains(intent GatewayIntent) bool
Contains another GatewayIntent
func (GatewayIntent) IsValid ¶
func (gatewayIntent GatewayIntent) IsValid() bool
IsValid GatewayIntent
type GatewayOpcode ¶
type GatewayOpcode int
GatewayOpcode of payload sent by Gateway; documented at https://discord.com/developers/docs/topics/opcodes-and-status-codes#gateway-gateway-opcodes
const ( //GatewayOpcodeNil is an intentionally invalid Opcode GatewayOpcodeNil GatewayOpcode = -1 //GatewayOpcodeDispatch is received by a Client for a dispatched GatewayEvent GatewayOpcodeDispatch GatewayOpcode = iota - 1 //GatewayOpcodeHeartbeat is sent or received by a Client to keep a connection alive GatewayOpcodeHeartbeat //GatewayOpcodeIdentify is sent by a Client to start a new Session during an initial handshake GatewayOpcodeIdentify //GatewayOpcodePresenceUpdate is sent by a Client to update their Presence GatewayOpcodePresenceUpdate //GatewayOpcodeVoiceStateUpdate is sent by a Client to move between ChannelTypeGuildVoice GatewayOpcodeVoiceStateUpdate //GatewayOpcodeResume is sent by a Client to resume a previous Session GatewayOpcodeResume GatewayOpcode = iota //GatewayOpcodeReconnect is received by a Client to inform them to disconnect and GatewayOpcodeResume GatewayOpcodeReconnect //GatewayOpcodeRequestGuildMembers is sent by a Client to request information about offline GuildMember(s) in a Guild.IsLarge GatewayOpcodeRequestGuildMembers //GatewayOpcodeRequestInvalidSession is received by a Client that a Session has been invalidated, Client should reconnect and GatewayOpcodeIdentify or GatewayOpcodeResume GatewayOpcodeRequestInvalidSession //GatewayOpcodeHello is received by a Client after connecting, containing the heartbeat_interval to use; also used by Client when sending a heartbeat GatewayOpcodeHello //GatewayOpcodeHeartbeatACK is received by a Client acknowledging a successful GatewayOpcodeHeartbeat GatewayOpcodeHeartbeatACK )
type Guild ¶
type Guild struct { //ID of Guild ID Snowflake `json:"id,string"` //Name (2-100 characters, excluding trailing and leading whitespace) Name string `json:"name"` //Icon hash for Icon IconHash ImageHash `json:"icon"` //IconHashInTemplate, returned when in the template object; todo: function for Fully qualified url IconHashInTemplate ImageHash `json:"icon_hash"` //SplashHash; todo: function for Fully qualified url SplashHash ImageHash `json:"splash"` //DiscoverySplashHash; only present for Guilds with the "DISCOVERABLE" feature; todo: function for Fully qualified url DiscoverySplashHash ImageHash `json:"discovery_splash"` //IsBotOwner is true if Bot is Guild owner, only sent when using the GET Current User Guilds endpoint and are relative to the requested user IsBotOwner bool `json:"owner"` //OwnerID of guild OwnerID Snowflake `json:"owner_id,string"` //Permissions of current user in Guild; total permissions for the Bot in the Guild (excludes overwrites) Permissions string `json:"permissions"` //RegionID; voice region ID for the Guild (deprecated) VoiceRegionID string `json:"region"` //AFKChannelID for Guild AFKChannelID Snowflake `json:"afk_channel_id,string"` //AFKTimeout in seconds AFKTimeout int `json:"afk_timeout"` //WidgetEnabled for Guild WidgetEnabled bool `json:"widget_enabled"` //WidgetChannelID that the widget will generate an Invite to, 0 if no invite WidgetChannelID Snowflake `json:"widget_channel_id,string"` //VerificationLevel required for the Guild VerificationLevel VerificationLevel `json:"verification_level"` //DefaultMessageNotificationsLevel for Guild DefaultMessageNotificationsLevel MessageNotificationsLevel `json:"default_message_notifications"` //ExplicitContentFilterLevel for Guild ExplicitContentFilterLevel ExplicitContentFilterLevel `json:"explicit_content_filter"` //Roles for Guild Roles []Role `json:"roles"` //Emojis is a list of custom Emojis Emojis []Emoji `json:"emojis"` //EnabledFeatures is a list of enabled GuildFeature(s) EnabledFeatures []GuildFeature `json:"features"` //MFALevel that is required for Guild MFALevel MFALevel `json:"mfa_level"` //ApplicationID of guild creator if bot-created ApplicationID Snowflake `json:"application_id,string"` //SystemChannelID is ID of Channel where Guild notices such as welcome message and boost events are posted SystemChannelID Snowflake `json:"system_channel_id,string"` //SystemChannelFlags for SystemChannel SystemChannelFlags SystemChannelFlag `json:"system_channel_flags"` //RulesChannelID where community Guilds can display rules and/or guidelines RulesChannelID Snowflake `json:"rules_channel_id,string"` //BotJoinedAt a timestamp when bot joined this Guild; only sent in GUILD_CREATE Event BotJoinedAt time.Time `json:"joined_at"` //IsLarge if Guild is large; only sent in GUILD_CREATE Event IsLarge bool `json:"large"` IsUnavailable bool `json:"unavailable"` //MemberCount in Guild; only sent in GUILD_CREATE Event MemberCount int `json:"member_count"` //VoiceStates is a list of VoiceState; only sent in GUILD_CREATE Event; VoiceState(s) lack Guild ID VoiceStates []VoiceState `json:"voice_states"` //Members in Guild; only sent in GUILD_CREATE Event Members []GuildMember `json:"members"` //Channels in Guild; only sent in GUILD_CREATE Event Channels []Channel `json:"channels"` //Threads that Bot has permission to view; only sent in GUILD_CREATE Event Threads []Channel `json:"threads"` //Presences in Guild; only sent in GUILD_CREATE Event; only includes non-offline GuildMember(s) if IsLarge Presences []PresenceUpdate `json:"presences"` //MaxPresences in Guild; almost always 0 unless Guild is massive MaxPresences int `json:"max_presences"` //MaxMembers in Guild MaxMembers int `json:"max_members"` //VanityUrlCode for Guild VanityUrlCode string `json:"vanity_url_code"` //Description of a Community Guild Description string `json:"description"` //BannerHash for Guild BannerHash ImageHash `json:"banner"` //PremiumTier aka boost level PremiumTier PremiumTier `json:"premium_tier"` //PremiumSubscriptionCount is number of boosts Guild has PremiumSubscriptionCount int `json:"premium_subscription_count"` //PreferredLocale of Guild; used for Guild Discovery and Discord notices; defaults to en-US PreferredLocale string `json:"preferred_locale"` //PublicUpdatesChannelID where Guilds get Discord notices PublicUpdatesChannelID Snowflake `json:"public_updates_channel_id"` //MaxVideoChannelUsers in a Channel MaxVideoChannelUsers int `json:"max_video_channel_users"` //ApproximateMemberCount; returned from GET /guilds/<id> endpoint when with_counts is true ApproximateMemberCount int `json:"approximate_member_count"` //WelcomeScreen of a Community Guild, shown to new members, returned in an Invite WelcomeScreen WelcomeScreen `json:"welcome_screen"` //NSFWLevel of Guild NSFWLevel NSFWLevel `json:"nsfw_level"` //StageInstances in Guild; only sent in GUILD_CREATE Event StageInstances []StageInstance `json:"stage_instances"` //Stickers in Guild Stickers []Sticker `json:"stickers"` //ScheduledEvents in Guild ScheduledEvents []GuildScheduledEvent `json:"guild_scheduled_events"` }
Guild struct from https://discord.com/developers/docs/resources/guild#guild-object
type GuildFeature ¶
type GuildFeature string
GuildFeature struct from https://discord.com/developers/docs/resources/guild#guild-object-guild-features
type GuildMember ¶
type GuildMember struct { User User `json:"user"` Nickname string `json:"nick"` Avatar ImageHash `json:"avatar,string"` RoleIds []Snowflake `json:"roles"` JoinedAt time.Time `json:"joined_at"` PremiumSince time.Time `json:"premium_since"` IsDeafened bool `json:"deaf"` IsMuted bool `json:"mute"` IsPending bool `json:"pending"` Permissions PermissionFlag `json:"permissions,string"` CommunicationsDisabledUntil time.Time `json:"communications_disabled_until"` }
GuildMember from https://discord.com/developers/docs/resources/guild#guild-member-object todo: finish commenting
type GuildScheduledEvent ¶
type GuildScheduledEvent struct { //ID of GuildScheduledEvent ID Snowflake `json:"id"` //GuildID is the ID of the Guild where Event takes place GuildID Snowflake `json:"guild_id"` //ChannelID where event will be held ChannelID Snowflake `json:"channel_id"` //CreatorID is User who created ScheduledEvent CreatorID Snowflake `json:"creator_id"` //Name of GuildScheduledEvent (1-100 characters) Name string `json:"name"` //Description of the GuildScheduledEvent (1-1000 characters) Description string `json:"description"` //ScheduledStartTime of GuildScheduledEvent ScheduledStartTime time.Time `json:"scheduled_start_time"` //ScheduledEndTime of GuildScheduledEvent ScheduledEndTime time.Time `json:"scheduled_end_time"` //PrivacyLevel of GuildScheduledEvent PrivacyLevel GuildScheduledEventPrivacyLevel `json:"privacy_level"` //Status of GuildScheduledEvent Status GuildScheduledEventStatus `json:"status"` //EntityType of GuildScheduledEvent EntityType GuildScheduledEventEntityType `json:"entity_type"` //EntityID of GuildScheduledEvent EntityID Snowflake `json:"entity_id"` //EntityMetadata is additional metadata for the GuildScheduledEvent EntityMetadata GuildScheduledEventEntityMetadata `json:"entity_metadata"` //Creator of GuildScheduledEvent Creator User `json:"creator"` //UserCount of subscribed User(s) to GuildScheduledEvent UserCount int `json:"user_count"` }
GuildScheduledEvent documented at https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object
type GuildScheduledEventEntityMetadata ¶
type GuildScheduledEventEntityMetadata struct { //Location of Event (1-100 characters) Location string `json:"location"` }
GuildScheduledEventEntityMetadata is documented at https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-metadata
type GuildScheduledEventEntityType ¶
type GuildScheduledEventEntityType int
GuildScheduledEventEntityType documented at https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types
const ( //GuildScheduledEventEntityTypeNone is an invalid GuildScheduledEventEntityType from Discord GuildScheduledEventEntityTypeNone GuildScheduledEventEntityType = iota //GuildScheduledEventEntityTypeStageInstance is an GuildScheduledEvent at a ChannelTypeGuildStageVoice GuildScheduledEventEntityTypeStageInstance //GuildScheduledEventEntityTypeVoice is a GuildScheduledEvent at a ChannelTypeGuildVoice GuildScheduledEventEntityTypeVoice //GuildScheduledEventEntityTypeExternal is a GuildScheduledEvent at a platform otherwise listed GuildScheduledEventEntityTypeExternal )
func (GuildScheduledEventEntityType) IsValid ¶
func (guildScheduledEventEntityType GuildScheduledEventEntityType) IsValid() bool
type GuildScheduledEventPrivacyLevel ¶
type GuildScheduledEventPrivacyLevel uint8
GuildScheduledEventPrivacyLevel documented at https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level
const ( //GuildScheduledEventPrivacyLevelGuildOnly is only accessible to GuildMember's GuildScheduledEventPrivacyLevelGuildOnly GuildScheduledEventPrivacyLevel = 2 )
func (GuildScheduledEventPrivacyLevel) IsValid ¶
func (guildScheduledEventPrivacyLevel GuildScheduledEventPrivacyLevel) IsValid() bool
IsValid GuildScheduledEventPrivacyLevel
type GuildScheduledEventStatus ¶
type GuildScheduledEventStatus uint8
GuildScheduledEventStatus documented at https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status
const ( //GuildScheduledEventStatusNone is a zero value GuildScheduledEventStatus from Discord GuildScheduledEventStatusNone GuildScheduledEventStatus = iota //GuildScheduledEventStatusScheduled transitions to GuildScheduledEventStatusActive GuildScheduledEventStatusScheduled //GuildScheduledEventStatusActive transitions to GuildScheduledEventStatusCompleted GuildScheduledEventStatusActive //GuildScheduledEventStatusCompleted transitions to GuildScheduledEventStatusCanceled GuildScheduledEventStatusCompleted //GuildScheduledEventStatusCanceled is a canceled GuildScheduledEvent GuildScheduledEventStatusCanceled )
func (GuildScheduledEventStatus) IsValid ¶
func (guildScheduledEventStatus GuildScheduledEventStatus) IsValid() bool
IsValid GuildScheduledEventStatus
type ImageHash ¶
type ImageHash string
ImageHash documented at https://discord.com/developers/docs/reference#image-formatting
type ImageType ¶
type ImageType string
ImageType documented at https://discord.com/developers/docs/reference#image-formatting-image-formats
type Invite ¶
type Invite struct { //Code for Invite Code string `json:"code"` //Guild Invite is for Guild Guild `json:"guild"` //Channel Invite is for Channel Channel `json:"channel"` //Inviter is the User that created the Invite Inviter User `json:"inviter"` //TargetType is the target type for a ChannelTypeGuildVoice Invite TargetType InviteTargetType `json:"target_type"` //TargetUser is the User whose Stream to display for a ChannelTypeGuildVoice Invite TargetUser User `json:"target_user"` //TargetApplication is the EmbeddedApplication to open for a ChannelTypeGuildVoice embedded application Invite TargetApplication Application `json:"target_application"` //ApproximatePresenceCount of online members ApproximatePresenceCount int `json:"approximate_presence_count"` //ApproximateMemberCount of total members ApproximateMemberCount int `json:"approximate_member_count"` //ExpiresAt date ExpiresAt time.Time `json:"expires_at"` //StageInstance data if there is a public StageInstance in the ChannelTypeGuildStageVoice this Invite is for StageInstance InviteStageInstance `json:"stage_instance"` //GuildScheduledEvent data if this is to a GuildScheduledEvent GuildScheduledEvent GuildScheduledEvent `json:"guild_scheduled_event"` }
Invite documented at https://discord.com/developers/docs/resources/invite#invite-object
type InviteMetadata ¶
type InviteMetadata struct { //Uses of Invite Uses int `json:"uses"` //MaxUses of Invite MaxUses int `json:"max_uses"` //MaxAge of Invite MaxAge int `json:"max_age"` //IsTemporary Invite that only grants temporary membership IsTemporary bool `json:"is_temporary"` //CreatedAt is when the Invite was created CreatedAt time.Time `json:"created_at"` }
InviteMetadata documented at https://discord.com/developers/docs/resources/invite#invite-metadata-object
type InviteStageInstance ¶
type InviteStageInstance struct { //Members speaking in the StageInstance Members []GuildMember `json:"members"` //ParticipantCount in the StageInstance ParticipantCount int `json:"participant_count"` //SpeakerCount in StageInstance SpeakerCount int `json:"speaker_count"` //Topic of StageInstance (1-120 characters) Topic string `json:"topic"` }
InviteStageInstance documented at https://discord.com/developers/docs/resources/invite#invite-stage-instance-object-invite-stage-instance-structure
type InviteTargetType ¶
type InviteTargetType int
InviteTargetType documented at https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types
const ( //InviteTargetTypeNil is an intentionally nil InviteTargetType to show it is not set InviteTargetTypeNil InviteTargetType = 0 //InviteTargetTypeStream is an Invite to a Stream InviteTargetTypeStream InviteTargetType = 1 //InviteTargetTypeEmbeddedApplication is an Invite to a EmbeddedApplication InviteTargetTypeEmbeddedApplication InviteTargetType = 2 )
type MFALevel ¶
type MFALevel uint8
MFALevel from https://discord.com/developers/docs/resources/guild#guild-object-mfa-level
type Message ¶
type Message struct { ID Snowflake `json:"id"` ChannelID Snowflake `json:"channel_id"` GuildID Snowflake `json:"guild_id"` Author User `json:"author"` Member GuildMember `json:"member"` Content string `json:"content"` Timestamp time.Time `json:"timestamp"` EditedTimestamp time.Time `json:"edited_timestamp"` IsTextToSpeech bool `json:"tts"` IsMentionEveryone bool `json:"mention_everyone"` Mentions []User `json:"mentions"` MentionRoles []Role `json:"mention_roles"` MentionChannels []ChannelMention `json:"mention_channels"` Attachments []Attachment `json:"attachments"` Embeds []Embed `json:"embeds"` Reactions []Reaction `json:"reactions"` Nonce string `json:"nonce"` IsPinned bool `json:"pinned"` WebhookID Snowflake `json:"webhook_id"` Type int `json:"type"` Activity MessageActivity `json:"activity"` Application Application `json:"application"` ApplicationID Snowflake `json:"application_id"` MessageReference MessageReference `json:"message_reference"` Flags MessageFlag `json:"flags"` }
Message documented at https://discord.com/developers/docs/resources/channel#message-object
type MessageActivity ¶
type MessageActivity struct { //Type of MessageActivity Type MessageActivityType `json:"type"` //PartyID of https://discord.com/developers/docs/rich-presence/how-to#updating-presence-update-presence-payload-fields PartyID string `json:"party_id"` }
MessageActivity documented at https://discord.com/developers/docs/resources/channel#message-object-message-activity-structure
type MessageActivityType ¶
type MessageActivityType int
MessageActivityType documented at https://discord.com/developers/docs/resources/channel#message-object-message-activity-types
const ( //MessageActivityTypeNil is an intentionally Nil MessageActivityType MessageActivityTypeNil MessageActivityType = 0 //MessageActivityTypeJoin is when an MessageActivity is a Join MessageActivityTypeJoin MessageActivityType = 1 //MessageActivityTypeSpectate is when a MessageActivity is to Spectate MessageActivityTypeSpectate MessageActivityType = 2 //MessageActivityTypeListen is when a MessageActivity is to Listen MessageActivityTypeListen MessageActivityType = 3 //MessageActivityTypeJoinRequest is when a MessageActivity is a JoinRequest MessageActivityTypeJoinRequest MessageActivityType = 5 )
func (MessageActivityType) IsValid ¶
func (m MessageActivityType) IsValid() bool
IsValid MessageActivityType
type MessageFlag ¶
type MessageFlag uint16
MessageFlag documented at https://discord.com/developers/docs/resources/channel#message-object-message-flags
const ( //MessageFlagNil is an intentionally 0 MessageFlag MessageFlagNil MessageFlag = 0 //MessageFlagCrossPosted is when a Message has been published to subscribed Channel's MessageFlagCrossPosted MessageFlag = 1 << 0 //MessageFlagIsCrossPost is when a Message originated from a subscribed Channel MessageFlagIsCrossPost MessageFlag = 1 << 1 //MessageFlagSuppressEmbeds is when a Message should not include any Embed's when serializing this Message MessageFlagSuppressEmbeds MessageFlag = 1 << 2 MessageFlagSourceMessageDeleted MessageFlag = 1 << 3 MessageFlagUrgent MessageFlag = 1 << 4 MessageFlagHasThread MessageFlag = 1 << 5 MessageFlagEphemeral MessageFlag = 1 << 6 MessageFlagLoading MessageFlag = 1 << 7 MessageFlagFailedToMentionSomeRolesInThread MessageFlag = 1 << 8 )
type MessageNotificationsLevel ¶
type MessageNotificationsLevel uint8
MessageNotificationsLevel from https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level
type MessageReference ¶
type MessageReference struct { //MessageID of original Message MessageID Snowflake `json:"message_id"` //ChannelID where original Message is from ChannelID Snowflake `json:"channel_id"` //GuildID where original Message is from GuildID Snowflake `json:"guild_id"` //FailIfNotExists or send as normal non-reply FailIfNotExists bool `json:"fail_if_not_exists"` }
MessageReference documented at https://discord.com/developers/docs/resources/channel#message-reference-object-message-reference-structure
type MessageType ¶
type MessageType uint8
MessageType documented at https://discord.com/developers/docs/resources/channel#message-object-message-types
const ( //MessageTypeDefault is the Default MessageType MessageTypeDefault MessageType = iota //MessageTypeRecipientAdd is the MessageType when a User is added to a Channel MessageTypeRecipientAdd //MessageTypeRecipientRemove is the MessageType when a User is removed from a Channel MessageTypeRecipientRemove //MessageTypeCall is when a MessageType is a Call MessageTypeCall //MessageTypeChannelNameChange is when a Channel Name is changed MessageTypeChannelNameChange //MessageTypeChannelIconChange is when a Channel Icon is changed MessageTypeChannelIconChange //MessageTypeChannelPinnedMessage is when a Channel message is changed MessageTypeChannelPinnedMessage //MessageTypeGuildMemberJoin is when a User is added to a channel MessageTypeGuildMemberJoin //MessageTypeUserPremiumGuildSubscription is when a GuildMember boosts a Guild MessageTypeUserPremiumGuildSubscription //MessageTypeUserPremiumGuildSubscriptionTier1 is when a Guild reaches PremiumTier1 MessageTypeUserPremiumGuildSubscriptionTier1 //MessageTypeUserPremiumGuildSubscriptionTier2 is when a Guild reaches PremiumTier2 MessageTypeUserPremiumGuildSubscriptionTier2 //MessageTypeUserPremiumGuildSubscriptionTier3 is when a Guild reaches PremiumTier3 MessageTypeUserPremiumGuildSubscriptionTier3 //MessageTypeChannelFollowAdd is when a User adds another ChannelTypeGuildNews to a Channel MessageTypeChannelFollowAdd //MessageTypeGuildDiscoveryGracePeriodInitialWarning is when a Guild is about to lose its spot in Guild Discovery MessageTypeGuildDiscoveryGracePeriodInitialWarning //MessageTypeGuildDiscoveryGracePeriodFinalWarning is when a Guild is imminent about to lose its spot in Guild Discovery MessageTypeGuildDiscoveryGracePeriodFinalWarning //MessageTypeThreadCreated is when a Thread has been created MessageTypeThreadCreated //MessageTypeReply is when a Message is a reply to another Message MessageTypeReply //MessageTypeChatInputCommand is when a message is a slash command? maybe? todo: what is this message type? MessageTypeChatInputCommand //MessageTypeThreadStarterMessage is the message that starts a Thread MessageTypeThreadStarterMessage //MessageTypeGuildInviteReminder is the message that a Guild should add an Invite MessageTypeGuildInviteReminder //MessageTypeContextMenuCommand is part of a slash command? MessageTypeContextMenuCommand //MessageTypeInvalid is an intentionally invalid MessageType MessageTypeInvalid MessageType = math.MaxUint8 )
type NSFWLevel ¶
type NSFWLevel uint8
NSFWLevel from https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level
type Overwrite ¶
type Overwrite struct { //ID of Role or User to Overwrite ID Snowflake `json:"id"` //Type of ID Type OverwriteIDType `json:"type"` //Allow is PermissionFlag for Overwrite to Allow a Permission Allow PermissionFlag `json:"allow,string"` //Deny is the PermissionFlag for Overwrite to Deny a Permission Deny PermissionFlag `json:"deny,string"` }
Overwrite struct from https://discord.com/developers/docs/resources/channel#overwrite-object
type OverwriteIDType ¶
type OverwriteIDType uint8
OverwriteIDType documented at https://discord.com/developers/docs/resources/channel#overwrite-object-overwrite-structure
const ( //OverwriteIDTypeRole is a Role ID OverwriteIDTypeRole OverwriteIDType = iota //OverwriteIDTypeUser is a User ID OverwriteIDTypeUser )
func (OverwriteIDType) IsValid ¶
func (overwriteIDType OverwriteIDType) IsValid() bool
IsValid OverwriteIDType
type PermissionFlag ¶
type PermissionFlag uint64
PermissionFlag documented at https://discord.com/developers/docs/topics/permissions#permissions Check PermissionFlag.IsValid() then PermissionFlag.HasPermission()
const ( //PermissionFlagNil is the default PermissionFlag value PermissionFlagNil PermissionFlag = 0 //PermissionFlagCreateInstantInvite allows instant invite creation in ChannelTypeGuildText, ChannelTypeGuildVoice, & ChannelTypeGuildStageVoice PermissionFlagCreateInstantInvite PermissionFlag = 1 << (iota - 1) //PermissionFlagKickMembers allows kicking GuildMember(s) PermissionFlagKickMembers //PermissionFlagBanMembers allows banning GuildMember(s) PermissionFlagBanMembers //PermissionFlagAdministrator allows all PermissionFlag(s) and bypasses all Overwrite(s) PermissionFlagAdministrator //PermissionFlagManageChannels allows management and editing of Channel types ChannelTypeGuildText, ChannelTypeGuildVoice, & ChannelTypeGuildStageVoice PermissionFlagManageChannels //PermissionFlagManageGuild allows management and editing of a Guild PermissionFlagManageGuild //PermissionFlagAddReactions allows adding Reaction(s) (an emoji) to a message in a ChannelTypeGuildText PermissionFlagAddReactions //PermissionFlagViewAuditLog allows viewing AuditLog PermissionFlagViewAuditLog //PermissionFlagPrioritySpeaker allows being a PrioritySpeaker in a ChannelTypeGuildVoice PermissionFlagPrioritySpeaker //PermissionFlagStream allows User to start a Stream in a ChannelTypeGuildVoice PermissionFlagStream //PermissionFlagViewChannel allows a User to view a Channel PermissionFlagViewChannel //PermissionFlagSendMessages allows a User to send messages in a ChannelTypeGuildText PermissionFlagSendMessages //PermissionFlagSendTTSMessage allows a User to send Text-To-Speech messages in a ChannelTypeGuildText PermissionFlagSendTTSMessage //PermissionFlagManageMessages allows a User to manage a ChannelTypeGuildText messages PermissionFlagManageMessages //PermissionFlagEmbedLinks makes links sent by User with this PermissionFlag to be embedded automatically PermissionFlagEmbedLinks //PermissionFlagAttachFiles allows a User to upload images and files PermissionFlagAttachFiles //PermissionFlagReadMessageHistory allows a User to read message history in a ChannelTypeGuildText PermissionFlagReadMessageHistory //PermissionFlagMentionEveryone allows a User use the @everyone, @here, and all @roles PermissionFlagMentionEveryone //PermissionFlagUseExternalEmojis allows a User to use Emoji(s) from another Guild PermissionFlagUseExternalEmojis //PermissionFlagViewGuildInsights allows a User to view Guild Insights PermissionFlagViewGuildInsights //PermissionFlagConnect allows a User to connect to a ChannelTypeGuildVoice and ChannelTypeGuildStageVoice PermissionFlagConnect //PermissionFlagSpeak allows a User to speak in a ChannelTypeGuildVoice PermissionFlagSpeak //PermissionFlagMuteMembers allows a User to mute another User in a ChannelTypeGuildVoice and ChannelTypeGuildStageVoice PermissionFlagMuteMembers //PermissionFlagDeafenMembers allows a User to deafen another User in a ChannelTypeGuildVoice and ChannelTypeGuildStageVoice PermissionFlagDeafenMembers //PermissionFlagMoveMembers allows a User to move another User to another ChannelTypeGuildVoice or ChannelTypeGuildStageVoice PermissionFlagMoveMembers //PermissionFlagUseVoiceActivityDetection allows a User to use VoiceActivity to show when they are speaking PermissionFlagUseVoiceActivityDetection //PermissionFlagChangeNickname allows a User to change their User.Nickname PermissionFlagChangeNickname //PermissionFlagManageNicknames allows a User to change others User.Nickname PermissionFlagManageNicknames //PermissionFlagManageRoles allows a User to manage Role(s) PermissionFlagManageRoles //PermissionFlagManageWebhooks allows a User to manage Webhooks in a ChannelTypeGuildText PermissionFlagManageWebhooks //PermissionFlagManageEmojisAndStickers allows a User to manage Emoji(s) and Sticker(s) PermissionFlagManageEmojisAndStickers //PermissionFlagUseApplicationCommands allows a User to use application commands (slash commands and context menus) PermissionFlagUseApplicationCommands //PermissionFlagRequestToSpeak allows a User to request to speak in a ChannelTypeGuildStageVoice PermissionFlagRequestToSpeak //PermissionFlagSkippedNotReal is a fake flag because discord skips 1<<33 PermissionFlagSkippedNotReal //PermissionFlagManageThreads allows a User to manage Thread(s) PermissionFlagManageThreads //PermissionFlagCreatePublicThreads allows a User create public and announcement threads PermissionFlagCreatePublicThreads //PermissionFlagCreatePrivateThreads allows a User to create a private Thread PermissionFlagCreatePrivateThreads //PermissionFlagUseExternalStickers allows a User to use another Guild's Sticker(s) PermissionFlagUseExternalStickers //PermissionFlagSendMessageInThreads allows a User to send messages in a Thread PermissionFlagSendMessageInThreads //PermissionFlagStartEmbeddedActivities allows a User to launch Activities (applications with the Embedded flag) in a ChannelTypeGuildVoice PermissionFlagStartEmbeddedActivities //PermissionModerateMembers allows a User to timeout users PermissionModerateMembers //PermissionFlagALL is a ANDed of all valid PermissionFlag PermissionFlagALL PermissionFlag = (1 << (iota - 1)) - 1 )
func (PermissionFlag) Contains ¶
func (permissionFlag PermissionFlag) Contains(flags PermissionFlag) bool
Contains another PermissionFlag
func (PermissionFlag) IsValid ¶
func (permissionFlag PermissionFlag) IsValid() bool
IsValid PermissionFlag
type PremiumTier ¶
type PremiumTier uint8
PremiumTier from https://discord.com/developers/docs/resources/guild#guild-object-premium-tier
const ( //PremiumTier0 is no Server Boost's perks PremiumTier0 PremiumTier = iota //PremiumTier1 is Server Boost level 1 perks PremiumTier1 //PremiumTier2 is Server Boost level 2 perks PremiumTier2 //PremiumTier3 is Server Boost level 3 perks PremiumTier3 )
type PremiumType ¶
type PremiumType uint8
PremiumType documented at https://discord.com/developers/docs/resources/user#user-object-premium-types
const ( //PremiumTypeNil is a User without a Nitro subscription PremiumTypeNil PremiumType = iota //PremiumTypeNitroClassic is a User with a Classic Nitro subscription PremiumTypeNitroClassic //PremiumTypeNitro is a User with a Nitro subscription PremiumTypeNitro )
type PresenceStatus ¶
type PresenceStatus string
PresenceStatus documented at https://discord.com/developers/docs/topics/gateway#update-presence-status-types
const ( //PresenceStatusNil is a Nil Presence Status PresenceStatusNil PresenceStatus = "" //PresenceStatusIdle of PresenceUpdate.Status PresenceStatusIdle PresenceStatus = "idle" //PresenceStatusDnd of PresenceUpdate.Status PresenceStatusDnd PresenceStatus = "dnd" //PresenceStatusOnline of PresenceUpdate.Status PresenceStatusOnline PresenceStatus = "online" //PresenceStatusOffline of PresenceUpdate.Status PresenceStatusOffline PresenceStatus = "offline" )
Const list of PresenceStatus possibilities
type PresenceUpdate ¶
type PresenceUpdate struct { //User presence is being updated for User User `json:"user"` //GuildID where PresenceUpdate is for GuildID Snowflake `json:"guild_id,string"` //Status that is being updated Status PresenceStatus `json:"status"` //Activities of User Activities []Activity `json:"activities"` //ClientStatus of User, platform-dependent ClientStatus ClientStatus `json:"client_status"` }
PresenceUpdate struct documented at https://discord.com/developers/docs/topics/gateway#presence-update
type PrivacyLevel ¶
type PrivacyLevel int8
PrivacyLevel documented at https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level
const ( PrivacyLevelNil PrivacyLevel = iota PrivacyLevelPublic PrivacyLevelGuildOnly )
type Reaction ¶
type Reaction struct { //Count of times Emoji has been used Count int `json:"count"` //IsMe who reacted IsMe bool `json:"me"` //Emoji information for Reaction Emoji Emoji `json:"emoji"` }
Reaction is documented at https://discord.com/developers/docs/resources/channel#reaction-object
type Role ¶
type Role struct { //ID of Role ID Snowflake `json:"id,string"` //Name of Role Name string `json:"name"` //Color of Role Color int `json:"color"` //IsHoist aka pinned in GuildMember list on client IsHoist bool `json:"hoist"` //IconHash is the Role's IconHash for grabbing from CDN IconHash ImageHash `json:"icon"` //UnicodeEmoji equivalent UnicodeEmoji string `json:"unicode_emoji"` //Position of Role Position int `json:"position"` //Permissions for Role as a PermissionsBitSet Permissions PermissionFlag `json:"permissions,string"` //IsManaged by integration? IsManaged bool `json:"managed"` //IsMentionable Emoji? Mentionable bool `json:"mentionable"` //Tag for role Tag RoleTag `json:"tags"` }
Role struct from https://discord.com/developers/docs/topics/permissions#role-object
type RoleTag ¶
type RoleTag struct { //BotID that owns this Role BotID Snowflake `json:"bot_id"` //IntegrationID that this Role belongs to IntegrationID Snowflake `json:"integration_id"` //IsPremiumSubscriber Role aka booster Role IsPremiumSubscriber bool `json:"premium_subscriber"` }
RoleTag struct from https://discord.com/developers/docs/topics/permissions#role-object-role-tags-structure
type ShardInformation ¶
type ShardInformation []int
ShardInformation https://discord.com/developers/docs/topics/gateway#sharding
func (ShardInformation) Count ¶
func (s ShardInformation) Count() int
Count of Shard(s) Bot should use
type Snowflake ¶
type Snowflake uint64 //todo: helper methods
Snowflake documented at https://discord.com/developers/docs/reference#snowflakes
func (Snowflake) InternalProcessID ¶
InternalProcessID used by Discord
func (Snowflake) InternalWorkerID ¶
InternalWorkerID used by Discord
func (*Snowflake) UnmarshalJSON ¶
type StageInstance ¶
type StageInstance struct { //ID of StageInstance ID Snowflake `json:"id"` //GuildID of StageInstance GuildID Snowflake `json:"guild_id"` //ChannelID of StageInstance ChannelID Snowflake `json:"channel_id"` //Topic of StageInstance Topic string `json:"topic"` //PrivacyLevel of StageInstance PrivacyLevel PrivacyLevel `json:"privacy_level"` //IsDiscoverableDisabled aka stage discovery IsDiscoverableDisabled bool `json:"discoverable_disabled"` }
StageInstance struct from json, documented at https://discord.com/developers/docs/resources/stage-instance#stage-instance-object
type Sticker ¶
type Sticker struct { //ID of Sticker ID Snowflake `json:"id"` //PackID of Sticker, if a standard sticker PackID Snowflake `json:"pack_id"` //Name of Sticker Name string `json:"name"` //Description of Sticker Description string `json:"description"` //Tags for Autocomplete when searching for Sticker (max 200 characters) Tags string `json:"tags"` //Asset Deprecated, previously an Asset hash, now just empty Asset string `json:"asset"` //Type of Sticker Type StickerType `json:"type"` //FormatType of Sticker FormatType StickerFormatType `json:"format_type"` //IsAvailable false if fell below required PremiumTier IsAvailable bool `json:"is_available"` //GuildID of Guild this Sticker was uploaded to GuildID Snowflake `json:"guild_id"` //User that uploaded this Sticker User User `json:"user"` //SortValue this Sticker is in within its pack SortValue int `json:"sort_value"` }
Sticker struct from json, documented at https://discord.com/developers/docs/resources/sticker#sticker-object
type StickerFormatType ¶
type StickerFormatType uint8
StickerFormatType documented at https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types
const ( //StickerFormatTypeNil is the default StickerFormatType StickerFormatTypeNil StickerFormatType = iota //StickerFormatTypePNG is a PNG format StickerFormatTypePNG //StickerFormatTypeAPNG is a APNG format StickerFormatTypeAPNG //StickerFormatTypeLOTTIE is a LOTTIE format StickerFormatTypeLOTTIE )
func (StickerFormatType) IsValid ¶
func (stickerFormatType StickerFormatType) IsValid() bool
type StickerType ¶
type StickerType uint8
StickerType documented at https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types
const ( //StickerTypeNil is a zero-value StickerType StickerTypeNil StickerType = iota //StickerTypeStandard is a Discord-set Sticker in a pack StickerTypeStandard //StickerTypeGuild is a Sticker uploaded by a User to a Guild StickerTypeGuild )
type SystemChannelFlag ¶
type SystemChannelFlag uint8
SystemChannelFlag (bitwise, potential combination of flags) from https://discord.com/developers/docs/resources/guild#guild-object-system-channel-flags
const ( //SystemChannelFlagNil is a default Nil SystemChannelFlag SystemChannelFlagNil SystemChannelFlag = 0 //SystemChannelFlagSuppressJoinNotifications SystemChannelFlag to suppress member join notifications SystemChannelFlagSuppressJoinNotifications SystemChannelFlag = 1 << (iota - 1) //SystemChannelFlagPremiumSubscriptions SystemChannelFlag to suppress guild boost notifications SystemChannelFlagPremiumSubscriptions //SystemChannelFlagSuppressGuildReminderNotifications SystemChannelFlag to suppress guild setup tips SystemChannelFlagSuppressGuildReminderNotifications //SystemChannelFlagALL ANDed bitmask of all SystemChannelFlag(s) SystemChannelFlagALL SystemChannelFlag = (1 << (iota - 1)) - 1 )
func (SystemChannelFlag) Contains ¶
func (systemChannelFlag SystemChannelFlag) Contains(flags SystemChannelFlag) bool
Contains a SystemChannelFlag
func (SystemChannelFlag) IsValid ¶
func (systemChannelFlag SystemChannelFlag) IsValid() bool
IsValid SystemChannelFlag
type Team ¶
type Team struct { //IconHash of Team Icon IconHash ImageHash `json:"icon"` //ID of Team ID Snowflake `json:"id,string"` //Members of Team Members []TeamMember `json:"members"` //Name of Team Name string `json:"name"` //OwnerID of Team OwnerID Snowflake `json:"owner_id,string"` }
Team documented at https://discord.com/developers/docs/topics/teams#data-models-team-object
type TeamMember ¶
type TeamMember struct { //MembershipState on Team MembershipState TeamMembershipState `json:"membership_state"` //Permissions of TeamMember; always "*" Permissions []string `json:"permissions"` //TeamID TeamMember is a part of TeamID Snowflake `json:"team_id,string"` //User this TeamMember is from (with discriminator, flags, id, and username fields filled) User User `json:"user"` }
TeamMember documented at https://discord.com/developers/docs/topics/teams#data-models-team-member-object
type TeamMembershipState ¶
type TeamMembershipState uint8
TeamMembershipState documented at https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum
const ( //TeamMembershipStateInvalid is a zero-value from Discord (should never be this) TeamMembershipStateInvalid TeamMembershipState = iota //TeamMembershipStateInvited is a Member in a valid invite state TeamMembershipStateInvited //TeamMembershipStateAccepted is a Member who accepted the Membership TeamMembershipStateAccepted )
func (TeamMembershipState) IsValid ¶
func (teamMembershipState TeamMembershipState) IsValid() bool
IsValid TeamMembershipState
type ThreadMember ¶
type ThreadMember struct { //ID of Thread; only sent in GUILD_CREATE event ID Snowflake `json:"id"` //UserID of User; only sent in GUILD_CREATE event UserID Snowflake `json:"user_id"` //JoinTimeStamp when User last joined Thread JoinTimeStamp Snowflake `json:"join_time_stamp"` //Flags for user-thread settings, currently only for notifications Flags MessageType `json:"flags"` //todo: find where this is documented, can't find the value possibilities; assuming MessageType }
ThreadMember struct from https://discord.com/developers/docs/resources/channel#thread-member-object
type ThreadMetadata ¶
type ThreadMetadata struct { //IsArchived Thread IsArchived bool `json:"archived"` //AutoArchiveDuration in minutes (possible values are: 60, 1440, 4320, 10080) AutoArchiveDuration int `json:"auto_archive_duration"` //ArchiveTimestamp is when Thread archive status was last set ArchiveTimestamp time.Time `json:"archive_timestamp"` //IsLocked Thread IsLocked bool `json:"locked"` //IsInvitable by non-moderators IsInvitable bool `json:"invitable"` }
ThreadMetadata struct from https://discord.com/developers/docs/resources/channel#thread-metadata-object
type UnavailableGuild ¶
UnavailableGuild documented at https://discord.com/developers/docs/resources/guild#unavailable-guild-object
type User ¶
type User struct { //ID of User ID Snowflake `json:"id,string"` //Username of User, not unique Username string `json:"username"` //Discriminator of User, 4 suffix digits Discriminator string `json:"discriminator"` //AvatarHash of User AvatarHash ImageHash `json:"avatar"` //IsBot User IsBot bool `json:"bot"` //IsSystemUser maintained by Discord for official communications IsSystemUser bool `json:"system"` //MFAEnabled is if a User has MultiFactorAuthenticated enabled MFAEnabled bool `json:"mfa_enabled"` //BannerHash of User BannerHash ImageHash `json:"banner"` //BannerAccentColor of User as a hexadecimal color code todo: maybe helper function or custom parse for a "color" package color BannerAccentColor int `json:"accent_color"` //Locale of User Locale string `json:"locale"` //IsVerified account (by email) IsVerified bool `json:"is_verified"` //Email of User Email string `json:"email"` //Flags for User (ex: Discord Employee, Early Supporter) Flags UserFlag `json:"flags"` //PremiumType of User (aka nitro type) PremiumType PremiumType `json:"premium_type"` //PublicFlags seen by all User(s) PublicFlags UserFlag `json:"public_flags"` }
User struct from https://discord.com/developers/docs/resources/user#user-object
type UserFlag ¶
type UserFlag uint32
UserFlag documented at https://discord.com/developers/docs/resources/user#user-object-user-flags
const ( //UserFlagNil is a User without any UserFlag(s) UserFlagNil UserFlag = 0 //UserFlagDiscordEmployee is a Discord Employee UserFlagDiscordEmployee UserFlag = 1 << 0 //UserFlagPartneredServerOwner is a Partnered Server Owner UserFlagPartneredServerOwner UserFlag = 1 << 1 //UserFlagHypeSquadEvents is a HypeSquad Event coordinator UserFlagHypeSquadEvents UserFlag = 1 << 2 //UserFlagBugHunterLevel1 is a Level 1 Bug Hunter UserFlagBugHunterLevel1 UserFlag = 1 << 3 //UserFlagHouseBravery is a User that is part of House Bravery UserFlagHouseBravery UserFlag = 1 << 6 //UserFlagHouseBrilliance is a User that is part of House Brilliance UserFlagHouseBrilliance UserFlag = 1 << 7 //UserFlagHouseBalance is a User that is part of House Balance UserFlagHouseBalance UserFlag = 1 << 8 //UserFlagEarlySupporter is an Early Nitro Supporter UserFlagEarlySupporter UserFlag = 1 << 9 //UserFlagTeamUser is a bot team user? todo: don't actually know about this UserFlagTeamUser UserFlag = 1 << 10 //UserFlagBugHunterLevel2 is Level 2 Bug Hunter UserFlagBugHunterLevel2 UserFlag = 1 << 14 //UserFlagVerifiedBot is a Bot that has gone through the Verification process UserFlagVerifiedBot UserFlag = 1 << 16 //UserFlagEarlyVerifiedBotDeveloper is a User who owns a Bot that has gone through the Verification Process when it just came out UserFlagEarlyVerifiedBotDeveloper UserFlag = 1 << 17 //UserFlagDiscordCertifiedModerator is a User who has gone through the discord moderator academy and been active in the moderator Guild UserFlagDiscordCertifiedModerator UserFlag = 1 << 18 //UserFlagAll is a UserFlag of all flags apart from UserFlagNil ANDed together UserFlagAll = UserFlagDiscordEmployee | UserFlagPartneredServerOwner | UserFlagHypeSquadEvents | UserFlagBugHunterLevel1 | UserFlagHouseBravery | UserFlagHouseBrilliance | UserFlagHouseBalance | UserFlagEarlySupporter | UserFlagTeamUser | UserFlagBugHunterLevel2 | UserFlagVerifiedBot | UserFlagEarlyVerifiedBotDeveloper | UserFlagDiscordCertifiedModerator )
type VerificationLevel ¶
type VerificationLevel uint8
VerificationLevel from https://discord.com/developers/docs/resources/guild#guild-object-verification-level
type VoiceQualityMode ¶
type VoiceQualityMode uint8
VoiceQualityMode struct from https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes
const ( //VoiceQualityModeInvalid is an invalid VoiceQualityMode VoiceQualityModeInvalid VoiceQualityMode = iota //VoiceQualityModeAuto is where VoiceQualityMode is automatically chosen by Discord VoiceQualityModeAuto //VoiceQualityModeFull is 720p VoiceQualityModeFull )
func (VoiceQualityMode) IsValid ¶
func (voiceQualityMode VoiceQualityMode) IsValid() bool
IsValid VoiceQualityMode
type VoiceRegion ¶
type VoiceRegion struct { //ID of VoiceRegion ID string `json:"id"` //Name of VoiceRegion Name string `json:"name"` //IsOptimal VoiceRegion, in terms of distance for Bot IsOptimal bool `json:"optimal"` //IsDeprecated VoiceRegion IsDeprecated bool `json:"deprecated"` //IsCustom VoiceRegion IsCustom bool `json:"custom"` }
VoiceRegion struct from https://discord.com/developers/docs/resources/voice#voice-region-object
type VoiceState ¶
type VoiceState struct { //GuildID this VoiceState is from GuildID Snowflake `json:"guild_id,string"` //ChannelID this VoiceState is from ChannelID Snowflake `json:"channel_id,string"` //UserID this VoiceState is for UserID Snowflake `json:"user_id,string"` //GuildMember this VoiceState is for; only filled on GUILD_CREATE Event GuildMember GuildMember `json:"member"` //SessionID for VoiceState SessionID string `json:"session_id"` //IsDeafened by Guild IsDeafened bool `json:"deaf"` //IsMuted by Guild IsMuted bool `json:"mute"` //IsSelfDeafened by UserID IsSelfDeafened bool `json:"self_deaf"` //IsSelfMuted by UserID IsSelfMuted bool `json:"self_mute"` //IsSelfStreaming using "Go Live" IsSelfStreaming bool `json:"self_stream"` //IsSuppressed by Bot IsSuppressed bool `json:"suppress"` //RequestToSpeakTimestamp is when a UserID requested to speak RequestToSpeakTimestamp time.Time `json:"request_to_speak_timestamp"` }
VoiceState struct from https://discord.com/developers/docs/resources/voice#voice-state-object
type WelcomeScreen ¶
type WelcomeScreen struct { }
WelcomeScreen from https://discord.com/developers/docs/resources/guild#welcome-screen-object