add utility commande

This commit is contained in:
VALOU3336
2024-02-17 01:08:09 +01:00
parent cb5fee4bed
commit 9f42eacadb
6 changed files with 58 additions and 5 deletions
+21
View File
@@ -0,0 +1,21 @@
module.exports = {
name: 'find',
description: 'Vérifie si un utilisateur est connecté à un salon vocal',
async execute(message, args) {
// Vérifie si un utilisateur a été mentionné
const user = message.mentions.users.first();
if (!user) {
return message.reply('Veuillez mentionner un utilisateur.');
}
// Récupère le membre correspondant à l'utilisateur
const member = message.guild.members.cache.get(user.id);
// Vérifie si le membre est connecté à un salon vocal
if (member.voice.channel) {
message.channel.send(`L'utilisateur ${user.username} est connecté au salon vocal <#${member.voice.channel.id}>.`);
} else {
message.reply('Cet utilisateur n\'est pas connecté à un salon vocal.');
}
},
};
-171
View File
@@ -1,171 +0,0 @@
const { EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js');
module.exports = {
name: 'poll',
description: 'Crée un sondage',
emote: '📊',
utilisation: 'poll',
category: 'utils',
async execute(message, args, client) {
const pollEmbed = new EmbedBuilder()
.setTitle('Sondage')
.setColor('#0099ff')
.setFields([]);
const slectMenu = new StringSelectMenuBuilder()
.setCustomId('slectMenu')
.setPlaceholder('📝 Modifier le sondage')
.addOptions([
{ label: '📝 Modifier le titre', value: 'title' },
{ label: '📝 Mofifier la description (none pour enlever)', value: 'description' },
{ label: ' Ajouter une réponses', value: 'addResponses' },
{ label: ' Retirer une réponses', value: 'removeResponses' },
{ label: '📝 Modifier le footer (none pour enlever)', value: 'footer'},
{ label: '🔄 Changer le salon', value: 'changeChannel'},
{ label: '✅ Envoyer', value: 'send' },
{ label: '❌ Annuler', value: 'cancel'}
]);
const row = new ActionRowBuilder()
.addComponents(slectMenu);
const sentMessage = await message.reply({
content: `Sondage envoyé dans : ${message.channel}`,
embeds: [pollEmbed],
components: [row],
});
const filter = i => i.customId === 'slectMenu' && i.user.id === message.author.id;
const filter2 = m => m.author.id === message.author.id
const collector = sentMessage.createMessageComponentCollector({ filter, time: 120000 })
collector.on('collect', async (interaction) => {
if (interaction.values[0] === 'title') {
const demande = await interaction.reply('Veuillez entrer le nouveau titre');
const collector2 = message.channel.createMessageCollector({ filter: filter2, max: 1, time: 60000 });
collector2.on('collect', async (m) => {
pollEmbed.setTitle(m.content);
sentMessage.edit({
content: `Sondage envoyé dans : ${message.channel}`,
embeds: [pollEmbed],
components: [row]
});
demande.delete();
m.delete();
});
} else if (interaction.values[0] === 'description') {
const demande = await interaction.reply('Veuillez entrer la nouvelle description');
const collector2 = message.channel.createMessageCollector({ filter: filter2, max: 1, time: 60000 });
collector2.on('collect', async (m) => {
if (m.content === 'none') {
pollEmbed.setDescription(' ');
sentMessage.edit({
content: `Sondage envoyé dans : ${message.channel}`,
embeds: [pollEmbed],
components: [row]
});
demande.delete();
m.delete();
return;
}
pollEmbed.setDescription(m.content);
sentMessage.edit({
content: `Sondage envoyé dans : ${message.channel}`,
embeds: [pollEmbed],
components: [row]
});
demande.delete();
m.delete();
});
} else if (interaction.values[0] === 'addResponses') {
const demande = await interaction.reply('Entrez la réponse à ajouter');
const collector3 = message.channel.createMessageCollector({ filter: filter2, max: 1, time: 60000 });
collector3.on('collect', async (m) => {
pollEmbed.addFields({ name: `${pollEmbed.data.fields.length + 1}\u20e3`, value: m.content });
sentMessage.edit({
content: `Sondage envoyé dans : ${message.channel}`,
embeds: [pollEmbed],
components: [row]
});
demande.delete();
m.delete();
});
} else if (interaction.values[0] === 'removeResponses') {
const demande = await interaction.reply('Entrez le numéro de la réponse à retirer');
const collector4 = message.channel.createMessageCollector({ filter: filter2, max: 1, time: 60000 });
collector4.on('collect', async (m) => {
const responseIndex = parseInt(m.content);
if (isNaN(responseIndex)) return message.reply('Veuillez entrer un nombre valide.');
if (responseIndex < 1) return message.reply('Veuillez entrer un nombre supérieur à 0.');
if (pollEmbed.fields && responseIndex > pollEmbed.fields.length) return message.reply('Veuillez entrer un nombre inférieur au nombre de réponses.');
pollEmbed.spliceFields(responseIndex - 1, 1);
for (let i = responseIndex - 1; i < pollEmbed.data.fields.length; i++) {
pollEmbed.data.fields[i].name = `${i + 1}\u20e3`;
}
sentMessage.edit({
content: `Sondage envoyé dans : ${message.channel}`,
embeds: [pollEmbed],
components: [row]
});
demande.delete();
m.delete();
});
} else if (interaction.values[0] === 'footer') {
const demande = await interaction.reply('Veuillez entrer le nouveau footer');
const collector5 = message.channel.createMessageCollector({ filter: filter2, max: 1, time: 60000 });
collector5.on('collect', async (m) => {
if (m.content === 'none') {
pollEmbed.setFooter( {text: ' '} );
sentMessage.edit({
content: `Sondage envoyé dans : ${message.channel}`,
embeds: [pollEmbed],
components: [row]
});
return;
}
pollEmbed.setFooter( {text: m.content} );
sentMessage.edit({
content: `Sondage envoyé dans : ${message.channel}`,
embeds: [pollEmbed],
components: [row]
});
demande.delete();
m.delete();
});
} else if (interaction.values[0] === 'changeChannel') {
const demande = await interaction.reply('Veuillez mentionner le salon dans lequel envoyer le sondage');
const collector5 = message.channel.createMessageCollector({ filter: filter2, max: 1, time: 60000 });
collector5.on('collect', async (m) => {
const channel = m.mentions.channels.first();
if (!channel) return message.reply('Veuillez mentionner un salon valide.');
sentMessage.edit({
content: `Sondage envoyé dans : ${channel}`,
embeds: [pollEmbed],
components: [row]
});
demande.delete();
m.delete();
});
} else if (interaction.values[0] === 'send') {
const channel = sentMessage.content.split(' ').slice(4).join(' ').replace(/<#|>/g, '');
const channelToSend = message.guild.channels.cache.get(channel);
if (!channelToSend) return message.reply('Le salon spécifié est invalide.');
const sondage = await channelToSend.send({ embeds: [pollEmbed] });
for (let i = 0; i < pollEmbed.data.fields.length; i++) {
await sondage.react(`${i + 1}\u20e3`);
}
sentMessage.delete();
} else if (interaction.values[0] === 'cancel') {
await interaction.reply({ content: 'Sondage annulé.', ephemeral: true });
sentMessage.delete();
}
});
},
}
+24
View File
@@ -0,0 +1,24 @@
const { EmbedBuilder } = require('discord.js');
module.exports = {
name: 'stat',
description: 'Affiche les informations du serveir',
async execute(message) {
const members = message.guild.members.cache;
const onlineMembers = members.filter(member => member.presence && member.presence.status !== 'offline').size;
let totalVoice = 0;
message.guild.channels.cache.forEach((channel) => {
if (channel.type === 'GUILD_VOICE') {
totalVoice += channel.members.size;
}
});
const boostLevel = message.guild.premiumSubscriptionCount;
const serverName = message.guild.name;
const embed = new EmbedBuilder()
.setTitle(`${serverName} 💫 ➔ Statistiques`)
.setDescription(`👥 Membres : ${members.size}\n 🟢 Membres En Ligne: ${onlineMembers}\n :loud_sound: En Voc: ${totalVoice}\n 🔮 Boosts : ${boostLevel}`)
.setColor('#0099ff');
message.channel.send({ embeds: [embed] });
},
};
+1 -1
View File
@@ -10,7 +10,7 @@ module.exports = {
.setColor("#FFFFFF")
.setTitle(`Support du bot \`${client.user.username}\``)
.setThumbnail(client.user.displayAvatarURL({dynamic: true}))
.setDescription(`Bienvenue ! Si vous avez des questions, des suggestions ou si vous rencontrez des problèmes avec le bot, n'hésitez pas à rejoindre notre support. Nous sommes là pour vous aider !\n\nServeurs de Support Principaux :\n1. **Serveur de Support #1 :** Rejoignez notre premier serveur principal pour obtenir une assistance rapide et discuter avec d'autres utilisateurs. [Serveur Principal #1](https://discord.gg/zP7sHFpTZX)\n2. **Serveur de Support #2 :** Si vous préférez une autre communauté ou si le premier serveur est indisponible, rejoignez notre deuxième serveur principal. [Serveur Principal #2](https://discord.gg/acrodev)\n\nMerci de faire partie de notre communauté ! 🚀`)
.setDescription(`[support AcroDev](https://discord.gg/tVsDgSX364)\n[support swiftbot](https://discord.gg/zP7sHFpTZX)`)
.setTimestamp()
.setFooter({text: `${client.user.tag} © 2024`, iconURL: client.user.displayAvatarURL({dynamic: true})});