35 lines
969 B
JavaScript
35 lines
969 B
JavaScript
'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;
|