@breezil/hypixel-parsers 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +235 -0
  3. package/dist/arcade.d.ts +560 -0
  4. package/dist/arcade.d.ts.map +1 -0
  5. package/dist/arcade.js +619 -0
  6. package/dist/arcade.js.map +1 -0
  7. package/dist/arenabrawl.d.ts +56 -0
  8. package/dist/arenabrawl.d.ts.map +1 -0
  9. package/dist/arenabrawl.js +107 -0
  10. package/dist/arenabrawl.js.map +1 -0
  11. package/dist/bedwars.d.ts +747 -0
  12. package/dist/bedwars.d.ts.map +1 -0
  13. package/dist/bedwars.js +844 -0
  14. package/dist/bedwars.js.map +1 -0
  15. package/dist/blitz.d.ts +105 -0
  16. package/dist/blitz.d.ts.map +1 -0
  17. package/dist/blitz.js +259 -0
  18. package/dist/blitz.js.map +1 -0
  19. package/dist/buildbattle.d.ts +54 -0
  20. package/dist/buildbattle.d.ts.map +1 -0
  21. package/dist/buildbattle.js +92 -0
  22. package/dist/buildbattle.js.map +1 -0
  23. package/dist/common.d.ts +11 -0
  24. package/dist/common.d.ts.map +1 -0
  25. package/dist/common.js +34 -0
  26. package/dist/common.js.map +1 -0
  27. package/dist/copsandcrims.d.ts +201 -0
  28. package/dist/copsandcrims.d.ts.map +1 -0
  29. package/dist/copsandcrims.js +269 -0
  30. package/dist/copsandcrims.js.map +1 -0
  31. package/dist/duels.d.ts +358 -0
  32. package/dist/duels.d.ts.map +1 -0
  33. package/dist/duels.js +570 -0
  34. package/dist/duels.js.map +1 -0
  35. package/dist/guild.d.ts +49 -0
  36. package/dist/guild.d.ts.map +1 -0
  37. package/dist/guild.js +95 -0
  38. package/dist/guild.js.map +1 -0
  39. package/dist/housing.d.ts +16 -0
  40. package/dist/housing.d.ts.map +1 -0
  41. package/dist/housing.js +34 -0
  42. package/dist/housing.js.map +1 -0
  43. package/dist/index.d.ts +50 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +66 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/megawalls.d.ts +363 -0
  48. package/dist/megawalls.d.ts.map +1 -0
  49. package/dist/megawalls.js +684 -0
  50. package/dist/megawalls.js.map +1 -0
  51. package/dist/murdermystery.d.ts +293 -0
  52. package/dist/murdermystery.d.ts.map +1 -0
  53. package/dist/murdermystery.js +349 -0
  54. package/dist/murdermystery.js.map +1 -0
  55. package/dist/nbt.d.ts +37 -0
  56. package/dist/nbt.d.ts.map +1 -0
  57. package/dist/nbt.js +133 -0
  58. package/dist/nbt.js.map +1 -0
  59. package/dist/paintball.d.ts +52 -0
  60. package/dist/paintball.d.ts.map +1 -0
  61. package/dist/paintball.js +79 -0
  62. package/dist/paintball.js.map +1 -0
  63. package/dist/pit.d.ts +181 -0
  64. package/dist/pit.d.ts.map +1 -0
  65. package/dist/pit.js +262 -0
  66. package/dist/pit.js.map +1 -0
  67. package/dist/player.d.ts +338 -0
  68. package/dist/player.d.ts.map +1 -0
  69. package/dist/player.js +521 -0
  70. package/dist/player.js.map +1 -0
  71. package/dist/quakecraft.d.ts +75 -0
  72. package/dist/quakecraft.d.ts.map +1 -0
  73. package/dist/quakecraft.js +99 -0
  74. package/dist/quakecraft.js.map +1 -0
  75. package/dist/recentgames.d.ts +10 -0
  76. package/dist/recentgames.d.ts.map +1 -0
  77. package/dist/recentgames.js +27 -0
  78. package/dist/recentgames.js.map +1 -0
  79. package/dist/resources-achievements.d.ts +29 -0
  80. package/dist/resources-achievements.d.ts.map +1 -0
  81. package/dist/resources-achievements.js +67 -0
  82. package/dist/resources-achievements.js.map +1 -0
  83. package/dist/resources-challenges.d.ts +12 -0
  84. package/dist/resources-challenges.d.ts.map +1 -0
  85. package/dist/resources-challenges.js +36 -0
  86. package/dist/resources-challenges.js.map +1 -0
  87. package/dist/resources-games.d.ts +10 -0
  88. package/dist/resources-games.d.ts.map +1 -0
  89. package/dist/resources-games.js +28 -0
  90. package/dist/resources-games.js.map +1 -0
  91. package/dist/resources-guild-achievements.d.ts +23 -0
  92. package/dist/resources-guild-achievements.d.ts.map +1 -0
  93. package/dist/resources-guild-achievements.js +56 -0
  94. package/dist/resources-guild-achievements.js.map +1 -0
  95. package/dist/resources-quests.d.ts +23 -0
  96. package/dist/resources-quests.d.ts.map +1 -0
  97. package/dist/resources-quests.js +53 -0
  98. package/dist/resources-quests.js.map +1 -0
  99. package/dist/resources-vanity.d.ts +19 -0
  100. package/dist/resources-vanity.d.ts.map +1 -0
  101. package/dist/resources-vanity.js +33 -0
  102. package/dist/resources-vanity.js.map +1 -0
  103. package/dist/skyblock-auctions.d.ts +50 -0
  104. package/dist/skyblock-auctions.d.ts.map +1 -0
  105. package/dist/skyblock-auctions.js +90 -0
  106. package/dist/skyblock-auctions.js.map +1 -0
  107. package/dist/skyblock-bazaar.d.ts +25 -0
  108. package/dist/skyblock-bazaar.d.ts.map +1 -0
  109. package/dist/skyblock-bazaar.js +54 -0
  110. package/dist/skyblock-bazaar.js.map +1 -0
  111. package/dist/skyblock-bingo.d.ts +8 -0
  112. package/dist/skyblock-bingo.d.ts.map +1 -0
  113. package/dist/skyblock-bingo.js +19 -0
  114. package/dist/skyblock-bingo.js.map +1 -0
  115. package/dist/skyblock-items.d.ts +150 -0
  116. package/dist/skyblock-items.d.ts.map +1 -0
  117. package/dist/skyblock-items.js +247 -0
  118. package/dist/skyblock-items.js.map +1 -0
  119. package/dist/skyblock-misc.d.ts +91 -0
  120. package/dist/skyblock-misc.d.ts.map +1 -0
  121. package/dist/skyblock-misc.js +159 -0
  122. package/dist/skyblock-misc.js.map +1 -0
  123. package/dist/skyblock-museum.d.ts +24 -0
  124. package/dist/skyblock-museum.d.ts.map +1 -0
  125. package/dist/skyblock-museum.js +51 -0
  126. package/dist/skyblock-museum.js.map +1 -0
  127. package/dist/skyblock-news.d.ts +12 -0
  128. package/dist/skyblock-news.d.ts.map +1 -0
  129. package/dist/skyblock-news.js +25 -0
  130. package/dist/skyblock-news.js.map +1 -0
  131. package/dist/skyblock-resources.d.ts +94 -0
  132. package/dist/skyblock-resources.d.ts.map +1 -0
  133. package/dist/skyblock-resources.js +175 -0
  134. package/dist/skyblock-resources.js.map +1 -0
  135. package/dist/skyblock.d.ts +972 -0
  136. package/dist/skyblock.d.ts.map +1 -0
  137. package/dist/skyblock.js +1371 -0
  138. package/dist/skyblock.js.map +1 -0
  139. package/dist/skywars.d.ts +319 -0
  140. package/dist/skywars.d.ts.map +1 -0
  141. package/dist/skywars.js +611 -0
  142. package/dist/skywars.js.map +1 -0
  143. package/dist/smashheroes.d.ts +126 -0
  144. package/dist/smashheroes.d.ts.map +1 -0
  145. package/dist/smashheroes.js +206 -0
  146. package/dist/smashheroes.js.map +1 -0
  147. package/dist/static.d.ts +42 -0
  148. package/dist/static.d.ts.map +1 -0
  149. package/dist/static.js +106 -0
  150. package/dist/static.js.map +1 -0
  151. package/dist/status.d.ts +9 -0
  152. package/dist/status.d.ts.map +1 -0
  153. package/dist/status.js +18 -0
  154. package/dist/status.js.map +1 -0
  155. package/dist/tntgames.d.ts +189 -0
  156. package/dist/tntgames.d.ts.map +1 -0
  157. package/dist/tntgames.js +283 -0
  158. package/dist/tntgames.js.map +1 -0
  159. package/dist/turbokartracers.d.ts +85 -0
  160. package/dist/turbokartracers.d.ts.map +1 -0
  161. package/dist/turbokartracers.js +165 -0
  162. package/dist/turbokartracers.js.map +1 -0
  163. package/dist/uhc.d.ts +55 -0
  164. package/dist/uhc.d.ts.map +1 -0
  165. package/dist/uhc.js +94 -0
  166. package/dist/uhc.js.map +1 -0
  167. package/dist/vampirez.d.ts +75 -0
  168. package/dist/vampirez.d.ts.map +1 -0
  169. package/dist/vampirez.js +104 -0
  170. package/dist/vampirez.js.map +1 -0
  171. package/dist/walls.d.ts +96 -0
  172. package/dist/walls.d.ts.map +1 -0
  173. package/dist/walls.js +122 -0
  174. package/dist/walls.js.map +1 -0
  175. package/dist/warlords.d.ts +229 -0
  176. package/dist/warlords.d.ts.map +1 -0
  177. package/dist/warlords.js +309 -0
  178. package/dist/warlords.js.map +1 -0
  179. package/package.json +55 -0
package/dist/player.js ADDED
@@ -0,0 +1,521 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePlayer = parsePlayer;
4
+ const murdermystery_1 = require("./murdermystery");
5
+ const copsandcrims_1 = require("./copsandcrims");
6
+ const buildbattle_1 = require("./buildbattle");
7
+ const smashheroes_1 = require("./smashheroes");
8
+ const arenabrawl_1 = require("./arenabrawl");
9
+ const quakecraft_1 = require("./quakecraft");
10
+ const paintball_1 = require("./paintball");
11
+ const megawalls_1 = require("./megawalls");
12
+ const vampirez_1 = require("./vampirez");
13
+ const tntgames_1 = require("./tntgames");
14
+ const warlords_1 = require("./warlords");
15
+ const bedwars_1 = require("./bedwars");
16
+ const skywars_1 = require("./skywars");
17
+ const arcade_1 = require("./arcade");
18
+ const duels_1 = require("./duels");
19
+ const walls_1 = require("./walls");
20
+ const blitz_1 = require("./blitz");
21
+ const common_1 = require("./common");
22
+ const pit_1 = require("./pit");
23
+ const uhc_1 = require("./uhc");
24
+ const turbokartracers_1 = require("./turbokartracers");
25
+ function stringList(value) {
26
+ return Array.isArray(value)
27
+ ? value.filter((entry) => typeof entry === "string")
28
+ : [];
29
+ }
30
+ function numberList(value) {
31
+ return Array.isArray(value)
32
+ ? value.filter((entry) => typeof entry === "number")
33
+ : [];
34
+ }
35
+ function numberValues(source) {
36
+ return Object.values(source).filter((entry) => typeof entry === "number");
37
+ }
38
+ function numberMap(source) {
39
+ const result = {};
40
+ for (const key of Object.keys(source)) {
41
+ const value = source[key];
42
+ if (typeof value === "number") {
43
+ result[key] = value;
44
+ }
45
+ }
46
+ return result;
47
+ }
48
+ function stringMap(source) {
49
+ const result = {};
50
+ for (const key of Object.keys(source)) {
51
+ const value = source[key];
52
+ if (typeof value === "string") {
53
+ result[key] = value;
54
+ }
55
+ }
56
+ return result;
57
+ }
58
+ function boolMap(source) {
59
+ const result = {};
60
+ for (const key of Object.keys(source)) {
61
+ if (typeof source[key] === "boolean") {
62
+ result[key] = source[key];
63
+ }
64
+ }
65
+ return result;
66
+ }
67
+ function nestedNumberMap(source) {
68
+ const result = {};
69
+ for (const key of Object.keys(source)) {
70
+ result[key] = numberMap((0, common_1.obj)(source, key));
71
+ }
72
+ return result;
73
+ }
74
+ function dateFrom(value) {
75
+ return typeof value === "number" && value > 0 ? new Date(value) : null;
76
+ }
77
+ function toCrate(date, crate) {
78
+ return {
79
+ date,
80
+ regular: (0, common_1.bool)(crate, "REGULAR") || (0, common_1.bool)(crate, "NORMAL"),
81
+ vip: (0, common_1.bool)(crate, "VIP"),
82
+ vipPlus: (0, common_1.bool)(crate, "VIP_PLUS"),
83
+ mvp: (0, common_1.bool)(crate, "MVP"),
84
+ mvpPlus: (0, common_1.bool)(crate, "MVP_PLUS"),
85
+ };
86
+ }
87
+ function adventDays(source) {
88
+ const days = [];
89
+ for (let day = 1; day <= 25; day += 1) {
90
+ days.push({ day, claimedAt: (0, common_1.date)(source, `day${day}`) });
91
+ }
92
+ return days;
93
+ }
94
+ function parseAchievements(raw) {
95
+ const rewardsSource = (0, common_1.obj)(raw, "achievementRewardsNew");
96
+ const rewards = {};
97
+ for (const key of Object.keys(rewardsSource)) {
98
+ if (key.startsWith("for_points_")) {
99
+ const value = rewardsSource[key];
100
+ if (typeof value === "number") {
101
+ rewards[key.replace("for_points_", "")] = value;
102
+ }
103
+ }
104
+ }
105
+ const totem = (0, common_1.obj)(raw, "achievementTotem");
106
+ return {
107
+ points: (0, common_1.num)((0, common_1.obj)(raw, "achievements"), "_legacy_achievement_points") ||
108
+ (0, common_1.num)(raw, "achievementPoints"),
109
+ rewards,
110
+ tracking: stringList(raw.achievementTracking),
111
+ tiered: numberMap((0, common_1.obj)(raw, "achievements")),
112
+ oneTime: stringList(raw.achievementsOneTime),
113
+ oneTimeMenuSort: (0, common_1.str)(raw, "onetime_achievement_menu_sort"),
114
+ sync: numberMap((0, common_1.obj)(raw, "achievementSync")),
115
+ totem: {
116
+ canCustomize: (0, common_1.bool)(totem, "canCustomize"),
117
+ allowedMaxHeight: (0, common_1.num)(totem, "allowed_max_height"),
118
+ unlockedParts: stringList(totem.unlockedParts),
119
+ selectedParts: stringMap((0, common_1.obj)(totem, "selectedParts")),
120
+ unlockedColors: stringList(totem.unlockedColors),
121
+ selectedColors: stringMap((0, common_1.obj)(totem, "selectedColors")),
122
+ },
123
+ };
124
+ }
125
+ function parsePetConsumables(source) {
126
+ return {
127
+ cake: (0, common_1.num)(source, "CAKE"),
128
+ cookie: (0, common_1.num)(source, "COOKIE"),
129
+ feather: (0, common_1.num)(source, "FEATHER"),
130
+ goldRecord: (0, common_1.num)(source, "GOLD_RECORD"),
131
+ hayBlock: (0, common_1.num)(source, "HAY_BLOCK"),
132
+ lavaBucket: (0, common_1.num)(source, "LAVA_BUCKET"),
133
+ leash: (0, common_1.num)(source, "LEASH"),
134
+ magmaCream: (0, common_1.num)(source, "MAGMA_CREAM"),
135
+ melon: (0, common_1.num)(source, "MELON"),
136
+ milkBucket: (0, common_1.num)(source, "MILK_BUCKET"),
137
+ mushroomSoup: (0, common_1.num)(source, "MUSHROOM_SOUP"),
138
+ pork: (0, common_1.num)(source, "PORK"),
139
+ pumpkinPie: (0, common_1.num)(source, "PUMPKIN_PIE"),
140
+ rawFish: (0, common_1.num)(source, "RAW_FISH"),
141
+ slimeBall: (0, common_1.num)(source, "SLIME_BALL"),
142
+ stick: (0, common_1.num)(source, "STICK"),
143
+ waterBucket: (0, common_1.num)(source, "WATER_BUCKET"),
144
+ woodSword: (0, common_1.num)(source, "WOOD_SWORD"),
145
+ apple: (0, common_1.num)(source, "APPLE"),
146
+ bakedPotato: (0, common_1.num)(source, "BAKED_POTATO"),
147
+ cookedBeef: (0, common_1.num)(source, "COOKED_BEEF"),
148
+ redRose: (0, common_1.num)(source, "RED_ROSE"),
149
+ wheat: (0, common_1.num)(source, "WHEAT"),
150
+ bread: (0, common_1.num)(source, "BREAD"),
151
+ carrot: (0, common_1.num)(source, "CARROT_ITEM"),
152
+ rottenFlesh: (0, common_1.num)(source, "ROTTEN_FLESH"),
153
+ bone: (0, common_1.num)(source, "BONE"),
154
+ };
155
+ }
156
+ function parsePet(packageName, raw) {
157
+ const name = packageName.replace("pet_", "");
158
+ const key = name.toUpperCase();
159
+ const stats = (0, common_1.obj)((0, common_1.obj)(raw, "petStats"), key);
160
+ const hunger = (0, common_1.obj)(stats, "HUNGER");
161
+ const thirst = (0, common_1.obj)(stats, "THIRST");
162
+ const exercise = (0, common_1.obj)(stats, "EXERCISE");
163
+ return {
164
+ name,
165
+ nickname: (0, common_1.str)(stats, "name"),
166
+ experience: (0, common_1.num)(stats, "experience"),
167
+ hunger: (0, common_1.num)(hunger, "value"),
168
+ lastFedAt: (0, common_1.date)(hunger, "timestamp"),
169
+ thirst: (0, common_1.num)(thirst, "value"),
170
+ lastDrankAt: (0, common_1.date)(thirst, "timestamp"),
171
+ exercise: (0, common_1.num)(exercise, "value"),
172
+ lastExercisedAt: (0, common_1.date)(exercise, "timestamp"),
173
+ };
174
+ }
175
+ function parseCosmetics(raw) {
176
+ const packages = stringList((0, common_1.obj)(raw, "vanityMeta").packages);
177
+ return {
178
+ menuSort: (0, common_1.str)(raw, "collectibles_menu_sort"),
179
+ rankPlusColor: (0, common_1.str)(raw, "rankPlusColor"),
180
+ monthlyRankColor: (0, common_1.str)(raw, "monthlyRankColor"),
181
+ selectedGadget: (0, common_1.str)(raw, "currentGadget"),
182
+ gadget: (0, common_1.str)(raw, "gadget"),
183
+ selectedParticlePack: (0, common_1.str)(raw, "particlePack"),
184
+ clickEffect: (0, common_1.str)(raw, "currentClickEffect"),
185
+ disguise: (0, common_1.str)(raw, "disguise"),
186
+ transformation: (0, common_1.str)(raw, "transformation"),
187
+ wardrobe: (0, common_1.str)(raw, "wardrobe"),
188
+ outfit: stringMap((0, common_1.obj)(raw, "outfit")),
189
+ boxesConvertedToday: (0, common_1.num)(raw, "vanityConvertedBoxToday"),
190
+ firstBoxConvertedAt: (0, common_1.date)(raw, "vanityFirstConvertedBox"),
191
+ packages,
192
+ pets: {
193
+ currentPet: (0, common_1.str)(raw, "currentPet"),
194
+ favorites: (0, common_1.str)(raw, "vanityFavorites"),
195
+ autoSpawn: (0, common_1.bool)(raw, "auto_spawn_pet"),
196
+ lastJourneyAt: (0, common_1.date)(raw, "petJourneyTimestamp"),
197
+ consumables: parsePetConsumables((0, common_1.obj)(raw, "petConsumables")),
198
+ owned: packages
199
+ .filter((entry) => entry.startsWith("pet_"))
200
+ .map((entry) => parsePet(entry, raw)),
201
+ },
202
+ };
203
+ }
204
+ function parseRewards(raw) {
205
+ const crates = (0, common_1.obj)(raw, "monthlycrates");
206
+ return {
207
+ rewardTokens: (0, common_1.num)(raw, "adsense_tokens"),
208
+ lastAdsenseGenerateTimeAt: (0, common_1.date)(raw, "lastAdsenseGenerateTime"),
209
+ lastClaimedReward: (0, common_1.num)(raw, "lastClaimedReward"),
210
+ rewardHighScore: (0, common_1.num)(raw, "rewardHighScore"),
211
+ rewardScore: (0, common_1.num)(raw, "rewardScore"),
212
+ rewardStreak: (0, common_1.num)(raw, "rewardStreak"),
213
+ rewardConsumed: (0, common_1.bool)(raw, "rewardConsumed"),
214
+ totalDailyRewards: (0, common_1.num)(raw, "totalDailyRewards"),
215
+ totalRewards: (0, common_1.num)(raw, "totalRewards"),
216
+ monthlyCrates: Object.keys(crates).map((month) => toCrate(month, (0, common_1.obj)(crates, month))),
217
+ dmCrates: Object.keys(raw)
218
+ .filter((key) => key.startsWith("dmcrates-"))
219
+ .map((key) => toCrate(key.replace("dmcrates-", ""), (0, common_1.obj)(raw, key))),
220
+ };
221
+ }
222
+ function parseGifting(source) {
223
+ return {
224
+ bundlesReceived: (0, common_1.num)(source, "bundlesReceived"),
225
+ realBundlesReceived: (0, common_1.num)(source, "realBundlesReceived"),
226
+ realBundlesReceivedInc: (0, common_1.num)(source, "realBundlesReceivedInc"),
227
+ bundlesGiven: (0, common_1.num)(source, "bundlesGiven"),
228
+ realBundlesGiven: (0, common_1.num)(source, "realBundlesGiven"),
229
+ giftsGiven: (0, common_1.num)(source, "giftsGiven"),
230
+ ranksGiven: (0, common_1.num)(source, "ranksGiven"),
231
+ milestones: stringList(source.milestones),
232
+ rankGiftingMilestones: stringList(source.rankgiftingmilestones),
233
+ };
234
+ }
235
+ function parseSocialMedia(raw) {
236
+ const socialMedia = (0, common_1.obj)(raw, "socialMedia");
237
+ const links = (0, common_1.obj)(socialMedia, "links");
238
+ const verification = {};
239
+ for (const key of Object.keys(socialMedia)) {
240
+ const value = socialMedia[key];
241
+ if (key !== "links" && typeof value === "string") {
242
+ verification[key] = value;
243
+ }
244
+ }
245
+ return {
246
+ discord: (0, common_1.str)(links, "DISCORD"),
247
+ youtube: (0, common_1.str)(links, "YOUTUBE"),
248
+ twitch: (0, common_1.str)(links, "TWITCH"),
249
+ hypixel: (0, common_1.str)(links, "HYPIXEL"),
250
+ twitter: (0, common_1.str)(links, "TWITTER"),
251
+ instagram: (0, common_1.str)(links, "INSTAGRAM"),
252
+ tiktok: (0, common_1.str)(links, "TIKTOK"),
253
+ verification,
254
+ };
255
+ }
256
+ function parseHousing(source) {
257
+ return {
258
+ allowedBlocks: stringList(source.allowedBlocks),
259
+ packages: stringList(source.packages),
260
+ tutorialStage: (0, common_1.str)(source, "tutorialStep"),
261
+ firstHouseJoinAt: (0, common_1.date)(source, "firstHouseJoinMs"),
262
+ visibilityDisabled: (0, common_1.bool)(source, "visibilityDisabled"),
263
+ selectedChannels: stringList(source.selectedChannels_v3),
264
+ playerSettings: stringMap((0, common_1.obj)(source, "playerSettings")),
265
+ givenCookies: Object.keys(source)
266
+ .filter((key) => key.startsWith("given_cookies_"))
267
+ .map((key) => ({
268
+ date: key.replace("given_cookies_", ""),
269
+ houses: stringList(source[key]),
270
+ })),
271
+ };
272
+ }
273
+ function parseQuests(source) {
274
+ return Object.keys(source).map((name) => {
275
+ const completions = (0, common_1.obj)(source, name).completions;
276
+ return {
277
+ name,
278
+ completions: Array.isArray(completions)
279
+ ? completions.map((entry) => ({
280
+ completedAt: dateFrom(typeof entry === "object" && entry !== null
281
+ ? entry.time
282
+ : undefined),
283
+ }))
284
+ : [],
285
+ };
286
+ });
287
+ }
288
+ function parseParkour(raw) {
289
+ const completions = (0, common_1.obj)(raw, "parkourCompletions");
290
+ const checkpoints = (0, common_1.obj)(raw, "parkourCheckpointBests");
291
+ return Object.keys(completions).map((location) => {
292
+ const runs = completions[location];
293
+ const first = Array.isArray(runs) && typeof runs[0] === "object" && runs[0] !== null
294
+ ? runs[0]
295
+ : {};
296
+ return {
297
+ location,
298
+ timeStart: (0, common_1.num)(first, "timeStart"),
299
+ timeTook: (0, common_1.num)(first, "timeTook"),
300
+ checkpoints: numberValues((0, common_1.obj)(checkpoints, location)),
301
+ };
302
+ });
303
+ }
304
+ const ADVENT_YEAR_KEY = /(\d{4})/;
305
+ function parseAdventRewards(raw) {
306
+ return Object.keys(raw)
307
+ .filter((key) => key.startsWith("adventRewards"))
308
+ .map((key) => {
309
+ const source = (0, common_1.obj)(raw, key);
310
+ const year = ADVENT_YEAR_KEY.exec(key);
311
+ return { year: year ? Number(year[1]) : 0, days: adventDays(source) };
312
+ });
313
+ }
314
+ function parseSeasonal(raw) {
315
+ const christmas = (0, common_1.obj)((0, common_1.obj)(raw, "seasonal"), "christmas");
316
+ return {
317
+ christmasAdventRewards: Object.keys(christmas).map((year) => ({
318
+ year: Number(year) || 0,
319
+ days: adventDays((0, common_1.obj)((0, common_1.obj)(christmas, year), "adventRewards")),
320
+ })),
321
+ };
322
+ }
323
+ function parseScorpiusBribes(raw) {
324
+ return Object.keys(raw)
325
+ .filter((key) => key.startsWith("scorpius_bribe_"))
326
+ .map((key) => ({
327
+ year: Number(key.replace("scorpius_bribe_", "")) || 0,
328
+ claimedAt: (0, common_1.date)(raw, key),
329
+ }));
330
+ }
331
+ function parseTourney(source) {
332
+ const entries = [];
333
+ for (const key of Object.keys(source)) {
334
+ const value = source[key];
335
+ if (typeof value === "object" && value !== null && !Array.isArray(value)) {
336
+ const entry = value;
337
+ entries.push({
338
+ key,
339
+ gamesPlayed: (0, common_1.num)(entry, "games_played"),
340
+ playtime: (0, common_1.num)(entry, "playtime"),
341
+ tributesEarned: (0, common_1.num)(entry, "tributes_earned"),
342
+ firstWinAt: (0, common_1.date)(entry, "first_win"),
343
+ firstGameAt: (0, common_1.date)(entry, "first_game"),
344
+ claimedRankingRewardAt: (0, common_1.date)(entry, "claimed_ranking_reward"),
345
+ seenRewardBook: (0, common_1.bool)(entry, "seenRPbook"),
346
+ });
347
+ }
348
+ }
349
+ return {
350
+ firstJoinLobbyAt: (0, common_1.date)(source, "first_join_lobby"),
351
+ totalTributes: (0, common_1.num)(source, "total_tributes"),
352
+ entries,
353
+ };
354
+ }
355
+ function parseFireworks(value) {
356
+ if (!Array.isArray(value)) {
357
+ return [];
358
+ }
359
+ const result = [];
360
+ for (const entry of value) {
361
+ if (typeof entry === "object" && entry !== null && !Array.isArray(entry)) {
362
+ const firework = entry;
363
+ result.push({
364
+ flightDuration: (0, common_1.num)(firework, "flight_duration"),
365
+ shape: (0, common_1.str)(firework, "shape"),
366
+ trail: (0, common_1.bool)(firework, "trail"),
367
+ twinkle: (0, common_1.bool)(firework, "twinkle"),
368
+ colors: (0, common_1.str)(firework, "colors"),
369
+ fadeColors: (0, common_1.str)(firework, "fade_colors"),
370
+ selected: (0, common_1.bool)(firework, "selected"),
371
+ });
372
+ }
373
+ }
374
+ return result;
375
+ }
376
+ function parseSoloBank(raw) {
377
+ const result = {};
378
+ for (const key of Object.keys(raw)) {
379
+ if (key.startsWith("claimed_solo_bank_") && typeof raw[key] === "number") {
380
+ result[key.replace("claimed_solo_bank_", "")] = raw[key];
381
+ }
382
+ }
383
+ return result;
384
+ }
385
+ function parseXmas2019(raw) {
386
+ const result = {};
387
+ for (const key of Object.keys(raw)) {
388
+ if (key.startsWith("xmas2019_") && typeof raw[key] === "boolean") {
389
+ result[key.replace("xmas2019_", "")] = raw[key];
390
+ }
391
+ }
392
+ return result;
393
+ }
394
+ function parseStats(stats, achievements) {
395
+ const bedwarsRaw = (0, common_1.obj)(stats, "Bedwars");
396
+ return {
397
+ bedwars: Object.keys(bedwarsRaw).length > 0
398
+ ? (0, bedwars_1.parseBedWars)(bedwarsRaw, (0, common_1.num)(achievements, "bedwars_level"))
399
+ : null,
400
+ skywars: (0, skywars_1.parseSkyWars)(stats),
401
+ duels: (0, duels_1.parseDuels)(stats),
402
+ arcade: (0, arcade_1.parseArcade)(stats),
403
+ buildBattle: (0, buildbattle_1.parseBuildBattle)(stats),
404
+ murderMystery: (0, murdermystery_1.parseMurderMystery)(stats),
405
+ tntGames: (0, tntgames_1.parseTNTGames)(stats),
406
+ pit: (0, pit_1.parsePit)(stats),
407
+ megaWalls: (0, megawalls_1.parseMegaWalls)(stats),
408
+ blitz: (0, blitz_1.parseBlitz)(stats),
409
+ uhc: (0, uhc_1.parseUHC)(stats),
410
+ smashHeroes: (0, smashheroes_1.parseSmashHeroes)(stats),
411
+ copsAndCrims: (0, copsandcrims_1.parseCopsAndCrims)(stats),
412
+ paintball: (0, paintball_1.parsePaintball)(stats),
413
+ quakecraft: (0, quakecraft_1.parseQuakecraft)(stats),
414
+ vampireZ: (0, vampirez_1.parseVampireZ)(stats),
415
+ walls: (0, walls_1.parseWalls)(stats),
416
+ warlords: (0, warlords_1.parseWarlords)(stats),
417
+ turboKartRacers: (0, turbokartracers_1.parseTurboKartRacers)(stats),
418
+ arenaBrawl: (0, arenabrawl_1.parseArenaBrawl)(stats),
419
+ };
420
+ }
421
+ /** Parses a player (`/player`) into a typed object. */
422
+ function parsePlayer(raw) {
423
+ return {
424
+ id: (0, common_1.str)(raw, "_id"),
425
+ uuid: (0, common_1.str)(raw, "uuid") || "UNKNOWN",
426
+ nickname: (0, common_1.str)(raw, "displayname") || "UNKNOWN",
427
+ playerName: (0, common_1.str)(raw, "playername"),
428
+ prefix: (0, common_1.str)(raw, "prefix"),
429
+ staffRank: (0, common_1.str)(raw, "rank"),
430
+ packageRank: (0, common_1.str)(raw, "packageRank"),
431
+ newPackageRank: (0, common_1.str)(raw, "newPackageRank"),
432
+ monthlyPackageRank: (0, common_1.str)(raw, "monthlyPackageRank"),
433
+ mostRecentMonthlyPackageRank: (0, common_1.str)(raw, "mostRecentMonthlyPackageRank"),
434
+ networkExp: (0, common_1.num)(raw, "networkExp"),
435
+ karma: (0, common_1.num)(raw, "karma"),
436
+ language: (0, common_1.str)(raw, "userLanguage") || "ENGLISH",
437
+ channel: (0, common_1.str)(raw, "channel") || "ALL",
438
+ networkUpdateBook: (0, common_1.str)(raw, "network_update_book"),
439
+ mostRecentMinecraftVersion: (0, common_1.num)(raw, "mostRecentMinecraftVersion"),
440
+ timePlaying: (0, common_1.num)(raw, "timePlaying"),
441
+ tournamentTokens: (0, common_1.num)(raw, "tournamentTokens"),
442
+ fortuneBuff: (0, common_1.num)(raw, "fortuneBuff"),
443
+ giftsGrinch: (0, common_1.num)(raw, "gifts_grinch"),
444
+ thanksReceived: (0, common_1.num)(raw, "thanksReceived"),
445
+ thanksSent: (0, common_1.num)(raw, "thanksSent"),
446
+ mostRecentlyThanked: (0, common_1.str)(raw, "mostRecentlyThanked"),
447
+ mostRecentlyThankedUuid: (0, common_1.str)(raw, "mostRecentlyThankedUuid"),
448
+ mostRecentlyTipped: (0, common_1.str)(raw, "mostRecentlyTipped"),
449
+ mostRecentlyTippedUuid: (0, common_1.str)(raw, "mostRecentlyTippedUuid"),
450
+ santaQuestStarted: (0, common_1.bool)(raw, "SANTA_QUEST_STARTED"),
451
+ autoSpawnPet: (0, common_1.bool)(raw, "auto_spawn_pet"),
452
+ battlePassGlowStatus: (0, common_1.bool)(raw, "battlePassGlowStatus"),
453
+ chatEnabled: (0, common_1.bool)(raw, "chat"),
454
+ disableTipMessages: (0, common_1.bool)(raw, "disableTipMessages"),
455
+ disabledProjectileTrails: (0, common_1.bool)(raw, "disabledProjectileTrails"),
456
+ eulaCoins: (0, common_1.bool)(raw, "eulaCoins"),
457
+ seeRequests: (0, common_1.bool)(raw, "seeRequests"),
458
+ testPass: (0, common_1.bool)(raw, "testPass"),
459
+ questAutoActivate: (0, common_1.bool)((0, common_1.obj)(raw, "questSettings"), "autoActivate"),
460
+ firstLoginAt: (0, common_1.date)(raw, "firstLogin"),
461
+ lastLoginAt: (0, common_1.date)(raw, "lastLogin"),
462
+ lastLogoutAt: (0, common_1.date)(raw, "lastLogout"),
463
+ claimedCenturyCakeAt: (0, common_1.date)(raw, "claimed_century_cake"),
464
+ claimedYear143CakeAt: (0, common_1.date)(raw, "claimed_year143_cake"),
465
+ claimedPotatoWarCrownAt: (0, common_1.date)(raw, "claim_potato_war_crown"),
466
+ claimedPotatoBasketAt: (0, common_1.date)(raw, "claimed_potato_basket"),
467
+ claimedPotatoTalismanAt: (0, common_1.date)(raw, "claimed_potato_talisman"),
468
+ claimedSoloBank: parseSoloBank(raw),
469
+ skyBlockFreeCookieAt: (0, common_1.date)(raw, "skyblock_free_cookie"),
470
+ flashingSale: {
471
+ clicks: (0, common_1.num)(raw, "flashingSaleClicks"),
472
+ opens: (0, common_1.num)(raw, "flashingSaleOpens"),
473
+ poppedUp: (0, common_1.num)(raw, "flashingSalePoppedUp"),
474
+ lastPopupAt: (0, common_1.date)(raw, "flashingSalePopup"),
475
+ },
476
+ challenges: nestedNumberMap((0, common_1.obj)(raw, "challenges")),
477
+ compassStats: nestedNumberMap((0, common_1.obj)(raw, "compassStats")),
478
+ voting: numberMap((0, common_1.obj)(raw, "voting")),
479
+ leveling: {
480
+ claimedRewards: numberList((0, common_1.obj)(raw, "leveling").claimedRewards),
481
+ },
482
+ dailyTwoKExpAt: (0, common_1.date)((0, common_1.obj)(raw, "eugene"), "dailyTwoKExp"),
483
+ anniversary: {
484
+ npcProgress2020: (0, common_1.num)(raw, "anniversaryNPCProgress2020"),
485
+ npcVisited2020: numberList(raw.anniversaryNPCVisited2020),
486
+ },
487
+ cooldowns: {
488
+ specialty: boolMap((0, common_1.obj)(raw, "specialtyCooldowns")),
489
+ holiday2016: boolMap((0, common_1.obj)(raw, "holiday2016Cooldowns")),
490
+ halloween2016: boolMap((0, common_1.obj)(raw, "halloween2016Cooldowns")),
491
+ halloween2019: boolMap((0, common_1.obj)(raw, "halloween2019Cooldowns")),
492
+ halloween2021: boolMap((0, common_1.obj)(raw, "halloween2021Cooldowns")),
493
+ christmas2019: boolMap((0, common_1.obj)(raw, "christmas2019Cooldowns")),
494
+ easter2021: boolMap((0, common_1.obj)(raw, "easter2021Cooldowns2")),
495
+ summer2020: boolMap((0, common_1.obj)(raw, "summer2020Cooldowns")),
496
+ },
497
+ xmas2019: parseXmas2019(raw),
498
+ achievements: parseAchievements(raw),
499
+ cosmetics: parseCosmetics(raw),
500
+ rankPurchase: {
501
+ vipAt: (0, common_1.date)(raw, "levelUp_VIP"),
502
+ vipPlusAt: (0, common_1.date)(raw, "levelUp_VIP_PLUS"),
503
+ mvpAt: (0, common_1.date)(raw, "levelUp_MVP"),
504
+ mvpPlusAt: (0, common_1.date)(raw, "levelUp_MVP_PLUS"),
505
+ },
506
+ rewards: parseRewards(raw),
507
+ gifting: parseGifting((0, common_1.obj)(raw, "giftingMeta")),
508
+ socialMedia: parseSocialMedia(raw),
509
+ housing: parseHousing((0, common_1.obj)(raw, "housingMeta")),
510
+ quests: parseQuests((0, common_1.obj)(raw, "quests")),
511
+ parkour: parseParkour(raw),
512
+ adventRewards: parseAdventRewards(raw),
513
+ seasonal: parseSeasonal(raw),
514
+ scorpiusBribes: parseScorpiusBribes(raw),
515
+ tourney: parseTourney((0, common_1.obj)(raw, "tourney")),
516
+ fireworkStorage: parseFireworks(raw.fireworkStorage),
517
+ friendRequests: stringList(raw.friendRequests),
518
+ stats: parseStats((0, common_1.obj)(raw, "stats"), (0, common_1.obj)(raw, "achievements")),
519
+ };
520
+ }
521
+ //# sourceMappingURL=player.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"player.js","sourceRoot":"","sources":["../src/player.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ export interface QuakecraftModeStats {
2
+ readonly wins: number;
3
+ readonly kills: number;
4
+ readonly deaths: number;
5
+ readonly killstreaks: number;
6
+ readonly distanceTravelled: number;
7
+ readonly shotsFired: number;
8
+ readonly headshots: number;
9
+ readonly killsSinceUpdateFeb2017: number;
10
+ }
11
+ export interface QuakecraftCosmetics {
12
+ readonly killSound: string;
13
+ readonly barrel: string;
14
+ readonly case: string;
15
+ readonly muzzle: string;
16
+ readonly sight: string;
17
+ readonly trigger: string;
18
+ readonly beam: string;
19
+ readonly armor: string;
20
+ readonly hat: string;
21
+ readonly boots: string;
22
+ readonly leggings: string;
23
+ readonly compass: string;
24
+ readonly killPrefixColor: string;
25
+ }
26
+ export interface QuakecraftSettings {
27
+ readonly instantRespawn: boolean;
28
+ readonly showPrefix: boolean;
29
+ readonly showDashCooldown: boolean;
30
+ readonly enableSound: boolean;
31
+ readonly compassSelected: boolean;
32
+ readonly alternativeGunCooldownIndicator: boolean;
33
+ readonly dashCooldown: string;
34
+ readonly dashPower: string;
35
+ readonly messageCoin: boolean;
36
+ readonly messageCoinMessages: boolean;
37
+ readonly messageKillstreaks: boolean;
38
+ readonly messageMultiKills: boolean;
39
+ readonly messageOthersKillsDeaths: boolean;
40
+ readonly messagePowerupCollections: boolean;
41
+ readonly messageYourDeaths: boolean;
42
+ readonly messageYourKills: boolean;
43
+ }
44
+ export interface QuakecraftMapVotes {
45
+ readonly ascended: number;
46
+ readonly belmorn: number;
47
+ readonly coldWar: number;
48
+ readonly faarah: number;
49
+ readonly reactor: number;
50
+ readonly town: number;
51
+ }
52
+ export interface QuakecraftStats {
53
+ readonly coins: number;
54
+ readonly highestKillstreak: number;
55
+ readonly killsDeathmatch: number;
56
+ readonly killsDeathmatchTeams: number;
57
+ readonly killsTimeAttack: number;
58
+ readonly killsTourneyUnknown: number;
59
+ readonly monthlyKillsA: number;
60
+ readonly monthlyKillsB: number;
61
+ readonly weeklyKillsA: number;
62
+ readonly weeklyKillsB: number;
63
+ readonly lastTourneyAd: Date | null;
64
+ readonly packages: readonly string[];
65
+ readonly solo: QuakecraftModeStats;
66
+ readonly teams: QuakecraftModeStats;
67
+ readonly soloTourney: QuakecraftModeStats;
68
+ readonly tourneyQuakeSolo2: QuakecraftModeStats;
69
+ readonly mapVotes: QuakecraftMapVotes;
70
+ readonly cosmetics: QuakecraftCosmetics;
71
+ readonly settings: QuakecraftSettings;
72
+ }
73
+ /** Parses a player's Quakecraft stats (`stats.Quake`) into a typed object. */
74
+ export declare function parseQuakecraft(stats: Record<string, unknown>): QuakecraftStats | null;
75
+ //# sourceMappingURL=quakecraft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quakecraft.d.ts","sourceRoot":"","sources":["../src/quakecraft.ts"],"names":[],"mappings":"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"}