const { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); const { getCollections } = require( "../../../utils/nutEconomy" ); module.exports = { name: "nutsleaderboard", description: "show nuts leaderboard", aliases: [ "nl", "tn", "topnuts" ], async execute( message, args ) { const row = new ActionRowBuilder() .addComponents( new ButtonBuilder() .setLabel( "◄" ) .setStyle( ButtonStyle.Primary ) .setCustomId( "nuts_leaderboard_left" ), new ButtonBuilder() .setLabel( "🧑" ) .setStyle( ButtonStyle.Primary ) .setCustomId( "nuts_leaderboard_self" ), new ButtonBuilder() .setLabel( "►" ) .setStyle( ButtonStyle.Primary ) .setCustomId( "nuts_leaderboard_right" ) ); const { nuts } = getCollections(); const skip = 0; const nutsData = await nuts .find({ nuts: { $gt: 0 } }) .sort({ nuts: -1 }) .skip( skip ) .limit( 5 ) .toArray(); let fields; let placements = skip + 1; nutsData.forEach( data => { fields = ( fields ? fields : "" ) + `${placements}. <@${data.userId}> : ${data.nuts} Nuts\r\n`; placements++; } ); const embed = new EmbedBuilder() .setTitle( "Nuts Leaderboard" ) .setThumbnail( message.guild.iconURL({ dynamic: true }) ) .setDescription( fields.toString() ) .setColor( "#5865F2" ) .setFooter({ text: "Use ◄ ► to navigate" }); await message.reply({ embeds: [ embed ], components: [ row ] }); } };