'use strict'; const Action = require('./Action'); class GuildStickersUpdateAction extends Action { handle(data) { const guild = this.client.guilds.cache.get(data.guild_id); if (!guild?.stickers) return; const deletions = new Map(guild.stickers.cache); for (const sticker of data.stickers) { // Determine type of sticker event const cachedSticker = guild.stickers.cache.get(sticker.id); if (cachedSticker) { deletions.delete(sticker.id); if (!cachedSticker.equals(sticker)) { // Sticker updated this.client.actions.GuildStickerUpdate.handle(cachedSticker, sticker); } } else { // Sticker added this.client.actions.GuildStickerCreate.handle(guild, sticker); } } for (const sticker of deletions.values()) { // Sticker deleted this.client.actions.GuildStickerDelete.handle(sticker); } } } module.exports = GuildStickersUpdateAction;