const { EmbedBuilder, StringSelectMenuBuilder, ActionRowBuilder } = require("discord.js"); module.exports = { name: 'setstatus', description: 'Changer le status du bot', emote: '🟢', utilisation: '', permission: '8', utilisation: 'setstatus', category: 'botcontrol', async execute(message, args, client) { let currentStatus = client.user.presence.status; const embed = new EmbedBuilder() .setTitle('Changement de status') .setDescription(`Le bot est en mode :\`${currentStatus}\``) .setTimestamp() .setFooter({text: `${client.user.tag} © 2024`, iconURL: client.user.displayAvatarURL()}); if (currentStatus === 'dnd') { embed.setColor('#FF0000'); } else if (currentStatus === 'idle') { embed.setColor('#FFA500'); } else if (currentStatus === 'online') { embed.setColor('#00FF00'); } else if (currentStatus === 'offline') { embed.setColor('#000000'); } else { embed.setColor('#000000'); } const selectMenu = new StringSelectMenuBuilder() .setCustomId('status') .setPlaceholder('Changer le status') .addOptions([ { label: 'En ligne', value: 'online', description: 'Le bot sera en ligne', emoji: '🟢' }, { label: 'Absent', value: 'idle', description: 'Le bot sera absent', emoji: '🟠' }, { label: 'Ne pas déranger', value: 'dnd', description: 'Le bot ne sera pas déranger', emoji: '🔴' }, { label: 'Invisible', value: 'offline', description: 'Le bot sera invisible', emoji: '⚫' } ]); const row = new ActionRowBuilder() .addComponents(selectMenu) const sendMessage = await message.reply({ embeds: [embed], components: [row] }); const filter = (interaction) => interaction.user.id === message.author.id; const collector = sendMessage.createMessageComponentCollector({ filter, time: 60000 }); collector.on('collect', async (interaction) => { if (interaction.isStringSelectMenu()) { if (!client.user) return const value = interaction.values[0]; if (value === 'online') { client.user.setStatus('online'); embed.setDescription('Le bot est maintenant en ligne'); embed.setColor('#00FF00'); await interaction.update({ embeds: [embed], components: [row] }); } else if (value === 'idle') { client.user.setStatus('idle'); embed.setDescription('Le bot est maintenant absent'); embed.setColor('#FFA500'); await interaction.update({ embeds: [embed], components: [row] }); } else if (value === 'dnd') { client.user.setStatus('dnd'); embed.setDescription('Le bot est maintenant en mode ne pas déranger'); embed.setColor('#FF0000'); await interaction.update({ embeds: [embed], components: [row] }); } else if (value === 'offline') { client.user.setStatus('invisible'); embed.setDescription('Le bot est maintenant invisible'); embed.setColor('#000000'); await interaction.update({ embeds: [embed], components: [row] }); } } }); collector.on('end', async () => { sendMessage.edit({ components: [] }); }); }, };