feat(informer): add more detail to item info

Gives detail of traversing the item's nbt data
This commit is contained in:
jay 2021-01-18 01:24:47 +05:00
parent cc18ac5c2e
commit e5faa6f022

View File

@ -16,18 +16,38 @@ function block(pos) {
} }
function item( function item(
// hand slot,
loc = bot.quickBarSlot entity = bot.entity
) { ) {
const item = bot.inventory.slots[loc + bot.QUICK_BAR_START] const item = slot ?
bot.inventory.slots[parseInt(slot) + bot.QUICK_BAR_START] :
entity.heldItem
console.log(item) console.log(item)
if (!item) { if (!item) {
cfg.quiet || bot.chat("no item") cfg.quiet || bot.chat("no item")
return item return item
} }
let info = [item.type, item.name] let info = [item.type, item.name]
if (item.metadata) info.push(item.metadata) if (item.metadata) info.push("meta: " + item.metadata.length)
cfg.quiet || bot.chat(info.join(": ")) if (item.nbt) {
info.push(compound_value(item.nbt))
}
cfg.quiet || bot.chat(info.join("; "))
function compound_value(obj) {
if (typeof obj.value == "object") {
return compound_value(obj.value)
} else if (obj.value) {
return obj.value
} else if (typeof obj == "object") {
const keys = Object.keys(obj)
return keys.map(key => {
return `${key}: ${compound_value(obj[key])}`
});
} else {
return obj
}
}
return item
} }
function entity(name) { function entity(name) {