feat(guild): gossip and ingest GUILD_DELETE on mesh

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-06-01 15:22:43 -04:00
co-authored by Cursor
parent 5bdcf6de75
commit b1ce5121f9
+21
View File
@@ -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)
} }