diff --git a/src/components/buttons/ldManagePoints.ts b/src/components/buttons/ldManagePoints.ts index fcf7be4..4496f33 100644 --- a/src/components/buttons/ldManagePoints.ts +++ b/src/components/buttons/ldManagePoints.ts @@ -27,7 +27,7 @@ export default { } try { - // Obtener todos los usuarios con puntos en este servidor (limitado a 25 para el UserSelect) + // Obtener estadísticas para filtrar usuarios disponibles const stats = await prisma.partnershipStats.findMany({ where: { guildId: interaction.guild.id }, orderBy: { totalPoints: 'desc' }, @@ -41,7 +41,7 @@ export default { }); } - // Crear modal con TextInput y UserSelect usando el nuevo formato de discord.js dev + // Crear modal usando la estructura de example.ts.txt (sin Builders) const modal = { title: 'Gestionar Puntos de Alianza', customId: 'ld_points_modal', @@ -65,14 +65,14 @@ export default { }, { type: ComponentType.Label, - label: 'Selecciona el usuario (del leaderboard)', + label: 'Selecciona el usuario del leaderboard', component: { type: ComponentType.UserSelect, customId: 'user_select', required: true, minValues: 1, maxValues: 1, - placeholder: 'Elige un usuario...', + placeholder: 'Elige un usuario del leaderboard...', // Filtrar solo usuarios que están en el leaderboard defaultUsers: stats.map(s => s.userId) }, @@ -81,8 +81,10 @@ export default { } as const; await interaction.showModal(modal); + } catch (e) { - logger.error({ err: e }, 'Error en ldManagePoints'); + //@ts-ignore + logger.error('Error en ldManagePoints:', e); await interaction.reply({ content: '❌ Error al abrir el modal de gestión.', flags: MessageFlags.Ephemeral diff --git a/src/components/modals/ldPointsModal.ts b/src/components/modals/ldPointsModal.ts index 04151de..d73a75e 100644 --- a/src/components/modals/ldPointsModal.ts +++ b/src/components/modals/ldPointsModal.ts @@ -29,7 +29,7 @@ export default { } try { - // Obtener valores del nuevo formato de modal + // Obtener valores del modal - usando la estructura de example.ts.txt const totalInput = interaction.components.getTextInputValue('points_input').trim(); const selectedUsers = interaction.components.getSelectedUsers('user_select'); @@ -174,7 +174,7 @@ export default { logger.info(`✅ Puntos actualizados exitosamente en la base de datos`); - // Obtener nombre del usuario + // Obtener nombre del usuario usando la información del UserSelect const userName = selectedUser?.tag ?? selectedUser?.username ?? userId; // Calcular las diferencias @@ -208,29 +208,23 @@ export default { inline: true } ) - .setTimestamp() - .setFooter({ text: `Modificado por ${interaction.user.username}` }); + .setFooter({ text: `Actualizado por ${interaction.user.username}` }) + .setTimestamp(); await interaction.reply({ embeds: [embed], flags: MessageFlags.Ephemeral }); - logger.info(`✅ Respuesta enviada al usuario`); + } catch (error) { + //@ts-ignore + logger.error('❌ Error en ldPointsModal:', error); - } catch (e) { - logger.error({ err: e }, 'Error en ldPointsModal'); - - // Intentar responder con el error - try { - if (!interaction.replied && !interaction.deferred) { - await interaction.reply({ - content: '❌ Error al actualizar los puntos.', - flags: MessageFlags.Ephemeral - }); - } - } catch (replyError) { - logger.error({ err: replyError }, 'Error al enviar respuesta de error'); + if (!interaction.replied && !interaction.deferred) { + await interaction.reply({ + content: '❌ Error interno al procesar la solicitud. Revisa los logs para más detalles.', + flags: MessageFlags.Ephemeral + }); } } }