diff --git a/commands/utility/lier.js b/commands/utility/lier.js index c2aeda0..303da60 100644 --- a/commands/utility/lier.js +++ b/commands/utility/lier.js @@ -17,12 +17,17 @@ module.exports = { async execute(interaction) { try { + console.log('=== [LIER] Début de l\'exécution ==='); + console.log('[LIER] Utilisateur qui exécute:', interaction.user.tag); await interaction.deferReply({ flags: MessageFlags.Ephemeral }); const palworldName = interaction.options.getString('pseudo-palworld'); const discordUser = interaction.options.getUser('discord-account'); + console.log('[LIER] Pseudo Palworld:', palworldName); + console.log('[LIER] Discord User:', discordUser.tag, '(ID:', discordUser.id + ')'); // Récupérer le Steam ID depuis l'API Palworld + console.log('[LIER] Appel API pour récupérer les joueurs...'); const response = await axios({ method: 'get', url: 'http://play.louismazin.ovh:8212/v1/api/players', @@ -33,9 +38,12 @@ module.exports = { }); const players = response.data.players || {}; + console.log('[LIER] Nombre de joueurs récupérés:', Object.keys(players).length); + console.log('[LIER] Liste des joueurs:', Object.values(players).map(p => p.name)); let playerData = null; // Chercher le joueur par nom + console.log('[LIER] Recherche du joueur:', palworldName); for (const [id, player] of Object.entries(players)) { if (player.name === palworldName) { playerData = { @@ -43,11 +51,13 @@ module.exports = { playerId: player.playerId, name: player.name }; + console.log('[LIER] Joueur trouvé:', playerData); break; } } if (!playerData) { + console.log('[LIER] ❌ Joueur non trouvé'); return interaction.editReply({ content: `❌ Impossible de trouver le joueur **${palworldName}** sur le serveur.\n\n` + `💡 Le joueur doit être connecté sur le serveur Palworld.`, @@ -56,13 +66,18 @@ module.exports = { } // Créer un code temporaire pour la liaison manuelle + console.log('[LIER] Génération du code de liaison...'); const { generateLinkCode } = require('../../database.js'); const code = await generateLinkCode(discordUser.id); + console.log('[LIER] Code généré:', code); // Effectuer la liaison immédiatement + console.log('[LIER] Vérification du code et liaison...'); const result = await verifyLinkCode(code, playerData.steamId, playerData.name, playerData.playerId); + console.log('[LIER] Résultat de la liaison:', result); if (result.success) { + console.log('[LIER] ✅ Liaison réussie, mise à jour du username...'); await updateUserLinkWithUsername(discordUser.id, discordUser.tag); const embed = new EmbedBuilder() @@ -77,16 +92,22 @@ module.exports = { .setTimestamp(); // Envoyer un MP au joueur lié + console.log('[LIER] Envoi du MP au joueur...'); await discordUser.send( `✅ **Liaison effectuée par un administrateur**\n\n` + `Votre compte Discord a été lié à votre compte Palworld:\n` + `🎮 Nom Palworld: **${playerData.name}**\n` + `🆔 Steam ID: \`${playerData.steamId}\`\n` + `🎯 Player ID: \`${playerData.playerId}\`` - ).catch(() => {}); + ).catch((err) => { + console.log('[LIER] ⚠️ Impossible d\'envoyer le MP:', err.message); + }); + console.log('[LIER] Envoi de la réponse finale...'); await interaction.editReply({ embeds: [embed], flags: MessageFlags.Ephemeral }); + console.log('[LIER] ✅ Commande terminée avec succès'); } else { + console.log('[LIER] ❌ Échec de la liaison:', result.message); await interaction.editReply({ content: `❌ Erreur lors de la liaison: ${result.message}`, flags: MessageFlags.Ephemeral @@ -94,11 +115,12 @@ module.exports = { } } catch (error) { - console.error('Erreur lors de la liaison manuelle:', error); + console.error('[LIER] ❌ ERREUR CRITIQUE:', error); + console.error('[LIER] Stack trace:', error.stack); await interaction.editReply({ content: '❌ Une erreur est survenue lors de la liaison.', flags: MessageFlags.Ephemeral - }); + }).catch(err => console.error('[LIER] Impossible de répondre:', err)); } }, };