Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions events/guild_voice_events.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ type GuildVoiceChannelEffectSend struct {
gateway.EventVoiceChannelEffectSend
}

// GuildVoiceChannelStatusUpdate indicates that a discord.GuildVoiceChannel's status has updated
type GuildVoiceChannelStatusUpdate struct {
*GenericEvent
gateway.EventVoiceChannelStatusUpdate
}

// GenericGuildVoiceState is called upon receiving GuildVoiceJoin, GuildVoiceMove and GuildVoiceLeave
type GenericGuildVoiceState struct {
*GenericEvent
Expand Down
1 change: 1 addition & 0 deletions gateway/gateway_event_type.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ const (
EventTypeTypingStart EventType = "TYPING_START"
EventTypeUserUpdate EventType = "USER_UPDATE"
EventTypeVoiceChannelEffectSend EventType = "VOICE_CHANNEL_EFFECT_SEND"
EventTypeVoiceChannelStatusUpdate EventType = "VOICE_CHANNEL_STATUS_UPDATE"
EventTypeVoiceStateUpdate EventType = "VOICE_STATE_UPDATE"
EventTypeVoiceServerUpdate EventType = "VOICE_SERVER_UPDATE"
EventTypeWebhooksUpdate EventType = "WEBHOOKS_UPDATE"
Expand Down
9 changes: 9 additions & 0 deletions gateway/gateway_events.go
Original file line number Diff line number Diff line change
Expand Up @@ -718,6 +718,15 @@ func (e *EventVoiceChannelEffectSend) UnmarshalJSON(data []byte) error {
func (EventVoiceChannelEffectSend) messageData() {}
func (EventVoiceChannelEffectSend) eventData() {}

type EventVoiceChannelStatusUpdate struct {
Status string `json:"status,omitempty"`
ID snowflake.ID `json:"id"`
GuildID snowflake.ID `json:"guild_id"`
}

func (EventVoiceChannelStatusUpdate) messageData() {}
func (EventVoiceChannelStatusUpdate) eventData() {}

type EventVoiceStateUpdate struct {
discord.VoiceState
Member discord.Member `json:"member"`
Expand Down
5 changes: 5 additions & 0 deletions gateway/gateway_messages.go
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,11 @@ func UnmarshalEventData(data []byte, eventType EventType) (EventData, error) {
err = json.Unmarshal(data, &d)
eventData = d

case EventTypeVoiceChannelStatusUpdate:
var d EventVoiceChannelStatusUpdate
err = json.Unmarshal(data, &d)
eventData = d

case EventTypeVoiceStateUpdate:
var d EventVoiceStateUpdate
err = json.Unmarshal(data, &d)
Expand Down
1 change: 1 addition & 0 deletions handlers/all_handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ var allEventHandlers = []bot.GatewayEventHandler{
bot.NewGatewayEventHandler(gateway.EventTypeUserUpdate, gatewayHandlerUserUpdate),

bot.NewGatewayEventHandler(gateway.EventTypeVoiceChannelEffectSend, gatewayHandlerVoiceChannelEffectSend),
bot.NewGatewayEventHandler(gateway.EventTypeVoiceChannelStatusUpdate, gatewayHandlerVoiceChannelStatusUpdate),
bot.NewGatewayEventHandler(gateway.EventTypeVoiceStateUpdate, gatewayHandlerVoiceStateUpdate),
bot.NewGatewayEventHandler(gateway.EventTypeVoiceServerUpdate, gatewayHandlerVoiceServerUpdate),

Expand Down
7 changes: 7 additions & 0 deletions handlers/voice_handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@ func gatewayHandlerVoiceChannelEffectSend(client bot.Client, sequenceNumber int,
})
}

func gatewayHandlerVoiceChannelStatusUpdate(client bot.Client, number int, id int, event gateway.EventVoiceChannelStatusUpdate) {
client.EventManager().DispatchEvent(&events.GuildVoiceChannelStatusUpdate{
GenericEvent: events.NewGenericEvent(client, number, id),
EventVoiceChannelStatusUpdate: event,
})
}

func gatewayHandlerVoiceStateUpdate(client bot.Client, sequenceNumber int, shardID int, event gateway.EventVoiceStateUpdate) {
member := event.Member

Expand Down
Loading