| 295 | } |
| 296 | |
| 297 | export function buildCountingLeaderboard(config, guild) { |
| 298 | const entries = Object.entries(config.leaderboard || {}); |
| 299 | if (entries.length === 0) { |
| 300 | return []; |
| 301 | } |
| 302 | |
| 303 | return entries |
| 304 | .sort((a, b) => b[1] - a[1]) |
| 305 | .slice(0, 10) |
| 306 | .map(([userId, count], index) => { |
| 307 | const member = guild?.members?.cache?.get(userId); |
| 308 | const username = member ? `${member.user.username}#${member.user.discriminator}` : `<@${userId}>`; |
| 309 | return `**${index + 1}.** ${username} — ${count} ${count === 1 ? 'count' : 'counts'}`; |
| 310 | }); |
| 311 | } |