239 lines
6.1 KiB
Go
239 lines
6.1 KiB
Go
package discordgo
|
|
|
|
import (
|
|
"encoding/json"
|
|
"time"
|
|
)
|
|
|
|
// This file contains all the possible structs that can be
|
|
// handled by AddHandler/EventHandler.
|
|
// DO NOT ADD ANYTHING BUT EVENT HANDLER STRUCTS TO THIS FILE.
|
|
//go:generate go run tools/cmd/eventhandlers/main.go
|
|
|
|
// Connect is the data for a Connect event.
|
|
// This is a sythetic event and is not dispatched by Discord.
|
|
type Connect struct{}
|
|
|
|
// Disconnect is the data for a Disconnect event.
|
|
// This is a sythetic event and is not dispatched by Discord.
|
|
type Disconnect struct{}
|
|
|
|
// RateLimit is the data for a RateLimit event.
|
|
// This is a sythetic event and is not dispatched by Discord.
|
|
type RateLimit struct {
|
|
*TooManyRequests
|
|
URL string
|
|
}
|
|
|
|
// Event provides a basic initial struct for all websocket events.
|
|
type Event struct {
|
|
Operation int `json:"op"`
|
|
Sequence int `json:"s"`
|
|
Type string `json:"t"`
|
|
RawData json.RawMessage `json:"d"`
|
|
// Struct contains one of the other types in this file.
|
|
Struct interface{} `json:"-"`
|
|
}
|
|
|
|
// A Ready stores all data for the websocket READY event.
|
|
type Ready struct {
|
|
Version int `json:"v"`
|
|
SessionID string `json:"session_id"`
|
|
HeartbeatInterval time.Duration `json:"heartbeat_interval"`
|
|
User *User `json:"user"`
|
|
ReadState []*ReadState `json:"read_state"`
|
|
PrivateChannels []*Channel `json:"private_channels"`
|
|
Guilds []*Guild `json:"guilds"`
|
|
|
|
// Undocumented fields
|
|
Settings *Settings `json:"user_settings"`
|
|
UserGuildSettings []*UserGuildSettings `json:"user_guild_settings"`
|
|
Relationships []*Relationship `json:"relationships"`
|
|
Presences []*Presence `json:"presences"`
|
|
}
|
|
|
|
// ChannelCreate is the data for a ChannelCreate event.
|
|
type ChannelCreate struct {
|
|
*Channel
|
|
}
|
|
|
|
// ChannelUpdate is the data for a ChannelUpdate event.
|
|
type ChannelUpdate struct {
|
|
*Channel
|
|
}
|
|
|
|
// ChannelDelete is the data for a ChannelDelete event.
|
|
type ChannelDelete struct {
|
|
*Channel
|
|
}
|
|
|
|
// ChannelPinsUpdate stores data for a ChannelPinsUpdate event.
|
|
type ChannelPinsUpdate struct {
|
|
LastPinTimestamp string `json:"last_pin_timestamp"`
|
|
ChannelID string `json:"channel_id"`
|
|
}
|
|
|
|
// GuildCreate is the data for a GuildCreate event.
|
|
type GuildCreate struct {
|
|
*Guild
|
|
}
|
|
|
|
// GuildUpdate is the data for a GuildUpdate event.
|
|
type GuildUpdate struct {
|
|
*Guild
|
|
}
|
|
|
|
// GuildDelete is the data for a GuildDelete event.
|
|
type GuildDelete struct {
|
|
*Guild
|
|
}
|
|
|
|
// GuildBanAdd is the data for a GuildBanAdd event.
|
|
type GuildBanAdd struct {
|
|
User *User `json:"user"`
|
|
GuildID string `json:"guild_id"`
|
|
}
|
|
|
|
// GuildBanRemove is the data for a GuildBanRemove event.
|
|
type GuildBanRemove struct {
|
|
User *User `json:"user"`
|
|
GuildID string `json:"guild_id"`
|
|
}
|
|
|
|
// GuildMemberAdd is the data for a GuildMemberAdd event.
|
|
type GuildMemberAdd struct {
|
|
*Member
|
|
}
|
|
|
|
// GuildMemberUpdate is the data for a GuildMemberUpdate event.
|
|
type GuildMemberUpdate struct {
|
|
*Member
|
|
}
|
|
|
|
// GuildMemberRemove is the data for a GuildMemberRemove event.
|
|
type GuildMemberRemove struct {
|
|
*Member
|
|
}
|
|
|
|
// GuildRoleCreate is the data for a GuildRoleCreate event.
|
|
type GuildRoleCreate struct {
|
|
*GuildRole
|
|
}
|
|
|
|
// GuildRoleUpdate is the data for a GuildRoleUpdate event.
|
|
type GuildRoleUpdate struct {
|
|
*GuildRole
|
|
}
|
|
|
|
// A GuildRoleDelete is the data for a GuildRoleDelete event.
|
|
type GuildRoleDelete struct {
|
|
RoleID string `json:"role_id"`
|
|
GuildID string `json:"guild_id"`
|
|
}
|
|
|
|
// A GuildEmojisUpdate is the data for a guild emoji update event.
|
|
type GuildEmojisUpdate struct {
|
|
GuildID string `json:"guild_id"`
|
|
Emojis []*Emoji `json:"emojis"`
|
|
}
|
|
|
|
// A GuildMembersChunk is the data for a GuildMembersChunk event.
|
|
type GuildMembersChunk struct {
|
|
GuildID string `json:"guild_id"`
|
|
Members []*Member `json:"members"`
|
|
}
|
|
|
|
// GuildIntegrationsUpdate is the data for a GuildIntegrationsUpdate event.
|
|
type GuildIntegrationsUpdate struct {
|
|
GuildID string `json:"guild_id"`
|
|
}
|
|
|
|
// MessageAck is the data for a MessageAck event.
|
|
type MessageAck struct {
|
|
MessageID string `json:"message_id"`
|
|
ChannelID string `json:"channel_id"`
|
|
}
|
|
|
|
// MessageCreate is the data for a MessageCreate event.
|
|
type MessageCreate struct {
|
|
*Message
|
|
}
|
|
|
|
// MessageUpdate is the data for a MessageUpdate event.
|
|
type MessageUpdate struct {
|
|
*Message
|
|
}
|
|
|
|
// MessageDelete is the data for a MessageDelete event.
|
|
type MessageDelete struct {
|
|
*Message
|
|
}
|
|
|
|
// MessageReactionAdd is the data for a MessageReactionAdd event.
|
|
type MessageReactionAdd struct {
|
|
*MessageReaction
|
|
}
|
|
|
|
// MessageReactionRemove is the data for a MessageReactionRemove event.
|
|
type MessageReactionRemove struct {
|
|
*MessageReaction
|
|
}
|
|
|
|
// PresencesReplace is the data for a PresencesReplace event.
|
|
type PresencesReplace []*Presence
|
|
|
|
// PresenceUpdate is the data for a PresenceUpdate event.
|
|
type PresenceUpdate struct {
|
|
Presence
|
|
GuildID string `json:"guild_id"`
|
|
Roles []string `json:"roles"`
|
|
}
|
|
|
|
// Resumed is the data for a Resumed event.
|
|
type Resumed struct {
|
|
HeartbeatInterval time.Duration `json:"heartbeat_interval"`
|
|
Trace []string `json:"_trace"`
|
|
}
|
|
|
|
// RelationshipAdd is the data for a RelationshipAdd event.
|
|
type RelationshipAdd struct {
|
|
*Relationship
|
|
}
|
|
|
|
// RelationshipRemove is the data for a RelationshipRemove event.
|
|
type RelationshipRemove struct {
|
|
*Relationship
|
|
}
|
|
|
|
// TypingStart is the data for a TypingStart event.
|
|
type TypingStart struct {
|
|
UserID string `json:"user_id"`
|
|
ChannelID string `json:"channel_id"`
|
|
Timestamp int `json:"timestamp"`
|
|
}
|
|
|
|
// UserUpdate is the data for a UserUpdate event.
|
|
type UserUpdate struct {
|
|
*User
|
|
}
|
|
|
|
// UserSettingsUpdate is the data for a UserSettingsUpdate event.
|
|
type UserSettingsUpdate map[string]interface{}
|
|
|
|
// UserGuildSettingsUpdate is the data for a UserGuildSettingsUpdate event.
|
|
type UserGuildSettingsUpdate struct {
|
|
*UserGuildSettings
|
|
}
|
|
|
|
// VoiceServerUpdate is the data for a VoiceServerUpdate event.
|
|
type VoiceServerUpdate struct {
|
|
Token string `json:"token"`
|
|
GuildID string `json:"guild_id"`
|
|
Endpoint string `json:"endpoint"`
|
|
}
|
|
|
|
// VoiceStateUpdate is the data for a VoiceStateUpdate event.
|
|
type VoiceStateUpdate struct {
|
|
*VoiceState
|
|
}
|