Documentation ¶
Overview ¶
package discordgo provides Discord binding for Go
Index ¶
- Constants
- Variables
- type Attachment
- type Channel
- type Embed
- type Emoji
- type Event
- type Game
- type Guild
- type GuildBan
- type GuildEmojisUpdate
- type GuildIntegrationsUpdate
- type GuildRole
- type GuildRoleDelete
- type ICEServer
- type Invite
- type Member
- type Message
- type MessageAck
- type MessageDelete
- type PermissionOverwrite
- type Presence
- type PresenceUpdate
- type RateLimit
- type ReadState
- type Ready
- type Role
- type Session
- func (s *Session) Channel(channelID string) (st *Channel, err error)
- func (s *Session) ChannelDelete(channelID string) (st *Channel, err error)
- func (s *Session) ChannelEdit(channelID, name string) (st *Channel, err error)
- func (s *Session) ChannelInviteCreate(channelID string, i Invite) (st *Invite, err error)
- func (s *Session) ChannelInvites(channelID string) (st []*Invite, err error)
- func (s *Session) ChannelMessageAck(channelID, messageID string) (err error)
- func (s *Session) ChannelMessageDelete(channelID, messageID string) (err error)
- func (s *Session) ChannelMessageEdit(channelID, messageID, content string) (st *Message, err error)
- func (s *Session) ChannelMessageSend(channelID string, content string) (st *Message, err error)
- func (s *Session) ChannelMessages(channelID string, limit int, beforeID int, afterID int) (st []*Message, err error)
- func (s *Session) ChannelPermissionDelete(channelID, targetID string) (err error)
- func (s *Session) ChannelPermissionSet(channelID, targetID, targetType string, allow, deny int) (err error)
- func (s *Session) ChannelTyping(channelID string) (err error)
- func (s *Session) ChannelVoiceJoin(gID, cID string, mute, deaf bool) (err error)
- func (s *Session) Close()
- func (s *Session) Gateway() (gateway string, err error)
- func (s *Session) Guild(guildID string) (st *Guild, err error)
- func (s *Session) GuildBanCreate(guildID, userID string, days int) (err error)
- func (s *Session) GuildBanDelete(guildID, userID string) (err error)
- func (s *Session) GuildBans(guildID string) (st []*User, err error)
- func (s *Session) GuildChannelCreate(guildID, name, ctype string) (st *Channel, err error)
- func (s *Session) GuildChannels(guildID string) (st []*Channel, err error)
- func (s *Session) GuildCreate(name string) (st *Guild, err error)
- func (s *Session) GuildDelete(guildID string) (st *Guild, err error)
- func (s *Session) GuildEdit(guildID, name string) (st *Guild, err error)
- func (s *Session) GuildInviteCreate(guildID string, i *Invite) (st *Invite, err error)
- func (s *Session) GuildInvites(guildID string) (st []*Invite, err error)
- func (s *Session) GuildMemberDelete(guildID, userID string) (err error)
- func (s *Session) GuildRoleCreate(guildID string) (st *Role, err error)
- func (s *Session) GuildRoleDelete(guildID, roleID string) (err error)
- func (s *Session) GuildRoleEdit(guildID, roleID, name string, color int, hoist bool, perm int) (st *Role, err error)
- func (s *Session) GuildRoleReorder(guildID string, roles []Role) (st []*Role, err error)
- func (s *Session) GuildRoles(guildID string) (st []*Role, err error)
- func (s *Session) Handshake() (err error)
- func (s *Session) Heartbeat(i time.Duration)
- func (s *Session) Invite(inviteID string) (st *Invite, err error)
- func (s *Session) InviteAccept(inviteID string) (st *Invite, err error)
- func (s *Session) InviteDelete(inviteID string) (st *Invite, err error)
- func (s *Session) Listen() (err error)
- func (s *Session) Login(email string, password string) (token string, err error)
- func (s *Session) Logout() (err error)
- func (s *Session) Open() (err error)
- func (s *Session) Register(username string) (token string, err error)
- func (s *Session) Request(method, urlStr string, data interface{}) (response []byte, err error)
- func (s *Session) UpdateStatus(idle int, game string) (err error)
- func (s *Session) User(userID string) (st *User, err error)
- func (s *Session) UserAvatar(userID string) (img image.Image, err error)
- func (s *Session) UserChannelCreate(recipientID string) (st *Channel, err error)
- func (s *Session) UserChannels() (st []*Channel, err error)
- func (s *Session) UserGuilds() (st []*Guild, err error)
- func (s *Session) UserSettings() (st *Settings, err error)
- func (s *Session) UserUpdate(email, password, username, avatar, newPassword string) (st *User, err error)
- func (s *Session) VoiceICE() (st *VoiceICE, err error)
- func (s *Session) VoiceRegions() (st []*VoiceRegion, err error)
- type Settings
- type State
- func (s *State) Channel(channelID string) (*Channel, error)
- func (s *State) ChannelAdd(channel *Channel) error
- func (s *State) ChannelRemove(channel *Channel) error
- func (s *State) Emoji(guildID, emojiID string) (*Emoji, error)
- func (s *State) EmojiAdd(guildID string, emoji *Emoji) error
- func (s *State) EmojisAdd(guildID string, emojis []*Emoji) error
- func (s *State) Guild(guildID string) (*Guild, error)
- func (s *State) GuildAdd(guild *Guild) error
- func (s *State) GuildChannel(guildID, channelID string) (*Channel, error)
- func (s *State) GuildRemove(guild *Guild) error
- func (s *State) Member(guildID, userID string) (*Member, error)
- func (s *State) MemberAdd(member *Member) error
- func (s *State) MemberRemove(member *Member) error
- func (s *State) OnReady(r *Ready) error
- func (s *State) PrivateChannel(channelID string) (*Channel, error)
- type TypingStart
- type User
- type Voice
- type VoiceICE
- type VoiceRegion
- type VoiceServerUpdate
- type VoiceState
Constants ¶
const VERSION = "0.9.0"
Discordgo Version, follows Symantic Versioning. (http://semver.org/)
Variables ¶
var ( STATUS = "https://status.discordapp.com/api/v2/" SM = STATUS + "scheduled-maintenances/" SM_ACTIVE = SM + "active.json" SM_UPCOMING = SM + "upcoming.json" DISCORD = "https://discordapp.com" // TODO consider removing API = DISCORD + "/api/" GUILDS = API + "guilds/" CHANNELS = API + "channels/" USERS = API + "users/" GATEWAY = API + "gateway" AUTH = API + "auth/" LOGIN = AUTH + "login" LOGOUT = AUTH + "logout" VERIFY = AUTH + "verify" VERIFY_RESEND = AUTH + "verify/resend" FORGOT_PASSWORD = AUTH + "forgot" RESET_PASSWORD = AUTH + "reset" REGISTER = AUTH + "register" VOICE = API + "/voice/" VOICE_REGIONS = VOICE + "regions" VOICE_ICE = VOICE + "ice" TUTORIAL = API + "tutorial/" TUTORIAL_INDICATORS = TUTORIAL + "indicators" TRACK = API + "track" SSO = API + "sso" REPORT = API + "report" INTEGRATIONS = API + "integrations" USER = func(uID string) string { return USERS + uID } USER_AVATAR = func(uID, aID string) string { return USERS + uID + "/avatars/" + aID + ".jpg" } USER_SETTINGS = func(uID string) string { return USERS + uID + "/settings" } USER_GUILDS = func(uID string) string { return USERS + uID + "/guilds" } USER_CHANNELS = func(uID string) string { return USERS + uID + "/channels" } USER_DEVICES = func(uID string) string { return USERS + uID + "/devices" } USER_CONNECTIONS = func(uID string) string { return USERS + uID + "/connections" } GUILD = func(gID string) string { return GUILDS + gID } GUILD_INIVTES = func(gID string) string { return GUILDS + gID + "/invites" } GUILD_CHANNELS = func(gID string) string { return GUILDS + gID + "/channels" } GUILD_MEMBER_DEL = func(gID, uID string) string { return GUILDS + gID + "/members/" + uID } GUILD_BANS = func(gID string) string { return GUILDS + gID + "/bans" } GUILD_BAN = func(gID, uID string) string { return GUILDS + gID + "/bans/" + uID } GUILD_INTEGRATIONS = func(gID string) string { return GUILDS + gID + "/integrations" } GUILD_ROLES = func(gID string) string { return GUILDS + gID + "/roles" } GUILD_ROLE = func(gID, rID string) string { return GUILDS + gID + "/roles/" + rID } GUILD_INVITES = func(gID string) string { return GUILDS + gID + "/invites" } GUILD_EMBED = func(gID string) string { return GUILDS + gID + "/embed" } GUILD_PRUNE = func(gID string) string { return GUILDS + gID + "/prune" } GUILD_ICON = func(gID, hash string) string { return GUILDS + gID + "/icons/" + hash + ".jpg" } GUILD_SPLASH = func(gID, hash string) string { return GUILDS + gID + "/splashes/" + hash + ".jpg" } CHANNEL = func(cID string) string { return CHANNELS + cID } CHANNEL_PERMISSIONS = func(cID string) string { return CHANNELS + cID + "/permissions" } CHANNEL_PERMISSION = func(cID, tID string) string { return CHANNELS + cID + "/permissions/" + tID } CHANNEL_INVITES = func(cID string) string { return CHANNELS + cID + "/invites" } CHANNEL_TYPING = func(cID string) string { return CHANNELS + cID + "/typing" } CHANNEL_MESSAGES = func(cID string) string { return CHANNELS + cID + "/messages" } CHANNEL_MESSAGE = func(cID, mID string) string { return CHANNELS + cID + "/messages/" + mID } CHANNEL_MESSAGE_ACK = func(cID, mID string) string { return CHANNELS + cID + "/messages/" + mID + "/ack" } INVITE = func(iID string) string { return API + "invite/" + iID } INTEGRATIONS_JOIN = func(iID string) string { return API + "integrations/" + iID + "/join" } EMOJI = func(eID string) string { return API + "emojis/" + eID + ".png" } )
var ErrJSONUnmarshal = errors.New("json unmarshal")
Functions ¶
This section is empty.
Types ¶
type Attachment ¶
type Attachment struct { ID string `json:"id"` URL string `json:"url"` ProxyURL string `json:"proxy_url"` Width int `json:"width"` Height int `json:"height"` Filename string `json:"filename"` Size int `json:"size"` }
An Attachment stores data for message attachments.
type Channel ¶
type Channel struct { ID string `json:"id"` GuildID string `json:"guild_id"` Name string `json:"name"` Topic string `json:"topic"` Position int `json:"position"` Type string `json:"type"` PermissionOverwrites []*PermissionOverwrite `json:"permission_overwrites"` IsPrivate bool `json:"is_private"` LastMessageID string `json:"last_message_id"` Recipient *User `json:"recipient"` }
A Channel holds all data related to an individual Discord channel.
type Embed ¶
type Embed struct { URL string `json:"url"` Type string `json:"type"` Title string `json:"title"` Description string `json:"description"` Thumbnail *struct { URL string `json:"url"` ProxyURL string `json:"proxy_url"` Width int `json:"width"` Height int `json:"height"` } `json:"thumbnail"` Provider *struct { URL string `json:"url"` Name string `json:"name"` } `json:"provider"` Author *struct { URL string `json:"url"` Name string `json:"name"` } `json:"author"` Video *struct { URL string `json:"url"` Width int `json:"width"` Height int `json:"height"` } `json:"video"` }
An Embed stores data for message embeds.
type Event ¶
type Event struct { Type string `json:"t"` State int `json:"s"` Operation int `json:"op"` Direction int `json:"dir"` RawData json.RawMessage `json:"d"` }
An Event provides a basic initial struct for all websocket event.
type Guild ¶
type Guild struct { ID string `json:"id"` Name string `json:"name"` Icon string `json:"icon"` Region string `json:"region"` AfkTimeout int `json:"afk_timeout"` AfkChannelID string `json:"afk_channel_id"` EmbedChannelID string `json:"embed_channel_id"` EmbedEnabled bool `json:"embed_enabled"` OwnerID string `json:"owner_id"` Large bool `json:"large"` // ?? JoinedAt string `json:"joined_at"` // make this a timestamp Roles []*Role `json:"roles"` Emojis []*Emoji `json:"emojis"` Members []*Member `json:"members"` Presences []*Presence `json:"presences"` Channels []*Channel `json:"channels"` VoiceStates []*VoiceState `json:"voice_states"` }
A Guild holds all data related to a specific Discord Guild. Guilds are also sometimes referred to as Servers in the Discord client.
type GuildEmojisUpdate ¶
A GuildEmojisUpdate stores data for a guild emoji update event.
type GuildIntegrationsUpdate ¶
type GuildIntegrationsUpdate struct {
GuildID string `json:"guild_id"`
}
A GuildIntegrationsUpdate stores data for the guild integrations update websocket event.
type GuildRoleDelete ¶
A GuildRoleDelete stores data for the guild role delete websocket event.
type ICEServer ¶
type ICEServer struct { URL string `json:"url"` Username string `json:"username"` Credential string `json:"credential"` }
A ICEServer stores data for a specific voice ICE server.
type Invite ¶
type Invite struct { MaxAge int `json:"max_age"` Code string `json:"code"` Guild *Guild `json:"guild"` Revoked bool `json:"revoked"` CreatedAt string `json:"created_at"` // TODO make timestamp Temporary bool `json:"temporary"` Uses int `json:"uses"` MaxUses int `json:"max_uses"` Inviter *User `json:"inviter"` XkcdPass bool `json:"xkcdpass"` Channel *Channel `json:"channel"` }
A Invite stores all data related to a specific Discord Guild or Channel invite.
type Member ¶
type Member struct { GuildID string `json:"guild_id"` JoinedAt string `json:"joined_at"` Deaf bool `json:"deaf"` Mute bool `json:"mute"` User *User `json:"user"` Roles []string `json:"roles"` }
A Member stores user information for Guild members.
type Message ¶
type Message struct { ID string `json:"id"` Author *User `json:"author"` Content string `json:"content"` Attachments []*Attachment `json:"attachments"` Tts bool `json:"tts"` Embeds []*Embed `json:"embeds"` Timestamp string `json:"timestamp"` MentionEveryone bool `json:"mention_everyone"` EditedTimestamp string `json:"edited_timestamp"` Mentions []*User `json:"mentions"` ChannelID string `json:"channel_id"` }
A Message stores all data related to a specific Discord message.
func (*Message) ContentWithMentionsReplaced ¶
ContentWithMentionsReplaced will replace all @<id> mentions with the username of the mention.
type MessageAck ¶
type MessageAck struct { MessageID string `json:"message_id"` ChannelID string `json:"channel_id"` }
A MessageAck stores data for the message ack websocket event.
type MessageDelete ¶
type MessageDelete struct { ID string `json:"id"` ChannelID string `json:"channel_id"` } // so much like MessageAck..
A MessageDelete stores data for the message delete websocket event.
type PermissionOverwrite ¶
type PermissionOverwrite struct { ID string `json:"id"` Type string `json:"type"` Deny int `json:"deny"` Allow int `json:"allow"` }
A PermissionOverwrite holds permission overwrite data for a Channel
type Presence ¶
type Presence struct { User *User `json:"user"` Status string `json:"status"` Game *Game `json:"game"` }
A Presence stores the online, offline, or idle and game status of Guild members.
type PresenceUpdate ¶
type PresenceUpdate struct { User *User `json:"user"` Status string `json:"status"` Roles []string `json:"roles"` GuildID string `json:"guild_id"` Game *Game `json:"game"` }
A PresenceUpdate stores data for the pressence update websocket event.
type ReadState ¶
type ReadState struct { MentionCount int LastMessageID string `json:"last_message_id"` ID string `json:"id"` }
A ReadState stores data on the read state of channels.
type Ready ¶
type Ready struct { Version int `json:"v"` SessionID string `json:"session_id"` HeartbeatInterval time.Duration `json:"heartbeat_interval"` User *User `json:"user"` ReadState []*ReadState PrivateChannels []*Channel `json:"private_channels"` Guilds []*Guild `json:"guilds"` }
A Ready stores all data for the websocket READY event.
type Role ¶
type Role struct { ID string `json:"id"` Name string `json:"name"` Managed bool `json:"managed"` Color int `json:"color"` Hoist bool `json:"hoist"` Position int `json:"position"` Permissions int `json:"permissions"` }
A Role stores information about Discord guild member roles.
type Session ¶
type Session struct { // General configurable settings. Token string // Authentication token for this session Debug bool // Debug for printing JSON request/responses // Settable Callback functions for Websocket Events OnEvent func(*Session, *Event) OnReady func(*Session, *Ready) OnTypingStart func(*Session, *TypingStart) OnMessageCreate func(*Session, *Message) OnMessageUpdate func(*Session, *Message) OnMessageDelete func(*Session, *MessageDelete) OnMessageAck func(*Session, *MessageAck) OnUserUpdate func(*Session, *User) OnPresenceUpdate func(*Session, *PresenceUpdate) OnVoiceStateUpdate func(*Session, *VoiceState) OnChannelCreate func(*Session, *Channel) OnChannelUpdate func(*Session, *Channel) OnChannelDelete func(*Session, *Channel) OnGuildCreate func(*Session, *Guild) OnGuildUpdate func(*Session, *Guild) OnGuildDelete func(*Session, *Guild) OnGuildMemberAdd func(*Session, *Member) OnGuildMemberRemove func(*Session, *Member) OnGuildMemberDelete func(*Session, *Member) // which is it? OnGuildMemberUpdate func(*Session, *Member) OnGuildRoleCreate func(*Session, *GuildRole) OnGuildRoleUpdate func(*Session, *GuildRole) OnGuildRoleDelete func(*Session, *GuildRoleDelete) OnGuildIntegrationsUpdate func(*Session, *GuildIntegrationsUpdate) OnGuildBanAdd func(*Session, *GuildBan) OnGuildBanRemove func(*Session, *GuildBan) OnGuildEmojisUpdate func(*Session, *GuildEmojisUpdate) OnUserSettingsUpdate func(*Session, map[string]interface{}) // TODO: Find better way? // Exposed but should not be modified by User. SessionID string // from websocket READY packet DataReady bool // Set to true when Data Websocket is ready VoiceReady bool // Set to true when Voice Websocket is ready UDPReady bool // Set to true when UDP Connection is ready // Everything below here is used for Voice testing. // This stuff is almost guarenteed to change a lot // and is even a bit hackish right now. Voice *Voice // Stores all details related to voice connections // Managed state object, updated with events. State *State StateEnabled bool // contains filtered or unexported fields }
A Session represents a connection to the Discord REST API. token : The authentication token returned from Discord Debug : If set to ture debug logging will be displayed.
func New ¶
New creates a new Discord session and will automate some startup tasks if given enough information to do so. Currently you can pass zero arguments and it will return an empty Discord session. If you pass a token or username and password (in that order), then it will attempt to login to Discord and open a websocket connection.
func (*Session) Channel ¶
Channel returns a Channel strucutre of a specific Channel. channelID : The ID of the Channel you want returend.
func (*Session) ChannelDelete ¶
ChannelDelete deletes the given channel channelID : The ID of a Channel
func (*Session) ChannelEdit ¶
ChannelEdit edits the given channel channelID : The ID of a Channel name : The new name to assign the channel.
func (*Session) ChannelInviteCreate ¶
ChannelInviteCreate creates a new invite for the given channel. channelID : The ID of a Channel i : An Invite struct with the values MaxAge, MaxUses, Temporary,
and XkcdPass defined.
func (*Session) ChannelInvites ¶
ChannelInvites returns an array of Invite structures for the given channel channelID : The ID of a Channel
func (*Session) ChannelMessageAck ¶
ChannelMessageAck acknowledges and marks the given message as read channeld : The ID of a Channel messageID : the ID of a Message
func (*Session) ChannelMessageDelete ¶
ChannelMessageDelete deletes a message from the Channel.
func (*Session) ChannelMessageEdit ¶
ChannelMessageEdit edits an existing message, replacing it entirely with the given content. channeld : The ID of a Channel messageID : the ID of a Message
func (*Session) ChannelMessageSend ¶
ChannelMessageSend sends a message to the given channel. channelID : The ID of a Channel. content : The message to send. NOTE, mention and tts parameters may be added in 2.x branch.
func (*Session) ChannelMessages ¶
func (s *Session) ChannelMessages(channelID string, limit int, beforeID int, afterID int) (st []*Message, err error)
ChannelMessages returns an array of Message structures for messages within a given channel. channelID : The ID of a Channel. limit : The number messages that can be returned. beforeID : If provided all messages returned will be before given ID. afterID : If provided all messages returned will be after given ID.
func (*Session) ChannelPermissionDelete ¶
ChannelPermissionDelete deletes a specific permission override for the given channel. NOTE: Name of this func may change.
func (*Session) ChannelPermissionSet ¶
func (s *Session) ChannelPermissionSet(channelID, targetID, targetType string, allow, deny int) (err error)
ChannelPermissionSet creates a Permission Override for the given channel. NOTE: This func name may changed. Using Set instead of Create because you can both create a new override or update an override with this function.
func (*Session) ChannelTyping ¶
ChannelTyping broadcasts to all members that authenticated user is typing in the given channel. channelID : The ID of a Channel
func (*Session) ChannelVoiceJoin ¶
ChannelVoiceJoin joins the session user to a voice channel. After calling this func please monitor the Session.Voice.Ready bool to determine when it is ready and able to send/receive audio, that should happen quickly.
gID : Guild ID of the channel to join. cID : Channel ID of the channel to join. mute : If true, you will be set to muted upon joining. deaf : If true, you will be set to deafened upon joining.
func (*Session) Close ¶
func (s *Session) Close()
Close closes a Discord session TODO: Add support for Voice WS/UDP connections
func (*Session) Guild ¶
Guild returns a Guild structure of a specific Guild. guildID : The ID of a Guild
func (*Session) GuildBanCreate ¶
GuildBanCreate bans the given user from the given guild. guildID : The ID of a Guild. userID : The ID of a User days : The number of days of previous comments to delete.
func (*Session) GuildBanDelete ¶
GuildBanDelete removes the given user from the guild bans guildID : The ID of a Guild. userID : The ID of a User
func (*Session) GuildBans ¶
GuildBans returns an array of User structures for all bans of a given guild. guildID : The ID of a Guild.
func (*Session) GuildChannelCreate ¶
GuildChannelCreate creates a new channel in the given guild guildID : The ID of a Guild. name : Name of the channel (2-100 chars length) ctype : Tpye of the channel (voice or text)
func (*Session) GuildChannels ¶
GuildChannels returns an array of Channel structures for all channels of a given guild. guildID : The ID of a Guild.
func (*Session) GuildCreate ¶
GuildCreate creates a new Guild name : A name for the Guild (2-100 characters)
func (*Session) GuildDelete ¶
GuildDelete deletes or leaves a Guild. guildID : The ID of a Guild
func (*Session) GuildEdit ¶
GuildEdit edits a new Guild guildID : The ID of a Guild name : A name for the Guild (2-100 characters)
func (*Session) GuildInviteCreate ¶
GuildInviteCreate creates a new invite for the given guild. guildID : The ID of a Guild. i : An Invite struct with the values MaxAge, MaxUses, Temporary,
and XkcdPass defined.
func (*Session) GuildInvites ¶
GuildInvites returns an array of Invite structures for the given guild guildID : The ID of a Guild.
func (*Session) GuildMemberDelete ¶
GuildMemberDelete removes the given user from the given guild. guildID : The ID of a Guild. userID : The ID of a User
func (*Session) GuildRoleCreate ¶
GuildRoleCreate returns a new Guild Role
func (*Session) GuildRoleDelete ¶
GuildRoleDelete deletes an existing role.
func (*Session) GuildRoleEdit ¶
func (s *Session) GuildRoleEdit(guildID, roleID, name string, color int, hoist bool, perm int) (st *Role, err error)
GuildRoleEdit updates an existing Guild Role with new values
func (*Session) GuildRoleReorder ¶
GuildRoleReorder reoders guild roles
func (*Session) GuildRoles ¶
GuildRoles returns all roles for a given guild.
func (*Session) Handshake ¶
Handshake sends the client data to Discord during websocket initial connection.
func (*Session) Heartbeat ¶
Heartbeat sends regular heartbeats to Discord so it knows the client is still connected. If you do not send these heartbeats Discord will disconnect the websocket connection after a few seconds.
func (*Session) Invite ¶
Invite returns an Invite structure of the given invite inviteID : The invite code (or maybe xkcdpass?)
func (*Session) InviteAccept ¶
InviteAccept accepts an Invite to a Guild or Channel inviteID : The invite code (or maybe xkcdpass?)
func (*Session) InviteDelete ¶
InviteDelete deletes an existing invite inviteID : the code (or maybe xkcdpass?) of an invite
func (*Session) Logout ¶
Logout sends a logout request to Discord. This does not seem to actually invalidate the token. So you can still make API calls even after a Logout. So, it seems almost pointless to even use.
func (*Session) Register ¶
Register sends a Register request to Discord, and returns the authentication token Note that this account is temporary and should be verified for future use. Another option is to save the authentication token external, but this isn't recommended.
func (*Session) Request ¶
Request makes a (GET/POST/...) Requests to Discord REST API. All the other Discord REST Calls in this file use this function.
func (*Session) UpdateStatus ¶
UpdateStatus is used to update the authenticated user's status. If idle>0 then set status to idle. If game>0 then set game. if otherwise, set status to active, and no game.
func (*Session) User ¶
User returns the user details of the given userID userID : A user ID or "@me" which is a shortcut of current user ID
func (*Session) UserAvatar ¶
UserAvatar returns an image.Image of a users Avatar userID : A user ID or "@me" which is a shortcut of current user ID
func (*Session) UserChannelCreate ¶
UserChannelCreate creates a new User (Private) Channel with another User recipientID : A user ID for the user to which this channel is opened with.
func (*Session) UserChannels ¶
UserChannels returns an array of Channel structures for all private channels.
func (*Session) UserGuilds ¶
UserGuilds returns an array of Guild structures for all guilds.
func (*Session) UserSettings ¶
UserSettings returns the settings for a given user
func (*Session) UserUpdate ¶
func (s *Session) UserUpdate(email, password, username, avatar, newPassword string) (st *User, err error)
UserUpdate updates a users settings.
func (*Session) VoiceRegions ¶
func (s *Session) VoiceRegions() (st []*VoiceRegion, err error)
VoiceRegions returns the voice server regions
type Settings ¶
type Settings struct { RenderEmbeds bool `json:"render_embeds"` InlineEmbedMedia bool `json:"inline_embed_media"` EnableTtsCommand bool `json:"enable_tts_command"` MessageDisplayCompact bool `json:"message_display_compact"` Locale string `json:"locale"` ShowCurrentGame bool `json:"show_current_game"` Theme string `json:"theme"` MutedChannels []string `json:"muted_channels"` }
A Settings stores data for a specific users Discord client settings.
type State ¶
type State struct {
Ready
}
A State contains the current known state. As discord sends this in a READY blob, it seems reasonable to simply use that struct as the data store.
func (*State) Channel ¶
Channel gets a channel by ID, it will look in all guilds an private channels.
func (*State) ChannelAdd ¶
ChannelAdd adds a guild to the current world state, or updates it if it already exists. Channels may exist either as PrivateChannels or inside a guild.
func (*State) ChannelRemove ¶
ChannelRemove removes a channel from current world state.
func (*State) Guild ¶
Guild gets a guild by ID. Useful for querying if @me is in a guild:
_, err := discordgo.Session.State.Guild(guildID) isInGuild := err == nil
func (*State) GuildAdd ¶
GuildAdd adds a guild to the current world state, or updates it if it already exists.
func (*State) GuildChannel ¶
GuildChannel gets a channel by ID from a guild.
func (*State) GuildRemove ¶
GuildRemove removes a guild from current world state.
func (*State) MemberAdd ¶
MemberAdd adds a member to the current world state, or updates it if it already exists.
func (*State) MemberRemove ¶
MemberRemove removes a member from current world state.
type TypingStart ¶
type TypingStart struct { UserID string `json:"user_id"` ChannelID string `json:"channel_id"` Timestamp int `json:"timestamp"` }
A TypingStart stores data for the typing start websocket event.
type User ¶
type User struct { ID string `json:"id"` Email string `json:"email"` Username string `json:"username"` Avatar string `json:"Avatar"` Verified bool `json:"verified"` }
A User stores all data for an individual Discord user.
type Voice ¶
type Voice struct { sync.Mutex // future use Ready bool // If true, voice is ready to send/receive audio Debug bool // If true, print extra logging Chan chan struct{} // future use UDPConn *net.UDPConn // exported for dgvoice, may change. OP2 *voiceOP2 // exported for dgvoice, may change. // contains filtered or unexported fields }
A Voice struct holds all data and functions related to Discord Voice support.
type VoiceRegion ¶
type VoiceRegion struct { ID string `json:"id"` Name string `json:"name"` Hostname string `json:"sample_hostname"` Port int `json:"sample_port"` }
A VoiceRegion stores data for a specific voice region server.
type VoiceServerUpdate ¶
type VoiceServerUpdate struct { Token string `json:"token"` GuildID string `json:"guild_id"` Endpoint string `json:"endpoint"` }
A VoiceServerUpdate stores the data received during the Voice Server Update data websocket event. This data is used during the initial Voice Channel join handshaking.
type VoiceState ¶
type VoiceState struct { UserID string `json:"user_id"` Suppress bool `json:"suppress"` SessionID string `json:"session_id"` SelfMute bool `json:"self_mute"` SelfDeaf bool `json:"self_deaf"` Mute bool `json:"mute"` Deaf bool `json:"deaf"` ChannelID string `json:"channel_id"` }
A VoiceState stores the voice states of Guilds
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
examples
|
|
api_basic
This file provides a basic "quick start" example of using the Discordgo package to connect to Discord using the low level API functions.
|
This file provides a basic "quick start" example of using the Discordgo package to connect to Discord using the low level API functions. |
new_basic
This file provides a basic "quick start" example of using the Discordgo package to connect to Discord using the New() helper function.
|
This file provides a basic "quick start" example of using the Discordgo package to connect to Discord using the New() helper function. |