aboutsummaryrefslogtreecommitdiff
path: root/cleaners/rank.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cleaners/rank.ts')
-rw-r--r--cleaners/rank.ts66
1 files changed, 66 insertions, 0 deletions
diff --git a/cleaners/rank.ts b/cleaners/rank.ts
new file mode 100644
index 0000000..928373a
--- /dev/null
+++ b/cleaners/rank.ts
@@ -0,0 +1,66 @@
+import { HypixelPlayer } from '../hypixelApi'
+import { colorCodeFromName, minecraftColorCodes } from '../util'
+
+const rankColors: { [ name: string ]: string } = {
+ 'NONE': '7',
+ 'VIP': 'a',
+ 'VIP+': 'a',
+ 'MVP': 'b',
+ 'MVP+': 'b',
+ 'MVP++': '6',
+ 'YOUTUBE': 'c',
+ 'HELPER': '9',
+ 'MODERATOR': '2',
+ 'ADMIN': 'c'
+}
+
+export interface CleanRank {
+ name: string,
+ color: string | null,
+ colored: string | null,
+}
+
+/** Response cleaning (reformatting to be nicer) */
+export function parseRank({
+ packageRank,
+ newPackageRank,
+ monthlyPackageRank,
+ rankPlusColor,
+ rank,
+ prefix
+}: HypixelPlayer): CleanRank {
+ let name
+ let color
+ let colored
+ if (prefix) { // derive values from prefix
+ colored = prefix
+ color = minecraftColorCodes[colored.match(/§./)[0][1]]
+ name = colored.replace(/§./g, '').replace(/[\[\]]/g, '')
+ } else {
+ name = rank
+ || newPackageRank.replace('_PLUS', '+')
+ || packageRank.replace('_PLUS', '+')
+ || monthlyPackageRank
+
+ // MVP++ is called Superstar for some reason
+ if (name === 'SUPERSTAR') name = 'MVP++'
+ // YouTube rank is called YouTuber, change this to the proper name
+ else if (name === 'YOUTUBER') name = 'YOUTUBE'
+
+ const plusColor = colorCodeFromName(rankPlusColor)
+ color = minecraftColorCodes[rankColors[name]]
+ const rankColorPrefix = rankColors[name] ? '§' + rankColors[name] : ''
+ const nameWithoutPlus = name.split('+')[0]
+ const plusesInName = '+'.repeat(name.split('+').length - 1)
+ console.log(plusColor, nameWithoutPlus, plusesInName)
+ if (plusColor && plusesInName.length >= 1)
+ colored = `${rankColorPrefix}[${nameWithoutPlus}§${plusColor}${plusesInName}${rankColorPrefix}]`
+ else
+ colored = `${rankColorPrefix}[${name}]`
+ }
+ return {
+ name,
+ color,
+ colored
+ }
+}