Compare commits

...

3 Commits

Author SHA1 Message Date
ThePendulum 19fb233d8a 1.7.4 2022-07-15 17:49:06 +02:00
ThePendulum 802639d830 Including stack trace in error log. 2022-07-15 17:49:01 +02:00
ThePendulum 91c99428ff Showing game leaderboard when Trivia game is stopped. 2022-07-15 17:46:12 +02:00
4 changed files with 17 additions and 15 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "schat2-clive",
"version": "1.7.3",
"version": "1.7.4",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "schat2-clive",
"version": "1.7.3",
"version": "1.7.4",
"license": "ISC",
"dependencies": {
"bhttp": "^1.2.8",

View File

@ -1,6 +1,6 @@
{
"name": "schat2-clive",
"version": "1.7.3",
"version": "1.7.4",
"description": "Game host for SChat 2-powered chat sites",
"main": "src/app.js",
"scripts": {

View File

@ -254,7 +254,7 @@ function getGames(bot) {
}
function handleError(error, socket, domain, data) {
logger.error(`${domain} '${JSON.stringify(data)}' triggered error: ${error.message}`);
logger.error(`${domain} '${JSON.stringify(data)}' triggered error: ${error.message} ${error.stack}`);
if (data?.roomId) {
socket.transmit('message', {

View File

@ -33,6 +33,16 @@ function scoreRound(context, round) {
}).filter(Boolean).join(', ');
}
function getLeaders() {
return Object.entries(game.points).sort(([, scoreA], [, scoreB]) => scoreB - scoreA).map(([username, score], index) => {
if (index === 0) {
return `**@${username}** with **${score}** points`;
}
return `**@${username}** with **${score}** points`;
}).join(', ');
}
async function playRound(context, round = 0) {
const ac = new AbortController(); // eslint-disable-line no-undef
const now = new Date();
@ -74,7 +84,7 @@ async function playRound(context, round = 0) {
}
if (game.stopped) {
context.sendMessage(`The game was stopped by @${game.stopped.username}. The answer to the last question was: **${question.answer}**`, context.room.id);
context.sendMessage(`The game was stopped by @${game.stopped.username}. The answer to the last question was: **${question.answer}**. Best players: ${getLeaders()}`, context.room.id);
game = null;
return;
@ -98,7 +108,7 @@ async function playRound(context, round = 0) {
await timers.setTimeout(5000);
if (game.stopped) {
context.sendMessage(`The game was stopped by ${game.stopped.username}`, context.room.id);
context.sendMessage(`The game was stopped by @${game.stopped.username}. The answer to the last question was: **${question.answer}**. Best players: ${getLeaders()}`, context.room.id);
game = null;
return;
@ -110,15 +120,7 @@ async function playRound(context, round = 0) {
await timers.setTimeout(2000);
const leaders = Object.entries(game.points).sort(([, scoreA], [, scoreB]) => scoreB - scoreA).map(([username, score], index) => {
if (index === 0) {
return `**@${username}** with **${score}** points`;
}
return `**@${username}** with **${score}** points`;
}).join(', ');
context.sendMessage(`That's the end of the game! Best players: ${leaders}`, context.room.id);
context.sendMessage(`That's the end of the game! Best players: ${getLeaders()}`, context.room.id);
game = null;
}