Fix leaderboard showing undefined and pinging everyone.

This commit is contained in:
ThePendulum 2022-10-23 23:40:52 +02:00
parent 77a94d17ec
commit 5d58d434b8
2 changed files with 5 additions and 5 deletions

View File

@ -73,7 +73,7 @@ function getLeaderboard(game, { user, room, command }) {
return;
}
game.sendMessage(`The top ${Math.min(Object.keys(leaderboard).length, 10)} ${style.italic(game.name)} players are: ${getLeaders(leaderboard, user)}`, room.id);
game.sendMessage(`The top ${Math.min(Object.keys(leaderboard).length, 10)} ${style.italic(game.name)} players are: ${getLeaders(leaderboard, user, false)}`, room.id);
}
/* eslint-disable no-irregular-whitespace */

View File

@ -3,15 +3,15 @@
const config = require('config');
const style = require('./style');
function getLeaders(points, _user) {
function getLeaders(points, user, ping = false) {
return Object.entries(points).sort(([, scoreA], [, scoreB]) => scoreB - scoreA).map(([userKey, score], index) => {
const username = userKey.split(':')[1]; // process the points file
const username = userKey.split(':')[1] || userKey; // process the points file
if (index === 0) {
return `${style.bold(style.yellow(`${config.usernamePrefix}${username}`))} with ${style.bold(`${score}`)} points`;
return `${style.bold(style.yellow(`${ping ? config.usernamePrefix : ''}${username}`))} with ${style.bold(`${score}`)} points`;
}
return `${style.bold(style.cyan(`${config.usernamePrefix}${username}`))} with ${style.bold(`${score}`)} points`;
return `${style.bold(style.cyan(`${ping ? config.usernamePrefix : ''}${username}`))} with ${style.bold(`${score}`)} points`;
}).join(', ');
}