Initial commit
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
const LeaderboardPositionsPacket = require("../Packets/LeaderboardPositions");
|
||||
|
||||
const leaderboards = require("../Data/leaderboard");
|
||||
|
||||
module.exports = async function (ws, message, player) {
|
||||
const leaderboardPositionsData = leaderboards.map(async (leaderboard, i) => {
|
||||
const leaderboardPositionFromDB = await execute(`SELECT 1 + COUNT(*) AS position FROM leaderboard_${i + 1} WHERE amount > COALESCE((SELECT amount FROM leaderboard_${i + 1} WHERE id = ?), 0)`, [player.id]);
|
||||
if (!leaderboardPositionFromDB.data)
|
||||
return {
|
||||
selfPosition: 0,
|
||||
totalPositionsLength: leaderboard.size
|
||||
};
|
||||
|
||||
const selfPosition = leaderboardPositionFromDB.data[0].position;
|
||||
|
||||
return {
|
||||
selfPosition: selfPosition > leaderboard.size ? 0 : selfPosition,
|
||||
totalPositionsLength: leaderboard.size
|
||||
};
|
||||
});
|
||||
|
||||
const leaderboardPositions = await Promise.all(leaderboardPositionsData);
|
||||
const leaderboardPositionsPacket = LeaderboardPositionsPacket(leaderboardPositions);
|
||||
player.map.registerIndividualNetworkPacket(player.id, leaderboardPositionsPacket);
|
||||
};
|
||||
Reference in New Issue
Block a user