31 lines
1.6 KiB
JavaScript
31 lines
1.6 KiB
JavaScript
const { SlashCommandBuilder, MessageFlags, EmbedBuilder } = require('discord.js');
|
||
const { Tournament } = require("../../data_objects/tournament.js");
|
||
const { tetrioRanks } = require("../../data_objects/tetrio_ranks.js");
|
||
const { updateTournamentsJSON } = require("../../utils.js");
|
||
const { tournaments, blacklist, whitelist } = require("../../index.js");
|
||
|
||
module.exports = {
|
||
data: new SlashCommandBuilder()
|
||
.setName('delete_event')
|
||
.setDescription('Удалить событие и всё связанное с ним')
|
||
.addStringOption(option =>
|
||
option.setName('key')
|
||
.setDescription('Время создания события')
|
||
.setRequired(true)),
|
||
async execute(interaction) {
|
||
const t = tournaments.get(interaction.options.getString('key'));
|
||
try{
|
||
await interaction.guild.roles.delete(t.participant_role, 'Информация о турнире удалена');
|
||
await interaction.guild.roles.delete(t.checked_in_role, 'Информация о турнире удалена');
|
||
const msg_channel = await interaction.client.channels.fetch(t.channelID);
|
||
const msg = await msg_channel.messages.fetch(t.messageID);
|
||
msg.delete();
|
||
interaction.reply({ content: `Готово`, flags: MessageFlags.Ephemeral });
|
||
}catch(e){
|
||
interaction.reply({ content: `Не всё прошло гладко, но турнир из бота был удален\n\`${e}\``, flags: MessageFlags.Ephemeral });
|
||
}
|
||
tournaments.delete(interaction.options.getString('key'));
|
||
updateTournamentsJSON();
|
||
},
|
||
};
|