feat(informer): ✨ add entity detail by type and kind for some entities
So far: - mobs - villager - object - drops
This commit is contained in:
		| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user