UNPKG

ggejs

Version:

A powerful Node.js module for interacting with the server of Goodgame Empire & Goodgame Empire: Four Kingdoms

43 lines (37 loc) 1.66 kB
const {parseLeaderboardList} = require("../utils/LeaderboardParser"); const NAME = "llsw"; /** @type {CommandCallback<LeaderboardList>[]}*/ const callbacks = []; module.exports.name = NAME; /** * @param {BaseClient} client * @param {number} errorCode * @param {Object} params */ module.exports.execute = function (client, errorCode, params) { const leaderboardList = parseLLSW(client, params); require('.').baseExecuteCommand(client, leaderboardList, errorCode, params, callbacks); } /** * @param {BaseClient} client * @param {number} listType * @param {string} scoreId format: `gameId-networkId-serverInstanceId-playerId` * @param {number} maxResults * @param {number} leagueTypeId Bracket based on level, starting with 1 * @param {number} subdivisionId * @return {Promise<LeaderboardList>} */ module.exports.listLeaderboardScoresWindow = function (client, listType, scoreId, maxResults, leagueTypeId, subdivisionId) { const C2SListLeaderboardScoresWindowVO = {LT: listType, SI: scoreId, M: maxResults, LID: leagueTypeId, SDI: subdivisionId}; return require('.').baseSendCommand(client, NAME, C2SListLeaderboardScoresWindowVO, callbacks, (p) => p?.["LT"] === listType && p?.["LID"] === leagueTypeId && p?.["SI"] === scoreId); } module.exports.llsw = parseLLSW; /** * @param {BaseClient} client * @param {{LT:number, SI?: string, L: Array<{R: number, S: number, P: string, A: string, I: number, SI: string}>, T:number, LID:number}} params * @return {LeaderboardList} */ function parseLLSW(client, params) { if (!params) return null; return parseLeaderboardList(params); }