events

package
v0.0.0-...-621eccf Latest Latest
Warning

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

Go to latest
Published: Jun 12, 2024 License: BSD-3-Clause Imports: 9 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

View Source
var EventTypes = map[EventType]reflect.Type{
	READY:                         reflect.TypeOf(Ready{}),
	RESUMED:                       reflect.TypeOf(Resumed{}),
	RECONNECT:                     reflect.TypeOf(Reconnect{}),
	INVALID_SESSION:               reflect.TypeOf(InvalidSession{}),
	CHANNEL_CREATE:                reflect.TypeOf(ChannelCreate{}),
	CHANNEL_UPDATE:                reflect.TypeOf(ChannelUpdate{}),
	CHANNEL_DELETE:                reflect.TypeOf(ChannelDelete{}),
	CHANNEL_PINS_UPDATE:           reflect.TypeOf(ChannelPinsUpdate{}),
	GUILD_CREATE:                  reflect.TypeOf(GuildCreate{}),
	GUILD_UPDATE:                  reflect.TypeOf(GuildUpdate{}),
	GUILD_DELETE:                  reflect.TypeOf(GuildDelete{}),
	GUILD_BAN_ADD:                 reflect.TypeOf(GuildBanAdd{}),
	GUILD_BAN_REMOVE:              reflect.TypeOf(GuildBanRemove{}),
	GUILD_EMOJIS_UPDATE:           reflect.TypeOf(GuildEmojisUpdate{}),
	GUILD_INTEGRATIONS_UPDATE:     reflect.TypeOf(GuildIntegrationsUpdate{}),
	GUILD_MEMBER_ADD:              reflect.TypeOf(GuildMemberAdd{}),
	GUILD_MEMBER_REMOVE:           reflect.TypeOf(GuildMemberRemove{}),
	GUILD_MEMBER_UPDATE:           reflect.TypeOf(GuildMemberUpdate{}),
	GUILD_MEMBERS_CHUNK:           reflect.TypeOf(GuildMembersChunk{}),
	GUILD_ROLE_CREATE:             reflect.TypeOf(GuildRoleCreate{}),
	GUILD_ROLE_UPDATE:             reflect.TypeOf(GuildRoleUpdate{}),
	GUILD_ROLE_DELETE:             reflect.TypeOf(GuildRoleDelete{}),
	INVITE_CREATE:                 reflect.TypeOf(InviteCreate{}),
	INVITE_DELETE:                 reflect.TypeOf(InviteDelete{}),
	MESSAGE_CREATE:                reflect.TypeOf(MessageCreate{}),
	MESSAGE_UPDATE:                reflect.TypeOf(MessageUpdate{}),
	MESSAGE_DELETE:                reflect.TypeOf(MessageDelete{}),
	MESSAGE_DELETE_BULK:           reflect.TypeOf(MessageDeleteBulk{}),
	MESSAGE_REACTION_ADD:          reflect.TypeOf(MessageReactionAdd{}),
	MESSAGE_REACTION_REMOVE:       reflect.TypeOf(MessageReactionRemove{}),
	MESSAGE_REACTION_REMOVE_ALL:   reflect.TypeOf(MessageReactionRemoveAll{}),
	MESSAGE_REACTION_REMOVE_EMOJI: reflect.TypeOf(MessageReactionRemoveEmoji{}),
	PRESENCE_UPDATE:               reflect.TypeOf(PresenceUpdate{}),
	THREAD_CREATE:                 reflect.TypeOf(ThreadCreate{}),
	THREAD_UPDATE:                 reflect.TypeOf(ThreadUpdate{}),
	THREAD_DELETE:                 reflect.TypeOf(ThreadDelete{}),
	THREAD_LIST_SYNC:              reflect.TypeOf(ThreadListSync{}),
	THREAD_MEMBER_UPDATE:          reflect.TypeOf(ThreadMemberUpdate{}),
	THREAD_MEMBERS_UPDATE:         reflect.TypeOf(ThreadMembersUpdate{}),
	TYPING_START:                  reflect.TypeOf(TypingStart{}),
	USER_UPDATE:                   reflect.TypeOf(UserUpdate{}),
	VOICE_STATE_UPDATE:            reflect.TypeOf(VoiceStateUpdate{}),
	VOICE_SERVER_UPDATE:           reflect.TypeOf(VoiceStateUpdate{}),
	WEBHOOKS_UPDATE:               reflect.TypeOf(WebhooksUpdate{}),
}

Functions

This section is empty.

Types

type ChannelCreate

type ChannelCreate struct {
	channel.Channel
}

type ChannelDelete

type ChannelDelete struct {
	channel.Channel
}

type ChannelPinsUpdate

type ChannelPinsUpdate struct {
	GuildId          uint64    `json:"guild_id,string"`
	ChannelId        uint64    `json:"channel_id,string"`
	LastPinTimestamp time.Time `json:"last_pin_timestamp"`
}

type ChannelUpdate

type ChannelUpdate struct {
	channel.Channel
}

type EventBus

type EventBus struct {
	Listeners []interface{}
}

func NewEventBus

func NewEventBus() *EventBus

func (*EventBus) RegisterListener

func (e *EventBus) RegisterListener(fn interface{})

type EventType

type EventType string
const (
	READY                         EventType = "READY"
	RESUMED                       EventType = "RESUMED"
	RECONNECT                     EventType = "RECONNECT"
	INVALID_SESSION               EventType = "INVALID_SESSION"
	CHANNEL_CREATE                EventType = "CHANNEL_CREATE"
	CHANNEL_UPDATE                EventType = "CHANNEL_UPDATE"
	CHANNEL_DELETE                EventType = "CHANNEL_DELETE"
	CHANNEL_PINS_UPDATE           EventType = "CHANNEL_PINS_UPDATE"
	GUILD_CREATE                  EventType = "GUILD_CREATE"
	GUILD_UPDATE                  EventType = "GUILD_UPDATE"
	GUILD_DELETE                  EventType = "GUILD_DELETE"
	GUILD_BAN_ADD                 EventType = "GUILD_BAN_ADD"
	GUILD_BAN_REMOVE              EventType = "GUILD_BAN_REMOVE"
	GUILD_EMOJIS_UPDATE           EventType = "GUILD_EMOJIS_UPDATE"
	GUILD_INTEGRATIONS_UPDATE     EventType = "GUILD_INTEGRATIONS_UPDATE"
	GUILD_MEMBER_ADD              EventType = "GUILD_MEMBER_ADD"
	GUILD_MEMBER_REMOVE           EventType = "GUILD_MEMBER_REMOVE"
	GUILD_MEMBER_UPDATE           EventType = "GUILD_MEMBER_UPDATE"
	GUILD_MEMBERS_CHUNK           EventType = "GUILD_MEMBERS_CHUNK"
	GUILD_ROLE_CREATE             EventType = "GUILD_ROLE_CREATE"
	GUILD_ROLE_UPDATE             EventType = "GUILD_ROLE_UPDATE"
	GUILD_ROLE_DELETE             EventType = "GUILD_ROLE_DELETE"
	INVITE_CREATE                 EventType = "INVITE_CREATE"
	INVITE_DELETE                 EventType = "INVITE_DELETE"
	MESSAGE_CREATE                EventType = "MESSAGE_CREATE"
	MESSAGE_UPDATE                EventType = "MESSAGE_UPDATE"
	MESSAGE_DELETE                EventType = "MESSAGE_DELETE"
	MESSAGE_DELETE_BULK           EventType = "MESSAGE_DELETE_BULK"
	MESSAGE_REACTION_ADD          EventType = "MESSAGE_REACTION_ADD"
	MESSAGE_REACTION_REMOVE       EventType = "MESSAGE_REACTION_REMOVE"
	MESSAGE_REACTION_REMOVE_ALL   EventType = "MESSAGE_REACTION_REMOVE_ALL"
	MESSAGE_REACTION_REMOVE_EMOJI EventType = "MESSAGE_REACTION_REMOVE_EMOJI"
	PRESENCE_UPDATE               EventType = "PRESENCE_UPDATE"
	THREAD_CREATE                 EventType = "THREAD_CREATE"
	THREAD_UPDATE                 EventType = "THREAD_UPDATE"
	THREAD_DELETE                 EventType = "THREAD_DELETE"
	THREAD_LIST_SYNC              EventType = "THREAD_LIST_SYNC"
	THREAD_MEMBER_UPDATE          EventType = "THREAD_MEMBER_UPDATE"
	THREAD_MEMBERS_UPDATE         EventType = "THREAD_MEMBERS_UPDATE"
	TYPING_START                  EventType = "TYPING_START"
	USER_UPDATE                   EventType = "USER_UPDATE"
	VOICE_STATE_UPDATE            EventType = "VOICE_STATE_UPDATE"
	VOICE_SERVER_UPDATE           EventType = "VOICE_SERVER_UPDATE"
	WEBHOOKS_UPDATE               EventType = "WEBHOOKS_UPDATE"
)

type GuildBanAdd

type GuildBanAdd struct {
	GuildId uint64    `json:"guild_id,string"`
	User    user.User `json:"user"`
}

type GuildBanRemove

type GuildBanRemove struct {
	GuildId uint64    `json:"guild_id,string"`
	User    user.User `json:"user"`
}

type GuildCreate

type GuildCreate struct {
	guild.Guild
}

type GuildDelete

type GuildDelete struct {
	guild.Guild
}

type GuildEmojisUpdate

type GuildEmojisUpdate struct {
	GuildId uint64        `json:"guild_id,string"`
	Emojis  []emoji.Emoji `json:"emojis"`
}

type GuildIntegrationsUpdate

type GuildIntegrationsUpdate struct {
	GuildId uint64 `json:"guild_id,string"`
}

type GuildMemberAdd

type GuildMemberAdd struct {
	member.Member
	GuildId uint64 `json:"guild_id,string"`
}

type GuildMemberRemove

type GuildMemberRemove struct {
	GuildId uint64    `json:"guild_id,string"`
	User    user.User `json:"user"`
}

type GuildMemberUpdate

type GuildMemberUpdate struct {
	GuildId      uint64                  `json:"guild_id,string"`
	Roles        utils.Uint64StringSlice `json:"roles"`
	User         user.User               `json:"user"`
	Nick         string                  `json:"nick"`
	PremiumSince *time.Time              `json:"premium_since"` // When the user started boosting the guild
}

type GuildMembersChunk

type GuildMembersChunk struct {
	GuildId   uint64                  `json:"guild_id,string"`
	Members   []member.Member         `json:"member"`
	NotFound  utils.Uint64StringSlice `json:"not_found"`
	Presences []user.Presence         `json:"presences"`
}

type GuildRoleCreate

type GuildRoleCreate struct {
	GuildId uint64     `json:"guild_id,string"`
	Role    guild.Role ` json:"role"`
}

type GuildRoleDelete

type GuildRoleDelete struct {
	GuildId uint64 `json:"guild_id,string"`
	RoleId  uint64 `json:"role_id,string"`
}

type GuildRoleUpdate

type GuildRoleUpdate struct {
	GuildId uint64     `json:"guild_id,string"`
	Role    guild.Role ` json:"role"`
}

type GuildUpdate

type GuildUpdate struct {
	guild.Guild
}

type InvalidSession

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

type InviteCreate

type InviteCreate struct {
	ChannelId uint64    `json:"channel_id,string"`
	Code      string    `json:"code"`
	CreatedAt time.Time `json:"created_at"`
	GuildId   uint64    `json:"guild_id,string"`
	MaxAge    int       `json:"max_age"` // How long the invite is valid for, in seconds
	MaxUses   int       `json:"max_uses"`
	Temporary bool      `json:"temporary"`
	Uses      int       `json:"uses"` // Will always be 0
}

type InviteDelete

type InviteDelete struct {
	ChannelId uint64 `json:"channel_id,string"`
	GuildId   uint64 `json:"guild_id,string"`
	Code      string `json:"code"`
}

type MessageCreate

type MessageCreate struct {
	message.Message
}

type MessageDelete

type MessageDelete struct {
	Id        uint64 `json:"id,string"`
	ChannelId uint64 `json:"channel_id,string"`
	GuildId   uint64 `json:"guild_id,string"`
}

type MessageDeleteBulk

type MessageDeleteBulk struct {
	Id        utils.Uint64StringSlice `json:"ids"`
	ChannelId uint64                  `json:"channel_id,string"`
	GuildId   uint64                  `json:"guild_id,string"`
}

type MessageReactionAdd

type MessageReactionAdd struct {
	UserId    uint64         `json:"user_id,string"`
	ChannelId uint64         `json:"channel_id,string"`
	MessageId uint64         `json:"message_id,string"`
	GuildId   uint64         `json:"guild_id,string"`
	Member    *member.Member `json:"member"`
	Emoji     emoji.Emoji    `json:"emoji"` // Partial emoji object; https://discord.com/developers/docs/resources/emoji#emoji-object-gateway-reaction-standard-emoji-example
}

type MessageReactionRemove

type MessageReactionRemove struct {
	UserId    uint64      `json:"user_id,string"`
	ChannelId uint64      `json:"channel_id,string"`
	MessageId uint64      `json:"message_id,string"`
	GuildId   uint64      `json:"guild_id,string"`
	Emoji     emoji.Emoji `json:"emoji,string"` // Partial emoji object; https://discord.com/developers/docs/resources/emoji#emoji-object-gateway-reaction-standard-emoji-example
}

Sent when a user removes a reaction from a message.

type MessageReactionRemoveAll

type MessageReactionRemoveAll struct {
	ChannelId uint64 `json:"channel_id,string"`
	MessageId uint64 `json:"message_id,string"`
	GuildId   uint64 `json:"guild_id,string"`
}

type MessageReactionRemoveEmoji

type MessageReactionRemoveEmoji struct {
	ChannelId uint64      `json:"channel_id,string"`
	GuildId   uint64      `json:"guild_id,string"`
	MessageId uint64      `json:"message_id,string"`
	Emoji     emoji.Emoji `json:"emoji,string"` // Partial emoji object; https://discord.com/developers/docs/resources/emoji#emoji-object-gateway-reaction-standard-emoji-example
}

Sent when a bot removes all instances of a given emoji from the reactions of a message.

type MessageUpdate

type MessageUpdate struct {
	message.Message
}

type PresenceUpdate

type PresenceUpdate struct {
	User         user.User         `json:"user"`
	GuildId      uint64            `json:"guild_id,string"`
	Status       string            `json:"status"`
	Activities   []user.Activity   `json:"activities"`
	ClientStatus user.ClientStatus `json:"client_status"`
}

type Ready

type Ready struct {
	GatewayVersion  int           `json:"v"`
	User            user.User     `json:"user"`
	PrivateChannels []uint64      `json:"private_channels,string"` // Note: This slice will always be empty
	Guilds          []guild.Guild `json:"guilds"`
	SessionId       string        `json:"session_id"`
	Shard           []int         `json:"shard"` // Slice of [shard_id, num_shards]
}

type Reconnect

type Reconnect struct {
}

type Resumed

type Resumed struct {
}

type Status

type Status string
const (
	IDLE    Status = "idle"
	DND     Status = "dnd"
	ONLINE  Status = "online"
	OFFLINE Status = "offline"
)

type ThreadCreate

type ThreadCreate struct {
	channel.Channel
}

type ThreadDelete

type ThreadDelete struct {
	channel.Channel
}

type ThreadListSync

type ThreadListSync struct {
	GuildId    uint64                  `json:"guild_id,string"`
	ChannelIds utils.Uint64StringSlice `json:"channel_ids"`
	Threads    []channel.Channel       `json:"threads"`
	Members    []channel.ThreadMember  `json:"members"`
}

type ThreadMemberUpdate

type ThreadMemberUpdate struct {
	channel.ThreadMember
}

type ThreadMembersUpdate

type ThreadMembersUpdate struct {
	ThreadId         uint64                  `json:"id,string"`
	GuildId          uint64                  `json:"guild_id,string"`
	MemberCount      uint64                  `json:"member_count"`
	AddedMembers     []channel.ThreadMember  `json:"added_members"`
	RemovedMemberIds utils.Uint64StringSlice `json:"removed_member_ids"`
}

type ThreadUpdate

type ThreadUpdate struct {
	channel.Channel
}

type TypingStart

type TypingStart struct {
	ChannelId uint64         `json:"channel_id,string"`
	GuildId   uint64         `json:"guild_id,string"`
	UserId    uint64         `json:"user_id,string"`
	Timestamp uint64         `json:"timestamp"` // Unix timestamp
	Member    *member.Member `json:"member"`
}

type UserUpdate

type UserUpdate struct {
	user.User
}

type VoiceServerUpdate

type VoiceServerUpdate struct {
	Token    string `json:"token"`
	GuildId  uint64 `json:"guild_id,string"`
	Endpoint string `json:"endpoint"`
}

type VoiceStateUpdate

type VoiceStateUpdate struct {
	guild.VoiceState
}

type WebhooksUpdate

type WebhooksUpdate struct {
	GuildId   uint64 `json:"guild_id,string"`
	ChannelId uint64 `json:"channel_id,string"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL