mirror of
https://github.com/arthur-pbty/bot-discord-coins.git
synced 2026-06-23 17:54:49 +02:00
Merge branch 'main' of https://github.com/arthur-pbty/bot-discord-coins
This commit is contained in:
@@ -1,130 +1,130 @@
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
|
||||
let teamName
|
||||
let teamDescription
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teamcreate'],
|
||||
description: 'Crée une team.',
|
||||
emote: '🛡️',
|
||||
utilisation: '',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT teamId, pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
if (row.teamId !== null ) {
|
||||
embedColor(message.author.id, message.guild.id).then(color => {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Création de team')
|
||||
.setDescription(`Vous êtes déjà dans une team. Vous devez quitter votre team actuelle pour en créer une nouvelle.`)
|
||||
.setColor(color)
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
|
||||
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
|
||||
});
|
||||
} else if (row.pocket < 3000) {
|
||||
embedColor(message.author.id, message.guild.id).then(color => {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Création de team')
|
||||
.setDescription(`Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`)
|
||||
.setColor(color)
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
|
||||
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
|
||||
});
|
||||
} else {
|
||||
db.run(`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]);
|
||||
resolve();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Création de team')
|
||||
.setDescription(`Ecrivez le nom de votre team dans le chat.`)
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
const messageTeam = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
|
||||
|
||||
const filter = m => m.author.id === message.author.id;
|
||||
const collector = message.channel.createMessageCollector({ filter, time: 60000, max: 1 });
|
||||
collector.on('collect', async m => {
|
||||
if (m.content.length > 20) {
|
||||
m.reply('Le nom de la team ne doit pas dépasser 20 caractères.');
|
||||
return collector.stop();
|
||||
} else if (m.content.length < 3) {
|
||||
m.reply('Le nom de la team doit contenir au moins 3 caractères.');
|
||||
return collector.stop();
|
||||
} else {
|
||||
teamName = m.content;
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Création de team')
|
||||
.setDescription(`Ecrivez la description de votre team dans le chat.`)
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
messageTeam.edit({ embeds: [embed] });
|
||||
m.delete();
|
||||
|
||||
const collectorD = message.channel.createMessageCollector({ filter, time: 60000, max: 1 });
|
||||
collectorD.on('collect', async m => {
|
||||
if (m.content.length > 100) {
|
||||
m.reply('La description de la team ne doit pas dépasser 100 caractères.');
|
||||
return collectorD.stop();
|
||||
} else if (m.content.length < 2) {
|
||||
m.reply('La description de la team doit contenir au moins 2 caractères.');
|
||||
return collectorD.stop();
|
||||
} else {
|
||||
teamDescription = m.content;
|
||||
|
||||
let idBase = teamName.toLowerCase().replace(/ /g, '');
|
||||
let id = idBase;
|
||||
let increment = 1;
|
||||
let exists = true;
|
||||
do {
|
||||
await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM teams WHERE id = ? AND guildId = ?`, [id, message.guild.id], (err, row) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
exists = !!row;
|
||||
if (exists) {
|
||||
increment++;
|
||||
id = idBase + increment;
|
||||
} else {
|
||||
db.run(`INSERT INTO teams (guildId, id, name, description) VALUES (?, ?, ?, ?)`, [message.guild.id, id, teamName, teamDescription]);
|
||||
db.run(`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, [id, 'owner', message.guild.id, message.author.id]);
|
||||
}
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
} while (exists);
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Création de team')
|
||||
.setDescription(`Votre team a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${teamName}\n**Description :** ${teamDescription}\n\nVous pouvez maintenant inviter des membres dans votre team avec la commande \`&teaminvite\`.\n\nPour quitter la team, utilisez la commande \`&teamleave\`.`)
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
messageTeam.edit({ embeds: [embed] });
|
||||
m.delete();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
|
||||
let teamName
|
||||
let teamDescription
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teamcreate'],
|
||||
description: 'Crée une team.',
|
||||
emote: '🛡️',
|
||||
utilisation: '',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT teamId, pocket FROM users WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id], (err, row) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
if (row.teamId !== null ) {
|
||||
embedColor(message.author.id, message.guild.id).then(color => {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Création de team')
|
||||
.setDescription(`Vous êtes déjà dans une team. Vous devez quitter votre team actuelle pour en créer une nouvelle.`)
|
||||
.setColor(color)
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
|
||||
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
|
||||
});
|
||||
} else if (row.pocket < 3000) {
|
||||
embedColor(message.author.id, message.guild.id).then(color => {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Création de team')
|
||||
.setDescription(`Vous n'avez pas assez de fonds pour créer une team. Vous avez besoin de 3000.`)
|
||||
.setColor(color)
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
|
||||
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
|
||||
});
|
||||
} else {
|
||||
db.run(`UPDATE users SET pocket = pocket - 3000 WHERE userId = ? AND guildId = ?`, [message.author.id, message.guild.id]);
|
||||
resolve();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Création de team')
|
||||
.setDescription(`Ecrivez le nom de votre team dans le chat.`)
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
const messageTeam = await message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } });
|
||||
|
||||
const filter = m => m.author.id === message.author.id;
|
||||
const collector = message.channel.createMessageCollector({ filter, time: 60000, max: 1 });
|
||||
collector.on('collect', async m => {
|
||||
if (m.content.length > 20) {
|
||||
m.reply('Le nom de la team ne doit pas dépasser 20 caractères.');
|
||||
return collector.stop();
|
||||
} else if (m.content.length < 3) {
|
||||
m.reply('Le nom de la team doit contenir au moins 3 caractères.');
|
||||
return collector.stop();
|
||||
} else {
|
||||
teamName = m.content;
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Création de team')
|
||||
.setDescription(`Ecrivez la description de votre team dans le chat.`)
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
messageTeam.edit({ embeds: [embed] });
|
||||
m.delete();
|
||||
|
||||
const collectorD = message.channel.createMessageCollector({ filter, time: 60000, max: 1 });
|
||||
collectorD.on('collect', async m => {
|
||||
if (m.content.length > 100) {
|
||||
m.reply('La description de la team ne doit pas dépasser 100 caractères.');
|
||||
return collectorD.stop();
|
||||
} else if (m.content.length < 2) {
|
||||
m.reply('La description de la team doit contenir au moins 2 caractères.');
|
||||
return collectorD.stop();
|
||||
} else {
|
||||
teamDescription = m.content;
|
||||
|
||||
let idBase = teamName.toLowerCase().replace(/ /g, '');
|
||||
let id = idBase;
|
||||
let increment = 1;
|
||||
let exists = true;
|
||||
do {
|
||||
await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM teams WHERE id = ? AND guildId = ?`, [id, message.guild.id], (err, row) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
exists = !!row;
|
||||
if (exists) {
|
||||
increment++;
|
||||
id = idBase + increment;
|
||||
} else {
|
||||
db.run(`INSERT INTO teams (guildId, id, name, description) VALUES (?, ?, ?, ?)`, [message.guild.id, id, teamName, teamDescription]);
|
||||
db.run(`UPDATE users SET teamId = ?, teamRole = ? WHERE guildId = ? AND userId = ?`, [id, 'owner', message.guild.id, message.author.id]);
|
||||
}
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
} while (exists);
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Création de team')
|
||||
.setDescription(`Votre team a été créée avec succès !\n\n**ID :** ${id}\n**Nom :** ${teamName}\n**Description :** ${teamDescription}\n\nVous pouvez maintenant inviter des membres dans votre team avec la commande \`&teaminvite\`.\n\nPour quitter la team, utilisez la commande \`&teamleave\`.`)
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
messageTeam.edit({ embeds: [embed] });
|
||||
m.delete();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -1,105 +1,105 @@
|
||||
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teamdelete'],
|
||||
description: 'Supprime votre équipe.',
|
||||
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);
|
||||
});
|
||||
});
|
||||
|
||||
if (!team) {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Suppression de l\'équipe')
|
||||
.setDescription('Vous n\'êtes actuellement pas dans une équipe.')
|
||||
.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 {
|
||||
const teamRole = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row.teamRole);
|
||||
});
|
||||
});
|
||||
|
||||
if (teamRole !== 'owner') {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Suppression Impossible')
|
||||
.setDescription('❌ Vous n\'avez pas la permission de supprimer cette équipe.')
|
||||
.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\'équipe')
|
||||
.setDescription(`Êtes-vous sûr de vouloir supprimer l'équipe ${team.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 teams WHERE guildId = ? AND id = ?`, [message.guild.id, team.id], async (err) => {
|
||||
if (err) {
|
||||
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'équipe.', components: [] });
|
||||
}
|
||||
|
||||
db.run(`UPDATE users SET teamRole = NULL, teamId = NULL WHERE guildId = ? AND teamId = ?`, [message.guild.id, team.id], async (err) => {
|
||||
if (err) {
|
||||
return i.update({ content: 'Une erreur est survenue lors de la mise à jour des membres de l\'équipe.', components: [] });
|
||||
}
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Suppression de l\'équipe')
|
||||
.setDescription(`L'équipe ${team.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\'équipe annulée.', components: [] });
|
||||
}
|
||||
});
|
||||
|
||||
collector.on('end', collected => {
|
||||
if (collected.size === 0) sentMessage.edit({ content: 'Temps écoulé. Suppression de l\'équipe annulée.', components: [] });
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teamdelete'],
|
||||
description: 'Supprime votre équipe.',
|
||||
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);
|
||||
});
|
||||
});
|
||||
|
||||
if (!team) {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Suppression de l\'équipe')
|
||||
.setDescription('Vous n\'êtes actuellement pas dans une équipe.')
|
||||
.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 {
|
||||
const teamRole = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT teamRole FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row.teamRole);
|
||||
});
|
||||
});
|
||||
|
||||
if (teamRole !== 'owner') {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Suppression Impossible')
|
||||
.setDescription('❌ Vous n\'avez pas la permission de supprimer cette équipe.')
|
||||
.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\'équipe')
|
||||
.setDescription(`Êtes-vous sûr de vouloir supprimer l'équipe ${team.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 teams WHERE guildId = ? AND id = ?`, [message.guild.id, team.id], async (err) => {
|
||||
if (err) {
|
||||
return i.update({ content: 'Une erreur est survenue lors de la suppression de l\'équipe.', components: [] });
|
||||
}
|
||||
|
||||
db.run(`UPDATE users SET teamRole = NULL, teamId = NULL WHERE guildId = ? AND teamId = ?`, [message.guild.id, team.id], async (err) => {
|
||||
if (err) {
|
||||
return i.update({ content: 'Une erreur est survenue lors de la mise à jour des membres de l\'équipe.', components: [] });
|
||||
}
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Suppression de l\'équipe')
|
||||
.setDescription(`L'équipe ${team.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\'équipe annulée.', components: [] });
|
||||
}
|
||||
});
|
||||
|
||||
collector.on('end', collected => {
|
||||
if (collected.size === 0) sentMessage.edit({ content: 'Temps écoulé. Suppression de l\'équipe annulée.', components: [] });
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -1,113 +1,113 @@
|
||||
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teamdemote', 'tderank'],
|
||||
description: 'Rétrograder un officier à membre dans votre équipe.',
|
||||
emote: '🛡️',
|
||||
utilisation: '<@user>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (!args[0]) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrograder un officier')
|
||||
.setDescription('Veuillez mentionner un utilisateur à rétrograder.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToDemote = message.mentions.users.first();
|
||||
if (!userToDemote) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrograder un officier')
|
||||
.setDescription('Utilisateur non trouvé.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!user || user.teamRole !== 'owner') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrograder un officier')
|
||||
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToDemoteInfo = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToDemote.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!userToDemoteInfo || userToDemoteInfo.teamId !== user.teamId) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrograder un officier')
|
||||
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
if (userToDemoteInfo.teamRole !== 'officer') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrograder un officier')
|
||||
.setDescription('L\'utilisateur mentionné n\'est pas un officier.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
db.run(`UPDATE users SET teamRole = 'membre' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToDemote.id], async (err) => {
|
||||
if (err) {
|
||||
return message.reply('Une erreur est survenue lors de la rétrogradation de l\'utilisateur.');
|
||||
}
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrogradation dans l\'équipe')
|
||||
.setDescription(`${userToDemote.tag} a été rétrogradé au rang de membre.`)
|
||||
.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 { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teamdemote', 'tderank'],
|
||||
description: 'Rétrograder un officier à membre dans votre équipe.',
|
||||
emote: '🛡️',
|
||||
utilisation: '<@user>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (!args[0]) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrograder un officier')
|
||||
.setDescription('Veuillez mentionner un utilisateur à rétrograder.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToDemote = message.mentions.users.first();
|
||||
if (!userToDemote) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrograder un officier')
|
||||
.setDescription('Utilisateur non trouvé.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!user || user.teamRole !== 'owner') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrograder un officier')
|
||||
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToDemoteInfo = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToDemote.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!userToDemoteInfo || userToDemoteInfo.teamId !== user.teamId) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrograder un officier')
|
||||
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
if (userToDemoteInfo.teamRole !== 'officer') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrograder un officier')
|
||||
.setDescription('L\'utilisateur mentionné n\'est pas un officier.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
db.run(`UPDATE users SET teamRole = 'membre' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToDemote.id], async (err) => {
|
||||
if (err) {
|
||||
return message.reply('Une erreur est survenue lors de la rétrogradation de l\'utilisateur.');
|
||||
}
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Rétrogradation dans l\'équipe')
|
||||
.setDescription(`${userToDemote.tag} a été rétrogradé au rang de membre.`)
|
||||
.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 } });
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -1,54 +1,54 @@
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['tedit'],
|
||||
description: 'Modifie les informations de votre team.',
|
||||
emote: '🛡️',
|
||||
utilisation: '<nom|bannière|photo|description> <nouvelle valeur>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (args.length > 0) {
|
||||
const subCommand = args[0].toLowerCase();
|
||||
const newValue = args.slice(1).join(' ');
|
||||
|
||||
if (['name', 'banner', 'icon', 'description'].includes(subCommand)) {
|
||||
await new Promise((resolve, reject) => {
|
||||
db.run(`UPDATE teams SET ${subCommand} = ? WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [newValue, message.guild.id, message.guild.id, message.author.id], (err) => {
|
||||
if (err) reject(err);
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Modification de team')
|
||||
.setDescription(`La ${subCommand} de votre team a été mise à jour.`)
|
||||
.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 {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Modification de team')
|
||||
.setDescription('❌ Vous devez spécifier ce que vous voulez modifier (name, banner, icon ou description).')
|
||||
.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 {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Modification de team')
|
||||
.setDescription('Veuillez spécifier ce que vous voulez modifier et la nouvelle valeur.')
|
||||
.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 { EmbedBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['tedit'],
|
||||
description: 'Modifie les informations de votre team.',
|
||||
emote: '🛡️',
|
||||
utilisation: '<nom|bannière|photo|description> <nouvelle valeur>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (args.length > 0) {
|
||||
const subCommand = args[0].toLowerCase();
|
||||
const newValue = args.slice(1).join(' ');
|
||||
|
||||
if (['name', 'banner', 'icon', 'description'].includes(subCommand)) {
|
||||
await new Promise((resolve, reject) => {
|
||||
db.run(`UPDATE teams SET ${subCommand} = ? WHERE guildId = ? AND id = (SELECT teamId FROM users WHERE guildId = ? AND userId = ?)`, [newValue, message.guild.id, message.guild.id, message.author.id], (err) => {
|
||||
if (err) reject(err);
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Modification de team')
|
||||
.setDescription(`La ${subCommand} de votre team a été mise à jour.`)
|
||||
.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 {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Modification de team')
|
||||
.setDescription('❌ Vous devez spécifier ce que vous voulez modifier (name, banner, icon ou description).')
|
||||
.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 {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Modification de team')
|
||||
.setDescription('Veuillez spécifier ce que vous voulez modifier et la nouvelle valeur.')
|
||||
.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 } });
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -1,144 +1,144 @@
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teamkick'],
|
||||
description: 'Expulse un utilisateur de votre team.',
|
||||
emote: '🛡️',
|
||||
utilisation: '<@user>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (!args[0]) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Veuillez mentionner un utilisateur à expulser.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToKick = message.mentions.users.first();
|
||||
if (!userToKick) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Utilisateur non trouvé.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
} else if (userToKick.id === message.author.id) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Vous ne pouvez pas vous expulser de votre propre équipe. Si vous souhaitez quitter votre équipe, utilisez la commande `&tleave`.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
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);
|
||||
});
|
||||
});
|
||||
|
||||
if (!team) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Vous n\'êtes pas dans une équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
const userToKickInfo = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToKick.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!userToKickInfo || userToKickInfo.teamId !== user.teamId) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
if (!user || user.teamRole !== 'owner') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE guildId = ? AND userId = ?`, [message.guild.id, userToKick.id], async (err) => {
|
||||
if (err) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Une erreur est survenue lors de l\'expulsion de l\'utilisateur.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
embedColor(message.author.id, message.guild.id).then(color => {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription(`${userToKick.tag} a été expulsé de l'équipe.`)
|
||||
.setColor(color)
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
|
||||
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
|
||||
});
|
||||
});
|
||||
},
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teamkick'],
|
||||
description: 'Expulse un utilisateur de votre team.',
|
||||
emote: '🛡️',
|
||||
utilisation: '<@user>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (!args[0]) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Veuillez mentionner un utilisateur à expulser.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToKick = message.mentions.users.first();
|
||||
if (!userToKick) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Utilisateur non trouvé.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
} else if (userToKick.id === message.author.id) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Vous ne pouvez pas vous expulser de votre propre équipe. Si vous souhaitez quitter votre équipe, utilisez la commande `&tleave`.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
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);
|
||||
});
|
||||
});
|
||||
|
||||
if (!team) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Vous n\'êtes pas dans une équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
const userToKickInfo = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToKick.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!userToKickInfo || userToKickInfo.teamId !== user.teamId) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
if (!user || user.teamRole !== 'owner') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
db.run(`UPDATE users SET teamId = NULL, teamRole = NULL WHERE guildId = ? AND userId = ?`, [message.guild.id, userToKick.id], async (err) => {
|
||||
if (err) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription('Une erreur est survenue lors de l\'expulsion de l\'utilisateur.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
embedColor(message.author.id, message.guild.id).then(color => {
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Expulsion de l\'équipe')
|
||||
.setDescription(`${userToKick.tag} a été expulsé de l'équipe.`)
|
||||
.setColor(color)
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
|
||||
return message.reply({ embeds: [embed], allowedMentions: { repliedUser: false } })
|
||||
});
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -1,147 +1,147 @@
|
||||
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teamadmin', 'tadmin', 'teamowner'],
|
||||
description: 'Promouvoir un utilisateur à administrateur dans votre équipe.',
|
||||
emote: '🛡️',
|
||||
utilisation: '<@user>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (!args[0]) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Veuillez mentionner un utilisateur à promouvoir.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToPromote = message.mentions.users.first();
|
||||
if (!userToPromote) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Utilisateur non trouvé.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!user || user.teamRole !== 'owner') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToPromoteInfo = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const bouton = new ButtonBuilder()
|
||||
.setCustomId('promote_to_admin')
|
||||
.setLabel('Confirmer')
|
||||
.setStyle(ButtonStyle.Success);
|
||||
|
||||
const row = new ActionRowBuilder()
|
||||
.addComponents(bouton);
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription(`Êtes-vous sûr de vouloir promouvoir ${userToPromote.tag} au rang d'administrateur ?`)
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
const sendMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
|
||||
|
||||
const filter = i => i.customId === 'promote_to_admin' && i.user.id === message.author.id;
|
||||
const collector = sendMessage.createMessageComponentCollector({ filter, time: 120000 });
|
||||
|
||||
collector.on('collect', async (interaction) => {
|
||||
db.run(`UPDATE users SET teamRole = 'owner' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], async (err) => {
|
||||
if (err) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Une erreur est survenue lors de la promotion de l\'utilisateur.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
db.run(`UPDATE users SET teamRole = 'officier' WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], async (err) => {
|
||||
if (err) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Une erreur est survenue lors de la mise à jour de votre rôle.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription(`${userToPromote.tag} a été promu au rang d'administrateur. Vous avez été rétrogradé au rang d'officier.`)
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
sendMessage.edit({ embeds: [embed], components: [] });
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
const { ButtonStyle, ButtonBuilder, ActionRowBuilder, EmbedBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teamadmin', 'tadmin', 'teamowner'],
|
||||
description: 'Promouvoir un utilisateur à administrateur dans votre équipe.',
|
||||
emote: '🛡️',
|
||||
utilisation: '<@user>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (!args[0]) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Veuillez mentionner un utilisateur à promouvoir.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToPromote = message.mentions.users.first();
|
||||
if (!userToPromote) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Utilisateur non trouvé.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!user || user.teamRole !== 'owner') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToPromoteInfo = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const bouton = new ButtonBuilder()
|
||||
.setCustomId('promote_to_admin')
|
||||
.setLabel('Confirmer')
|
||||
.setStyle(ButtonStyle.Success);
|
||||
|
||||
const row = new ActionRowBuilder()
|
||||
.addComponents(bouton);
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription(`Êtes-vous sûr de vouloir promouvoir ${userToPromote.tag} au rang d'administrateur ?`)
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
const sendMessage = await message.reply({ embeds: [embed], components: [row], allowedMentions: { repliedUser: false } });
|
||||
|
||||
const filter = i => i.customId === 'promote_to_admin' && i.user.id === message.author.id;
|
||||
const collector = sendMessage.createMessageComponentCollector({ filter, time: 120000 });
|
||||
|
||||
collector.on('collect', async (interaction) => {
|
||||
db.run(`UPDATE users SET teamRole = 'owner' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], async (err) => {
|
||||
if (err) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Une erreur est survenue lors de la promotion de l\'utilisateur.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
db.run(`UPDATE users SET teamRole = 'officier' WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], async (err) => {
|
||||
if (err) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Une erreur est survenue lors de la mise à jour de votre rôle.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription(`${userToPromote.tag} a été promu au rang d'administrateur. Vous avez été rétrogradé au rang d'officier.`)
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() });
|
||||
|
||||
sendMessage.edit({ embeds: [embed], components: [] });
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -1,123 +1,123 @@
|
||||
const { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teampromote', 'trankup'],
|
||||
description: 'Promouvoir un utilisateur à officier dans votre équipe.',
|
||||
emote: '🛡️',
|
||||
utilisation: '<@user>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (!args[0]) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Veuillez mentionner un utilisateur à promouvoir.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToPromote = message.mentions.users.first();
|
||||
if (!userToPromote) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Utilisateur non trouvé.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!user || user.teamRole !== 'owner') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToPromoteInfo = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
if (userToPromoteInfo.teamRole === 'officer') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('L\'utilisateur mentionné est déjà un officier.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
db.run(`UPDATE users SET teamRole = 'officer' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], async (err) => {
|
||||
if (err) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Une erreur est survenue lors de la promotion de l\'utilisateur.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription(`${userToPromote.tag} a été promu au rang d'officier.`)
|
||||
.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 { EmbedBuilder, ButtonStyle, ButtonBuilder, ActionRowBuilder } = require('discord.js');
|
||||
const db = require('../../fonctions/database.js');
|
||||
const embedColor = require('../../fonctions/embedColor.js');
|
||||
|
||||
module.exports = {
|
||||
aliases: ['teampromote', 'trankup'],
|
||||
description: 'Promouvoir un utilisateur à officier dans votre équipe.',
|
||||
emote: '🛡️',
|
||||
utilisation: '<@user>',
|
||||
permission: 0,
|
||||
|
||||
async execute(message, args, client) {
|
||||
if (!args[0]) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Veuillez mentionner un utilisateur à promouvoir.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToPromote = message.mentions.users.first();
|
||||
if (!userToPromote) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Utilisateur non trouvé.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const user = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, message.author.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!user || user.teamRole !== 'owner') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Vous n\'êtes pas administrateur de cette équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const userToPromoteInfo = await new Promise((resolve, reject) => {
|
||||
db.get(`SELECT * FROM users WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], (err, row) => {
|
||||
if (err) reject(err);
|
||||
resolve(row);
|
||||
});
|
||||
});
|
||||
|
||||
if (!userToPromoteInfo || userToPromoteInfo.teamId !== user.teamId) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('L\'utilisateur mentionné n\'est pas dans votre équipe.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
if (userToPromoteInfo.teamRole === 'officer') {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('L\'utilisateur mentionné est déjà un officier.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
db.run(`UPDATE users SET teamRole = 'officer' WHERE guildId = ? AND userId = ?`, [message.guild.id, userToPromote.id], async (err) => {
|
||||
if (err) {
|
||||
return message.reply({
|
||||
embeds: [
|
||||
new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription('Une erreur est survenue lors de la promotion de l\'utilisateur.')
|
||||
.setColor(await embedColor(message.author.id, message.guild.id))
|
||||
.setTimestamp()
|
||||
.setFooter({ text: `Demandé par ${message.author.tag}`, iconURL: message.author.displayAvatarURL() })
|
||||
],
|
||||
allowedMentions: { repliedUser: false }
|
||||
});
|
||||
}
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('🛡️ Promotion dans l\'équipe')
|
||||
.setDescription(`${userToPromote.tag} a été promu au rang d'officier.`)
|
||||
.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 } });
|
||||
});
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user