@kamkam1_0/discord.js
Version:
Allows you to fully interact with discord's apis
53 lines (47 loc) • 1.65 kB
JavaScript
const createEvent = require("./GUILD_STICKER_CREATE")
const modifyEvent = require("./GUILD_STICKER_UPDATE")
const deleteEvent = require("./GUILD_STICKER_DELETE")
module.exports = async (bot, datas) => {
const guild = bot.guilds.get(datas.guild_id)
if(!datas.guild_id || !guild) return
let type = determine(datas, guild)
switch(type){
case("ADD"):
createEvent(bot, {...datas.stickers.find(emo => !guild.stickers.find(e => e.id === emo.id)), guild_id: guild.id})
break;
case("DELETE"):
deleteEvent(bot, guild.stickers.find(emo => !datas.stickers.find(e => e.id === emo.id)))
break;
case("UPDATE"):
let newsticker;
let oldsticker;
let criteres = ["id", "description", "name", "type", "format_type", "available"]
datas.stickers
.map(sticker => {
if (!sticker.description.length) {
sticker.description = null
}
return sticker
})
.forEach(emo => {
if(!newsticker && !oldsticker){
let tempoemo = guild.stickers.find(em => em.id === emo.id)
criteres.forEach(cr => {
if(emo[cr] !== tempoemo[cr]){
newsticker = emo
oldsticker = tempoemo
}
})
}
})
if(!newsticker || !oldsticker) return
newsticker.guild_id = guild.id
modifyEvent(bot, newsticker)
break;
}
}
function determine(datas, guild){
if(datas.stickers.length > guild.stickers.length) return "ADD"
if(datas.stickers.length < guild.stickers.length) return "DELETE"
if(datas.stickers.length === guild.stickers.length) return "UPDATE"
}