test
This commit is contained in:
parent
4e0f1678be
commit
918cd3ffc9
49
commands/trad/trad.js
Normal file
49
commands/trad/trad.js
Normal file
@ -0,0 +1,49 @@
|
||||
const { SlashCommandBuilder } = require('discord.js');
|
||||
|
||||
module.exports = {
|
||||
data: new SlashCommandBuilder()
|
||||
.setName('trad')
|
||||
.setDescription('Traduit le message auquel vous répondez en français'),
|
||||
async execute(interaction, translator) {
|
||||
if (!translator) {
|
||||
await interaction.reply({ content: '❌ Le service de traduction n\'est pas disponible (token DeepL manquant).', ephemeral: true });
|
||||
return;
|
||||
}
|
||||
|
||||
// Vérifier si la commande est en réponse à un message
|
||||
const repliedMessage = interaction.options.getMessage('message') ||
|
||||
(interaction.channel.messages.cache.get(interaction.targetId)) ||
|
||||
null;
|
||||
|
||||
// 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
|
||||
}
|
||||
|
||||
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 = `🇫🇷 **Traduction :**\n${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.');
|
||||
}
|
||||
},
|
||||
};
|
44
index.js
44
index.js
@ -55,48 +55,6 @@ client.once('ready', () => {
|
||||
deploy(token);
|
||||
});
|
||||
|
||||
client.on('messageReactionAdd', async (reaction, user) => {
|
||||
console.log('reaction received', reaction.emoji.name, user.username);
|
||||
|
||||
if (user.bot) return;
|
||||
|
||||
if (reaction.emoji.name !== '❓') return;
|
||||
|
||||
if (!translator) {
|
||||
console.log('DeepL token not provided, translation feature disabled');
|
||||
return;
|
||||
}
|
||||
try {
|
||||
// Récupérer le message complet si nécessaire
|
||||
if (reaction.partial) {
|
||||
await reaction.fetch();
|
||||
}
|
||||
if (reaction.message.partial) {
|
||||
await reaction.message.fetch();
|
||||
}
|
||||
const message = reaction.message;
|
||||
console.log(message);
|
||||
// Vérifier qu'il y a du contenu à traduire
|
||||
if (!message.content || message.content.trim() === '') {
|
||||
return;
|
||||
}
|
||||
|
||||
// Traduire le message en français
|
||||
const result = await translator.translateText(message.content, null, 'fr');
|
||||
|
||||
// Créer la réponse avec la traduction
|
||||
const translationMessage = `🇫🇷 **Traduction :**\n${result.text}\n\n*Message original de ${message.author.username}*`;
|
||||
|
||||
// Envoyer la traduction dans le même canal
|
||||
await message.reply(translationMessage);
|
||||
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la traduction:', error);
|
||||
// Optionnel : notifier l'utilisateur de l'erreur
|
||||
await reaction.message.reply('❌ Erreur lors de la traduction du message.');
|
||||
}
|
||||
});
|
||||
|
||||
client.on(Events.InteractionCreate, async interaction => {
|
||||
if (!interaction.isChatInputCommand()) return;
|
||||
|
||||
@ -110,6 +68,8 @@ client.on(Events.InteractionCreate, async interaction => {
|
||||
try {
|
||||
if (interaction.commandName === 'server-stats') {
|
||||
await command.execute(interaction, palworldToken);
|
||||
} else if (interaction.commandName === 'trad') {
|
||||
await command.execute(interaction, translator);
|
||||
} else {
|
||||
await command.execute(interaction);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user