diff --git a/lib/plugins/informer.js b/lib/plugins/informer.js index 3738aab..bc6cfe9 100644 --- a/lib/plugins/informer.js +++ b/lib/plugins/informer.js @@ -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