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)
|
this.emit('guild-update', payload)
|
||||||
}).catch(() => {})
|
}).catch(() => {})
|
||||||
}
|
}
|
||||||
|
if (method === RPC.GUILD_DELETE) {
|
||||||
|
this._ingestGuildDelete(payload).catch(() => {})
|
||||||
|
}
|
||||||
if (method === RPC.MEMBER_KICK) {
|
if (method === RPC.MEMBER_KICK) {
|
||||||
this.db.delete(COLLECTIONS.MEMBERS, {
|
this.db.delete(COLLECTIONS.MEMBERS, {
|
||||||
guildId: payload.guildId,
|
guildId: payload.guildId,
|
||||||
@@ -711,6 +714,24 @@ class PearcordGuild extends EventEmitter {
|
|||||||
broadcastGossip(this, RPC.GUILD_UPDATE, guild)
|
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) {
|
gossipKick (payload) {
|
||||||
broadcastGossip(this, RPC.MEMBER_KICK, payload)
|
broadcastGossip(this, RPC.MEMBER_KICK, payload)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user