hive-bedrock-api 2.1.11 → 2.1.13

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