hive-bedrock-api 4.0.0 → 4.0.1

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.
@@ -0,0 +1,293 @@
1
+ import { Game, Timeframe } from "hive-bedrock-data";
2
+ import { ProcessedPlayerResponse } from "./player";
3
+ export interface ProcessedGameBED {
4
+ id: Game.BedWars;
5
+ xp: number;
6
+ played: number;
7
+ victories: number;
8
+ losses: number;
9
+ win_percentage: number;
10
+ kills: number;
11
+ deaths: number;
12
+ kdr: number;
13
+ final_kills: number;
14
+ beds_destroyed: number;
15
+ prestige: number;
16
+ }
17
+ export interface ProcessedGameDROP {
18
+ id: Game.BlockDrop;
19
+ xp: number;
20
+ played: number;
21
+ victories: number;
22
+ losses: number;
23
+ win_percentage: number;
24
+ deaths: number;
25
+ blocks_destroyed: number;
26
+ powerups_collected: number;
27
+ vaults_used: number;
28
+ }
29
+ export interface ProcessedGamePARTY {
30
+ id: Game.BlockParty;
31
+ xp: number;
32
+ played: number;
33
+ victories: number;
34
+ losses: number;
35
+ win_percentage: number;
36
+ powerups_collected: number;
37
+ rounds_survived: number;
38
+ }
39
+ export interface ProcessedGameCTF {
40
+ id: Game.CaptureTheFlag;
41
+ xp: number;
42
+ played: number;
43
+ victories: number;
44
+ losses: number;
45
+ win_percentage: number;
46
+ kills: number;
47
+ deaths: number;
48
+ kdr: number;
49
+ assists: number;
50
+ flags_captured: number;
51
+ flags_returned: number;
52
+ }
53
+ export interface ProcessedGameDR {
54
+ id: Game.DeathRun;
55
+ xp: number;
56
+ played: number;
57
+ victories: number;
58
+ losses: number;
59
+ win_percentage: number;
60
+ kills: number;
61
+ deaths: number;
62
+ kdr: number;
63
+ checkpoints: number;
64
+ activated: number;
65
+ }
66
+ export interface ProcessedGameGRAV {
67
+ id: Game.Gravity;
68
+ xp: number;
69
+ played: number;
70
+ victories: number;
71
+ losses: number;
72
+ win_percentage: number;
73
+ deaths: number;
74
+ maps_completed: number;
75
+ maps_completed_without_dying: number;
76
+ }
77
+ export interface ProcessedGameGROUND {
78
+ id: Game.GroundWars;
79
+ xp: number;
80
+ played: number;
81
+ victories: number;
82
+ losses: number;
83
+ win_percentage: number;
84
+ kills: number;
85
+ deaths: number;
86
+ kdr: number;
87
+ blocks_destroyed: number;
88
+ blocks_placed: number;
89
+ projectiles_fired: number;
90
+ }
91
+ export interface ProcessedGameBUILD {
92
+ id: Game.BuildBattle;
93
+ xp: number;
94
+ played: number;
95
+ victories: number;
96
+ losses: number;
97
+ win_percentage: number;
98
+ rating_meh_received: number;
99
+ rating_okay_received: number;
100
+ rating_good_received: number;
101
+ rating_great_received: number;
102
+ rating_love_received: number;
103
+ total_ratings: number;
104
+ }
105
+ export interface ProcessedGameHIDE {
106
+ id: Game.HideAndSeek;
107
+ xp: number;
108
+ played: number;
109
+ victories: number;
110
+ losses: number;
111
+ win_percentage: number;
112
+ deaths: number;
113
+ hider_kills: number;
114
+ seeker_kills: number;
115
+ kpg: number;
116
+ }
117
+ export interface ProcessedGameMURDER {
118
+ id: Game.MurderMystery;
119
+ xp: number;
120
+ played: number;
121
+ victories: number;
122
+ losses: number;
123
+ win_percentage: number;
124
+ murders: number;
125
+ deaths: number;
126
+ edr: number;
127
+ coins: number;
128
+ murderer_eliminations: number;
129
+ prestige: number;
130
+ }
131
+ export interface ProcessedGameSKY {
132
+ id: Game.SkyWars;
133
+ xp: number;
134
+ played: number;
135
+ victories: number;
136
+ losses: number;
137
+ win_percentage: number;
138
+ kills: number;
139
+ deaths: number;
140
+ kdr: number;
141
+ mystery_chests_destroyed: number;
142
+ ores_mined: number;
143
+ spells_used: number;
144
+ prestige: number;
145
+ }
146
+ export interface ProcessedGameSKYKITS {
147
+ id: Game.SkyWarsKits;
148
+ xp: number;
149
+ played: number;
150
+ victories: number;
151
+ losses: number;
152
+ win_percentage: number;
153
+ kills: number;
154
+ deaths: number;
155
+ kdr: number;
156
+ mystery_chests_destroyed: number;
157
+ ores_mined: number;
158
+ spells_used: number;
159
+ selected_kit: string;
160
+ }
161
+ export interface ProcessedGameSKYCLASSIC {
162
+ id: Game.SkyWarsClassic;
163
+ xp: number;
164
+ played: number;
165
+ victories: number;
166
+ losses: number;
167
+ win_percentage: number;
168
+ kills: number;
169
+ deaths: number;
170
+ kdr: number;
171
+ selected_kit: string;
172
+ }
173
+ export interface ProcessedGameSG {
174
+ id: Game.SurvivalGames;
175
+ xp: number;
176
+ played: number;
177
+ victories: number;
178
+ losses: number;
179
+ win_percentage: number;
180
+ kills: number;
181
+ deaths: number;
182
+ kdr: number;
183
+ cows: number;
184
+ deathmatches: number;
185
+ crates: number;
186
+ teleporters_used: number;
187
+ launchpads_used: number;
188
+ flares_used: number;
189
+ }
190
+ export interface ProcessedGameBRIDGE {
191
+ id: Game.TheBridge;
192
+ xp: number;
193
+ played: number;
194
+ victories: number;
195
+ losses: number;
196
+ win_percentage: number;
197
+ kills: number;
198
+ deaths: number;
199
+ kdr: number;
200
+ goals: number;
201
+ }
202
+ export interface ProcessedGameWARS {
203
+ id: Game.TreasureWars;
204
+ xp: number;
205
+ played: number;
206
+ victories: number;
207
+ losses: number;
208
+ win_percentage: number;
209
+ kills: number;
210
+ deaths: number;
211
+ kdr: number;
212
+ final_kills: number;
213
+ treasure_destroyed: number;
214
+ prestige: number;
215
+ }
216
+ export interface ProcessedGamePARKOUR {
217
+ id: Game.ParkourWorlds;
218
+ worlds: {
219
+ name: string;
220
+ parkour_stars: number;
221
+ courses: {
222
+ name: string;
223
+ best_run_time: number;
224
+ best_checkpoint_times: {
225
+ position: {
226
+ x: number;
227
+ y: number;
228
+ z: number;
229
+ };
230
+ time: number;
231
+ }[];
232
+ collected_stars: {
233
+ x: number;
234
+ y: number;
235
+ z: number;
236
+ }[];
237
+ course_stars: number;
238
+ }[];
239
+ }[];
240
+ total_stars: number;
241
+ }
242
+ export type AdditionalStatistics<T extends Timeframe, L extends boolean> = (T extends Timeframe.AllTime ? {
243
+ level: number;
244
+ } & (L extends true ? {} : {
245
+ first_played: number;
246
+ }) : {
247
+ position: number;
248
+ username: string;
249
+ }) & (L extends true ? {
250
+ position: number;
251
+ username: string;
252
+ UUID: string;
253
+ } : {});
254
+ export interface ProcessedGame<T extends Timeframe, L extends boolean> {
255
+ [Game.BedWars]: ProcessedGameBED & AdditionalStatistics<T, L>;
256
+ [Game.BlockDrop]: ProcessedGameDROP & AdditionalStatistics<T, L>;
257
+ [Game.BlockParty]: ProcessedGamePARTY & AdditionalStatistics<T, L>;
258
+ [Game.CaptureTheFlag]: ProcessedGameCTF & AdditionalStatistics<T, L>;
259
+ [Game.DeathRun]: ProcessedGameDR & AdditionalStatistics<T, L>;
260
+ [Game.Gravity]: ProcessedGameGRAV & AdditionalStatistics<T, L>;
261
+ [Game.GroundWars]: ProcessedGameGROUND & AdditionalStatistics<T, L>;
262
+ [Game.BuildBattle]: ProcessedGameBUILD & AdditionalStatistics<T, L>;
263
+ [Game.HideAndSeek]: ProcessedGameHIDE & AdditionalStatistics<T, L>;
264
+ [Game.MurderMystery]: ProcessedGameMURDER & AdditionalStatistics<T, L>;
265
+ [Game.SkyWars]: ProcessedGameSKY & AdditionalStatistics<T, L>;
266
+ [Game.SkyWarsClassic]: ProcessedGameSKYCLASSIC & AdditionalStatistics<T, L>;
267
+ [Game.SkyWarsKits]: ProcessedGameSKYKITS & AdditionalStatistics<T, L>;
268
+ [Game.SurvivalGames]: ProcessedGameSG & AdditionalStatistics<T, L>;
269
+ [Game.TheBridge]: ProcessedGameBRIDGE & AdditionalStatistics<T, L>;
270
+ [Game.TreasureWars]: ProcessedGameWARS & AdditionalStatistics<T, L>;
271
+ [Game.ParkourWorlds]: L extends true ? never : T extends Timeframe.AllTime ? ProcessedGamePARKOUR : never;
272
+ [Game.MobGame]: never;
273
+ [Game.GhostInvasion]: never;
274
+ }
275
+ export declare function processGame<G extends Game, T extends Timeframe, L extends boolean>(game: G, timeframe: T, isLeaderboard: L, response: any): ProcessedGame<T, L>[G] | null;
276
+ export interface ProcessedAllGamesResponse {
277
+ player: ProcessedPlayerResponse;
278
+ statistics: {
279
+ [G in Game]: ProcessedGame<Timeframe.AllTime, false>[G] | null;
280
+ };
281
+ }
282
+ export interface ProcessedMonthlyGamesResponse {
283
+ statistics: {
284
+ [G in Game]: ProcessedGame<Timeframe.Monthly, false>[G] | null;
285
+ };
286
+ }
287
+ export interface AvailableLeaderboard {
288
+ month: string;
289
+ year: string;
290
+ month_number: number;
291
+ resource: string;
292
+ }
293
+ export type AvailableLeaderboardResponse = AvailableLeaderboard[];
@@ -0,0 +1,396 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var _a;
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.processGame = processGame;
21
+ var hive_bedrock_data_1 = require("hive-bedrock-data");
22
+ function processGame(game, timeframe, isLeaderboard, response) {
23
+ var _a;
24
+ if (!response)
25
+ return null;
26
+ if ("index" in response && response.human_index === 2147483647)
27
+ return null;
28
+ if (Array.isArray(response))
29
+ return null;
30
+ var data = processors[game](response);
31
+ if (!data)
32
+ return null;
33
+ if ("played" in data && data.played === 0 && "xp" in data && data.xp === 0)
34
+ return null;
35
+ if (timeframe === hive_bedrock_data_1.Timeframe.AllTime && "xp" in data)
36
+ data.level = (_a = (0, hive_bedrock_data_1.calculateLevelFromXP)(data.xp, game)) !== null && _a !== void 0 ? _a : 1;
37
+ if (timeframe === hive_bedrock_data_1.Timeframe.AllTime && "first_played" in response)
38
+ data.first_played = response.first_played;
39
+ if ((isLeaderboard || timeframe !== hive_bedrock_data_1.Timeframe.AllTime) && data.id !== hive_bedrock_data_1.Game.ParkourWorlds)
40
+ data.position = response.human_index;
41
+ if ((isLeaderboard || timeframe !== hive_bedrock_data_1.Timeframe.AllTime) && data.id !== hive_bedrock_data_1.Game.ParkourWorlds)
42
+ data.username = response.username;
43
+ if (isLeaderboard && data.id !== hive_bedrock_data_1.Game.ParkourWorlds)
44
+ data.UUID = response.UUID;
45
+ return data;
46
+ }
47
+ var processors = (_a = {},
48
+ _a[hive_bedrock_data_1.Game.BedWars] = function (response) {
49
+ var _a, _b, _c, _d, _e, _f, _g, _h;
50
+ return ({
51
+ id: hive_bedrock_data_1.Game.BedWars,
52
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
53
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
54
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
55
+ losses: calculateLosses(response.played, response.victories),
56
+ win_percentage: calculateWinPercentage(response.victories, response.played),
57
+ kills: (_d = response.kills) !== null && _d !== void 0 ? _d : 0,
58
+ deaths: (_e = response.deaths) !== null && _e !== void 0 ? _e : 0,
59
+ kdr: calculateKDR(response.kills, response.deaths),
60
+ final_kills: (_f = response.final_kills) !== null && _f !== void 0 ? _f : 0,
61
+ beds_destroyed: (_g = response.beds_destroyed) !== null && _g !== void 0 ? _g : 0,
62
+ prestige: (_h = response.prestige) !== null && _h !== void 0 ? _h : 0,
63
+ });
64
+ },
65
+ _a[hive_bedrock_data_1.Game.BlockDrop] = function (response) {
66
+ var _a, _b, _c, _d, _e, _f, _g;
67
+ return ({
68
+ id: hive_bedrock_data_1.Game.BlockDrop,
69
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
70
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
71
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
72
+ losses: calculateLosses(response.played, response.victories),
73
+ win_percentage: calculateWinPercentage(response.victories, response.played),
74
+ deaths: (_d = response.deaths) !== null && _d !== void 0 ? _d : 0,
75
+ blocks_destroyed: (_e = response.blocks_destroyed) !== null && _e !== void 0 ? _e : 0,
76
+ powerups_collected: (_f = response.powerups_collected) !== null && _f !== void 0 ? _f : 0,
77
+ vaults_used: (_g = response.vaults_used) !== null && _g !== void 0 ? _g : 0,
78
+ });
79
+ },
80
+ _a[hive_bedrock_data_1.Game.BlockParty] = function (response) {
81
+ var _a, _b, _c, _d, _e;
82
+ return ({
83
+ id: hive_bedrock_data_1.Game.BlockParty,
84
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
85
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
86
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
87
+ losses: calculateLosses(response.played, response.victories),
88
+ win_percentage: calculateWinPercentage(response.victories, response.played),
89
+ powerups_collected: (_d = response.powerups_collected) !== null && _d !== void 0 ? _d : 0,
90
+ rounds_survived: (_e = response.rounds_survived) !== null && _e !== void 0 ? _e : 0,
91
+ });
92
+ },
93
+ _a[hive_bedrock_data_1.Game.CaptureTheFlag] = function (response) {
94
+ var _a, _b, _c, _d, _e, _f, _g, _h;
95
+ return ({
96
+ id: hive_bedrock_data_1.Game.CaptureTheFlag,
97
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
98
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
99
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
100
+ losses: calculateLosses(response.played, response.victories),
101
+ win_percentage: calculateWinPercentage(response.victories, response.played),
102
+ kills: (_d = response.kills) !== null && _d !== void 0 ? _d : 0,
103
+ deaths: (_e = response.deaths) !== null && _e !== void 0 ? _e : 0,
104
+ kdr: calculateKDR(response.kills, response.deaths),
105
+ assists: (_f = response.assists) !== null && _f !== void 0 ? _f : 0,
106
+ flags_captured: (_g = response.flags_captured) !== null && _g !== void 0 ? _g : 0,
107
+ flags_returned: (_h = response.flags_returned) !== null && _h !== void 0 ? _h : 0,
108
+ });
109
+ },
110
+ _a[hive_bedrock_data_1.Game.DeathRun] = function (response) {
111
+ var _a, _b, _c, _d, _e, _f, _g;
112
+ return ({
113
+ id: hive_bedrock_data_1.Game.DeathRun,
114
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
115
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
116
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
117
+ losses: calculateLosses(response.played, response.victories),
118
+ win_percentage: calculateWinPercentage(response.victories, response.played),
119
+ kills: (_d = response.kills) !== null && _d !== void 0 ? _d : 0,
120
+ deaths: (_e = response.deaths) !== null && _e !== void 0 ? _e : 0,
121
+ kdr: calculateKDR(response.kills, response.deaths),
122
+ checkpoints: (_f = response.checkpoints) !== null && _f !== void 0 ? _f : 0,
123
+ activated: (_g = response.activated) !== null && _g !== void 0 ? _g : 0,
124
+ });
125
+ },
126
+ _a[hive_bedrock_data_1.Game.Gravity] = function (response) {
127
+ var _a, _b, _c, _d, _e, _f;
128
+ return ({
129
+ id: hive_bedrock_data_1.Game.Gravity,
130
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
131
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
132
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
133
+ losses: calculateLosses(response.played, response.victories),
134
+ win_percentage: calculateWinPercentage(response.victories, response.played),
135
+ deaths: (_d = response.deaths) !== null && _d !== void 0 ? _d : 0,
136
+ maps_completed: (_e = response.maps_completed) !== null && _e !== void 0 ? _e : 0,
137
+ maps_completed_without_dying: (_f = response.maps_completed_without_dying) !== null && _f !== void 0 ? _f : 0,
138
+ });
139
+ },
140
+ _a[hive_bedrock_data_1.Game.GroundWars] = function (response) {
141
+ var _a, _b, _c, _d, _e, _f, _g, _h;
142
+ return ({
143
+ id: hive_bedrock_data_1.Game.GroundWars,
144
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
145
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
146
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
147
+ losses: calculateLosses(response.played, response.victories),
148
+ win_percentage: calculateWinPercentage(response.victories, response.played),
149
+ kills: (_d = response.kills) !== null && _d !== void 0 ? _d : 0,
150
+ deaths: (_e = response.deaths) !== null && _e !== void 0 ? _e : 0,
151
+ kdr: calculateKDR(response.kills, response.deaths),
152
+ blocks_destroyed: (_f = response.blocks_destroyed) !== null && _f !== void 0 ? _f : 0,
153
+ blocks_placed: (_g = response.blocks_placed) !== null && _g !== void 0 ? _g : 0,
154
+ projectiles_fired: (_h = response.projectiles_fired) !== null && _h !== void 0 ? _h : 0,
155
+ });
156
+ },
157
+ _a[hive_bedrock_data_1.Game.BuildBattle] = function (response) {
158
+ var _a, _b, _c, _d, _e, _f, _g, _h;
159
+ return ({
160
+ id: hive_bedrock_data_1.Game.BuildBattle,
161
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
162
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
163
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
164
+ losses: calculateLosses(response.played, response.victories),
165
+ win_percentage: calculateWinPercentage(response.victories, response.played),
166
+ rating_meh_received: (_d = response.rating_meh_received) !== null && _d !== void 0 ? _d : 0,
167
+ rating_okay_received: (_e = response.rating_okay_received) !== null && _e !== void 0 ? _e : 0,
168
+ rating_good_received: (_f = response.rating_good_received) !== null && _f !== void 0 ? _f : 0,
169
+ rating_great_received: (_g = response.rating_great_received) !== null && _g !== void 0 ? _g : 0,
170
+ rating_love_received: (_h = response.rating_love_received) !== null && _h !== void 0 ? _h : 0,
171
+ total_ratings: calculateTotal([
172
+ response.rating_meh_received,
173
+ response.rating_okay_received,
174
+ response.rating_good_received,
175
+ response.rating_great_received,
176
+ response.rating_love_received,
177
+ ]),
178
+ });
179
+ },
180
+ _a[hive_bedrock_data_1.Game.HideAndSeek] = function (response) {
181
+ var _a, _b, _c, _d, _e, _f;
182
+ return ({
183
+ id: hive_bedrock_data_1.Game.HideAndSeek,
184
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
185
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
186
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
187
+ losses: calculateLosses(response.played, response.victories),
188
+ win_percentage: calculateWinPercentage(response.victories, response.played),
189
+ deaths: (_d = response.deaths) !== null && _d !== void 0 ? _d : 0,
190
+ hider_kills: (_e = response.hider_kills) !== null && _e !== void 0 ? _e : 0,
191
+ kpg: calculateKPG(response.hider_kills, response.played),
192
+ seeker_kills: (_f = response.seeker_kills) !== null && _f !== void 0 ? _f : 0,
193
+ });
194
+ },
195
+ _a[hive_bedrock_data_1.Game.MurderMystery] = function (response) {
196
+ var _a, _b, _c, _d, _e, _f, _g, _h;
197
+ return ({
198
+ id: hive_bedrock_data_1.Game.MurderMystery,
199
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
200
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
201
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
202
+ losses: calculateLosses(response.played, response.victories),
203
+ win_percentage: calculateWinPercentage(response.victories, response.played),
204
+ murders: (_d = response.murders) !== null && _d !== void 0 ? _d : 0,
205
+ deaths: (_e = response.deaths) !== null && _e !== void 0 ? _e : 0,
206
+ edr: calculateKDR(response.murderer_eliminations, response.deaths),
207
+ coins: (_f = response.coins) !== null && _f !== void 0 ? _f : 0,
208
+ murderer_eliminations: (_g = response.murderer_eliminations) !== null && _g !== void 0 ? _g : 0,
209
+ prestige: (_h = response.prestige) !== null && _h !== void 0 ? _h : 0,
210
+ });
211
+ },
212
+ _a[hive_bedrock_data_1.Game.SkyWars] = function (response) {
213
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
214
+ return ({
215
+ id: hive_bedrock_data_1.Game.SkyWars,
216
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
217
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
218
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
219
+ losses: calculateLosses(response.played, response.victories),
220
+ win_percentage: calculateWinPercentage(response.victories, response.played),
221
+ kills: (_d = response.kills) !== null && _d !== void 0 ? _d : 0,
222
+ deaths: (_e = response.deaths) !== null && _e !== void 0 ? _e : 0,
223
+ kdr: calculateKDR(response.kills, response.deaths),
224
+ mystery_chests_destroyed: (_f = response.mystery_chests_destroyed) !== null && _f !== void 0 ? _f : 0,
225
+ ores_mined: (_g = response.ores_mined) !== null && _g !== void 0 ? _g : 0,
226
+ spells_used: (_h = response.spells_used) !== null && _h !== void 0 ? _h : 0,
227
+ prestige: (_j = response.prestige) !== null && _j !== void 0 ? _j : 0,
228
+ });
229
+ },
230
+ _a[hive_bedrock_data_1.Game.SkyWarsKits] = function (response) {
231
+ var _a, _b, _c, _d, _e, _f, _g, _h;
232
+ return ({
233
+ id: hive_bedrock_data_1.Game.SkyWarsKits,
234
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
235
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
236
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
237
+ losses: calculateLosses(response.played, response.victories),
238
+ win_percentage: calculateWinPercentage(response.victories, response.played),
239
+ kills: (_d = response.kills) !== null && _d !== void 0 ? _d : 0,
240
+ deaths: (_e = response.deaths) !== null && _e !== void 0 ? _e : 0,
241
+ kdr: calculateKDR(response.kills, response.deaths),
242
+ mystery_chests_destroyed: (_f = response.mystery_chests_destroyed) !== null && _f !== void 0 ? _f : 0,
243
+ ores_mined: (_g = response.ores_mined) !== null && _g !== void 0 ? _g : 0,
244
+ spells_used: (_h = response.spells_used) !== null && _h !== void 0 ? _h : 0,
245
+ selected_kit: response.selected_kit,
246
+ });
247
+ },
248
+ _a[hive_bedrock_data_1.Game.SkyWarsClassic] = function (response) {
249
+ var _a, _b, _c, _d, _e;
250
+ return ({
251
+ id: hive_bedrock_data_1.Game.SkyWarsClassic,
252
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
253
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
254
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
255
+ losses: calculateLosses(response.played, response.victories),
256
+ win_percentage: calculateWinPercentage(response.victories, response.played),
257
+ kills: (_d = response.kills) !== null && _d !== void 0 ? _d : 0,
258
+ deaths: (_e = response.deaths) !== null && _e !== void 0 ? _e : 0,
259
+ kdr: calculateKDR(response.kills, response.deaths),
260
+ selected_kit: response.selected_kit,
261
+ });
262
+ },
263
+ _a[hive_bedrock_data_1.Game.SurvivalGames] = function (response) {
264
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
265
+ return ({
266
+ id: hive_bedrock_data_1.Game.SurvivalGames,
267
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
268
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
269
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
270
+ losses: calculateLosses(response.played, response.victories),
271
+ win_percentage: calculateWinPercentage(response.victories, response.played),
272
+ kills: (_d = response.kills) !== null && _d !== void 0 ? _d : 0,
273
+ deaths: (_e = response.deaths) !== null && _e !== void 0 ? _e : 0,
274
+ kdr: calculateKDR(response.kills, response.deaths),
275
+ cows: (_f = response.cows) !== null && _f !== void 0 ? _f : 0,
276
+ deathmatches: (_g = response.deathmatches) !== null && _g !== void 0 ? _g : 0,
277
+ crates: (_h = response.crates) !== null && _h !== void 0 ? _h : 0,
278
+ teleporters_used: (_j = response.teleporters_used) !== null && _j !== void 0 ? _j : 0,
279
+ launchpads_used: (_k = response.launchpads_used) !== null && _k !== void 0 ? _k : 0,
280
+ flares_used: (_l = response.flares_used) !== null && _l !== void 0 ? _l : 0,
281
+ });
282
+ },
283
+ _a[hive_bedrock_data_1.Game.TheBridge] = function (response) {
284
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
285
+ return ({
286
+ id: hive_bedrock_data_1.Game.TheBridge,
287
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
288
+ played: (_c = (_b = response.played) !== null && _b !== void 0 ? _b : response.m_solo_played) !== null && _c !== void 0 ? _c : 0,
289
+ victories: (_e = (_d = response.victories) !== null && _d !== void 0 ? _d : response.m_solo_victories) !== null && _e !== void 0 ? _e : 0,
290
+ losses: calculateLosses((_f = response.played) !== null && _f !== void 0 ? _f : response.m_solo_played, (_g = response.victories) !== null && _g !== void 0 ? _g : response.m_solo_victories),
291
+ win_percentage: calculateWinPercentage((_h = response.victories) !== null && _h !== void 0 ? _h : response.m_solo_victories, (_j = response.played) !== null && _j !== void 0 ? _j : response.m_solo_played),
292
+ kills: (_l = (_k = response.kills) !== null && _k !== void 0 ? _k : response.m_solo_kills) !== null && _l !== void 0 ? _l : 0,
293
+ deaths: (_o = (_m = response.deaths) !== null && _m !== void 0 ? _m : response.m_solo_deaths) !== null && _o !== void 0 ? _o : 0,
294
+ kdr: calculateKDR((_p = response.kills) !== null && _p !== void 0 ? _p : response.m_solo_kills, (_q = response.deaths) !== null && _q !== void 0 ? _q : response.m_solo_deaths),
295
+ goals: (_s = (_r = response.goals) !== null && _r !== void 0 ? _r : response.m_solo_goals) !== null && _s !== void 0 ? _s : 0,
296
+ });
297
+ },
298
+ _a[hive_bedrock_data_1.Game.TreasureWars] = function (response) {
299
+ var _a, _b, _c, _d, _e, _f, _g, _h;
300
+ return ({
301
+ id: hive_bedrock_data_1.Game.TreasureWars,
302
+ xp: (_a = response.xp) !== null && _a !== void 0 ? _a : 0,
303
+ played: (_b = response.played) !== null && _b !== void 0 ? _b : 0,
304
+ victories: (_c = response.victories) !== null && _c !== void 0 ? _c : 0,
305
+ losses: calculateLosses(response.played, response.victories),
306
+ win_percentage: calculateWinPercentage(response.victories, response.played),
307
+ kills: (_d = response.kills) !== null && _d !== void 0 ? _d : 0,
308
+ deaths: (_e = response.deaths) !== null && _e !== void 0 ? _e : 0,
309
+ kdr: calculateKDR(response.kills, response.deaths),
310
+ final_kills: (_f = response.final_kills) !== null && _f !== void 0 ? _f : 0,
311
+ treasure_destroyed: (_g = response.treasure_destroyed) !== null && _g !== void 0 ? _g : 0,
312
+ prestige: (_h = response.prestige) !== null && _h !== void 0 ? _h : 0,
313
+ });
314
+ },
315
+ _a[hive_bedrock_data_1.Game.ParkourWorlds] = function (response) {
316
+ var _a;
317
+ return response.parkours
318
+ ? {
319
+ id: hive_bedrock_data_1.Game.ParkourWorlds,
320
+ worlds: Object.entries(response.parkours)
321
+ .filter(function (_a) {
322
+ var _b = __read(_a, 2), _ = _b[0], value = _b[1];
323
+ return typeof value === "object";
324
+ })
325
+ .map(function (_a) {
326
+ var _b;
327
+ var _c = __read(_a, 2), key = _c[0], value = _c[1];
328
+ return ({
329
+ name: key,
330
+ parkour_stars: (_b = value.parkour_stars) !== null && _b !== void 0 ? _b : 0,
331
+ courses: Object.entries(value)
332
+ .filter(function (_a) {
333
+ var _b = __read(_a, 2), _ = _b[0], value = _b[1];
334
+ return typeof value === "object";
335
+ })
336
+ .map(function (_a) {
337
+ var _b;
338
+ var _c = __read(_a, 2), key = _c[0], value = _c[1];
339
+ return ({
340
+ name: key,
341
+ best_run_time: value.best_run_time,
342
+ best_checkpoint_times: Object.entries(value.best_checkpoint_times).map(function (_a) {
343
+ var _b = __read(_a, 2), key = _b[0], value = _b[1];
344
+ return ({
345
+ position: { x: Number(key.split(",")[0]), y: Number(key.split(",")[1]), z: Number(key.split(",")[2]) },
346
+ time: value,
347
+ });
348
+ }),
349
+ collected_stars: value.collected_stars.map(function (value) { return ({
350
+ x: Number(value.split(",")[0]),
351
+ y: Number(value.split(",")[1]),
352
+ z: Number(value.split(",")[2]),
353
+ }); }),
354
+ course_stars: (_b = value.course_stars) !== null && _b !== void 0 ? _b : 0,
355
+ });
356
+ }),
357
+ });
358
+ }),
359
+ total_stars: (_a = response.parkours.total_stars) !== null && _a !== void 0 ? _a : 0,
360
+ }
361
+ : null;
362
+ },
363
+ _a[hive_bedrock_data_1.Game.GhostInvasion] = function (_) { return null; },
364
+ _a[hive_bedrock_data_1.Game.MobGame] = function (_) { return null; },
365
+ _a);
366
+ function validateNumber(value, def) {
367
+ if (def === void 0) { def = 0; }
368
+ if (isNaN(value) || !isFinite(value))
369
+ return def;
370
+ return value !== null && value !== void 0 ? value : def;
371
+ }
372
+ function calculateKDR(kills, deaths) {
373
+ if (deaths === 0)
374
+ return validateNumber(kills !== null && kills !== void 0 ? kills : 0);
375
+ return roundTo(validateNumber((kills !== null && kills !== void 0 ? kills : 0) / (deaths !== null && deaths !== void 0 ? deaths : 0)), 2);
376
+ }
377
+ function calculateWinPercentage(victories, played) {
378
+ if (victories === 0 && played === 0)
379
+ return 0;
380
+ return validateNumber((victories !== null && victories !== void 0 ? victories : 0) / (played !== null && played !== void 0 ? played : 0));
381
+ }
382
+ function calculateLosses(played, victories) {
383
+ return validateNumber((played !== null && played !== void 0 ? played : 0) - (victories !== null && victories !== void 0 ? victories : 0));
384
+ }
385
+ function calculateTotal(values) {
386
+ return validateNumber(values.reduce(function (a, b) { return (a !== null && a !== void 0 ? a : 0) + (b !== null && b !== void 0 ? b : 0); }, 0));
387
+ }
388
+ function calculateKPG(kills, games) {
389
+ if (games === 0)
390
+ return validateNumber(kills !== null && kills !== void 0 ? kills : 0);
391
+ return roundTo(validateNumber((kills !== null && kills !== void 0 ? kills : 0) / (games !== null && games !== void 0 ? games : 0)), 2);
392
+ }
393
+ function roundTo(value, places) {
394
+ if (places === void 0) { places = 2; }
395
+ return validateNumber(Number(value.toFixed(places)));
396
+ }