62 lines
3.0 KiB
JavaScript
62 lines
3.0 KiB
JavaScript
const { SlashCommandBuilder, EmbedBuilder } = require('discord.js');
|
||
const { generateLinkCode, getUserLink } = require('../../database.js');
|
||
|
||
module.exports = {
|
||
data: new SlashCommandBuilder()
|
||
.setName('lier-rygainland')
|
||
.setDescription('Lier votre compte Discord à votre compte Palworld'),
|
||
|
||
async execute(interaction) {
|
||
try {
|
||
const existingLink = await getUserLink(interaction.user.id);
|
||
if (existingLink) {
|
||
const embed = new EmbedBuilder()
|
||
.setColor(0x0099FF)
|
||
.setTitle('🔗 Votre compte est déjà lié')
|
||
.setDescription('Votre compte Discord est déjà associé à un compte Palworld.')
|
||
.addFields(
|
||
{ name: '👤 Discord', value: `${interaction.user.tag}`, inline: false },
|
||
{ name: '🎮 Palworld', value: `**${existingLink.palworld_username}**`, inline: true },
|
||
{ name: '🆔 Steam ID', value: `\`${existingLink.steam_id}\``, inline: true },
|
||
{ name: '🎯 Player ID', value: `\`${existingLink.player_id || 'N/A'}\``, inline: false },
|
||
{ name: '📅 Lié le', value: new Date(existingLink.linked_at).toLocaleDateString('fr-FR', {
|
||
year: 'numeric',
|
||
month: 'long',
|
||
day: 'numeric',
|
||
hour: '2-digit',
|
||
minute: '2-digit'
|
||
}), inline: false }
|
||
)
|
||
.setFooter({ text: 'Contactez un administrateur pour modifier votre liaison' })
|
||
.setTimestamp();
|
||
|
||
return interaction.reply({ embeds: [embed], ephemeral: true });
|
||
}
|
||
|
||
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\`\`\`!lier ${code}\`\`\`` },
|
||
{ name: '⏱️ Expiration', value: 'Ce code expire dans **10 minutes**' },
|
||
{ name: '🔑 Votre code', value: `\`${code}\``, inline: false }
|
||
)
|
||
.setFooter({ text: 'Le système de surveillance démarre automatiquement' })
|
||
.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
|
||
});
|
||
}
|
||
},
|
||
};
|