47 lines
2.0 KiB
JavaScript
47 lines
2.0 KiB
JavaScript
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
|
||
});
|
||
}
|
||
},
|
||
};
|