Files
illegitimate-bot/events/buttons/waitingListUpdate.js

64 lines
1.8 KiB
JavaScript

const waitinglist = require('../../schemas/waitinglistSchema.js');
const { getGuild } = require('../../utils/utils.js');
const { hypixelGuildID } = require("../../config/options.json")
module.exports = {
name: 'waitinglistupdate',
description: 'Update the waiting list.',
type: 'button',
/** @param {import('discord.js').ButtonInteraction} interaction */
async execute(interaction) {
await interaction.deferReply({ ephemeral: true });
const user = interaction.user;
const message = interaction.message;
const embed = message.embeds[0];
const accepted = await waitinglist.find()
for (let i = 0; i < accepted.length; i++) {
const uuid = accepted[i].uuid
const guild = await getGuild(uuid)
if (guild && guild._id === hypixelGuildID) {
await waitinglist.findOneAndDelete({ uuid: uuid })
continue
}
}
let fields = [];
for (let i = 0; i < accepted.length; i++) {
const timestamp1 = accepted[i].timestamp / 1000
const timestamp = Math.floor(timestamp1)
fields.push({
name: `${i + 1}. ${accepted[i].IGN}`,
value: `TS: <t:${timestamp}:R>`
});
}
await message.edit({
embeds: [{
title: embed.title,
description: embed.description,
color: embed.color,
footer: {
text: "Last updated by " + user.username,
icon_url: user.avatarURL(),
},
thumbnail: embed.thumbnail,
fields: fields,
timestamp: new Date(),
}],
});
await interaction.editReply({ content: 'Updated the waiting list', ephemeral: true });
}
}