diff options
author | mat <github@matdoes.dev> | 2021-05-31 19:38:29 -0500 |
---|---|---|
committer | mat <github@matdoes.dev> | 2021-05-31 19:38:29 -0500 |
commit | f1e85074ce32f62a7b44d5bd6c8399d99f2368c5 (patch) | |
tree | 6b16dad9a058b8aca1f984f1a8132fb19837d5d8 | |
parent | 7278b0563cb7ac7d76b925af4668946ee5784c6e (diff) | |
download | skyblock-api-f1e85074ce32f62a7b44d5bd6c8399d99f2368c5.tar.gz skyblock-api-f1e85074ce32f62a7b44d5bd6c8399d99f2368c5.tar.bz2 skyblock-api-f1e85074ce32f62a7b44d5bd6c8399d99f2368c5.zip |
add leaderboard infos
-rw-r--r-- | build/database.js | 12 | ||||
-rw-r--r-- | src/database.ts | 19 |
2 files changed, 27 insertions, 4 deletions
diff --git a/build/database.js b/build/database.js index ad386fd..7c7d192 100644 --- a/build/database.js +++ b/build/database.js @@ -54,6 +54,10 @@ let memberLeaderboardsCollection; let profileLeaderboardsCollection; let sessionsCollection; let accountsCollection; +const leaderboardInfos = { + highest_crit_damage: 'This leaderboard is capped at the integer limit because Hypixel, look at <a href="/leaderboard/highest_critical_damage">Highest critical damage</a> instead.', + highest_critical_damage: 'uhhhhh yeah idk either' +}; async function connect() { if (!process.env.db_uri) return console.warn('Warning: db_uri was not found in .env. Features that utilize the database such as leaderboards won\'t work.'); @@ -313,12 +317,16 @@ exports.fetchProfileLeaderboard = fetchProfileLeaderboard; /** Fetch a leaderboard */ async function fetchLeaderboard(name) { const profileLeaderboards = await fetchAllProfileLeaderboardAttributes(); + let leaderboard; if (profileLeaderboards.includes(name)) { - return await fetchProfileLeaderboard(name); + leaderboard = await fetchProfileLeaderboard(name); } else { - return await fetchMemberLeaderboard(name); + leaderboard = await fetchMemberLeaderboard(name); } + if (leaderboardInfos[name]) + leaderboard.info = leaderboardInfos[name]; + return leaderboard; } exports.fetchLeaderboard = fetchLeaderboard; /** Get the leaderboard positions a member is on. This may take a while depending on whether stuff is cached */ diff --git a/src/database.ts b/src/database.ts index 5ee29d4..577bd6a 100644 --- a/src/database.ts +++ b/src/database.ts @@ -100,6 +100,13 @@ let profileLeaderboardsCollection: Collection<DatabaseProfileLeaderboardItem> let sessionsCollection: Collection<SessionSchema> let accountsCollection: Collection<AccountSchema> + +const leaderboardInfos: { [ leaderboardName: string ]: string } = { + highest_crit_damage: 'This leaderboard is capped at the integer limit because Hypixel, look at <a href="/leaderboard/highest_critical_damage">Highest critical damage</a> instead.', + highest_critical_damage: 'uhhhhh yeah idk either' +} + + async function connect(): Promise<void> { if (!process.env.db_uri) return console.warn('Warning: db_uri was not found in .env. Features that utilize the database such as leaderboards won\'t work.') @@ -353,12 +360,14 @@ interface MemberLeaderboard { name: string unit?: string list: MemberLeaderboardItem[] + info?: string } interface ProfileLeaderboard { name: string unit?: string list: ProfileLeaderboardItem[] + info?: string } @@ -415,11 +424,17 @@ export async function fetchProfileLeaderboard(name: string): Promise<ProfileLead /** Fetch a leaderboard */ export async function fetchLeaderboard(name: string): Promise<MemberLeaderboard|ProfileLeaderboard> { const profileLeaderboards = await fetchAllProfileLeaderboardAttributes() + let leaderboard: MemberLeaderboard|ProfileLeaderboard if (profileLeaderboards.includes(name)) { - return await fetchProfileLeaderboard(name) + leaderboard = await fetchProfileLeaderboard(name) } else { - return await fetchMemberLeaderboard(name) + leaderboard = await fetchMemberLeaderboard(name) } + + if (leaderboardInfos[name]) + leaderboard.info = leaderboardInfos[name] + + return leaderboard } /** Get the leaderboard positions a member is on. This may take a while depending on whether stuff is cached */ |