ggejs
Version:
A powerful Node.js module for interacting with the server of Goodgame Empire & Goodgame Empire: Four Kingdoms
49 lines (43 loc) • 1.71 kB
JavaScript
const {parseLeaderboardList} = require("../utils/LeaderboardParser");
const NAME = "llsp";
/** @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 = parseLLSP(client, params);
require('.').baseExecuteCommand(client, leaderboardList, errorCode, params, callbacks);
}
/**
* @param {BaseClient} client
* @param {number} listType
* @param {number} searchRank
* @param {number} maxResults
* @param {number} leagueTypeId Bracket based on level, starting with 1
* @param {number} subdivisionId
* @return {Promise<LeaderboardList>}
*/
module.exports.listLeaderboardScoresPage = function (client, listType, searchRank, maxResults, leagueTypeId, subdivisionId) {
const C2SListLeaderboardScoresPageVO = {
LT: listType,
R: searchRank,
M: maxResults,
LID: leagueTypeId > 0 ? String(leagueTypeId) : "",
SDI: subdivisionId
};
return require('.').baseSendCommand(client, NAME, C2SListLeaderboardScoresPageVO, callbacks, (p) => p?.["LT"] === listType && p?.["LID"] === leagueTypeId && p?.["L"]?.[0]?.["R"] === searchRank);
}
module.exports.llsp = parseLLSP;
/**
* @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 parseLLSP(client, params) {
if (!params) return null;
return parseLeaderboardList(params);
}