feat(informer): ✨ add entity detail by type and kind for some entities
So far: - mobs - villager - object - drops
This commit is contained in:
parent
186d6ac3d2
commit
a0b4641f37
|
@ -130,6 +130,48 @@ function entity(name = bot.nearestEntity()) {
|
|||
let info = [(entity.entityType && entity.entityType + ":" || "") + (entity.type === "object" ? entity.kind : entity.type)]
|
||||
info.push(entity.username || entity.name)
|
||||
// TODO various info depending on the type of entity; player, villager, etc
|
||||
// TODO refactor and combine with compound_value()
|
||||
switch (entity.type) {
|
||||
case "object":
|
||||
switch (entity.kind) {
|
||||
case "Drops":
|
||||
const item = entity.metadata[7];
|
||||
entity.metadata;
|
||||
if (item.present) {
|
||||
info.push("item: " + item.itemId + ": "
|
||||
+ mcData.items[item.itemId].name
|
||||
+ `x${item.itemCount}`);
|
||||
}
|
||||
else {
|
||||
console.warn("info entity: metadata expected item, got:", entity.metadata[7]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
}
|
||||
break;
|
||||
case "mob":
|
||||
switch (name) {
|
||||
case 'villager':
|
||||
info.push(Object.entries(entity.metadata[17]).toString())
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
|
||||
entity.metadata[8] && info.push("health:" + entity.metadata[8])
|
||||
entity.metadata[15] && info.push("baby")
|
||||
if (entity.heldItem) {
|
||||
info.push("holding")
|
||||
item(entity)
|
||||
}
|
||||
case "global":
|
||||
case "orb":
|
||||
case "player":
|
||||
break;
|
||||
case "other":
|
||||
info.push("kind:" + entity.kind)
|
||||
default:
|
||||
}
|
||||
if (entity.metadata) info.push("len: " + entity.metadata.length)
|
||||
quiet || bot.chat(info.join("; "))
|
||||
return entity
|
||||
|
|
Loading…
Reference in New Issue
Block a user