const { ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder } = require('discord.js'); const sqlite3 = require('sqlite3').verbose(); const db = new sqlite3.Database('myDatabase.db'); const paginationEmbed = require('discordjs-button-pagination'); module.exports = { name: 'prevname', description: 'Affiche tous les pseudos précédents et permet de les supprimer', category: 'utils', emote: '🔍', utilisation: 'prevname', async execute(message, args, client) { const userId = message.author.id; if (args[0] === "clear") { let hasPrevname = await new Promise((resolve, reject) => { db.get('SELECT value FROM prevname WHERE id = ?', [userId], (err, row) => { if (err) { console.error(err.message); reject(err); } resolve(row !== undefined); }); }); if (!hasPrevname) { await message.reply({ content: "Vous n'avez aucun prevname à supprimer."}); return; } db.run('DELETE FROM prevname WHERE id = ?', [userId], (err) => { if (err) { console.error(err.message); } else { message.reply({ content: "Vos prevname ont été correctement supprimés." }); } }); }else { let nameChanges = await new Promise((resolve, reject) => { db.get('SELECT value FROM prevname WHERE id = ?', [userId], (err, row) => { if (err) { console.error(err.message); reject(err); } resolve(row ? JSON.parse(row.value) : []); }); }); if (nameChanges.length === 0) { const embed = new EmbedBuilder() .setTitle('Pseudos précédents') .setDescription('Vous n\'avez pas de pseudos précédents enregistrés.') .setColor('#0099ff'); await message.reply({ embeds: [embed] }); return; } const embeds = []; for (let i = 0; i < nameChanges.length; i += 10) { const page = nameChanges.slice(i, i + 10).map((change, index) => `${index + 1}. ${change.newName} - `).join('\n'); const embed = new EmbedBuilder() .setTitle('Pseudos précédents') .setDescription(page) .setColor('#0099ff'); embeds.push(embed); } const backButton = new ButtonBuilder() .setCustomId('previousbtn') .setEmoji('⬅️') .setStyle(ButtonStyle.Primary); const nextButton = new ButtonBuilder() .setCustomId('nextbtn') .setEmoji('➡️') .setStyle(ButtonStyle.Primary); const deleteButton = new ButtonBuilder() .setCustomId(`deleteprevnames_${message.author.id}`) .setEmoji('🗑️') .setStyle(ButtonStyle.Secondary); const row = new ActionRowBuilder() .addComponents(backButton, nextButton, deleteButton); const sentMessage = await message.reply({ embeds: [embeds[0]], components: [row] }); const filter = i => i.user.id === message.author.id; const collector = sentMessage.createMessageComponentCollector({ filter, time: 30000 }); collector.on('collect', async i => { if (!i.message.paginationState) { i.message.paginationState = { currentPage: 0 }; } if (i.customId === 'previousbtn') { i.message.paginationState.currentPage--; } else if (i.customId === 'nextbtn') { i.message.paginationState.currentPage++; } if (i.message.paginationState.currentPage < 0) { i.message.paginationState.currentPage = 0; } else if (i.message.paginationState.currentPage >= embeds.length) { i.message.paginationState.currentPage = embeds.length - 1; } const newEmbed = embeds[i.message.paginationState.currentPage]; const backButton = new ButtonBuilder() .setCustomId('previousbtn') .setEmoji('⬅️') .setStyle(ButtonStyle.Primary); const nextButton = new ButtonBuilder() .setCustomId('nextbtn') .setEmoji('➡️') .setStyle(ButtonStyle.Primary); const deleteButton = new ButtonBuilder() .setCustomId(`deleteprevnames_${message.author.id}`) .setEmoji('🗑️') .setStyle(ButtonStyle.Primary); const row = new ActionRowBuilder() .addComponents(backButton, nextButton, deleteButton); await i.update({ embeds: [newEmbed], components: [row] }); }); collector.on('end', collected => { const disabledRow = new ActionRowBuilder() .addComponents(backButton.setDisabled(true), nextButton.setDisabled(true), deleteButton); sentMessage.edit({ components: [disabledRow] }); }); } }, };