mirror of
https://github.com/arthur-pbty/bot-discord-coins.git
synced 2026-06-12 23:59:14 +02:00
104 lines
4.8 KiB
JavaScript
104 lines
4.8 KiB
JavaScript
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js');
|
|
const db = require('../../fonctions/database.js');
|
|
const embedColor = require('../../fonctions/embedColor.js');
|
|
|
|
module.exports = {
|
|
aliases: ['alliancedelete', 'adelete', 'aremove', 'allianceremove'],
|
|
description: 'Supprime votre alliance.',
|
|
emote: '🗑️',
|
|
util: '',
|
|
permission: 0,
|
|
|
|
async execute(message, args, client) {
|
|
const team = await new Promise((resolve, reject) => {
|
|
db.get(`SELECT * FROM teams WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [message.guild.id, message.guild.id, message.author.id], (err, row) => {
|
|
if (err) reject(err);
|
|
resolve(row);
|
|
});
|
|
});
|
|
const alliance = await new Promise((resolve, reject) => {
|
|
db.get(`SELECT * FROM alliances WHERE guildId = ? AND id = (SELECT alliancesId FROM teams WHERE guildId = ? AND id = ?)`, [message.guild.id, message.guild.id, team.id], (err, row) => {
|
|
if (err) reject(err);
|
|
resolve(row);
|
|
});
|
|
});
|
|
if (!alliance) {
|
|
const embed = new EmbedBuilder()
|
|
.setTitle('🛡️ Suppression de l\'alliance')
|
|
.setDescription('Vous n\'êtes actuellement pas dans une alliance.')
|
|
.setColor(await embedColor(message.author.id, message.guild.id))
|
|
.setTimestamp()
|
|
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
|
|
|
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
|
|
} else {
|
|
|
|
if (alliance.creator !== message.author.id) {
|
|
const embed = new EmbedBuilder()
|
|
.setTitle('Suppression Impossible')
|
|
.setDescription('❌ Vous n\'avez pas la permission de supprimer votre alliance.')
|
|
.setColor(await embedColor(message.author.id, message.guild.id))
|
|
.setTimestamp()
|
|
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
|
|
|
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
|
|
}
|
|
|
|
const row = new ActionRowBuilder()
|
|
.addComponents(
|
|
new ButtonBuilder()
|
|
.setCustomId('confirm_delete')
|
|
.setLabel('Confirmer')
|
|
.setStyle(ButtonStyle.Danger),
|
|
new ButtonBuilder()
|
|
.setCustomId('cancel_delete')
|
|
.setLabel('Annuler')
|
|
.setStyle(ButtonStyle.Secondary)
|
|
);
|
|
|
|
const embed = new EmbedBuilder()
|
|
.setTitle('🛡️ Suppression de l\'alliance')
|
|
.setDescription(`Êtes-vous sûr de vouloir supprimer l'alliance ${alliance.name}? Cette action est irréversible.`)
|
|
.setColor(await embedColor(message.author.id, message.guild.id))
|
|
.setTimestamp()
|
|
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
|
|
|
message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } }).then(sentMessage => {
|
|
const filter = i => i.customId === 'confirm_delete' || i.customId === 'cancel_delete' && i.user.id === message.author.id;
|
|
|
|
const collector = sentMessage.createMessageComponentCollector({ filter, time: 15000 });
|
|
|
|
collector.on('collect', async i => {
|
|
if (i.customId === 'confirm_delete') {
|
|
db.run(`DELETE FROM alliances WHERE guildId = ? AND id = ? AND creator = ?`, [message.guild.id, alliance.id, message.author.id], async (err) => {
|
|
if (err) {
|
|
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'alliance.', components: [] });
|
|
}
|
|
|
|
db.run(`UPDATE teams SET alliancesId = null WHERE guildId =? AND alliancesId =?`, [message.guild.id, alliance.id], async (err) => {
|
|
if (err) {
|
|
return i.update({ content: 'Une erreur est survenue lors de la mise à jour des teams membres.', components: [] });
|
|
}
|
|
|
|
const embed = new EmbedBuilder()
|
|
.setTitle('🛡️ Suppression de l\'alliance')
|
|
.setDescription(`L'alliance ${alliance.name} a été supprimée avec succès.`)
|
|
.setColor(await embedColor(message.author.id, message.guild.id))
|
|
.setTimestamp()
|
|
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
|
|
|
return i.update({ embeds: [embed], components: [] });
|
|
});
|
|
});
|
|
} else {
|
|
await i.update({ content: 'Suppression de l\'alliance annulée.', components: [] });
|
|
}
|
|
});
|
|
|
|
collector.on('end', collected => {
|
|
if (collected.size === 0) sentMessage.edit({ content: 'Temps écoulé. Suppression de l\'équipe annulée.', components: [] });
|
|
});
|
|
});
|
|
}
|
|
},
|
|
}; |