aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2022-04-23 22:08:09 -0500
committermat <github@matdoes.dev>2022-04-23 22:08:09 -0500
commita0daf3991126a3939bb990674a689d736103991e (patch)
tree92c553d27c4a09532cbe022d1ec12b6d08ae1740
parentc1896fdc8620ca57fad2f766158630b7eea19a4c (diff)
downloadskyblock-api-a0daf3991126a3939bb990674a689d736103991e.tar.gz
skyblock-api-a0daf3991126a3939bb990674a689d736103991e.tar.bz2
skyblock-api-a0daf3991126a3939bb990674a689d736103991e.zip
add some more stuff to item list
-rw-r--r--package-lock.json14
-rw-r--r--package.json2
-rw-r--r--src/cleaners/skyblock/itemId.ts4
-rw-r--r--src/cleaners/skyblock/itemList.ts43
4 files changed, 44 insertions, 19 deletions
diff --git a/package-lock.json b/package-lock.json
index 097d534..d132a23 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -18,7 +18,7 @@
"prismarine-nbt": "github:PrismarineJS/prismarine-nbt",
"prom-client": "^14.0.1",
"queue-promise": "^2.2.1",
- "typed-hypixel-api": "^1.1.0",
+ "typed-hypixel-api": "^1.3.1",
"uuid": "^8.3.2"
},
"devDependencies": {
@@ -2734,9 +2734,9 @@
}
},
"node_modules/typed-hypixel-api": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/typed-hypixel-api/-/typed-hypixel-api-1.1.0.tgz",
- "integrity": "sha512-fWUKBtSZm430JffQ6jXCEZ4ec6a+CKZttnVXt1p9KBQNkmBH9SQDIDkXm+m3eoeadpx0rbaXXg3jXSS88TYfEw==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/typed-hypixel-api/-/typed-hypixel-api-1.3.1.tgz",
+ "integrity": "sha512-sgiAda+DwkzUq1aGMkFYRjBZJ4+WTcAqMrOEH1YdAzUl4SZUB+nH1dir3dEa/Ol+uC3PB6hKW/PS51MyeDxLDQ==",
"dependencies": {
"typescript": "^4.6.3",
"undici": "^4.16.0"
@@ -5070,9 +5070,9 @@
}
},
"typed-hypixel-api": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/typed-hypixel-api/-/typed-hypixel-api-1.1.0.tgz",
- "integrity": "sha512-fWUKBtSZm430JffQ6jXCEZ4ec6a+CKZttnVXt1p9KBQNkmBH9SQDIDkXm+m3eoeadpx0rbaXXg3jXSS88TYfEw==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/typed-hypixel-api/-/typed-hypixel-api-1.3.1.tgz",
+ "integrity": "sha512-sgiAda+DwkzUq1aGMkFYRjBZJ4+WTcAqMrOEH1YdAzUl4SZUB+nH1dir3dEa/Ol+uC3PB6hKW/PS51MyeDxLDQ==",
"requires": {
"typescript": "^4.6.3",
"undici": "^4.16.0"
diff --git a/package.json b/package.json
index abf83bf..df8b337 100644
--- a/package.json
+++ b/package.json
@@ -39,7 +39,7 @@
"prismarine-nbt": "github:PrismarineJS/prismarine-nbt",
"prom-client": "^14.0.1",
"queue-promise": "^2.2.1",
- "typed-hypixel-api": "^1.1.0",
+ "typed-hypixel-api": "^1.3.1",
"uuid": "^8.3.2"
},
"devDependencies": {
diff --git a/src/cleaners/skyblock/itemId.ts b/src/cleaners/skyblock/itemId.ts
index ebaff8a..dc172b2 100644
--- a/src/cleaners/skyblock/itemId.ts
+++ b/src/cleaners/skyblock/itemId.ts
@@ -92,6 +92,10 @@ const ITEMS = {
'sulphur_ore': 'sulphur',
+ 'step': 'stone_slab',
+ 'nether_fence': 'nether_brick_fence',
+ 'empty_map': 'map',
+ 'nether_brick_item': 'nether_brick',
'book_and_quill': 'writable_book',
'mushroom_soup': 'mushroom_stew',
'red_rose': 'red_flower',
diff --git a/src/cleaners/skyblock/itemList.ts b/src/cleaners/skyblock/itemList.ts
index f64b273..8134f0a 100644
--- a/src/cleaners/skyblock/itemList.ts
+++ b/src/cleaners/skyblock/itemList.ts
@@ -3,12 +3,18 @@ import { headIdFromBase64 } from './inventory.js'
import { cleanItemId } from './itemId.js'
export interface ItemRequirement {
- // idk what these do
- // they'll probably be renamed at some point
- dungeon: {
+ dungeon?: {
type: string
level: number
}
+ skill?: {
+ type: string
+ level: number
+ }
+ slayer?: {
+ boss: string
+ level: number
+ }
}
// based on Item from inventory.ts
@@ -22,7 +28,10 @@ export interface ItemListItem {
glint: boolean
}
npcSellPrice: number | null
- requirements: ItemRequirement | null
+ requirements: ItemRequirement
+ category: string | null
+ soulbound: boolean
+ museum: boolean
}
export interface ItemListData {
@@ -30,13 +39,22 @@ export interface ItemListData {
list: ItemListItem[]
}
-function cleanItemRequirements(data: typedHypixelApi.SkyBlockItemsResponse['items'][number]['requirements'] & typedHypixelApi.SkyBlockItemsResponse['items'][number]['catacombs_requirements']): ItemRequirement | null {
- if (!data || !data.dungeon) return null
+function cleanItemRequirements(data: typedHypixelApi.SkyBlockItemsResponse['items'][number]['requirements'], catacombsRequirements: typedHypixelApi.SkyBlockItemsResponse['items'][number]['catacombs_requirements']): ItemRequirement {
+ if (!data) return {}
+ let dungeonData = data.dungeon ?? catacombsRequirements?.dungeon
return {
- dungeon: {
- type: data.dungeon.type,
- level: data.dungeon.level
- }
+ dungeon: dungeonData ? {
+ type: dungeonData.type.toLowerCase(),
+ level: dungeonData.level
+ } : undefined,
+ skill: data.skill ? {
+ type: data.skill.type.toLowerCase(),
+ level: data.skill.level
+ } : undefined,
+ slayer: data.slayer ? {
+ boss: data.slayer.slayer_boss_type,
+ level: data.slayer.level
+ } : undefined
}
}
@@ -52,7 +70,10 @@ function cleanItemListItem(item: typedHypixelApi.SkyBlockItemsResponse['items'][
glint: item.glowing ?? false
},
npcSellPrice: item.npc_sell_price ?? null,
- requirements: cleanItemRequirements(item.catacombs_requirements ?? item.requirements)
+ requirements: cleanItemRequirements(item.requirements, item.catacombs_requirements),
+ category: item.category?.toLowerCase() ?? null,
+ soulbound: !!item.soulbound,
+ museum: item.museum ?? false
}
}