aboutsummaryrefslogtreecommitdiff
path: root/src/cleaners
diff options
context:
space:
mode:
Diffstat (limited to 'src/cleaners')
-rw-r--r--src/cleaners/skyblock/itemId.ts4
-rw-r--r--src/cleaners/skyblock/itemList.ts43
2 files changed, 36 insertions, 11 deletions
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
}
}