nyx/command/Economy/lb.js

38 lines
1.1 KiB
JavaScript
Raw Normal View History

2021-06-12 12:53:51 +02:00
const Levels = require("discord-xp");
const { MessageEmbed } = require("discord.js");
2021-06-12 12:53:51 +02:00
module.exports = {
name: "leaderboard",
timeout: 5000,
description: "Check the leaderboard of a server",
2021-06-12 12:53:51 +02:00
category: "Economy",
2021-07-13 05:17:39 +02:00
Level: true,
run: async (client, interaction, args) => {
const rawLeaderboard = await Levels.fetchLeaderboard(
interaction.guild.id,
10
);
2021-06-12 12:53:51 +02:00
if (rawLeaderboard.length < 1)
return interaction.followUp({ content: "There isn't any data" });
2021-06-12 12:53:51 +02:00
const leaderboard = await Levels.computeLeaderboard(
client,
rawLeaderboard,
true
);
const lb = leaderboard.map(
e =>
`**${e.position}**. ${e.username}#${e.discriminator} Level: ${
e.level
} XP: ${e.xp.toLocaleString()}`
);
const embed = new MessageEmbed()
.setTitle(`**Leaderboard for ${interaction.guild.name}**`)
2021-06-12 12:53:51 +02:00
.setDescription(`\n${lb.join("\n")}`)
.setFooter(
`Requested by ${interaction.user.tag}`,
interaction.user.displayAvatarURL({ dynamic: true })
2021-06-12 12:53:51 +02:00
)
.setColor(client.color);
interaction.followUp({ embeds: [embed] });
2021-06-12 12:53:51 +02:00
},
};