From aed30565d683c06ecbaaeec8779355841eddbd69 Mon Sep 17 00:00:00 2001 From: 0xWaleed Date: Thu, 1 Feb 2024 22:25:48 +0300 Subject: [PATCH] feat(discord-manager): add away to get the first 10 people :sparkles: --- src/classes/discord-challenge-manager.ts | 26 +++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/classes/discord-challenge-manager.ts b/src/classes/discord-challenge-manager.ts index 74ff1fb..9e46767 100644 --- a/src/classes/discord-challenge-manager.ts +++ b/src/classes/discord-challenge-manager.ts @@ -1,4 +1,4 @@ -import {Client, Embed, Events, Message, MessageType, TextChannel} from "discord.js"; +import {Client, Embed, Events, Message, MessageType, TextChannel, EmbedBuilder} from "discord.js"; import * as config from "../config.ts"; import {DiscordChallenge} from "./discord-challenge.ts"; @@ -51,6 +51,30 @@ export class DiscordChallengeManager { return; } + if (message.content == "top") { + // add leaderboard + const leaderboards = await repo.getUsersOrderedByScores(10); + const icons = ["🥇", "🥈", "🥉"]; + + const embeds = new EmbedBuilder(); + + embeds.setTitle("Leaderboard"); + embeds.setAuthor({name: "0x"}); + + for (let i = 0; i < leaderboards.length; i++) { + const user = leaderboards[i]; + const icon = icons.shift() ?? i + 1; + embeds.addFields({ + name: `${icon}`, + value: `<@${user.id}> 🪙 **${user.score}**`, + inline: false + }); + } + + await message.reply({embeds: [embeds]}); + return; + } + const author = message.author; const challenge = this._challenge;