From 6b188524cf32171563b8ce851488ad8f4d9dc60c Mon Sep 17 00:00:00 2001 From: Mirasaki Date: Sun, 15 May 2022 12:08:04 +0200 Subject: [PATCH 1/2] add CFTOOLS_API_PLAYER_DATA_COUNT to environmental file --- config/.env.example | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/.env.example b/config/.env.example index a8d0a4a..dc844d1 100644 --- a/config/.env.example +++ b/config/.env.example @@ -8,6 +8,8 @@ TEST_SERVER_GUILD_ID= CFTOOLS_API_APPLICATION_ID= CFTOOLS_API_SECRET= CFTOOLS_SERVER_API_ID= +# Amount of players to display on the leaderboard. 10 min, 25 max +CFTOOLS_API_PLAYER_DATA_COUNT=15 # Debug variables DEBUG_ENABLED=true From 474ebc13bdff9abd19322518b24dfa3bb55f1c0c Mon Sep 17 00:00:00 2001 From: Mirasaki Date: Sun, 15 May 2022 12:08:19 +0200 Subject: [PATCH 2/2] Allow player limit customizability --- src/commands/dayz/leaderboard.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/commands/dayz/leaderboard.js b/src/commands/dayz/leaderboard.js index 2dc96f4..683d97b 100644 --- a/src/commands/dayz/leaderboard.js +++ b/src/commands/dayz/leaderboard.js @@ -7,7 +7,8 @@ const { parseSnakeCaseArray, colorResolver } = require('../../util'); // Destructure from our process env const { DEBUG_LEADERBOARD_API_DATA, - NODE_ENV + NODE_ENV, + CFTOOLS_API_PLAYER_DATA_COUNT } = process.env; // Mapping our leaderboard stat options @@ -89,6 +90,17 @@ module.exports = { mappedStat = Statistic.KILLS; } + // Getting our player data count + let playerLimit = Number(CFTOOLS_API_PLAYER_DATA_COUNT); + if ( + isNaN(playerLimit) + || playerLimit < 10 + || playerLimit > 25 + ) { + // Overwrite the provided player limit back to default if invalid + playerLimit = 15; + } + let res; try { // Fetching our leaderboard data from the CFTools API @@ -96,7 +108,7 @@ module.exports = { .getLeaderboard({ order: 'ASC', statistic: mappedStat, - limit: 15 + limit: playerLimit }); } catch (err) { // Properly logging the error if it is encountered