UNPKG

ggejs

Version:

A powerful JavaScript library for interacting with the server of Goodgame Empire: Four Kingdoms

53 lines (50 loc) 1.74 kB
/** * @param {{LT:number, SI?: string, L: Array<{R: number, S: number, P: string, A: string, I: number, SI: string}>, T:number, LID:number}} params * @returns {LeaderboardList} */ module.exports.parseLeaderboardList = function (params) { const listType = params.LT; return { listType: listType, scoreId: params.SI, numScores: params.T, leagueType: params.LID, items: params.L.map(item => parseLeaderboardItem(listType, item)) }; } /** * @param {number} listType * @param {{R: number, S: number, P: string, A: string, I: number, SI: string}} itemData * @return {LeaderboardListItem} */ function parseLeaderboardItem(listType, itemData) { const scoreId = itemData.SI; const scoreIdParts = scoreId.split('-'); return { listType: listType, rank: itemData.R, points: itemData.S, playerName: itemData.P, allianceName: itemData.A, instanceId: itemData.I, scoreId: scoreId, playerId: parseInt(scoreIdParts[3]) }; } /** * @param {{LT:number, L: Array<{LID: number, L: []}>, LID:number}} params * @returns {LeaderboardSearchList} */ module.exports.parseLeaderboardSearchList = function (params) { return {listType: params.LT, items: parseLeaderboardSearchListItems(params.L), leagueType: params.LID}; } /** @param {{LID: number, L: string[]}[]} items */ function parseLeaderboardSearchListItems(items) { /** @type {LeaderboardSearchListItem[]} */ const listItems = [] for (const item of items) { const leagueType = item.LID; for (const scoreId of item.L) listItems.push({scoreId, leagueType}); } return listItems; }