Documentation ¶
Index ¶
- Variables
- func AddHandler(p common.Plugin, handler HandlerFunc, order Order, evts ...Event)
- func AddHandlerAsyncLast(p common.Plugin, handler HandlerFunc, evts ...Event)
- func AddHandlerAsyncLastLegacy(p common.Plugin, handler HandlerFuncLegacy, evts ...Event)
- func AddHandlerFirst(p common.Plugin, handler HandlerFunc, evts ...Event)
- func AddHandlerFirstLegacy(p common.Plugin, handler HandlerFuncLegacy, evts ...Event)
- func AddHandlerLegacy(p common.Plugin, handler HandlerFuncLegacy, order Order, evts ...Event)
- func AddHandlerSecond(p common.Plugin, handler HandlerFunc, evts ...Event)
- func AddHandlerSecondLegacy(p common.Plugin, handler HandlerFuncLegacy, evts ...Event)
- func EmitEvent(data *EventData, evt Event)
- func HandleEvent(s *discordgo.Session, evt interface{})
- func InitWorkers(totalShards int)
- type Event
- type EventData
- func (d *EventData) CS() *dstate.ChannelState
- func (evt *EventData) Cancel()
- func (data *EventData) ChannelCreate() *discordgo.ChannelCreate
- func (data *EventData) ChannelDelete() *discordgo.ChannelDelete
- func (data *EventData) ChannelPinsUpdate() *discordgo.ChannelPinsUpdate
- func (data *EventData) ChannelUpdate() *discordgo.ChannelUpdate
- func (data *EventData) Connect() *discordgo.Connect
- func (e *EventData) Context() context.Context
- func (data *EventData) Disconnect() *discordgo.Disconnect
- func (data *EventData) GuildBanAdd() *discordgo.GuildBanAdd
- func (data *EventData) GuildBanRemove() *discordgo.GuildBanRemove
- func (data *EventData) GuildCreate() *discordgo.GuildCreate
- func (data *EventData) GuildDelete() *discordgo.GuildDelete
- func (data *EventData) GuildEmojisUpdate() *discordgo.GuildEmojisUpdate
- func (data *EventData) GuildIntegrationsUpdate() *discordgo.GuildIntegrationsUpdate
- func (data *EventData) GuildMemberAdd() *discordgo.GuildMemberAdd
- func (data *EventData) GuildMemberRemove() *discordgo.GuildMemberRemove
- func (data *EventData) GuildMemberUpdate() *discordgo.GuildMemberUpdate
- func (data *EventData) GuildMembersChunk() *discordgo.GuildMembersChunk
- func (data *EventData) GuildRoleCreate() *discordgo.GuildRoleCreate
- func (data *EventData) GuildRoleDelete() *discordgo.GuildRoleDelete
- func (data *EventData) GuildRoleUpdate() *discordgo.GuildRoleUpdate
- func (data *EventData) GuildUpdate() *discordgo.GuildUpdate
- func (data *EventData) MessageAck() *discordgo.MessageAck
- func (data *EventData) MessageCreate() *discordgo.MessageCreate
- func (data *EventData) MessageDelete() *discordgo.MessageDelete
- func (data *EventData) MessageDeleteBulk() *discordgo.MessageDeleteBulk
- func (data *EventData) MessageReactionAdd() *discordgo.MessageReactionAdd
- func (data *EventData) MessageReactionRemove() *discordgo.MessageReactionRemove
- func (data *EventData) MessageReactionRemoveAll() *discordgo.MessageReactionRemoveAll
- func (data *EventData) MessageUpdate() *discordgo.MessageUpdate
- func (data *EventData) PresenceUpdate() *discordgo.PresenceUpdate
- func (data *EventData) PresencesReplace() *discordgo.PresencesReplace
- func (data *EventData) RateLimit() *discordgo.RateLimit
- func (data *EventData) Ready() *discordgo.Ready
- func (data *EventData) RelationshipAdd() *discordgo.RelationshipAdd
- func (data *EventData) RelationshipRemove() *discordgo.RelationshipRemove
- func (data *EventData) Resumed() *discordgo.Resumed
- func (data *EventData) TypingStart() *discordgo.TypingStart
- func (data *EventData) UserGuildSettingsUpdate() *discordgo.UserGuildSettingsUpdate
- func (data *EventData) UserNoteUpdate() *discordgo.UserNoteUpdate
- func (data *EventData) UserSettingsUpdate() *discordgo.UserSettingsUpdate
- func (data *EventData) UserUpdate() *discordgo.UserUpdate
- func (data *EventData) VoiceServerUpdate() *discordgo.VoiceServerUpdate
- func (data *EventData) VoiceStateUpdate() *discordgo.VoiceStateUpdate
- func (data *EventData) WebhooksUpdate() *discordgo.WebhooksUpdate
- func (e *EventData) WithContext(ctx context.Context) *EventData
- type Handler
- type HandlerFunc
- type HandlerFuncLegacy
- type Order
Constants ¶
This section is empty.
Variables ¶
var AllDiscordEvents = []Event{ EventChannelCreate, EventChannelDelete, EventChannelPinsUpdate, EventChannelUpdate, EventConnect, EventDisconnect, EventGuildBanAdd, EventGuildBanRemove, EventGuildCreate, EventGuildDelete, EventGuildEmojisUpdate, EventGuildIntegrationsUpdate, EventGuildMemberAdd, EventGuildMemberRemove, EventGuildMemberUpdate, EventGuildMembersChunk, EventGuildRoleCreate, EventGuildRoleDelete, EventGuildRoleUpdate, EventGuildUpdate, EventMessageAck, EventMessageCreate, EventMessageDelete, EventMessageDeleteBulk, EventMessageReactionAdd, EventMessageReactionRemove, EventMessageReactionRemoveAll, EventMessageUpdate, EventPresenceUpdate, EventPresencesReplace, EventRateLimit, EventReady, EventRelationshipAdd, EventRelationshipRemove, EventResumed, EventTypingStart, EventUserGuildSettingsUpdate, EventUserNoteUpdate, EventUserSettingsUpdate, EventUserUpdate, EventVoiceServerUpdate, EventVoiceStateUpdate, EventWebhooksUpdate, }
var AllEvents = []Event{ EventNewGuild, EventAll, EventAllPre, EventAllPost, EventMemberFetched, EventChannelCreate, EventChannelDelete, EventChannelPinsUpdate, EventChannelUpdate, EventConnect, EventDisconnect, EventGuildBanAdd, EventGuildBanRemove, EventGuildCreate, EventGuildDelete, EventGuildEmojisUpdate, EventGuildIntegrationsUpdate, EventGuildMemberAdd, EventGuildMemberRemove, EventGuildMemberUpdate, EventGuildMembersChunk, EventGuildRoleCreate, EventGuildRoleDelete, EventGuildRoleUpdate, EventGuildUpdate, EventMessageAck, EventMessageCreate, EventMessageDelete, EventMessageDeleteBulk, EventMessageReactionAdd, EventMessageReactionRemove, EventMessageReactionRemoveAll, EventMessageUpdate, EventPresenceUpdate, EventPresencesReplace, EventRateLimit, EventReady, EventRelationshipAdd, EventRelationshipRemove, EventResumed, EventTypingStart, EventUserGuildSettingsUpdate, EventUserNoteUpdate, EventUserSettingsUpdate, EventUserUpdate, EventVoiceServerUpdate, EventVoiceStateUpdate, EventWebhooksUpdate, }
var DiscordState *dstate.State
var EventNames = []string{
"NewGuild",
"All",
"AllPre",
"AllPost",
"MemberFetched",
"ChannelCreate",
"ChannelDelete",
"ChannelPinsUpdate",
"ChannelUpdate",
"Connect",
"Disconnect",
"GuildBanAdd",
"GuildBanRemove",
"GuildCreate",
"GuildDelete",
"GuildEmojisUpdate",
"GuildIntegrationsUpdate",
"GuildMemberAdd",
"GuildMemberRemove",
"GuildMemberUpdate",
"GuildMembersChunk",
"GuildRoleCreate",
"GuildRoleDelete",
"GuildRoleUpdate",
"GuildUpdate",
"MessageAck",
"MessageCreate",
"MessageDelete",
"MessageDeleteBulk",
"MessageReactionAdd",
"MessageReactionRemove",
"MessageReactionRemoveAll",
"MessageUpdate",
"PresenceUpdate",
"PresencesReplace",
"RateLimit",
"Ready",
"RelationshipAdd",
"RelationshipRemove",
"Resumed",
"TypingStart",
"UserGuildSettingsUpdate",
"UserNoteUpdate",
"UserSettingsUpdate",
"UserUpdate",
"VoiceServerUpdate",
"VoiceStateUpdate",
"WebhooksUpdate",
}
Functions ¶
func AddHandler ¶
func AddHandler(p common.Plugin, handler HandlerFunc, order Order, evts ...Event)
AddHandler adds a event handler
func AddHandlerAsyncLast ¶ added in v1.19.0
func AddHandlerAsyncLast(p common.Plugin, handler HandlerFunc, evts ...Event)
AddHandlerAsyncLast adds handlers using the OrderAsyncPostState order
func AddHandlerAsyncLastLegacy ¶ added in v1.20.0
func AddHandlerAsyncLastLegacy(p common.Plugin, handler HandlerFuncLegacy, evts ...Event)
AddHandlerAsyncLast adds handlers using the OrderAsyncPostState order
func AddHandlerFirst ¶
func AddHandlerFirst(p common.Plugin, handler HandlerFunc, evts ...Event)
AddHandlerFirst adds handlers using the OrderSyncPreState order
func AddHandlerFirstLegacy ¶ added in v1.20.0
func AddHandlerFirstLegacy(p common.Plugin, handler HandlerFuncLegacy, evts ...Event)
AddHandlerFirst adds handlers using the OrderSyncPreState order
func AddHandlerLegacy ¶ added in v1.20.0
func AddHandlerLegacy(p common.Plugin, handler HandlerFuncLegacy, order Order, evts ...Event)
AddHandler adds a event handler
func AddHandlerSecond ¶ added in v1.19.0
func AddHandlerSecond(p common.Plugin, handler HandlerFunc, evts ...Event)
AddHandlerSecond adds handlers using the OrderSyncPostState order
func AddHandlerSecondLegacy ¶ added in v1.20.0
func AddHandlerSecondLegacy(p common.Plugin, handler HandlerFuncLegacy, evts ...Event)
AddHandlerSecond adds handlers using the OrderSyncPostState order
func HandleEvent ¶
func InitWorkers ¶ added in v1.20.0
func InitWorkers(totalShards int)
Types ¶
type Event ¶
type Event int
const ( EventNewGuild Event = 0 EventAll Event = 1 EventAllPre Event = 2 EventAllPost Event = 3 EventMemberFetched Event = 4 EventChannelCreate Event = 5 EventChannelDelete Event = 6 EventChannelPinsUpdate Event = 7 EventChannelUpdate Event = 8 EventConnect Event = 9 EventDisconnect Event = 10 EventGuildBanAdd Event = 11 EventGuildBanRemove Event = 12 EventGuildCreate Event = 13 EventGuildDelete Event = 14 EventGuildEmojisUpdate Event = 15 EventGuildIntegrationsUpdate Event = 16 EventGuildMemberAdd Event = 17 EventGuildMemberRemove Event = 18 EventGuildMemberUpdate Event = 19 EventGuildMembersChunk Event = 20 EventGuildRoleCreate Event = 21 EventGuildRoleDelete Event = 22 EventGuildRoleUpdate Event = 23 EventGuildUpdate Event = 24 EventMessageAck Event = 25 EventMessageCreate Event = 26 EventMessageDelete Event = 27 EventMessageDeleteBulk Event = 28 EventMessageReactionAdd Event = 29 EventMessageReactionRemove Event = 30 EventMessageReactionRemoveAll Event = 31 EventMessageUpdate Event = 32 EventPresenceUpdate Event = 33 EventPresencesReplace Event = 34 EventRateLimit Event = 35 EventReady Event = 36 EventRelationshipAdd Event = 37 EventRelationshipRemove Event = 38 EventResumed Event = 39 EventTypingStart Event = 40 EventUserGuildSettingsUpdate Event = 41 EventUserNoteUpdate Event = 42 EventUserSettingsUpdate Event = 43 EventUserUpdate Event = 44 EventVoiceServerUpdate Event = 45 EventVoiceStateUpdate Event = 46 EventWebhooksUpdate Event = 47 )
type EventData ¶
type EventData struct { EvtInterface interface{} Type Event Session *discordgo.Session GS *dstate.GuildState // Guaranteed to be available for guild events, except creates and deletes // contains filtered or unexported fields }
func NewEventData ¶ added in v1.19.0
func (*EventData) CS ¶ added in v1.20.0
func (d *EventData) CS() *dstate.ChannelState
CS will attempt to fetch the channel state from either cached, or state, or return nil if nonexistent (e.g a channel create before the state has been populated by it)
func (*EventData) ChannelCreate ¶ added in v1.4.1
func (data *EventData) ChannelCreate() *discordgo.ChannelCreate
func (*EventData) ChannelDelete ¶ added in v1.4.1
func (data *EventData) ChannelDelete() *discordgo.ChannelDelete
func (*EventData) ChannelPinsUpdate ¶ added in v1.4.1
func (data *EventData) ChannelPinsUpdate() *discordgo.ChannelPinsUpdate
func (*EventData) ChannelUpdate ¶ added in v1.4.1
func (data *EventData) ChannelUpdate() *discordgo.ChannelUpdate
func (*EventData) Disconnect ¶ added in v1.4.1
func (data *EventData) Disconnect() *discordgo.Disconnect
func (*EventData) GuildBanAdd ¶ added in v1.4.1
func (data *EventData) GuildBanAdd() *discordgo.GuildBanAdd
func (*EventData) GuildBanRemove ¶ added in v1.4.1
func (data *EventData) GuildBanRemove() *discordgo.GuildBanRemove
func (*EventData) GuildCreate ¶ added in v1.4.1
func (data *EventData) GuildCreate() *discordgo.GuildCreate
func (*EventData) GuildDelete ¶ added in v1.4.1
func (data *EventData) GuildDelete() *discordgo.GuildDelete
func (*EventData) GuildEmojisUpdate ¶ added in v1.4.1
func (data *EventData) GuildEmojisUpdate() *discordgo.GuildEmojisUpdate
func (*EventData) GuildIntegrationsUpdate ¶ added in v1.4.1
func (data *EventData) GuildIntegrationsUpdate() *discordgo.GuildIntegrationsUpdate
func (*EventData) GuildMemberAdd ¶ added in v1.4.1
func (data *EventData) GuildMemberAdd() *discordgo.GuildMemberAdd
func (*EventData) GuildMemberRemove ¶ added in v1.4.1
func (data *EventData) GuildMemberRemove() *discordgo.GuildMemberRemove
func (*EventData) GuildMemberUpdate ¶ added in v1.4.1
func (data *EventData) GuildMemberUpdate() *discordgo.GuildMemberUpdate
func (*EventData) GuildMembersChunk ¶ added in v1.4.1
func (data *EventData) GuildMembersChunk() *discordgo.GuildMembersChunk
func (*EventData) GuildRoleCreate ¶ added in v1.4.1
func (data *EventData) GuildRoleCreate() *discordgo.GuildRoleCreate
func (*EventData) GuildRoleDelete ¶ added in v1.4.1
func (data *EventData) GuildRoleDelete() *discordgo.GuildRoleDelete
func (*EventData) GuildRoleUpdate ¶ added in v1.4.1
func (data *EventData) GuildRoleUpdate() *discordgo.GuildRoleUpdate
func (*EventData) GuildUpdate ¶ added in v1.4.1
func (data *EventData) GuildUpdate() *discordgo.GuildUpdate
func (*EventData) MessageAck ¶ added in v1.4.1
func (data *EventData) MessageAck() *discordgo.MessageAck
func (*EventData) MessageCreate ¶ added in v1.4.1
func (data *EventData) MessageCreate() *discordgo.MessageCreate
func (*EventData) MessageDelete ¶ added in v1.4.1
func (data *EventData) MessageDelete() *discordgo.MessageDelete
func (*EventData) MessageDeleteBulk ¶ added in v1.4.1
func (data *EventData) MessageDeleteBulk() *discordgo.MessageDeleteBulk
func (*EventData) MessageReactionAdd ¶ added in v1.4.1
func (data *EventData) MessageReactionAdd() *discordgo.MessageReactionAdd
func (*EventData) MessageReactionRemove ¶ added in v1.4.1
func (data *EventData) MessageReactionRemove() *discordgo.MessageReactionRemove
func (*EventData) MessageReactionRemoveAll ¶ added in v1.4.1
func (data *EventData) MessageReactionRemoveAll() *discordgo.MessageReactionRemoveAll
func (*EventData) MessageUpdate ¶ added in v1.4.1
func (data *EventData) MessageUpdate() *discordgo.MessageUpdate
func (*EventData) PresenceUpdate ¶ added in v1.4.1
func (data *EventData) PresenceUpdate() *discordgo.PresenceUpdate
func (*EventData) PresencesReplace ¶ added in v1.4.1
func (data *EventData) PresencesReplace() *discordgo.PresencesReplace
func (*EventData) RelationshipAdd ¶ added in v1.4.1
func (data *EventData) RelationshipAdd() *discordgo.RelationshipAdd
func (*EventData) RelationshipRemove ¶ added in v1.4.1
func (data *EventData) RelationshipRemove() *discordgo.RelationshipRemove
func (*EventData) TypingStart ¶ added in v1.4.1
func (data *EventData) TypingStart() *discordgo.TypingStart
func (*EventData) UserGuildSettingsUpdate ¶ added in v1.4.1
func (data *EventData) UserGuildSettingsUpdate() *discordgo.UserGuildSettingsUpdate
func (*EventData) UserNoteUpdate ¶ added in v1.4.1
func (data *EventData) UserNoteUpdate() *discordgo.UserNoteUpdate
func (*EventData) UserSettingsUpdate ¶ added in v1.4.1
func (data *EventData) UserSettingsUpdate() *discordgo.UserSettingsUpdate
func (*EventData) UserUpdate ¶ added in v1.4.1
func (data *EventData) UserUpdate() *discordgo.UserUpdate
func (*EventData) VoiceServerUpdate ¶ added in v1.4.1
func (data *EventData) VoiceServerUpdate() *discordgo.VoiceServerUpdate
func (*EventData) VoiceStateUpdate ¶ added in v1.4.1
func (data *EventData) VoiceStateUpdate() *discordgo.VoiceStateUpdate
func (*EventData) WebhooksUpdate ¶ added in v1.19.0
func (data *EventData) WebhooksUpdate() *discordgo.WebhooksUpdate
type Handler ¶
type Handler struct { Plugin common.Plugin F HandlerFunc FLegacy HandlerFuncLegacy }
type HandlerFunc ¶ added in v1.20.0
func RequireCSMW ¶ added in v1.20.0
func RequireCSMW(inner HandlerFunc) HandlerFunc
RequireCSMW will only call the inner handler if a channel state is available
type HandlerFuncLegacy ¶ added in v1.20.0
type HandlerFuncLegacy func(evtData *EventData)
type Order ¶ added in v1.19.0
type Order int
const ( // Ran first, syncrounously, before changes from the event is applied to state OrderSyncPreState Order = 0 // Ran second, syncrounsly, after state changes have been applied OrderSyncPostState Order = 1 // Ran last, asyncrounously, most handlers should use this unless you need something else in special circumstances OrderAsyncPostState Order = 2 )