feat(guild): gossip and ingest GUILD_DELETE on mesh
Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -332,6 +332,9 @@ class PearcordGuild extends EventEmitter {
|
||||
this.emit('guild-update', payload)
|
||||
}).catch(() => {})
|
||||
}
|
||||
if (method === RPC.GUILD_DELETE) {
|
||||
this._ingestGuildDelete(payload).catch(() => {})
|
||||
}
|
||||
if (method === RPC.MEMBER_KICK) {
|
||||
this.db.delete(COLLECTIONS.MEMBERS, {
|
||||
guildId: payload.guildId,
|
||||
@@ -711,6 +714,24 @@ class PearcordGuild extends EventEmitter {
|
||||
broadcastGossip(this, RPC.GUILD_UPDATE, guild)
|
||||
}
|
||||
|
||||
gossipGuildDelete (payload) {
|
||||
return broadcastGossip(this, RPC.GUILD_DELETE, payload)
|
||||
}
|
||||
|
||||
async _ingestGuildDelete (payload) {
|
||||
const guildId = payload?.guildId || payload?.id
|
||||
if (!guildId) return
|
||||
if (this.guild?.id === guildId) {
|
||||
this.guild = null
|
||||
}
|
||||
this.emit('guild-delete', {
|
||||
guildId,
|
||||
deletedAt: payload?.deletedAt || Date.now(),
|
||||
deletedBy: payload?.deletedBy || null,
|
||||
name: payload?.name || null
|
||||
})
|
||||
}
|
||||
|
||||
gossipKick (payload) {
|
||||
broadcastGossip(this, RPC.MEMBER_KICK, payload)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user