From a0b4641f37c6ff96e460dc85105dce088b049d12 Mon Sep 17 00:00:00 2001 From: jay Date: Tue, 11 May 2021 17:42:31 +0500 Subject: [PATCH] feat(informer): :sparkles: add entity detail by type and kind for some entities So far: - mobs - villager - object - drops --- lib/plugins/informer.js | 42 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) 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