couteau_suisse/commands/utility/rygainland-link.js
2025-12-08 21:32:12 +01:00

47 lines
2.0 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
const { generateLinkCode, getUserLink } = require('../../database.js');
module.exports = {
data: new SlashCommandBuilder()
.setName('rygainland-link')
.setDescription('Lier votre compte Discord à votre compte Palworld'),
async execute(interaction) {
try {
// Vérifier si l'utilisateur est déjà lié
const existingLink = await getUserLink(interaction.user.id);
if (existingLink) {
return interaction.reply({
content: `Vous êtes déjà lié au compte Palworld: **${existingLink.palworld_username}** (Steam ID: ${existingLink.steam_id})`,
ephemeral: true
});
}
// Générer un code unique
const code = await generateLinkCode(interaction.user.id);
const embed = new EmbedBuilder()
.setColor(0x00FF00)
.setTitle('🔗 Liaison de compte Rygainland')
.setDescription('Pour lier votre compte Discord à votre compte Palworld:')
.addFields(
{ name: '1⃣ Étape 1', value: 'Connectez-vous sur le serveur Palworld' },
{ name: '2⃣ Étape 2', value: `Tapez dans le chat du jeu:\n\`\`\`!link ${code}\`\`\`` },
{ name: '⏱️ Expiration', value: 'Ce code expire dans **10 minutes**' },
{ name: '🔑 Votre code', value: `\`${code}\``, inline: false }
)
.setFooter({ text: 'Ne partagez pas ce code avec d\'autres personnes' })
.setTimestamp();
await interaction.reply({ embeds: [embed], ephemeral: true });
} catch (error) {
console.error('Erreur lors de la génération du code:', error);
await interaction.reply({
content: '❌ Une erreur est survenue lors de la génération du code.',
ephemeral: true
});
}
},
};