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
JavaScript
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);
}