Files
Arthonor-Neo/commands/legacy/nuts/nutsLeaderboard.js
T

162 lines
3.6 KiB
JavaScript

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
]
});
}
};