aboutsummaryrefslogtreecommitdiff
path: root/build/cleaners/skyblock/collections.js
diff options
context:
space:
mode:
Diffstat (limited to 'build/cleaners/skyblock/collections.js')
-rw-r--r--build/cleaners/skyblock/collections.js106
1 files changed, 106 insertions, 0 deletions
diff --git a/build/cleaners/skyblock/collections.js b/build/cleaners/skyblock/collections.js
new file mode 100644
index 0000000..def7140
--- /dev/null
+++ b/build/cleaners/skyblock/collections.js
@@ -0,0 +1,106 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.cleanCollections = void 0;
+const itemId_1 = require("./itemId");
+const COLLECTIONS = {
+ 'farming': [
+ 'wheat',
+ 'carrot',
+ 'potato',
+ 'pumpkin',
+ 'melon_slice',
+ 'wheat_seeds',
+ 'red_mushroom',
+ 'cocoa_beans',
+ 'cactus',
+ 'sugar_cane',
+ 'feather',
+ 'leather',
+ 'porkchop',
+ 'chicken',
+ 'mutton',
+ 'rabbit',
+ 'nether_wart'
+ ],
+ 'mining': [
+ 'cobblestone',
+ 'coal',
+ 'iron_ingot',
+ 'gold_ingot',
+ 'diamond',
+ 'lapis_lazuli',
+ 'emerald',
+ 'redstone',
+ 'quartz',
+ 'obsidian',
+ 'glowstone_dust',
+ 'gravel',
+ 'ice',
+ 'netherrack',
+ 'sand',
+ 'end_stone'
+ ],
+ 'combat': [
+ 'rotten_flesh',
+ 'bone',
+ 'string',
+ 'spider_eye',
+ 'gunpowder',
+ 'ender_pearl',
+ 'ghast_tear',
+ 'slime_ball',
+ 'blaze_rod',
+ 'magma_cream'
+ ],
+ 'foraging': [
+ 'oak_log',
+ 'spruce_log',
+ 'birch_log',
+ 'jungle_log',
+ 'acacia_log',
+ 'dark_oak_log'
+ ],
+ 'fishing': [
+ 'cod',
+ 'salmon',
+ 'tropical_fish',
+ 'pufferfish',
+ 'prismarine_shard',
+ 'prismarine_crystals',
+ 'clay_ball',
+ 'lily_pad',
+ 'ink_sac',
+ 'sponge'
+ ]
+};
+function cleanCollections(data) {
+ var _a, _b;
+ // collection tiers show up like this: [ GRAVEL_3, GOLD_INGOT_2, MELON_-1, LOG_2:1_7, RAW_FISH:3_-1]
+ // these tiers are the same for all players in a coop
+ const playerCollectionTiersRaw = (_a = data === null || data === void 0 ? void 0 : data.unlocked_coll_tiers) !== null && _a !== void 0 ? _a : [];
+ const playerCollectionTiers = {};
+ for (const collectionTierNameValueRaw of playerCollectionTiersRaw) {
+ const [collectionTierNameRaw, collectionTierValueRaw] = collectionTierNameValueRaw.split(/_(?=-?\d+$)/);
+ const collectionName = itemId_1.cleanItemId(collectionTierNameRaw);
+ // ensure it's at least 0
+ const collectionValue = Math.max(parseInt(collectionTierValueRaw), 0);
+ // if the collection hasn't been checked yet, or the new value is higher than the old, replace it
+ if (!playerCollectionTiers[collectionName] || collectionValue > playerCollectionTiers[collectionName])
+ playerCollectionTiers[collectionName] = collectionValue;
+ }
+ // collection names show up like this: { LOG: 49789, LOG:2: 26219, MUSHROOM_COLLECTION: 2923}
+ // these values are different for each player in a coop
+ const playerCollectionValuesRaw = (_b = data === null || data === void 0 ? void 0 : data.collection) !== null && _b !== void 0 ? _b : {};
+ const playerCollectionValues = [];
+ for (const collectionNameRaw in playerCollectionValuesRaw) {
+ const collectionValue = playerCollectionValuesRaw[collectionNameRaw];
+ const collectionName = itemId_1.cleanItemId(collectionNameRaw);
+ playerCollectionValues.push({
+ name: collectionName,
+ xp: collectionValue,
+ level: playerCollectionTiers[collectionName]
+ });
+ }
+ return playerCollectionValues;
+}
+exports.cleanCollections = cleanCollections;