hive-bedrock-api 2.1.11 → 3.0.0-alpha.2

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