@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,349 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseMurderMystery = parseMurderMystery;
|
|
4
|
+
const common_1 = require("./common");
|
|
5
|
+
const GAMEMODE_SUFFIX = {
|
|
6
|
+
assassins: "MURDER_ASSASSINS",
|
|
7
|
+
classic: "MURDER_CLASSIC",
|
|
8
|
+
doubleUp: "MURDER_DOUBLE_UP",
|
|
9
|
+
hardcore: "MURDER_HARDCORE",
|
|
10
|
+
infection: "MURDER_INFECTION",
|
|
11
|
+
showdown: "MURDER_SHOWDOWN",
|
|
12
|
+
};
|
|
13
|
+
const MAP_SUFFIX = {
|
|
14
|
+
ancientTomb: "ancient_tomb",
|
|
15
|
+
aquarium: "aquarium",
|
|
16
|
+
archives: "archives",
|
|
17
|
+
archivesTopFloor: "archives_top_floor",
|
|
18
|
+
cattleridgeFarm: "cattleridge_farm",
|
|
19
|
+
cruiseShip: "cruise_ship",
|
|
20
|
+
darkfall: "darkfall",
|
|
21
|
+
easterWorld: "easter_world",
|
|
22
|
+
goldRush: "gold_rush",
|
|
23
|
+
headquarters: "headquarters",
|
|
24
|
+
hollywood: "hollywood",
|
|
25
|
+
hypixelWorld: "hypixel_world",
|
|
26
|
+
library: "library",
|
|
27
|
+
mountain: "mountain",
|
|
28
|
+
sanPeratico: "san_peratico",
|
|
29
|
+
sanPeraticoV2: "san_peratico_v2",
|
|
30
|
+
skywayPier: "skyway_pier",
|
|
31
|
+
snowfall: "snowfall",
|
|
32
|
+
snowglobe: "snowglobe",
|
|
33
|
+
spookyMansion: "spooky_mansion",
|
|
34
|
+
subway: "subway",
|
|
35
|
+
towerfall: "towerfall",
|
|
36
|
+
transport: "transport",
|
|
37
|
+
villa: "villa",
|
|
38
|
+
widowsDen: "widow's_den",
|
|
39
|
+
};
|
|
40
|
+
const EMBLEM_COLORS = {
|
|
41
|
+
aqua: "aqua",
|
|
42
|
+
black: "black",
|
|
43
|
+
blue: "blue",
|
|
44
|
+
darkAqua: "dark_aqua",
|
|
45
|
+
darkBlue: "dark_blue",
|
|
46
|
+
darkGray: "dark_gray",
|
|
47
|
+
darkGreen: "dark_green",
|
|
48
|
+
darkPurple: "dark_purple",
|
|
49
|
+
darkRed: "dark_red",
|
|
50
|
+
gray: "gray",
|
|
51
|
+
green: "green",
|
|
52
|
+
lightPurple: "light_purple",
|
|
53
|
+
red: "red",
|
|
54
|
+
yellow: "yellow",
|
|
55
|
+
};
|
|
56
|
+
const HOTBAR_SLOT_KEYS = {
|
|
57
|
+
slot0: "0",
|
|
58
|
+
slot1: "1",
|
|
59
|
+
slot2: "2",
|
|
60
|
+
slot3: "3",
|
|
61
|
+
slot4: "4",
|
|
62
|
+
slot5: "5",
|
|
63
|
+
slot6: "6",
|
|
64
|
+
slot7: "7",
|
|
65
|
+
slot8: "8",
|
|
66
|
+
};
|
|
67
|
+
const FREE_EVENT_KEY_KEYS = {
|
|
68
|
+
christmas2019: "free_event_key_mm_christmas_chests_2019",
|
|
69
|
+
christmas2020: "free_event_key_mm_christmas_chests_2020",
|
|
70
|
+
christmas2021: "free_event_key_mm_christmas_chests_2021",
|
|
71
|
+
christmas2022: "free_event_key_mm_christmas_chests_2022",
|
|
72
|
+
christmas2023: "free_event_key_mm_christmas_chests_2023",
|
|
73
|
+
easter2020: "free_event_key_mm_easter_chests_2020",
|
|
74
|
+
easter2021: "free_event_key_mm_easter_chests_2021",
|
|
75
|
+
easter2022: "free_event_key_mm_easter_chests_2022",
|
|
76
|
+
easter2023: "free_event_key_mm_easter_chests_2023",
|
|
77
|
+
halloween2019: "free_event_key_mm_halloween_chests_2019",
|
|
78
|
+
halloween2020: "free_event_key_mm_halloween_chests_2020",
|
|
79
|
+
halloween2021: "free_event_key_mm_halloween_chests_2021",
|
|
80
|
+
halloween2022: "free_event_key_mm_halloween_chests_2022",
|
|
81
|
+
halloween2023: "free_event_key_mm_halloween_chests_2023",
|
|
82
|
+
lunar2020: "free_event_key_mm_lunar_chests_2020",
|
|
83
|
+
};
|
|
84
|
+
const KNIFE_SKIN_XP_KEYS = {
|
|
85
|
+
tenThousandSpoons: "10000_spoons",
|
|
86
|
+
apple: "apple",
|
|
87
|
+
bastedTurkey: "basted_turkey",
|
|
88
|
+
blazeStick: "blaze_stick",
|
|
89
|
+
bloodyBrick: "bloody_brick",
|
|
90
|
+
bone: "bone",
|
|
91
|
+
campfireLeftovers: "campfire_leftovers",
|
|
92
|
+
carrotOnStick: "carrot_on_stick",
|
|
93
|
+
cheapo: "cheapo",
|
|
94
|
+
cheese: "cheese",
|
|
95
|
+
chewedBush: "chewed_bush",
|
|
96
|
+
diamondShovel: "diamond_shovel",
|
|
97
|
+
doubleDeathScythe: "double_death_scythe",
|
|
98
|
+
dragonEgg: "dragon_egg",
|
|
99
|
+
earthenDagger: "earthen_dagger",
|
|
100
|
+
easterBasket: "easter_basket",
|
|
101
|
+
farmingImplement: "farming_implement",
|
|
102
|
+
feather: "feather",
|
|
103
|
+
fragilePlant: "fragile_plant",
|
|
104
|
+
frisbee: "frisbee",
|
|
105
|
+
glisteningMelon: "glistening_melon",
|
|
106
|
+
goldDigger: "gold_digger",
|
|
107
|
+
grilledSteak: "grilled_steak",
|
|
108
|
+
grimoire: "grimoire",
|
|
109
|
+
iceShard: "ice_shard",
|
|
110
|
+
mouseTrap: "mouse_trap",
|
|
111
|
+
mvp: "mvp",
|
|
112
|
+
prickly: "prickly",
|
|
113
|
+
pumpkinPie: "pumpkin_pie",
|
|
114
|
+
rudolphsNose: "rudolphs_nose",
|
|
115
|
+
rudolphsSnack: "rudolphs_snack",
|
|
116
|
+
salmon: "salmon",
|
|
117
|
+
scythe: "scythe",
|
|
118
|
+
shears: "shears",
|
|
119
|
+
shinySnack: "shiny_snack",
|
|
120
|
+
shovel: "shovel",
|
|
121
|
+
shred: "shred",
|
|
122
|
+
sprayPaintedShovel: "spray_painted_shovel",
|
|
123
|
+
stake: "stake",
|
|
124
|
+
stick: "stick",
|
|
125
|
+
stickWithHat: "stick_with_hat",
|
|
126
|
+
sweetTreat: "sweet_treat",
|
|
127
|
+
timber: "timber",
|
|
128
|
+
vip: "vip",
|
|
129
|
+
woodAxe: "wood_axe",
|
|
130
|
+
};
|
|
131
|
+
const DESCENT_ITEMS = {
|
|
132
|
+
armed: "Armed",
|
|
133
|
+
bloodLust: "Bloodlust",
|
|
134
|
+
bountyHunter: "Bountyhunter",
|
|
135
|
+
cleanJob: "Cleanjob",
|
|
136
|
+
collateral: "Collateral",
|
|
137
|
+
contagionContained: "Contagioncontained",
|
|
138
|
+
cornucopia: "Cornucopia",
|
|
139
|
+
crimsonJoy: "Crimsonjoy",
|
|
140
|
+
crowdControl: "Crowdcontrol",
|
|
141
|
+
cuttingTheRoots: "Cuttingtheroots",
|
|
142
|
+
deadlyPrecision: "Deadlyprecision",
|
|
143
|
+
deadOrAlive: "Deadoralive",
|
|
144
|
+
deathDefy: "Deathdefy",
|
|
145
|
+
distantTransmission: "Distanttransmission",
|
|
146
|
+
doubleDosage: "Doubledosage",
|
|
147
|
+
dualProficiency: "Dualproficiency",
|
|
148
|
+
exponentiation: "Exponentiation",
|
|
149
|
+
eyeOnPrey: "Eyeonprey",
|
|
150
|
+
firstJob: "Firstjob",
|
|
151
|
+
firstOfMany: "Firstofmany",
|
|
152
|
+
firstSteps: "Firststeps",
|
|
153
|
+
grandSlam: "Grandslam",
|
|
154
|
+
hero: "Hero",
|
|
155
|
+
highRoller: "Highroller",
|
|
156
|
+
holdGround: "Holdground",
|
|
157
|
+
huntsman: "Huntsman",
|
|
158
|
+
jobSearch: "Jobsearch",
|
|
159
|
+
lawMaker: "Lawmaker",
|
|
160
|
+
legacy: "Legacy",
|
|
161
|
+
localSpecialty: "Localspecialty",
|
|
162
|
+
lurkingContagion: "Lurkingcontagion",
|
|
163
|
+
makeshiftShield: "Makeshiftshield",
|
|
164
|
+
mowingDown: "Mowingdown",
|
|
165
|
+
oneOfUs: "Oneofus",
|
|
166
|
+
paneKiller: "Panekiller",
|
|
167
|
+
patientZero: "Patientzero",
|
|
168
|
+
postPandemic: "Postpandemic",
|
|
169
|
+
pythagoreanDisposal: "Pythagoreandisposal",
|
|
170
|
+
quickDraw: "Quickdraw",
|
|
171
|
+
reloaded: "Reloaded",
|
|
172
|
+
seasonedHitman: "Seasonedhitman",
|
|
173
|
+
selfDefense: "Selfdefense",
|
|
174
|
+
serialTrapper: "Serialtrapper",
|
|
175
|
+
silverBullet: "Silverbullet",
|
|
176
|
+
slaughterHouse: "Slaughterhouse",
|
|
177
|
+
sneaky: "Sneaky",
|
|
178
|
+
survival: "Survival",
|
|
179
|
+
totalOutbreak: "Totaloutbreak",
|
|
180
|
+
trapping101: "Trapping101",
|
|
181
|
+
trulyMad: "Trulymad",
|
|
182
|
+
viralKnife: "Viralknife",
|
|
183
|
+
};
|
|
184
|
+
function stringArray(source, key) {
|
|
185
|
+
const value = source[key];
|
|
186
|
+
return Array.isArray(value)
|
|
187
|
+
? value.filter((entry) => typeof entry === "string")
|
|
188
|
+
: [];
|
|
189
|
+
}
|
|
190
|
+
function numberRecord(source, keys) {
|
|
191
|
+
const result = {};
|
|
192
|
+
for (const [name, key] of Object.entries(keys)) {
|
|
193
|
+
result[name] = (0, common_1.num)(source, key);
|
|
194
|
+
}
|
|
195
|
+
return result;
|
|
196
|
+
}
|
|
197
|
+
function booleanRecord(source, keys) {
|
|
198
|
+
const result = {};
|
|
199
|
+
for (const [name, key] of Object.entries(keys)) {
|
|
200
|
+
result[name] = (0, common_1.bool)(source, key);
|
|
201
|
+
}
|
|
202
|
+
return result;
|
|
203
|
+
}
|
|
204
|
+
function stringRecord(source, keys) {
|
|
205
|
+
const result = {};
|
|
206
|
+
for (const [name, key] of Object.entries(keys)) {
|
|
207
|
+
result[name] = (0, common_1.str)(source, key);
|
|
208
|
+
}
|
|
209
|
+
return result;
|
|
210
|
+
}
|
|
211
|
+
function parseModeStats(mm, suffix) {
|
|
212
|
+
const key = (base) => suffix === "" ? base : `${base}_${suffix}`;
|
|
213
|
+
return {
|
|
214
|
+
alphaWins: (0, common_1.num)(mm, key("alpha_wins")),
|
|
215
|
+
bowKills: (0, common_1.num)(mm, key("bow_kills")),
|
|
216
|
+
coinsPickedUp: (0, common_1.num)(mm, key("coins_pickedup")),
|
|
217
|
+
deaths: (0, common_1.num)(mm, key("deaths")),
|
|
218
|
+
detectiveWins: (0, common_1.num)(mm, key("detective_wins")),
|
|
219
|
+
games: (0, common_1.num)(mm, key("games")),
|
|
220
|
+
kills: (0, common_1.num)(mm, key("kills")),
|
|
221
|
+
killsAsAlpha: (0, common_1.num)(mm, key("kills_as_alpha")),
|
|
222
|
+
killsAsInfected: (0, common_1.num)(mm, key("kills_as_infected")),
|
|
223
|
+
killsAsMurderer: (0, common_1.num)(mm, key("kills_as_murderer")),
|
|
224
|
+
killsAsSurvivor: (0, common_1.num)(mm, key("kills_as_survivor")),
|
|
225
|
+
knifeKills: (0, common_1.num)(mm, key("knife_kills")),
|
|
226
|
+
lastOneAlive: (0, common_1.num)(mm, key("last_one_alive")),
|
|
227
|
+
longestTimeAsSurvivorSeconds: (0, common_1.num)(mm, key("longest_time_as_survivor_seconds")),
|
|
228
|
+
murdererWins: (0, common_1.num)(mm, key("murderer_wins")),
|
|
229
|
+
quickestDetectiveWinTimeSeconds: (0, common_1.num)(mm, key("quickest_detective_win_time_seconds")),
|
|
230
|
+
quickestMurdererWinTimeSeconds: (0, common_1.num)(mm, key("quickest_murderer_win_time_seconds")),
|
|
231
|
+
quickestShowdownWinTimeSeconds: (0, common_1.num)(mm, key("quickest_showdown_win_time_seconds")),
|
|
232
|
+
showdownPotg: (0, common_1.num)(mm, key("showdown_potg")),
|
|
233
|
+
suicides: (0, common_1.num)(mm, key("suicides")),
|
|
234
|
+
survivorWins: (0, common_1.num)(mm, key("survivor_wins")),
|
|
235
|
+
thrownKnifeKills: (0, common_1.num)(mm, key("thrown_knife_kills")),
|
|
236
|
+
totalTimeSurvivedSeconds: (0, common_1.num)(mm, key("total_time_survived_seconds")),
|
|
237
|
+
trapKills: (0, common_1.num)(mm, key("trap_kills")),
|
|
238
|
+
wasHero: (0, common_1.num)(mm, key("was_hero")),
|
|
239
|
+
wins: (0, common_1.num)(mm, key("wins")),
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
function parseGamemodeBreakdown(mm, mapSuffix) {
|
|
243
|
+
const breakdown = {};
|
|
244
|
+
for (const [name, gamemode] of Object.entries(GAMEMODE_SUFFIX)) {
|
|
245
|
+
breakdown[name] = parseModeStats(mm, mapSuffix === "" ? gamemode : `${mapSuffix}_${gamemode}`);
|
|
246
|
+
}
|
|
247
|
+
return breakdown;
|
|
248
|
+
}
|
|
249
|
+
function parseMaps(mm) {
|
|
250
|
+
const maps = {};
|
|
251
|
+
for (const [name, mapSuffix] of Object.entries(MAP_SUFFIX)) {
|
|
252
|
+
maps[name] = {
|
|
253
|
+
...parseModeStats(mm, mapSuffix),
|
|
254
|
+
gamemodes: parseGamemodeBreakdown(mm, mapSuffix),
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
return maps;
|
|
258
|
+
}
|
|
259
|
+
function parseEmblem(emblem) {
|
|
260
|
+
return {
|
|
261
|
+
colorUnlocked: booleanRecord((0, common_1.obj)(emblem, "color_unlocked"), EMBLEM_COLORS),
|
|
262
|
+
selectedColor: (0, common_1.str)(emblem, "selected_color"),
|
|
263
|
+
selectedIcon: (0, common_1.str)(emblem, "selected_icon"),
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
function parseKnifeSkinPrestiges(prestiges) {
|
|
267
|
+
return {
|
|
268
|
+
usePrestige: stringArray(prestiges, "usePrestige"),
|
|
269
|
+
experience: numberRecord((0, common_1.obj)(prestiges, "xp"), KNIFE_SKIN_XP_KEYS),
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
function parseDescent(descent) {
|
|
273
|
+
const result = {};
|
|
274
|
+
for (const [name, key] of Object.entries(DESCENT_ITEMS)) {
|
|
275
|
+
const item = (0, common_1.obj)(descent, key);
|
|
276
|
+
result[name] = {
|
|
277
|
+
claimed: (0, common_1.bool)(item, "claimed"),
|
|
278
|
+
progress: (0, common_1.num)(item, "progress"),
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
return result;
|
|
282
|
+
}
|
|
283
|
+
/** Parses a player's Murder Mystery stats (`stats.MurderMystery`) into a typed object. */
|
|
284
|
+
function parseMurderMystery(stats) {
|
|
285
|
+
const raw = stats.MurderMystery;
|
|
286
|
+
if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
289
|
+
const mm = raw;
|
|
290
|
+
return {
|
|
291
|
+
...parseModeStats(mm, ""),
|
|
292
|
+
coins: (0, common_1.num)(mm, "coins"),
|
|
293
|
+
grantedChests: (0, common_1.num)(mm, "granted_chests"),
|
|
294
|
+
chests: (0, common_1.num)(mm, "mm_chests"),
|
|
295
|
+
christmasChests: (0, common_1.num)(mm, "mm_christmas_chests"),
|
|
296
|
+
easterChests: (0, common_1.num)(mm, "mm_easter_chests"),
|
|
297
|
+
halloweenChests: (0, common_1.num)(mm, "mm_halloween_chests"),
|
|
298
|
+
lunarChests: (0, common_1.num)(mm, "mm_lunar_chests"),
|
|
299
|
+
openedChests: (0, common_1.num)(mm, "MurderMystery_openedChests"),
|
|
300
|
+
openedCommons: (0, common_1.num)(mm, "MurderMystery_openedCommons"),
|
|
301
|
+
openedEpics: (0, common_1.num)(mm, "MurderMystery_openedEpics"),
|
|
302
|
+
openedLegendaries: (0, common_1.num)(mm, "MurderMystery_openedLegendaries"),
|
|
303
|
+
openedRares: (0, common_1.num)(mm, "MurderMystery_openedRares"),
|
|
304
|
+
spookyOpenAchievements: (0, common_1.num)(mm, "spooky_open_ach"),
|
|
305
|
+
activeAnimatedHat: (0, common_1.str)(mm, "active_animated_hat"),
|
|
306
|
+
activeDeathCry: (0, common_1.str)(mm, "active_deathcry"),
|
|
307
|
+
activeGesture: (0, common_1.str)(mm, "active_gesture"),
|
|
308
|
+
activeGravestone: (0, common_1.str)(mm, "active_gravestone"),
|
|
309
|
+
activeKillNote: (0, common_1.str)(mm, "active_kill_note"),
|
|
310
|
+
activeKnifeSkin: (0, common_1.str)(mm, "active_knife_skin"),
|
|
311
|
+
activeLastWords: (0, common_1.str)(mm, "active_last_words"),
|
|
312
|
+
activeProjectileTrail: (0, common_1.str)(mm, "active_projectile_trail"),
|
|
313
|
+
activeProjectileTrailLegacy: (0, common_1.str)(mm, "activeProjectileTrail"),
|
|
314
|
+
activeVictoryDance: (0, common_1.str)(mm, "active_victory_dance"),
|
|
315
|
+
activePrefixIcon: (0, common_1.str)(mm, "active_prefixicon"),
|
|
316
|
+
activePrefixScheme: (0, common_1.str)(mm, "active_prefixscheme"),
|
|
317
|
+
activePrefixStat: (0, common_1.str)(mm, "active_prefixstat"),
|
|
318
|
+
shopSort: (0, common_1.str)(mm, "shop_sort"),
|
|
319
|
+
shopSortEnableOwnedFirst: (0, common_1.bool)(mm, "shop_sort_enable_owned_first"),
|
|
320
|
+
doEmblemsInGame: (0, common_1.bool)(mm, "doEmblemsInGame"),
|
|
321
|
+
doHeartbeatSounds: (0, common_1.bool)(mm, "doHeartbeatSounds"),
|
|
322
|
+
doHints: (0, common_1.bool)(mm, "doHints"),
|
|
323
|
+
doPrefixesInGame: (0, common_1.bool)(mm, "doPrefixesInGame"),
|
|
324
|
+
convertedEmblemIcons: (0, common_1.bool)(mm, "convertedEmblemIcons"),
|
|
325
|
+
showQueueBook: (0, common_1.bool)(mm, "showqueuebook"),
|
|
326
|
+
chestHistory: stringArray(mm, "mm_chest_history"),
|
|
327
|
+
chestHistoryNew: stringArray(mm, "chest_history_new"),
|
|
328
|
+
mapsConsumablesUsed: stringArray(mm, "mapsConsumablesUsed"),
|
|
329
|
+
mapsMurdererTrapKills: stringArray(mm, "mapsMurdererTrapKills"),
|
|
330
|
+
books: stringArray(mm, "murdermystery_books"),
|
|
331
|
+
packages: stringArray(mm, "packages"),
|
|
332
|
+
emblem: parseEmblem((0, common_1.obj)(mm, "emblem")),
|
|
333
|
+
descent: parseDescent((0, common_1.obj)(mm, "descent")),
|
|
334
|
+
knifeSkinPrestiges: parseKnifeSkinPrestiges((0, common_1.obj)(mm, "knifeSkinPrestiges")),
|
|
335
|
+
leaderboardSettings: {
|
|
336
|
+
mode: (0, common_1.str)((0, common_1.obj)(mm, "leaderboardSettings"), "mode"),
|
|
337
|
+
resetType: (0, common_1.str)((0, common_1.obj)(mm, "leaderboardSettings"), "resetType"),
|
|
338
|
+
},
|
|
339
|
+
settings: {
|
|
340
|
+
doPrefixesInGame: (0, common_1.bool)((0, common_1.obj)(mm, "settings"), "doPrefixesInGame"),
|
|
341
|
+
},
|
|
342
|
+
assassinsHotbarLayout: stringRecord((0, common_1.obj)(mm, "assassins"), HOTBAR_SLOT_KEYS),
|
|
343
|
+
classicHotbarLayout: stringRecord((0, common_1.obj)(mm, "classic"), HOTBAR_SLOT_KEYS),
|
|
344
|
+
freeEventKeys: booleanRecord(mm, FREE_EVENT_KEY_KEYS),
|
|
345
|
+
gamemodes: parseGamemodeBreakdown(mm, ""),
|
|
346
|
+
maps: parseMaps(mm),
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
//# sourceMappingURL=murdermystery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"murdermystery.js","sourceRoot":"","sources":["../src/murdermystery.ts"],"names":[],"mappings":"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"}
|
package/dist/nbt.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export type NbtCompound = Readonly<Record<string, unknown>>;
|
|
2
|
+
export interface NbtItemDisplay {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly lore: readonly string[];
|
|
5
|
+
readonly color: number | null;
|
|
6
|
+
}
|
|
7
|
+
export interface NbtEnchantment {
|
|
8
|
+
readonly id: number;
|
|
9
|
+
readonly level: number;
|
|
10
|
+
}
|
|
11
|
+
export interface NbtExtraAttributes {
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly uuid: string | null;
|
|
14
|
+
readonly timestamp: string | number | readonly [number, number] | null;
|
|
15
|
+
readonly rarity_upgrades: number;
|
|
16
|
+
readonly modifier: string | null;
|
|
17
|
+
readonly enchantments: Readonly<Record<string, number>>;
|
|
18
|
+
readonly hot_potato_count: number;
|
|
19
|
+
readonly [key: string]: unknown;
|
|
20
|
+
}
|
|
21
|
+
export interface NbtItemTag {
|
|
22
|
+
readonly display: NbtItemDisplay;
|
|
23
|
+
readonly enchantments: readonly NbtEnchantment[];
|
|
24
|
+
readonly extraAttributes: NbtExtraAttributes;
|
|
25
|
+
readonly raw: NbtCompound;
|
|
26
|
+
}
|
|
27
|
+
export interface NbtItem {
|
|
28
|
+
readonly id: number;
|
|
29
|
+
readonly count: number;
|
|
30
|
+
readonly damage: number;
|
|
31
|
+
readonly tag: NbtItemTag;
|
|
32
|
+
}
|
|
33
|
+
/** Synchronously decodes a Hypixel base64 + gzipped-NBT blob into a simplified compound, or null on empty/invalid input. */
|
|
34
|
+
export declare function decodeNbt(base64: string): NbtCompound | null;
|
|
35
|
+
/** Synchronously decodes a Hypixel base64 + gzipped-NBT inventory blob into typed items (one per slot), or [] on empty/invalid input. */
|
|
36
|
+
export declare function decodeItemBytes(base64: string): NbtItem[];
|
|
37
|
+
//# sourceMappingURL=nbt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nbt.d.ts","sourceRoot":"","sources":["../src/nbt.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACvE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,SAAS,cAAc,EAAE,CAAC;IACjD,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAC;IAC7C,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;CAC1B;AAsHD,4HAA4H;AAC5H,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAE5D;AAED,yIAAyI;AACzI,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,CAiBzD"}
|
package/dist/nbt.js
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.decodeNbt = decodeNbt;
|
|
4
|
+
exports.decodeItemBytes = decodeItemBytes;
|
|
5
|
+
const prismarine_nbt_1 = require("prismarine-nbt");
|
|
6
|
+
const node_zlib_1 = require("node:zlib");
|
|
7
|
+
const common_1 = require("./common");
|
|
8
|
+
function decode(base64) {
|
|
9
|
+
if (typeof base64 !== "string" || base64.length === 0) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
const gzipped = Buffer.from(base64, "base64");
|
|
14
|
+
if (gzipped.length === 0) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
const decompressed = (0, node_zlib_1.gunzipSync)(gzipped);
|
|
18
|
+
const parsed = (0, prismarine_nbt_1.parseUncompressed)(decompressed, "big");
|
|
19
|
+
const simplified = (0, prismarine_nbt_1.simplify)(parsed);
|
|
20
|
+
if (typeof simplified !== "object" ||
|
|
21
|
+
simplified === null ||
|
|
22
|
+
Array.isArray(simplified)) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return simplified;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function stringArray(value) {
|
|
32
|
+
if (!Array.isArray(value)) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
return value.filter((entry) => typeof entry === "string");
|
|
36
|
+
}
|
|
37
|
+
function toTimestamp(value) {
|
|
38
|
+
if (typeof value === "string" || typeof value === "number") {
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
if (Array.isArray(value) &&
|
|
42
|
+
value.length === 2 &&
|
|
43
|
+
typeof value[0] === "number" &&
|
|
44
|
+
typeof value[1] === "number") {
|
|
45
|
+
return [value[0], value[1]];
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
function toDisplay(tag) {
|
|
50
|
+
const display = (0, common_1.obj)(tag, "display");
|
|
51
|
+
const color = display.color;
|
|
52
|
+
return {
|
|
53
|
+
name: (0, common_1.str)(display, "Name"),
|
|
54
|
+
lore: stringArray(display.Lore),
|
|
55
|
+
color: typeof color === "number" ? color : null,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function toEnchantments(tag) {
|
|
59
|
+
const value = tag.ench;
|
|
60
|
+
if (!Array.isArray(value)) {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
const result = [];
|
|
64
|
+
for (const entry of value) {
|
|
65
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const enchantment = entry;
|
|
69
|
+
result.push({ id: (0, common_1.num)(enchantment, "id"), level: (0, common_1.num)(enchantment, "lvl") });
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
function toExtraAttributes(tag) {
|
|
74
|
+
const extra = (0, common_1.obj)(tag, "ExtraAttributes");
|
|
75
|
+
const rawEnchantments = (0, common_1.obj)(extra, "enchantments");
|
|
76
|
+
const enchantments = {};
|
|
77
|
+
for (const key of Object.keys(rawEnchantments)) {
|
|
78
|
+
const level = rawEnchantments[key];
|
|
79
|
+
if (typeof level === "number") {
|
|
80
|
+
enchantments[key] = level;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const uuid = extra.uuid;
|
|
84
|
+
const modifier = extra.modifier;
|
|
85
|
+
return {
|
|
86
|
+
...extra,
|
|
87
|
+
id: (0, common_1.str)(extra, "id"),
|
|
88
|
+
uuid: typeof uuid === "string" ? uuid : null,
|
|
89
|
+
timestamp: toTimestamp(extra.timestamp),
|
|
90
|
+
rarity_upgrades: (0, common_1.num)(extra, "rarity_upgrades"),
|
|
91
|
+
modifier: typeof modifier === "string" ? modifier : null,
|
|
92
|
+
enchantments,
|
|
93
|
+
hot_potato_count: (0, common_1.num)(extra, "hot_potato_count"),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
function toItem(raw) {
|
|
97
|
+
const tag = (0, common_1.obj)(raw, "tag");
|
|
98
|
+
return {
|
|
99
|
+
id: (0, common_1.num)(raw, "id"),
|
|
100
|
+
count: (0, common_1.num)(raw, "Count"),
|
|
101
|
+
damage: (0, common_1.num)(raw, "Damage"),
|
|
102
|
+
tag: {
|
|
103
|
+
display: toDisplay(tag),
|
|
104
|
+
enchantments: toEnchantments(tag),
|
|
105
|
+
extraAttributes: toExtraAttributes(tag),
|
|
106
|
+
raw: tag,
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/** Synchronously decodes a Hypixel base64 + gzipped-NBT blob into a simplified compound, or null on empty/invalid input. */
|
|
111
|
+
function decodeNbt(base64) {
|
|
112
|
+
return decode(base64);
|
|
113
|
+
}
|
|
114
|
+
/** Synchronously decodes a Hypixel base64 + gzipped-NBT inventory blob into typed items (one per slot), or [] on empty/invalid input. */
|
|
115
|
+
function decodeItemBytes(base64) {
|
|
116
|
+
const root = decode(base64);
|
|
117
|
+
if (root === null) {
|
|
118
|
+
return [];
|
|
119
|
+
}
|
|
120
|
+
const list = root.i;
|
|
121
|
+
if (!Array.isArray(list)) {
|
|
122
|
+
return [];
|
|
123
|
+
}
|
|
124
|
+
const items = [];
|
|
125
|
+
for (const entry of list) {
|
|
126
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
items.push(toItem(entry));
|
|
130
|
+
}
|
|
131
|
+
return items;
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=nbt.js.map
|
package/dist/nbt.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nbt.js","sourceRoot":"","sources":["../src/nbt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export interface PaintballPerks {
|
|
2
|
+
readonly adrenaline: number;
|
|
3
|
+
readonly endurance: number;
|
|
4
|
+
readonly fortune: number;
|
|
5
|
+
readonly godfather: number;
|
|
6
|
+
readonly superluck: number;
|
|
7
|
+
readonly transfusion: number;
|
|
8
|
+
}
|
|
9
|
+
export interface PaintballPeriodKills {
|
|
10
|
+
readonly killsA: number;
|
|
11
|
+
readonly killsB: number;
|
|
12
|
+
}
|
|
13
|
+
export interface PaintballMapVotes {
|
|
14
|
+
readonly Babyland: number;
|
|
15
|
+
readonly Boletus: number;
|
|
16
|
+
readonly Courtyard: number;
|
|
17
|
+
readonly Egypt: number;
|
|
18
|
+
readonly Gladiator: number;
|
|
19
|
+
readonly Herobrine: number;
|
|
20
|
+
readonly Juice: number;
|
|
21
|
+
readonly LaLaLand: number;
|
|
22
|
+
readonly Mansion: number;
|
|
23
|
+
readonly Market: number;
|
|
24
|
+
readonly Octagon: number;
|
|
25
|
+
readonly "Oh Canada!": number;
|
|
26
|
+
readonly Outback: number;
|
|
27
|
+
readonly Siege: number;
|
|
28
|
+
readonly Swamps: number;
|
|
29
|
+
readonly Victorian: number;
|
|
30
|
+
}
|
|
31
|
+
export interface PaintballStats {
|
|
32
|
+
readonly coins: number;
|
|
33
|
+
readonly kills: number;
|
|
34
|
+
readonly deaths: number;
|
|
35
|
+
readonly wins: number;
|
|
36
|
+
readonly shotsFired: number;
|
|
37
|
+
readonly killstreaks: number;
|
|
38
|
+
readonly headstart: number;
|
|
39
|
+
readonly forcefieldTime: number;
|
|
40
|
+
readonly showKillPrefix: boolean;
|
|
41
|
+
readonly selectedKillPrefix: string;
|
|
42
|
+
readonly hat: string;
|
|
43
|
+
readonly favoriteSlots: string;
|
|
44
|
+
readonly packages: readonly string[];
|
|
45
|
+
readonly monthly: PaintballPeriodKills;
|
|
46
|
+
readonly weekly: PaintballPeriodKills;
|
|
47
|
+
readonly perks: PaintballPerks;
|
|
48
|
+
readonly mapVotes: PaintballMapVotes;
|
|
49
|
+
}
|
|
50
|
+
/** Parses a player's Paintball stats (`stats.Paintball`) into a typed object. */
|
|
51
|
+
export declare function parsePaintball(stats: Record<string, unknown>): PaintballStats | null;
|
|
52
|
+
//# sourceMappingURL=paintball.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paintball.d.ts","sourceRoot":"","sources":["../src/paintball.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAqBD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;CACtC;AAsCD,iFAAiF;AACjF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,cAAc,GAAG,IAAI,CAyBvB"}
|