@breezil/hypixel-parsers 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +235 -0
- package/dist/arcade.d.ts +560 -0
- package/dist/arcade.d.ts.map +1 -0
- package/dist/arcade.js +619 -0
- package/dist/arcade.js.map +1 -0
- package/dist/arenabrawl.d.ts +56 -0
- package/dist/arenabrawl.d.ts.map +1 -0
- package/dist/arenabrawl.js +107 -0
- package/dist/arenabrawl.js.map +1 -0
- package/dist/bedwars.d.ts +747 -0
- package/dist/bedwars.d.ts.map +1 -0
- package/dist/bedwars.js +844 -0
- package/dist/bedwars.js.map +1 -0
- package/dist/blitz.d.ts +105 -0
- package/dist/blitz.d.ts.map +1 -0
- package/dist/blitz.js +259 -0
- package/dist/blitz.js.map +1 -0
- package/dist/buildbattle.d.ts +54 -0
- package/dist/buildbattle.d.ts.map +1 -0
- package/dist/buildbattle.js +92 -0
- package/dist/buildbattle.js.map +1 -0
- package/dist/common.d.ts +11 -0
- package/dist/common.d.ts.map +1 -0
- package/dist/common.js +34 -0
- package/dist/common.js.map +1 -0
- package/dist/copsandcrims.d.ts +201 -0
- package/dist/copsandcrims.d.ts.map +1 -0
- package/dist/copsandcrims.js +269 -0
- package/dist/copsandcrims.js.map +1 -0
- package/dist/duels.d.ts +358 -0
- package/dist/duels.d.ts.map +1 -0
- package/dist/duels.js +570 -0
- package/dist/duels.js.map +1 -0
- package/dist/guild.d.ts +49 -0
- package/dist/guild.d.ts.map +1 -0
- package/dist/guild.js +95 -0
- package/dist/guild.js.map +1 -0
- package/dist/housing.d.ts +16 -0
- package/dist/housing.d.ts.map +1 -0
- package/dist/housing.js +34 -0
- package/dist/housing.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +66 -0
- package/dist/index.js.map +1 -0
- package/dist/megawalls.d.ts +363 -0
- package/dist/megawalls.d.ts.map +1 -0
- package/dist/megawalls.js +684 -0
- package/dist/megawalls.js.map +1 -0
- package/dist/murdermystery.d.ts +293 -0
- package/dist/murdermystery.d.ts.map +1 -0
- package/dist/murdermystery.js +349 -0
- package/dist/murdermystery.js.map +1 -0
- package/dist/nbt.d.ts +37 -0
- package/dist/nbt.d.ts.map +1 -0
- package/dist/nbt.js +133 -0
- package/dist/nbt.js.map +1 -0
- package/dist/paintball.d.ts +52 -0
- package/dist/paintball.d.ts.map +1 -0
- package/dist/paintball.js +79 -0
- package/dist/paintball.js.map +1 -0
- package/dist/pit.d.ts +181 -0
- package/dist/pit.d.ts.map +1 -0
- package/dist/pit.js +262 -0
- package/dist/pit.js.map +1 -0
- package/dist/player.d.ts +338 -0
- package/dist/player.d.ts.map +1 -0
- package/dist/player.js +521 -0
- package/dist/player.js.map +1 -0
- package/dist/quakecraft.d.ts +75 -0
- package/dist/quakecraft.d.ts.map +1 -0
- package/dist/quakecraft.js +99 -0
- package/dist/quakecraft.js.map +1 -0
- package/dist/recentgames.d.ts +10 -0
- package/dist/recentgames.d.ts.map +1 -0
- package/dist/recentgames.js +27 -0
- package/dist/recentgames.js.map +1 -0
- package/dist/resources-achievements.d.ts +29 -0
- package/dist/resources-achievements.d.ts.map +1 -0
- package/dist/resources-achievements.js +67 -0
- package/dist/resources-achievements.js.map +1 -0
- package/dist/resources-challenges.d.ts +12 -0
- package/dist/resources-challenges.d.ts.map +1 -0
- package/dist/resources-challenges.js +36 -0
- package/dist/resources-challenges.js.map +1 -0
- package/dist/resources-games.d.ts +10 -0
- package/dist/resources-games.d.ts.map +1 -0
- package/dist/resources-games.js +28 -0
- package/dist/resources-games.js.map +1 -0
- package/dist/resources-guild-achievements.d.ts +23 -0
- package/dist/resources-guild-achievements.d.ts.map +1 -0
- package/dist/resources-guild-achievements.js +56 -0
- package/dist/resources-guild-achievements.js.map +1 -0
- package/dist/resources-quests.d.ts +23 -0
- package/dist/resources-quests.d.ts.map +1 -0
- package/dist/resources-quests.js +53 -0
- package/dist/resources-quests.js.map +1 -0
- package/dist/resources-vanity.d.ts +19 -0
- package/dist/resources-vanity.d.ts.map +1 -0
- package/dist/resources-vanity.js +33 -0
- package/dist/resources-vanity.js.map +1 -0
- package/dist/skyblock-auctions.d.ts +50 -0
- package/dist/skyblock-auctions.d.ts.map +1 -0
- package/dist/skyblock-auctions.js +90 -0
- package/dist/skyblock-auctions.js.map +1 -0
- package/dist/skyblock-bazaar.d.ts +25 -0
- package/dist/skyblock-bazaar.d.ts.map +1 -0
- package/dist/skyblock-bazaar.js +54 -0
- package/dist/skyblock-bazaar.js.map +1 -0
- package/dist/skyblock-bingo.d.ts +8 -0
- package/dist/skyblock-bingo.d.ts.map +1 -0
- package/dist/skyblock-bingo.js +19 -0
- package/dist/skyblock-bingo.js.map +1 -0
- package/dist/skyblock-items.d.ts +150 -0
- package/dist/skyblock-items.d.ts.map +1 -0
- package/dist/skyblock-items.js +247 -0
- package/dist/skyblock-items.js.map +1 -0
- package/dist/skyblock-misc.d.ts +91 -0
- package/dist/skyblock-misc.d.ts.map +1 -0
- package/dist/skyblock-misc.js +159 -0
- package/dist/skyblock-misc.js.map +1 -0
- package/dist/skyblock-museum.d.ts +24 -0
- package/dist/skyblock-museum.d.ts.map +1 -0
- package/dist/skyblock-museum.js +51 -0
- package/dist/skyblock-museum.js.map +1 -0
- package/dist/skyblock-news.d.ts +12 -0
- package/dist/skyblock-news.d.ts.map +1 -0
- package/dist/skyblock-news.js +25 -0
- package/dist/skyblock-news.js.map +1 -0
- package/dist/skyblock-resources.d.ts +94 -0
- package/dist/skyblock-resources.d.ts.map +1 -0
- package/dist/skyblock-resources.js +175 -0
- package/dist/skyblock-resources.js.map +1 -0
- package/dist/skyblock.d.ts +972 -0
- package/dist/skyblock.d.ts.map +1 -0
- package/dist/skyblock.js +1371 -0
- package/dist/skyblock.js.map +1 -0
- package/dist/skywars.d.ts +319 -0
- package/dist/skywars.d.ts.map +1 -0
- package/dist/skywars.js +611 -0
- package/dist/skywars.js.map +1 -0
- package/dist/smashheroes.d.ts +126 -0
- package/dist/smashheroes.d.ts.map +1 -0
- package/dist/smashheroes.js +206 -0
- package/dist/smashheroes.js.map +1 -0
- package/dist/static.d.ts +42 -0
- package/dist/static.d.ts.map +1 -0
- package/dist/static.js +106 -0
- package/dist/static.js.map +1 -0
- package/dist/status.d.ts +9 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +18 -0
- package/dist/status.js.map +1 -0
- package/dist/tntgames.d.ts +189 -0
- package/dist/tntgames.d.ts.map +1 -0
- package/dist/tntgames.js +283 -0
- package/dist/tntgames.js.map +1 -0
- package/dist/turbokartracers.d.ts +85 -0
- package/dist/turbokartracers.d.ts.map +1 -0
- package/dist/turbokartracers.js +165 -0
- package/dist/turbokartracers.js.map +1 -0
- package/dist/uhc.d.ts +55 -0
- package/dist/uhc.d.ts.map +1 -0
- package/dist/uhc.js +94 -0
- package/dist/uhc.js.map +1 -0
- package/dist/vampirez.d.ts +75 -0
- package/dist/vampirez.d.ts.map +1 -0
- package/dist/vampirez.js +104 -0
- package/dist/vampirez.js.map +1 -0
- package/dist/walls.d.ts +96 -0
- package/dist/walls.d.ts.map +1 -0
- package/dist/walls.js +122 -0
- package/dist/walls.js.map +1 -0
- package/dist/warlords.d.ts +229 -0
- package/dist/warlords.d.ts.map +1 -0
- package/dist/warlords.js +309 -0
- package/dist/warlords.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseSkyBlockNews = parseSkyBlockNews;
|
|
4
|
+
const common_1 = require("./common");
|
|
5
|
+
/** Parses the SkyBlock news (`/skyblock/news`) into a typed object. */
|
|
6
|
+
function parseSkyBlockNews(items) {
|
|
7
|
+
const result = [];
|
|
8
|
+
for (const entry of items) {
|
|
9
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
|
|
10
|
+
continue;
|
|
11
|
+
}
|
|
12
|
+
const raw = entry;
|
|
13
|
+
const item = (0, common_1.obj)(raw, "item");
|
|
14
|
+
result.push({
|
|
15
|
+
title: (0, common_1.str)(raw, "title"),
|
|
16
|
+
link: (0, common_1.str)(raw, "link"),
|
|
17
|
+
text: (0, common_1.str)(raw, "text"),
|
|
18
|
+
item: {
|
|
19
|
+
material: (0, common_1.str)(item, "material"),
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=skyblock-news.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skyblock-news.js","sourceRoot":"","sources":["../src/skyblock-news.ts"],"names":[],"mappings":";;AAcA,8CAkBC;AAhCD,qCAAoC;AAapC,uEAAuE;AACvE,SAAgB,iBAAiB,CAAC,KAAgB;IAChD,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxE,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,IAAA,YAAG,EAAC,GAAG,EAAE,OAAO,CAAC;YACxB,IAAI,EAAE,IAAA,YAAG,EAAC,GAAG,EAAE,MAAM,CAAC;YACtB,IAAI,EAAE,IAAA,YAAG,EAAC,GAAG,EAAE,MAAM,CAAC;YACtB,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAA,YAAG,EAAC,IAAI,EAAE,UAAU,CAAC;aAChC;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export interface SkyBlockSkillLevel {
|
|
2
|
+
readonly level: number;
|
|
3
|
+
readonly totalExpRequired: number;
|
|
4
|
+
readonly unlocks: string[];
|
|
5
|
+
}
|
|
6
|
+
export interface SkyBlockSkill {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly description: string;
|
|
9
|
+
readonly maxLevel: number;
|
|
10
|
+
readonly levels: SkyBlockSkillLevel[];
|
|
11
|
+
}
|
|
12
|
+
export interface SkyBlockSkillsResource {
|
|
13
|
+
readonly lastUpdated: Date | null;
|
|
14
|
+
readonly version: string;
|
|
15
|
+
readonly skills: Record<string, SkyBlockSkill>;
|
|
16
|
+
}
|
|
17
|
+
/** Parses the SkyBlock skill registry (`/resources/skyblock/skills`) into a typed object. */
|
|
18
|
+
export declare function parseSkyBlockSkills(raw: Record<string, unknown>): SkyBlockSkillsResource | null;
|
|
19
|
+
export interface SkyBlockCollectionTier {
|
|
20
|
+
readonly tier: number;
|
|
21
|
+
readonly amountRequired: number;
|
|
22
|
+
readonly unlocks: string[];
|
|
23
|
+
}
|
|
24
|
+
export interface SkyBlockCollectionDefinition {
|
|
25
|
+
readonly name: string;
|
|
26
|
+
readonly maxTiers: number;
|
|
27
|
+
readonly tiers: SkyBlockCollectionTier[];
|
|
28
|
+
}
|
|
29
|
+
export interface SkyBlockCollectionCategory {
|
|
30
|
+
readonly name: string;
|
|
31
|
+
readonly items: Record<string, SkyBlockCollectionDefinition>;
|
|
32
|
+
}
|
|
33
|
+
export interface SkyBlockCollectionsResource {
|
|
34
|
+
readonly lastUpdated: Date | null;
|
|
35
|
+
readonly version: string;
|
|
36
|
+
readonly collections: Record<string, SkyBlockCollectionCategory>;
|
|
37
|
+
}
|
|
38
|
+
/** Parses the SkyBlock collection registry (`/resources/skyblock/collections`) into a typed object. */
|
|
39
|
+
export declare function parseSkyBlockCollections(raw: Record<string, unknown>): SkyBlockCollectionsResource | null;
|
|
40
|
+
export interface SkyBlockElectionPerk {
|
|
41
|
+
readonly name: string;
|
|
42
|
+
readonly description: string;
|
|
43
|
+
readonly minister: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface SkyBlockElectionCandidate {
|
|
46
|
+
readonly name: string;
|
|
47
|
+
readonly keyBenefit: string;
|
|
48
|
+
readonly perks: SkyBlockElectionPerk[];
|
|
49
|
+
readonly votesReceived: number;
|
|
50
|
+
}
|
|
51
|
+
export interface SkyBlockElection {
|
|
52
|
+
readonly year: number;
|
|
53
|
+
readonly candidates: SkyBlockElectionCandidate[];
|
|
54
|
+
}
|
|
55
|
+
export interface SkyBlockElectionMinister {
|
|
56
|
+
readonly name: string;
|
|
57
|
+
readonly keyBenefit: string;
|
|
58
|
+
readonly perk: SkyBlockElectionPerk | null;
|
|
59
|
+
}
|
|
60
|
+
export interface SkyBlockElectionMayor {
|
|
61
|
+
readonly name: string;
|
|
62
|
+
readonly keyBenefit: string;
|
|
63
|
+
readonly perks: SkyBlockElectionPerk[];
|
|
64
|
+
readonly minister: SkyBlockElectionMinister | null;
|
|
65
|
+
}
|
|
66
|
+
export interface SkyBlockElectionResource {
|
|
67
|
+
readonly lastUpdated: Date | null;
|
|
68
|
+
readonly mayor: SkyBlockElectionMayor | null;
|
|
69
|
+
readonly lastElection: SkyBlockElection;
|
|
70
|
+
readonly currentElection: SkyBlockElection | null;
|
|
71
|
+
}
|
|
72
|
+
/** Parses the SkyBlock election (`/resources/skyblock/election`) into a typed object. */
|
|
73
|
+
export declare function parseSkyBlockElection(raw: Record<string, unknown>): SkyBlockElectionResource | null;
|
|
74
|
+
export interface SkyBlockBingoGoal {
|
|
75
|
+
readonly id: string;
|
|
76
|
+
readonly name: string;
|
|
77
|
+
readonly lore: string;
|
|
78
|
+
readonly fullLore: string[];
|
|
79
|
+
readonly progress: number;
|
|
80
|
+
readonly tiers: number[];
|
|
81
|
+
readonly requiredAmount: number | null;
|
|
82
|
+
}
|
|
83
|
+
export interface SkyBlockBingoResource {
|
|
84
|
+
readonly lastUpdated: Date | null;
|
|
85
|
+
readonly id: number;
|
|
86
|
+
readonly name: string;
|
|
87
|
+
readonly start: Date | null;
|
|
88
|
+
readonly end: Date | null;
|
|
89
|
+
readonly modifier: string;
|
|
90
|
+
readonly goals: SkyBlockBingoGoal[];
|
|
91
|
+
}
|
|
92
|
+
/** Parses the SkyBlock bingo event (`/resources/skyblock/bingo`) into a typed object. */
|
|
93
|
+
export declare function parseSkyBlockBingo(raw: Record<string, unknown>): SkyBlockBingoResource | null;
|
|
94
|
+
//# sourceMappingURL=skyblock-resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skyblock-resources.d.ts","sourceRoot":"","sources":["../src/skyblock-resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseSkyBlockSkills = parseSkyBlockSkills;
|
|
4
|
+
exports.parseSkyBlockCollections = parseSkyBlockCollections;
|
|
5
|
+
exports.parseSkyBlockElection = parseSkyBlockElection;
|
|
6
|
+
exports.parseSkyBlockBingo = parseSkyBlockBingo;
|
|
7
|
+
const common_1 = require("./common");
|
|
8
|
+
function isObject(value) {
|
|
9
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
10
|
+
}
|
|
11
|
+
function objArray(parent, key) {
|
|
12
|
+
const value = parent[key];
|
|
13
|
+
if (!Array.isArray(value)) {
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
return value.filter(isObject);
|
|
17
|
+
}
|
|
18
|
+
function objMap(parent, key, map) {
|
|
19
|
+
const result = {};
|
|
20
|
+
for (const [name, value] of Object.entries((0, common_1.obj)(parent, key))) {
|
|
21
|
+
if (isObject(value)) {
|
|
22
|
+
result[name] = map(value, name);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
function stringArray(parent, key) {
|
|
28
|
+
const value = parent[key];
|
|
29
|
+
return Array.isArray(value)
|
|
30
|
+
? value.filter((entry) => typeof entry === "string")
|
|
31
|
+
: [];
|
|
32
|
+
}
|
|
33
|
+
function numberArray(parent, key) {
|
|
34
|
+
const value = parent[key];
|
|
35
|
+
return Array.isArray(value)
|
|
36
|
+
? value.filter((entry) => typeof entry === "number")
|
|
37
|
+
: [];
|
|
38
|
+
}
|
|
39
|
+
function parseSkillLevels(skill) {
|
|
40
|
+
return objArray(skill, "levels").map((level) => ({
|
|
41
|
+
level: (0, common_1.num)(level, "level"),
|
|
42
|
+
totalExpRequired: (0, common_1.num)(level, "totalExpRequired"),
|
|
43
|
+
unlocks: stringArray(level, "unlocks"),
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
function parseSkill(skill) {
|
|
47
|
+
return {
|
|
48
|
+
name: (0, common_1.str)(skill, "name"),
|
|
49
|
+
description: (0, common_1.str)(skill, "description"),
|
|
50
|
+
maxLevel: (0, common_1.num)(skill, "maxLevel"),
|
|
51
|
+
levels: parseSkillLevels(skill),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/** Parses the SkyBlock skill registry (`/resources/skyblock/skills`) into a typed object. */
|
|
55
|
+
function parseSkyBlockSkills(raw) {
|
|
56
|
+
if (!isObject(raw)) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
lastUpdated: (0, common_1.date)(raw, "lastUpdated"),
|
|
61
|
+
version: (0, common_1.str)(raw, "version"),
|
|
62
|
+
skills: objMap(raw, "skills", parseSkill),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function parseCollectionDefinition(definition) {
|
|
66
|
+
return {
|
|
67
|
+
name: (0, common_1.str)(definition, "name"),
|
|
68
|
+
maxTiers: (0, common_1.num)(definition, "maxTiers"),
|
|
69
|
+
tiers: objArray(definition, "tiers").map((tier) => ({
|
|
70
|
+
tier: (0, common_1.num)(tier, "tier"),
|
|
71
|
+
amountRequired: (0, common_1.num)(tier, "amountRequired"),
|
|
72
|
+
unlocks: stringArray(tier, "unlocks"),
|
|
73
|
+
})),
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function parseCollectionCategory(category) {
|
|
77
|
+
return {
|
|
78
|
+
name: (0, common_1.str)(category, "name"),
|
|
79
|
+
items: objMap(category, "items", parseCollectionDefinition),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/** Parses the SkyBlock collection registry (`/resources/skyblock/collections`) into a typed object. */
|
|
83
|
+
function parseSkyBlockCollections(raw) {
|
|
84
|
+
if (!isObject(raw)) {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
lastUpdated: (0, common_1.date)(raw, "lastUpdated"),
|
|
89
|
+
version: (0, common_1.str)(raw, "version"),
|
|
90
|
+
collections: objMap(raw, "collections", parseCollectionCategory),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function parsePerk(perk) {
|
|
94
|
+
return {
|
|
95
|
+
name: (0, common_1.str)(perk, "name"),
|
|
96
|
+
description: (0, common_1.str)(perk, "description"),
|
|
97
|
+
minister: (0, common_1.bool)(perk, "minister"),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function parsePerks(parent) {
|
|
101
|
+
return objArray(parent, "perks").map(parsePerk);
|
|
102
|
+
}
|
|
103
|
+
function parseElection(election) {
|
|
104
|
+
return {
|
|
105
|
+
year: (0, common_1.num)(election, "year"),
|
|
106
|
+
candidates: objArray(election, "candidates").map((candidate) => ({
|
|
107
|
+
name: (0, common_1.str)(candidate, "name"),
|
|
108
|
+
keyBenefit: (0, common_1.str)(candidate, "key"),
|
|
109
|
+
perks: parsePerks(candidate),
|
|
110
|
+
votesReceived: (0, common_1.num)(candidate, "votes"),
|
|
111
|
+
})),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function parseMinister(mayor) {
|
|
115
|
+
const minister = mayor.minister;
|
|
116
|
+
if (!isObject(minister)) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
const perk = minister.perk;
|
|
120
|
+
return {
|
|
121
|
+
name: (0, common_1.str)(minister, "name"),
|
|
122
|
+
keyBenefit: (0, common_1.str)(minister, "key"),
|
|
123
|
+
perk: isObject(perk) ? parsePerk(perk) : null,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/** Parses the SkyBlock election (`/resources/skyblock/election`) into a typed object. */
|
|
127
|
+
function parseSkyBlockElection(raw) {
|
|
128
|
+
if (!isObject(raw)) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
const mayor = (0, common_1.obj)(raw, "mayor");
|
|
132
|
+
const mayorName = (0, common_1.str)(mayor, "name");
|
|
133
|
+
const current = raw.current;
|
|
134
|
+
return {
|
|
135
|
+
lastUpdated: (0, common_1.date)(raw, "lastUpdated"),
|
|
136
|
+
mayor: mayorName === ""
|
|
137
|
+
? null
|
|
138
|
+
: {
|
|
139
|
+
name: mayorName,
|
|
140
|
+
keyBenefit: (0, common_1.str)(mayor, "key"),
|
|
141
|
+
perks: parsePerks(mayor),
|
|
142
|
+
minister: parseMinister(mayor),
|
|
143
|
+
},
|
|
144
|
+
lastElection: parseElection((0, common_1.obj)(mayor, "election")),
|
|
145
|
+
currentElection: isObject(current) ? parseElection(current) : null,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/** Parses the SkyBlock bingo event (`/resources/skyblock/bingo`) into a typed object. */
|
|
149
|
+
function parseSkyBlockBingo(raw) {
|
|
150
|
+
if (!isObject(raw)) {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
153
|
+
const goals = objArray(raw, "goals").map((goal) => {
|
|
154
|
+
const required = goal.requiredAmount;
|
|
155
|
+
return {
|
|
156
|
+
id: (0, common_1.str)(goal, "id"),
|
|
157
|
+
name: (0, common_1.str)(goal, "name"),
|
|
158
|
+
lore: (0, common_1.str)(goal, "lore"),
|
|
159
|
+
fullLore: stringArray(goal, "fullLore"),
|
|
160
|
+
progress: (0, common_1.num)(goal, "progress"),
|
|
161
|
+
tiers: numberArray(goal, "tiers"),
|
|
162
|
+
requiredAmount: typeof required === "number" ? required : null,
|
|
163
|
+
};
|
|
164
|
+
});
|
|
165
|
+
return {
|
|
166
|
+
lastUpdated: (0, common_1.date)(raw, "lastUpdated"),
|
|
167
|
+
id: (0, common_1.num)(raw, "id"),
|
|
168
|
+
name: (0, common_1.str)(raw, "name"),
|
|
169
|
+
start: (0, common_1.date)(raw, "start"),
|
|
170
|
+
end: (0, common_1.date)(raw, "end"),
|
|
171
|
+
modifier: (0, common_1.str)(raw, "modifier"),
|
|
172
|
+
goals,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=skyblock-resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skyblock-resources.js","sourceRoot":"","sources":["../src/skyblock-resources.ts"],"names":[],"mappings":"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"}
|