feat: get all rankings
This commit is contained in:
parent
163f3fe881
commit
7217e968dd
45
index.js
45
index.js
@ -406,6 +406,9 @@ client.on("messageCreate", async (message) => {
|
||||
console.log(
|
||||
`getting rank of ${applicableName}, ${playerId} at ${rankingsPath}...`
|
||||
);
|
||||
if (!fs.existsSync(rankingsPath)) {
|
||||
fs.writeFileSync(rankingsPath, "{}");
|
||||
}
|
||||
const rankings = JSON.parse(fs.readFileSync(rankingsPath));
|
||||
await message.reply(
|
||||
`${backticks}${applicableName} - ${"*".repeat(
|
||||
@ -418,6 +421,46 @@ client.on("messageCreate", async (message) => {
|
||||
}
|
||||
}
|
||||
|
||||
if (args[0] === "rankings") {
|
||||
await message.reply("getting rankings...");
|
||||
try {
|
||||
console.log(`getting rankings at ${rankingsPath}...`);
|
||||
if (!fs.existsSync(rankingsPath)) {
|
||||
fs.writeFileSync(rankingsPath, "{}");
|
||||
}
|
||||
const rankings = JSON.parse(fs.readFileSync(rankingsPath));
|
||||
let players = [];
|
||||
for (const [playerId, rank] of Object.entries(rankings)) {
|
||||
if (rank > 0) {
|
||||
const player = await pickupGuild.members.fetch(playerId);
|
||||
const applicableName = getApplicableName(player);
|
||||
players.push({ name: applicableName, rank });
|
||||
}
|
||||
}
|
||||
|
||||
// sort by rank, then name
|
||||
players.sort((a, b) => {
|
||||
if (a.rank === b.rank) {
|
||||
return a.name.localeCompare(b.name);
|
||||
}
|
||||
return b.rank - a.rank;
|
||||
});
|
||||
|
||||
// build string
|
||||
let str = backticks;
|
||||
const maxNameLength = Math.max(...players.map((p) => p.name.length));
|
||||
for (const { name, rank } of players) {
|
||||
str += `${name.padEnd(maxNameLength, " ")} - ${"*".repeat(rank)}\n`;
|
||||
}
|
||||
str += backticks;
|
||||
if (str === backticks + backticks) str = "no rankings found";
|
||||
await message.reply(str);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
await message.reply(`error getting rankings: ${error.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
if (args[0] === "whitelist") {
|
||||
// add user to config.json whitelist
|
||||
if (args.length < 2) {
|
||||
@ -468,7 +511,7 @@ client.on("messageCreate", async (message) => {
|
||||
}
|
||||
|
||||
if (args[0] === "getwhitelist") {
|
||||
let str = `${backticks}${whitelistStr}${backticks}${backticks}`
|
||||
let str = `${backticks}${whitelistStr}${backticks}${backticks}`;
|
||||
const whitelistIds = whitelistStr.split(",");
|
||||
for (const id of whitelistIds) {
|
||||
const player = findPlayer(pickupGuild, id);
|
||||
|
||||
@ -1 +0,0 @@
|
||||
{"233036215610245120":0}
|
||||
Loading…
Reference in New Issue
Block a user