const { SlashCommandBuilder, RoleFlags } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('trad') .setDescription('Traduit le message indiqué en français') .addStringOption(option => option.setName('lien') .setDescription('Lien du message à traduire') .setRequired(false) ), async execute(interaction, translator) { let messageToTranslate = null; const messageLien = interaction.options.getString('lien'); if (messageLien) { // Extraire les IDs du lien Discord const linkPattern = /https:\/\/discord\.com\/channels\/(\d+)\/(\d+)\/(\d+)/; const match = messageLien.match(linkPattern); if (!match) { await interaction.reply({ content: '❌ Lien de message invalide. Utilisez un lien Discord valide.', ephemeral: true }); return; } const [, guildId, channelId, messageId] = match; try { const channel = await interaction.client.channels.fetch(channelId); messageToTranslate = await channel.messages.fetch(messageId); } catch (error) { await interaction.reply({ content: '❌ Impossible de récupérer le message depuis ce lien.', ephemeral: true }); return; } } else { // Si pas de message en réponse, chercher le message référencé if (interaction.channel && interaction.channel.lastMessage) { // Récupérer le dernier message avant cette interaction const messages = await interaction.channel.messages.fetch({ limit: 2 }); const messagesArray = Array.from(messages.values()); messageToTranslate = messagesArray[1]; // Le message avant l'interaction } } if (!messageToTranslate || !messageToTranslate.content || messageToTranslate.content.trim() === '') { await interaction.reply({ content: '❌ Aucun message à traduire trouvé. Utilisez cette commande en répondant à un message ou après un message contenant du texte.', ephemeral: true }); return; } try { await interaction.deferReply(); // Traduire le message en français const result = await translator.translateText(messageToTranslate.content, null, 'fr'); // Créer la réponse avec la traduction const translationMessage = `${result.text}\n\n*Message original de ${messageToTranslate.author.username}*`; await interaction.editReply(translationMessage); } catch (error) { console.error('Erreur lors de la traduction:', error); await interaction.editReply('❌ Erreur lors de la traduction du message.'); } }, };