test
This commit is contained in:
parent
910fda50b1
commit
138900522f
@ -3,22 +3,48 @@ const { SlashCommandBuilder } = require('discord.js');
|
||||
module.exports = {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName('trad')
|
||||
.setDescription('Traduit le message auquel vous répondez en français'),
|
||||
.setDescription('Traduit le message auquel vous répondez en français')
|
||||
.addStringOption(option =>
|
||||
option.setName('lien')
|
||||
.setDescription('Lien du message à traduire (optionnel)')
|
||||
.setRequired(false)
|
||||
),
|
||||
async execute(interaction, translator) {
|
||||
if (!translator) {
|
||||
await interaction.reply({ content: '❌ Le service de traduction n\'est pas disponible (token DeepL manquant).', ephemeral: true });
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// Si pas de message en réponse, chercher le message référencé
|
||||
let messageToTranslate = null;
|
||||
|
||||
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
|
||||
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() === '') {
|
||||
|
Loading…
x
Reference in New Issue
Block a user