|
|
|
@ -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 |
|
|
|
|