Skip to content

Commit d870ff6

Browse files
handlers: Provide full GatewayGuild object on guild create events (#433)
1 parent 93aaedc commit d870ff6

File tree

3 files changed

+36
-18
lines changed

3 files changed

+36
-18
lines changed

events/guild_events.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,42 +6,47 @@ import (
66
"github.com/disgoorg/disgo/discord"
77
)
88

9-
// GenericGuild is called upon receiving GuildUpdate , GuildAvailable , GuildUnavailable , GuildJoin , GuildLeave , GuildReady , GuildBan , GuildUnban
9+
// GenericGuild represents a generic guild event
1010
type GenericGuild struct {
1111
*GenericEvent
1212
GuildID snowflake.ID
13-
Guild discord.Guild
1413
}
1514

1615
// GuildUpdate is called upon receiving discord.Guild updates
1716
type GuildUpdate struct {
1817
*GenericGuild
19-
OldGuild discord.Guild
18+
Guild discord.Guild
19+
OldGuild discord.Guild // the old cached guild
2020
}
2121

2222
// GuildAvailable is called when an unavailable discord.Guild becomes available
2323
type GuildAvailable struct {
2424
*GenericGuild
25+
Guild discord.GatewayGuild
2526
}
2627

2728
// GuildUnavailable is called when an available discord.Guild becomes unavailable
2829
type GuildUnavailable struct {
2930
*GenericGuild
31+
Guild discord.Guild // the old cached guild
3032
}
3133

3234
// GuildJoin is called when the bot joins a discord.Guild
3335
type GuildJoin struct {
3436
*GenericGuild
37+
Guild discord.GatewayGuild
3538
}
3639

3740
// GuildLeave is called when the bot leaves a discord.Guild
3841
type GuildLeave struct {
3942
*GenericGuild
43+
Guild discord.Guild // the old cached guild
4044
}
4145

4246
// GuildReady is called when a discord.Guild becomes loaded for the first time
4347
type GuildReady struct {
4448
*GenericGuild
49+
Guild discord.GatewayGuild
4550
}
4651

4752
// GuildsReady is called when all discord.Guild(s) are loaded after logging in
@@ -51,21 +56,18 @@ type GuildsReady struct {
5156

5257
// GuildBan is called when a discord.Member/discord.User is banned from the discord.Guild
5358
type GuildBan struct {
54-
*GenericEvent
55-
GuildID snowflake.ID
56-
User discord.User
59+
*GenericGuild
60+
User discord.User
5761
}
5862

5963
// GuildUnban is called when a discord.Member/discord.User is unbanned from the discord.Guild
6064
type GuildUnban struct {
61-
*GenericEvent
62-
GuildID snowflake.ID
63-
User discord.User
65+
*GenericGuild
66+
User discord.User
6467
}
6568

6669
// GuildAuditLogEntryCreate is called when a new discord.AuditLogEntry is created
6770
type GuildAuditLogEntryCreate struct {
68-
*GenericEvent
69-
GuildID snowflake.ID
71+
*GenericGuild
7072
AuditLogEntry discord.AuditLogEntry
7173
}

handlers/guild_ban_handlers.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,25 @@ import (
77
)
88

99
func gatewayHandlerGuildBanAdd(client bot.Client, sequenceNumber int, shardID int, event gateway.EventGuildBanAdd) {
10-
client.EventManager().DispatchEvent(&events.GuildBan{
10+
genericGuildEvent := &events.GenericGuild{
1111
GenericEvent: events.NewGenericEvent(client, sequenceNumber, shardID),
1212
GuildID: event.GuildID,
13+
}
14+
15+
client.EventManager().DispatchEvent(&events.GuildBan{
16+
GenericGuild: genericGuildEvent,
1317
User: event.User,
1418
})
1519
}
1620

1721
func gatewayHandlerGuildBanRemove(client bot.Client, sequenceNumber int, shardID int, event gateway.EventGuildBanRemove) {
18-
client.EventManager().DispatchEvent(&events.GuildUnban{
22+
genericGuildEvent := &events.GenericGuild{
1923
GenericEvent: events.NewGenericEvent(client, sequenceNumber, shardID),
2024
GuildID: event.GuildID,
25+
}
26+
27+
client.EventManager().DispatchEvent(&events.GuildUnban{
28+
GenericGuild: genericGuildEvent,
2129
User: event.User,
2230
})
2331
}

handlers/guild_handlers.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,13 @@ func gatewayHandlerGuildCreate(client bot.Client, sequenceNumber int, shardID in
7070
genericGuildEvent := &events.GenericGuild{
7171
GenericEvent: events.NewGenericEvent(client, sequenceNumber, shardID),
7272
GuildID: event.ID,
73-
Guild: event.Guild,
7473
}
7574

7675
if wasUnready {
7776
client.Caches().SetGuildUnready(event.ID, false)
7877
client.EventManager().DispatchEvent(&events.GuildReady{
7978
GenericGuild: genericGuildEvent,
79+
Guild: event.GatewayGuild,
8080
})
8181
if len(client.Caches().UnreadyGuildIDs()) == 0 {
8282
client.EventManager().DispatchEvent(&events.GuildsReady{
@@ -97,10 +97,12 @@ func gatewayHandlerGuildCreate(client bot.Client, sequenceNumber int, shardID in
9797
client.Caches().SetGuildUnavailable(event.ID, false)
9898
client.EventManager().DispatchEvent(&events.GuildAvailable{
9999
GenericGuild: genericGuildEvent,
100+
Guild: event.GatewayGuild,
100101
})
101102
} else {
102103
client.EventManager().DispatchEvent(&events.GuildJoin{
103104
GenericGuild: genericGuildEvent,
105+
Guild: event.GatewayGuild,
104106
})
105107
}
106108
}
@@ -112,8 +114,9 @@ func gatewayHandlerGuildUpdate(client bot.Client, sequenceNumber int, shardID in
112114
client.EventManager().DispatchEvent(&events.GuildUpdate{
113115
GenericGuild: &events.GenericGuild{
114116
GenericEvent: events.NewGenericEvent(client, sequenceNumber, shardID),
115-
Guild: event.Guild,
117+
GuildID: event.ID,
116118
},
119+
Guild: event.Guild,
117120
OldGuild: oldGuild,
118121
})
119122
}
@@ -145,24 +148,29 @@ func gatewayHandlerGuildDelete(client bot.Client, sequenceNumber int, shardID in
145148
genericGuildEvent := &events.GenericGuild{
146149
GenericEvent: events.NewGenericEvent(client, sequenceNumber, shardID),
147150
GuildID: event.ID,
148-
Guild: guild,
149151
}
150152

151153
if event.Unavailable {
152154
client.EventManager().DispatchEvent(&events.GuildUnavailable{
153155
GenericGuild: genericGuildEvent,
156+
Guild: guild,
154157
})
155158
} else {
156159
client.EventManager().DispatchEvent(&events.GuildLeave{
157160
GenericGuild: genericGuildEvent,
161+
Guild: guild,
158162
})
159163
}
160164
}
161165

162166
func gatewayHandlerGuildAuditLogEntryCreate(client bot.Client, sequenceNumber int, shardID int, event gateway.EventGuildAuditLogEntryCreate) {
167+
genericGuildEvent := &events.GenericGuild{
168+
GenericEvent: events.NewGenericEvent(client, sequenceNumber, shardID),
169+
GuildID: event.GuildID,
170+
}
171+
163172
client.EventManager().DispatchEvent(&events.GuildAuditLogEntryCreate{
164-
GenericEvent: events.NewGenericEvent(client, sequenceNumber, shardID),
165-
GuildID: event.GuildID,
173+
GenericGuild: genericGuildEvent,
166174
AuditLogEntry: event.AuditLogEntry,
167175
})
168176
}

0 commit comments

Comments
 (0)