@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
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.turboKartRacersMapIds = exports.turboKartRacersHorns = void 0;
4
+ exports.parseTurboKartRacers = parseTurboKartRacers;
5
+ const common_1 = require("./common");
6
+ exports.turboKartRacersHorns = [
7
+ "DEFAULT",
8
+ "SHY",
9
+ "ALIEN",
10
+ "TAXI",
11
+ "KLAXON",
12
+ "TRICYCLE",
13
+ "ALARM",
14
+ "KLOON",
15
+ "TEDDY",
16
+ "TRUCK",
17
+ "JERRY",
18
+ ];
19
+ exports.turboKartRacersMapIds = [
20
+ "retro",
21
+ "hypixelgp",
22
+ "olympus",
23
+ "junglerush",
24
+ "canyon",
25
+ ];
26
+ function stringArray(parent, key) {
27
+ const value = parent[key];
28
+ return Array.isArray(value)
29
+ ? value.filter((item) => typeof item === "string")
30
+ : [];
31
+ }
32
+ function parseMap(gingerBread, map, prefix) {
33
+ return {
34
+ map,
35
+ plays: (0, common_1.num)(gingerBread, `${prefix}${map}_plays`),
36
+ boxPickups: (0, common_1.num)(gingerBread, `${prefix}box_pickups_${map}`),
37
+ bronzeTrophies: (0, common_1.num)(gingerBread, `${prefix}bronze_trophy_${map}`),
38
+ silverTrophies: (0, common_1.num)(gingerBread, `${prefix}silver_trophy_${map}`),
39
+ goldTrophies: (0, common_1.num)(gingerBread, `${prefix}gold_trophy_${map}`),
40
+ };
41
+ }
42
+ function parseMaps(gingerBread, prefix) {
43
+ return Object.fromEntries(exports.turboKartRacersMapIds.map((map) => [
44
+ map,
45
+ parseMap(gingerBread, map, prefix),
46
+ ]));
47
+ }
48
+ function parsePeriod(gingerBread, period, prefix) {
49
+ return {
50
+ boxPickups: (0, common_1.num)(gingerBread, `${prefix}box_pickups_${period}`),
51
+ bronzeTrophies: (0, common_1.num)(gingerBread, `${prefix}bronze_trophy_${period}`),
52
+ silverTrophies: (0, common_1.num)(gingerBread, `${prefix}silver_trophy_${period}`),
53
+ goldTrophies: (0, common_1.num)(gingerBread, `${prefix}gold_trophy_${period}`),
54
+ };
55
+ }
56
+ function parsePeriods(gingerBread, prefix) {
57
+ return {
58
+ monthlyA: parsePeriod(gingerBread, "monthly_a", prefix),
59
+ monthlyB: parsePeriod(gingerBread, "monthly_b", prefix),
60
+ weeklyA: parsePeriod(gingerBread, "weekly_a", prefix),
61
+ weeklyB: parsePeriod(gingerBread, "weekly_b", prefix),
62
+ };
63
+ }
64
+ function parseLoadout(gingerBread) {
65
+ return {
66
+ boosterActive: (0, common_1.str)(gingerBread, "booster_active"),
67
+ engineActive: (0, common_1.str)(gingerBread, "engine_active"),
68
+ frameActive: (0, common_1.str)(gingerBread, "frame_active"),
69
+ helmetActive: (0, common_1.str)(gingerBread, "helmet_active"),
70
+ jacketActive: (0, common_1.str)(gingerBread, "jacket_active"),
71
+ pantsActive: (0, common_1.str)(gingerBread, "pants_active"),
72
+ shoesActive: (0, common_1.str)(gingerBread, "shoes_active"),
73
+ skinActive: (0, common_1.str)(gingerBread, "skin_active"),
74
+ particleTrail: (0, common_1.str)(gingerBread, "particle_trail"),
75
+ parts: (0, common_1.str)(gingerBread, "parts"),
76
+ };
77
+ }
78
+ function parseMonthlyPoints(gingerBread) {
79
+ const pattern = /^GingerBread_tkr_points__(\d+_\d+)_(?:points|position)$/;
80
+ const months = new Set();
81
+ for (const key of Object.keys(gingerBread)) {
82
+ const match = pattern.exec(key);
83
+ if (match) {
84
+ months.add(match[1]);
85
+ }
86
+ }
87
+ const result = {};
88
+ for (const month of months) {
89
+ result[month] = {
90
+ points: (0, common_1.num)(gingerBread, `GingerBread_tkr_points__${month}_points`),
91
+ position: (0, common_1.num)(gingerBread, `GingerBread_tkr_points__${month}_position`),
92
+ };
93
+ }
94
+ return result;
95
+ }
96
+ function parseTourney(gingerBread, prefix) {
97
+ return {
98
+ wins: (0, common_1.num)(gingerBread, `${prefix}wins`),
99
+ lapsCompleted: (0, common_1.num)(gingerBread, `${prefix}laps_completed`),
100
+ coinsPickedUp: (0, common_1.num)(gingerBread, `${prefix}coins_picked_up`),
101
+ boxPickups: (0, common_1.num)(gingerBread, `${prefix}box_pickups`),
102
+ goldTrophies: (0, common_1.num)(gingerBread, `${prefix}gold_trophy`),
103
+ silverTrophies: (0, common_1.num)(gingerBread, `${prefix}silver_trophy`),
104
+ bronzeTrophies: (0, common_1.num)(gingerBread, `${prefix}bronze_trophy`),
105
+ bananaHitsReceived: (0, common_1.num)(gingerBread, `${prefix}banana_hits_received`),
106
+ bananaHitsSent: (0, common_1.num)(gingerBread, `${prefix}banana_hits_sent`),
107
+ blueTorpedoHits: (0, common_1.num)(gingerBread, `${prefix}blue_torpedo_hit`),
108
+ maps: parseMaps(gingerBread, prefix),
109
+ periods: parsePeriods(gingerBread, prefix),
110
+ };
111
+ }
112
+ function parseTourneys(gingerBread) {
113
+ const pattern = /^tourney_gingerbread_solo_(\d+)_/;
114
+ const indices = new Set();
115
+ for (const key of Object.keys(gingerBread)) {
116
+ const match = pattern.exec(key);
117
+ if (match) {
118
+ indices.add(match[1]);
119
+ }
120
+ }
121
+ const result = {};
122
+ for (const index of indices) {
123
+ result[`solo_${index}`] = parseTourney(gingerBread, `tourney_gingerbread_solo_${index}_`);
124
+ }
125
+ return result;
126
+ }
127
+ function parseHorn(gingerBread) {
128
+ const raw = (0, common_1.str)(gingerBread, "horn");
129
+ return exports.turboKartRacersHorns.includes(raw) ? raw : "DEFAULT";
130
+ }
131
+ /** Parses a player's Turbo Kart Racers stats (`stats.GingerBread`) into a typed object. */
132
+ function parseTurboKartRacers(stats) {
133
+ if (Object.keys(stats).length === 0) {
134
+ return null;
135
+ }
136
+ return {
137
+ coins: (0, common_1.num)(stats, "coins"),
138
+ coinsPickedUp: (0, common_1.num)(stats, "coins_picked_up"),
139
+ wins: (0, common_1.num)(stats, "wins"),
140
+ completedLaps: (0, common_1.num)(stats, "laps_completed"),
141
+ boxPickups: (0, common_1.num)(stats, "box_pickups"),
142
+ goldTrophies: (0, common_1.num)(stats, "gold_trophy"),
143
+ silverTrophies: (0, common_1.num)(stats, "silver_trophy"),
144
+ bronzeTrophies: (0, common_1.num)(stats, "bronze_trophy"),
145
+ horn: parseHorn(stats),
146
+ bananaHitsReceived: (0, common_1.num)(stats, "banana_hits_received"),
147
+ bananaHitsSent: (0, common_1.num)(stats, "banana_hits_sent"),
148
+ blueTorpedoHits: (0, common_1.num)(stats, "blue_torpedo_hit"),
149
+ grandPrix: (0, common_1.bool)(stats, "grand_prix"),
150
+ grandPrixTokens: (0, common_1.num)(stats, "grand_prix_tokens"),
151
+ lastTourneyAd: (0, common_1.date)(stats, "lastTourneyAd"),
152
+ packages: stringArray(stats, "packages"),
153
+ lobbyResourcePack: (0, common_1.bool)(stats, "lobby_resource_pack"),
154
+ showWinPrefix: (0, common_1.bool)(stats, "show_win_prefix"),
155
+ prefixColor: (0, common_1.str)(stats, "prefix_color"),
156
+ itemMessages: (0, common_1.bool)(stats, "item_messages"),
157
+ temperatureGaugeIndicator: (0, common_1.bool)(stats, "temperature_gauge_indicator"),
158
+ loadout: parseLoadout(stats),
159
+ maps: parseMaps(stats, ""),
160
+ periods: parsePeriods(stats, ""),
161
+ monthlyPoints: parseMonthlyPoints(stats),
162
+ tourneys: parseTourneys(stats),
163
+ };
164
+ }
165
+ //# sourceMappingURL=turbokartracers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turbokartracers.js","sourceRoot":"","sources":["../src/turbokartracers.ts"],"names":[],"mappings":";;;AAuQA,oDAkCC;AAzSD,qCAAgD;AAEnC,QAAA,oBAAoB,GAAG;IAClC,SAAS;IACT,KAAK;IACL,OAAO;IACP,MAAM;IACN,QAAQ;IACR,UAAU;IACV,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACC,CAAC;AAIE,QAAA,qBAAqB,GAAG;IACnC,OAAO;IACP,WAAW;IACX,SAAS;IACT,YAAY;IACZ,QAAQ;CACA,CAAC;AA+FX,SAAS,WAAW,CAAC,MAA+B,EAAE,GAAW;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAClE,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,QAAQ,CACf,WAAoC,EACpC,GAAyB,EACzB,MAAc;IAEd,OAAO;QACL,GAAG;QACH,KAAK,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,GAAG,GAAG,QAAQ,CAAC;QAChD,UAAU,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,eAAe,GAAG,EAAE,CAAC;QAC3D,cAAc,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,iBAAiB,GAAG,EAAE,CAAC;QACjE,cAAc,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,iBAAiB,GAAG,EAAE,CAAC;QACjE,YAAY,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,eAAe,GAAG,EAAE,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,WAAoC,EACpC,MAAc;IAEd,OAAO,MAAM,CAAC,WAAW,CACvB,6BAAqB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACjC,GAAG;QACH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,MAAM,CAAC;KACnC,CAAC,CACsD,CAAC;AAC7D,CAAC;AAED,SAAS,WAAW,CAClB,WAAoC,EACpC,MAAc,EACd,MAAc;IAEd,OAAO;QACL,UAAU,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,eAAe,MAAM,EAAE,CAAC;QAC9D,cAAc,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,iBAAiB,MAAM,EAAE,CAAC;QACpE,cAAc,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,iBAAiB,MAAM,EAAE,CAAC;QACpE,YAAY,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,eAAe,MAAM,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,WAAoC,EACpC,MAAc;IAEd,OAAO;QACL,QAAQ,EAAE,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC;QACvD,QAAQ,EAAE,WAAW,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC;QACvD,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC;QACrD,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,WAAoC;IAEpC,OAAO;QACL,aAAa,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,gBAAgB,CAAC;QACjD,YAAY,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,eAAe,CAAC;QAC/C,WAAW,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,cAAc,CAAC;QAC7C,YAAY,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,eAAe,CAAC;QAC/C,YAAY,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,eAAe,CAAC;QAC/C,WAAW,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,cAAc,CAAC;QAC7C,WAAW,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,cAAc,CAAC;QAC7C,UAAU,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,aAAa,CAAC;QAC3C,aAAa,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,gBAAgB,CAAC;QACjD,KAAK,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,OAAO,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,WAAoC;IAEpC,MAAM,OAAO,GAAG,yDAAyD,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAiD,EAAE,CAAC;IAChE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,GAAG;YACd,MAAM,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,2BAA2B,KAAK,SAAS,CAAC;YACnE,QAAQ,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,2BAA2B,KAAK,WAAW,CAAC;SACxE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CACnB,WAAoC,EACpC,MAAc;IAEd,OAAO;QACL,IAAI,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC;QACvC,aAAa,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,gBAAgB,CAAC;QAC1D,aAAa,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,iBAAiB,CAAC;QAC3D,UAAU,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,aAAa,CAAC;QACpD,YAAY,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,aAAa,CAAC;QACtD,cAAc,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,eAAe,CAAC;QAC1D,cAAc,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,eAAe,CAAC;QAC1D,kBAAkB,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,sBAAsB,CAAC;QACrE,cAAc,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC;QAC7D,eAAe,EAAE,IAAA,YAAG,EAAC,WAAW,EAAE,GAAG,MAAM,kBAAkB,CAAC;QAC9D,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;QACpC,OAAO,EAAE,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,WAAoC;IAEpC,MAAM,OAAO,GAAG,kCAAkC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAgD,EAAE,CAAC;IAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,QAAQ,KAAK,EAAE,CAAC,GAAG,YAAY,CACpC,WAAW,EACX,4BAA4B,KAAK,GAAG,CACrC,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,WAAoC;IACrD,MAAM,GAAG,GAAG,IAAA,YAAG,EAAC,WAAW,EAAE,MAAM,CAAwB,CAAC;IAC5D,OAAO,4BAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC;AAED,2FAA2F;AAC3F,SAAgB,oBAAoB,CAClC,KAA8B;IAE9B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,KAAK,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,OAAO,CAAC;QAC1B,aAAa,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,iBAAiB,CAAC;QAC5C,IAAI,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,gBAAgB,CAAC;QAC3C,UAAU,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,aAAa,CAAC;QACrC,YAAY,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,aAAa,CAAC;QACvC,cAAc,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,eAAe,CAAC;QAC3C,cAAc,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,eAAe,CAAC;QAC3C,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC;QACtB,kBAAkB,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,sBAAsB,CAAC;QACtD,cAAc,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,kBAAkB,CAAC;QAC9C,eAAe,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,kBAAkB,CAAC;QAC/C,SAAS,EAAE,IAAA,aAAI,EAAC,KAAK,EAAE,YAAY,CAAC;QACpC,eAAe,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,mBAAmB,CAAC;QAChD,aAAa,EAAE,IAAA,aAAI,EAAC,KAAK,EAAE,eAAe,CAAC;QAC3C,QAAQ,EAAE,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC;QACxC,iBAAiB,EAAE,IAAA,aAAI,EAAC,KAAK,EAAE,qBAAqB,CAAC;QACrD,aAAa,EAAE,IAAA,aAAI,EAAC,KAAK,EAAE,iBAAiB,CAAC;QAC7C,WAAW,EAAE,IAAA,YAAG,EAAC,KAAK,EAAE,cAAc,CAAC;QACvC,YAAY,EAAE,IAAA,aAAI,EAAC,KAAK,EAAE,eAAe,CAAC;QAC1C,yBAAyB,EAAE,IAAA,aAAI,EAAC,KAAK,EAAE,6BAA6B,CAAC;QACrE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC;QAC5B,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1B,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;QAChC,aAAa,EAAE,kBAAkB,CAAC,KAAK,CAAC;QACxC,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC;KAC/B,CAAC;AACJ,CAAC"}
package/dist/uhc.d.ts ADDED
@@ -0,0 +1,55 @@
1
+ export interface UHCModeStats {
2
+ readonly wins: number;
3
+ readonly kills: number;
4
+ readonly deaths: number;
5
+ readonly headsEaten: number;
6
+ readonly ultimatesCrafted: number;
7
+ readonly extraUltimatesCrafted: number;
8
+ readonly kills2: number;
9
+ readonly wins2: number;
10
+ }
11
+ export interface UHCLeaderboardSettings {
12
+ readonly resetType: string;
13
+ readonly suhcMode: string;
14
+ readonly uhcMode: string;
15
+ }
16
+ export interface UHCPrivateGames {
17
+ readonly allRecipes: boolean;
18
+ readonly disableRecipes: boolean;
19
+ readonly infiniteCrafts: boolean;
20
+ readonly borderShrink: string;
21
+ readonly gameLength: string;
22
+ readonly gracePeriod: string;
23
+ readonly health: string;
24
+ readonly mode: string;
25
+ readonly teamSize: string;
26
+ }
27
+ export interface UHCStats {
28
+ readonly coins: number;
29
+ readonly score: number;
30
+ readonly equippedKit: string;
31
+ readonly clearupAchievement: boolean;
32
+ readonly cache3: boolean;
33
+ readonly savedStats: boolean;
34
+ readonly teammateDamage: boolean;
35
+ readonly uhcParkour1: boolean;
36
+ readonly uhcParkour2: boolean;
37
+ readonly uhcStarDisplay: boolean;
38
+ readonly perks: Readonly<Record<string, number>>;
39
+ readonly kits: Readonly<Record<string, number>>;
40
+ readonly monthly: Readonly<Record<string, number>>;
41
+ readonly packages: readonly string[];
42
+ readonly leaderboardSettings: UHCLeaderboardSettings;
43
+ readonly privateGames: UHCPrivateGames;
44
+ readonly solo: UHCModeStats;
45
+ readonly team: UHCModeStats;
46
+ readonly redVsBlue: UHCModeStats;
47
+ readonly noDiamonds: UHCModeStats;
48
+ readonly vanillaDoubles: UHCModeStats;
49
+ readonly brawl: UHCModeStats;
50
+ readonly soloBrawl: UHCModeStats;
51
+ readonly duoBrawl: UHCModeStats;
52
+ }
53
+ /** Parses a player's UHC stats (`stats.UHC`) into a typed object. */
54
+ export declare function parseUHC(stats: Record<string, unknown>): UHCStats | null;
55
+ //# sourceMappingURL=uhc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uhc.d.ts","sourceRoot":"","sources":["../src/uhc.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;IACrD,QAAQ,CAAC,YAAY,EAAE,eAAe,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;CACjC;AAyED,qEAAqE;AACrE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,GAAG,IAAI,CAiCxE"}
package/dist/uhc.js ADDED
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseUHC = parseUHC;
4
+ const common_1 = require("./common");
5
+ const MODE_SUFFIX = {
6
+ solo: "_solo",
7
+ team: "",
8
+ redVsBlue: "_red_vs_blue",
9
+ noDiamonds: "_no_diamonds",
10
+ vanillaDoubles: "_vanilla_doubles",
11
+ brawl: "_brawl",
12
+ soloBrawl: "_solo_brawl",
13
+ duoBrawl: "_duo_brawl",
14
+ };
15
+ function parseMode(uhc, suffix) {
16
+ return {
17
+ wins: (0, common_1.num)(uhc, `wins${suffix}`),
18
+ kills: (0, common_1.num)(uhc, `kills${suffix}`),
19
+ deaths: (0, common_1.num)(uhc, `deaths${suffix}`),
20
+ headsEaten: (0, common_1.num)(uhc, `heads_eaten${suffix}`),
21
+ ultimatesCrafted: (0, common_1.num)(uhc, `ultimates_crafted${suffix}`),
22
+ extraUltimatesCrafted: (0, common_1.num)(uhc, `extra_ultimates_crafted${suffix}`),
23
+ kills2: (0, common_1.num)(uhc, `kills${suffix}2`),
24
+ wins2: (0, common_1.num)(uhc, `wins${suffix}2`),
25
+ };
26
+ }
27
+ function parseLeaderboardSettings(uhc) {
28
+ const settings = (0, common_1.obj)(uhc, "leaderboardSettings");
29
+ return {
30
+ resetType: (0, common_1.str)(settings, "resetType"),
31
+ suhcMode: (0, common_1.str)(settings, "suhcMode"),
32
+ uhcMode: (0, common_1.str)(settings, "uhcMode"),
33
+ };
34
+ }
35
+ function parsePrivateGames(uhc) {
36
+ const games = (0, common_1.obj)(uhc, "privategames");
37
+ return {
38
+ allRecipes: (0, common_1.bool)(games, "all_recipes"),
39
+ disableRecipes: (0, common_1.bool)(games, "disable_recipes"),
40
+ infiniteCrafts: (0, common_1.bool)(games, "infinite_crafts"),
41
+ borderShrink: (0, common_1.str)(games, "border_shrink"),
42
+ gameLength: (0, common_1.str)(games, "game_length"),
43
+ gracePeriod: (0, common_1.str)(games, "grace_period"),
44
+ health: (0, common_1.str)(games, "health"),
45
+ mode: (0, common_1.str)(games, "mode"),
46
+ teamSize: (0, common_1.str)(games, "team_size"),
47
+ };
48
+ }
49
+ function prefixedNumberMap(source, prefix) {
50
+ const result = {};
51
+ for (const [key, value] of Object.entries(source)) {
52
+ if (key.startsWith(prefix) && typeof value === "number") {
53
+ result[key] = value;
54
+ }
55
+ }
56
+ return result;
57
+ }
58
+ function stringList(value) {
59
+ return Array.isArray(value)
60
+ ? value.filter((entry) => typeof entry === "string")
61
+ : [];
62
+ }
63
+ /** Parses a player's UHC stats (`stats.UHC`) into a typed object. */
64
+ function parseUHC(stats) {
65
+ const raw = stats.UHC;
66
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
67
+ return null;
68
+ }
69
+ const uhc = raw;
70
+ const modes = {};
71
+ for (const [name, suffix] of Object.entries(MODE_SUFFIX)) {
72
+ modes[name] = parseMode(uhc, suffix);
73
+ }
74
+ return {
75
+ coins: (0, common_1.num)(uhc, "coins"),
76
+ score: (0, common_1.num)(uhc, "score"),
77
+ equippedKit: (0, common_1.str)(uhc, "equippedKit") || "None",
78
+ clearupAchievement: (0, common_1.bool)(uhc, "clearup_achievement"),
79
+ cache3: (0, common_1.bool)(uhc, "cache3"),
80
+ savedStats: (0, common_1.bool)(uhc, "saved_stats"),
81
+ teammateDamage: (0, common_1.bool)(uhc, "teammate_damage"),
82
+ uhcParkour1: (0, common_1.bool)(uhc, "uhc_parkour_1"),
83
+ uhcParkour2: (0, common_1.bool)(uhc, "uhc_parkour_2"),
84
+ uhcStarDisplay: (0, common_1.bool)(uhc, "uhc_star_display"),
85
+ perks: prefixedNumberMap(uhc, "perk_"),
86
+ kits: prefixedNumberMap(uhc, "kit_"),
87
+ monthly: prefixedNumberMap(uhc, "monthly_"),
88
+ packages: stringList(uhc.packages),
89
+ leaderboardSettings: parseLeaderboardSettings(uhc),
90
+ privateGames: parsePrivateGames(uhc),
91
+ ...modes,
92
+ };
93
+ }
94
+ //# sourceMappingURL=uhc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uhc.js","sourceRoot":"","sources":["../src/uhc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ export interface VampireZRoleStats {
2
+ readonly kills: number;
3
+ readonly deaths: number;
4
+ readonly wins: number;
5
+ }
6
+ export interface VampireZPeriodWins {
7
+ readonly humanWinsA: number;
8
+ readonly humanWinsB: number;
9
+ readonly vampireWinsA: number;
10
+ readonly vampireWinsB: number;
11
+ }
12
+ export interface VampireZMapVotes {
13
+ readonly cavern: number;
14
+ readonly darkValley: number;
15
+ readonly erias: number;
16
+ readonly overhill: number;
17
+ readonly village: number;
18
+ }
19
+ export interface VampireZPerks {
20
+ readonly advancedSwag: number;
21
+ readonly babyHater: number;
22
+ readonly basicSwag: number;
23
+ readonly bloodBooster: number;
24
+ readonly bloodDrinker: number;
25
+ readonly constitution: number;
26
+ readonly drainPunch: number;
27
+ readonly expertSwag: number;
28
+ readonly explosiveKiller: number;
29
+ readonly finalBreath: number;
30
+ readonly fireproofing: number;
31
+ readonly foresight: number;
32
+ readonly frankensteinsMonster: number;
33
+ readonly goldBooster: number;
34
+ readonly goldStarter: number;
35
+ readonly hellborn: number;
36
+ readonly killBooster: number;
37
+ readonly renfield: number;
38
+ readonly theology: number;
39
+ readonly transfusion: number;
40
+ readonly vampiricMinion: number;
41
+ readonly vampiricScream: number;
42
+ readonly vanHelsing: number;
43
+ readonly waveBooster: number;
44
+ }
45
+ export interface VampireZStats {
46
+ readonly coins: number;
47
+ readonly goldBought: number;
48
+ readonly blood: boolean;
49
+ readonly updatedStats: boolean;
50
+ readonly usingOld: boolean;
51
+ readonly usingOldVamp: boolean;
52
+ readonly disableKillPing: boolean;
53
+ readonly noStartingCompass: boolean;
54
+ readonly noStartingGear: boolean;
55
+ readonly prefixDisabled: boolean;
56
+ readonly vampColor: string;
57
+ readonly boughtDyeColors: readonly string[];
58
+ readonly zombieKills: number;
59
+ readonly zombieDoubler: number;
60
+ readonly vampireDoubler: number;
61
+ readonly lootDrops: number;
62
+ readonly terrorLevel: number;
63
+ readonly mostVampireKills: number;
64
+ readonly mostVampireKillsLegacy: number;
65
+ readonly packages: readonly string[];
66
+ readonly votes: VampireZMapVotes;
67
+ readonly human: VampireZRoleStats;
68
+ readonly vampire: VampireZRoleStats;
69
+ readonly monthly: VampireZPeriodWins;
70
+ readonly weekly: VampireZPeriodWins;
71
+ readonly perks: VampireZPerks;
72
+ }
73
+ /** Parses a player's VampireZ stats (`stats.VampireZ`) into a typed object. */
74
+ export declare function parseVampireZ(stats: Record<string, unknown>): VampireZStats | null;
75
+ //# sourceMappingURL=vampirez.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vampirez.d.ts","sourceRoot":"","sources":["../src/vampirez.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseVampireZ = parseVampireZ;
4
+ const common_1 = require("./common");
5
+ function parseRole(vampireZ, role) {
6
+ return {
7
+ kills: (0, common_1.num)(vampireZ, `${role}_kills`),
8
+ deaths: (0, common_1.num)(vampireZ, `${role}_deaths`),
9
+ wins: (0, common_1.num)(vampireZ, `${role}_wins`),
10
+ };
11
+ }
12
+ function parsePeriodWins(vampireZ, period) {
13
+ return {
14
+ humanWinsA: (0, common_1.num)(vampireZ, `${period}_human_wins_a`),
15
+ humanWinsB: (0, common_1.num)(vampireZ, `${period}_human_wins_b`),
16
+ vampireWinsA: (0, common_1.num)(vampireZ, `${period}_vampire_wins_a`),
17
+ vampireWinsB: (0, common_1.num)(vampireZ, `${period}_vampire_wins_b`),
18
+ };
19
+ }
20
+ function parseMapVotes(vampireZ) {
21
+ return {
22
+ cavern: (0, common_1.num)(vampireZ, "votes_Cavern"),
23
+ darkValley: (0, common_1.num)(vampireZ, "votes_Dark Valley"),
24
+ erias: (0, common_1.num)(vampireZ, "votes_Erias"),
25
+ overhill: (0, common_1.num)(vampireZ, "votes_Overhill"),
26
+ village: (0, common_1.num)(vampireZ, "votes_Village"),
27
+ };
28
+ }
29
+ function parsePerks(vampireZ) {
30
+ return {
31
+ advancedSwag: (0, common_1.num)(vampireZ, "advanced_swag"),
32
+ babyHater: (0, common_1.num)(vampireZ, "baby_hater"),
33
+ basicSwag: (0, common_1.num)(vampireZ, "basic_swag"),
34
+ bloodBooster: (0, common_1.num)(vampireZ, "blood_booster"),
35
+ bloodDrinker: (0, common_1.num)(vampireZ, "blood_drinker"),
36
+ constitution: (0, common_1.num)(vampireZ, "constitution"),
37
+ drainPunch: (0, common_1.num)(vampireZ, "drain_punch"),
38
+ expertSwag: (0, common_1.num)(vampireZ, "expert_swag"),
39
+ explosiveKiller: (0, common_1.num)(vampireZ, "explosive_killer"),
40
+ finalBreath: (0, common_1.num)(vampireZ, "final_breath"),
41
+ fireproofing: (0, common_1.num)(vampireZ, "fireproofing"),
42
+ foresight: (0, common_1.num)(vampireZ, "foresight"),
43
+ frankensteinsMonster: (0, common_1.num)(vampireZ, "frankensteins_monster"),
44
+ goldBooster: (0, common_1.num)(vampireZ, "gold_booster"),
45
+ goldStarter: (0, common_1.num)(vampireZ, "gold_starter"),
46
+ hellborn: (0, common_1.num)(vampireZ, "hellborn"),
47
+ killBooster: (0, common_1.num)(vampireZ, "kill_booster"),
48
+ renfield: (0, common_1.num)(vampireZ, "renfield"),
49
+ theology: (0, common_1.num)(vampireZ, "theology"),
50
+ transfusion: (0, common_1.num)(vampireZ, "transfusion"),
51
+ vampiricMinion: (0, common_1.num)(vampireZ, "vampiric_minion"),
52
+ vampiricScream: (0, common_1.num)(vampireZ, "vampiric_scream"),
53
+ vanHelsing: (0, common_1.num)(vampireZ, "van_helsing"),
54
+ waveBooster: (0, common_1.num)(vampireZ, "wave_booster"),
55
+ };
56
+ }
57
+ function parsePackages(vampireZ) {
58
+ const value = vampireZ.packages;
59
+ return Array.isArray(value)
60
+ ? value.filter((entry) => typeof entry === "string")
61
+ : [];
62
+ }
63
+ function parseBoughtDyeColors(vampireZ) {
64
+ return Object.keys(vampireZ)
65
+ .filter((key) => key.startsWith("bought_dye_color:") && vampireZ[key] === true)
66
+ .map((key) => key.slice("bought_dye_color:".length));
67
+ }
68
+ /** Parses a player's VampireZ stats (`stats.VampireZ`) into a typed object. */
69
+ function parseVampireZ(stats) {
70
+ const raw = stats.VampireZ;
71
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
72
+ return null;
73
+ }
74
+ const vampireZ = raw;
75
+ return {
76
+ coins: (0, common_1.num)(vampireZ, "coins") || (0, common_1.num)(vampireZ, "tokens"),
77
+ goldBought: (0, common_1.num)(vampireZ, "gold_bought"),
78
+ blood: (0, common_1.bool)(vampireZ, "blood"),
79
+ updatedStats: (0, common_1.bool)(vampireZ, "updated_stats"),
80
+ usingOld: (0, common_1.bool)(vampireZ, "using_old"),
81
+ usingOldVamp: (0, common_1.bool)(vampireZ, "using_old_vamp"),
82
+ disableKillPing: (0, common_1.bool)(vampireZ, "disable_kill_ping"),
83
+ noStartingCompass: (0, common_1.bool)(vampireZ, "no_starting_compass"),
84
+ noStartingGear: (0, common_1.bool)(vampireZ, "no_starting_gear"),
85
+ prefixDisabled: (0, common_1.bool)(vampireZ, "prefix_disabled"),
86
+ vampColor: (0, common_1.str)(vampireZ, "vamp_color"),
87
+ boughtDyeColors: parseBoughtDyeColors(vampireZ),
88
+ zombieKills: (0, common_1.num)(vampireZ, "zombie_kills"),
89
+ zombieDoubler: (0, common_1.num)(vampireZ, "zombie_doubler"),
90
+ vampireDoubler: (0, common_1.num)(vampireZ, "vampire_doubler"),
91
+ lootDrops: (0, common_1.num)(vampireZ, "loot_drops"),
92
+ terrorLevel: (0, common_1.num)(vampireZ, "terror_level"),
93
+ mostVampireKills: (0, common_1.num)(vampireZ, "most_vampire_kills_new"),
94
+ mostVampireKillsLegacy: (0, common_1.num)(vampireZ, "most_vampire_kills"),
95
+ packages: parsePackages(vampireZ),
96
+ votes: parseMapVotes(vampireZ),
97
+ human: parseRole(vampireZ, "human"),
98
+ vampire: parseRole(vampireZ, "vampire"),
99
+ monthly: parsePeriodWins(vampireZ, "monthly"),
100
+ weekly: parsePeriodWins(vampireZ, "weekly"),
101
+ perks: parsePerks(vampireZ),
102
+ };
103
+ }
104
+ //# sourceMappingURL=vampirez.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vampirez.js","sourceRoot":"","sources":["../src/vampirez.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ export interface WallsStats {
2
+ readonly coins: number;
3
+ readonly kills: number;
4
+ readonly deaths: number;
5
+ readonly assists: number;
6
+ readonly wins: number;
7
+ readonly losses: number;
8
+ readonly insaneFarmer: number;
9
+ readonly blood: boolean;
10
+ readonly combatTracker: boolean;
11
+ readonly noStartingArmor: boolean;
12
+ readonly noStartingItems: boolean;
13
+ readonly noStartingTools: boolean;
14
+ readonly shoutCount: number;
15
+ readonly votesFantasy: number;
16
+ readonly monthlyAssistsA: number;
17
+ readonly monthlyAssistsB: number;
18
+ readonly weeklyAssistsA: number;
19
+ readonly weeklyAssistsB: number;
20
+ readonly monthlyKillsA: number;
21
+ readonly monthlyKillsB: number;
22
+ readonly weeklyKillsA: number;
23
+ readonly weeklyKillsB: number;
24
+ readonly monthlyWinsA: number;
25
+ readonly monthlyWinsB: number;
26
+ readonly weeklyWinsA: number;
27
+ readonly weeklyWinsB: number;
28
+ readonly adrenaline: number;
29
+ readonly artisan: number;
30
+ readonly attractor: number;
31
+ readonly bacon: number;
32
+ readonly berserk: number;
33
+ readonly blacksmith: number;
34
+ readonly blacksmithStarter: number;
35
+ readonly bomberman: number;
36
+ readonly bossDigger: number;
37
+ readonly bossGuardian: number;
38
+ readonly bossSkills: number;
39
+ readonly burnBabyBurn: number;
40
+ readonly canadian: number;
41
+ readonly catsEye: number;
42
+ readonly chainkiller: number;
43
+ readonly chef: number;
44
+ readonly chemist: number;
45
+ readonly creeperEgg: number;
46
+ readonly dwarwenSkills: number;
47
+ readonly ecologist: number;
48
+ readonly einstein: number;
49
+ readonly escapist: number;
50
+ readonly excavator: number;
51
+ readonly expertMiner: number;
52
+ readonly farmer: number;
53
+ readonly finalForm: number;
54
+ readonly fireproof: number;
55
+ readonly fisherman: number;
56
+ readonly fortune: number;
57
+ readonly getToTheChoppa: number;
58
+ readonly goldRush: number;
59
+ readonly graveDigger: number;
60
+ readonly grimReaper: number;
61
+ readonly guitarist: number;
62
+ readonly haste: number;
63
+ readonly hunter: number;
64
+ readonly lazyman: number;
65
+ readonly leatherWorker: number;
66
+ readonly masterTroll: number;
67
+ readonly necromancer: number;
68
+ readonly opportunity: number;
69
+ readonly pyromaniac: number;
70
+ readonly ready: number;
71
+ readonly reallyShiny: number;
72
+ readonly redstoneExpert: number;
73
+ readonly sage: number;
74
+ readonly scotsman: number;
75
+ readonly skybaseKing: number;
76
+ readonly smartBoy: number;
77
+ readonly snackLover: number;
78
+ readonly soupDrinker: number;
79
+ readonly step: number;
80
+ readonly stoneGuardian: number;
81
+ readonly swift: number;
82
+ readonly tenacity: number;
83
+ readonly thatsHot: number;
84
+ readonly tragedy: number;
85
+ readonly trapEngineer: number;
86
+ readonly vampirism: number;
87
+ readonly veryFortunate: number;
88
+ readonly vitality: number;
89
+ readonly packages: readonly string[];
90
+ readonly inventory: Readonly<Record<string, string>>;
91
+ readonly inventoryLayout: Readonly<Record<string, string>>;
92
+ readonly inventoryLayout2: Readonly<Record<string, string>>;
93
+ }
94
+ /** Parses a player's Walls stats (`stats.Walls`) into a typed object. */
95
+ export declare function parseWalls(stats: Record<string, unknown>): WallsStats | null;
96
+ //# sourceMappingURL=walls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walls.d.ts","sourceRoot":"","sources":["../src/walls.ts"],"names":[],"mappings":"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"}