162 lines
3.6 KiB
JavaScript
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
|
|
]
|
|
});
|
|
}
|
|
}; |