Minecraft-Console-Client/MinecraftClient/Protocol/Handlers/StructuredComponents
Ítalo Seara f34b8ba989 feat(inventory): expose NBT/component data in inventory MCP tools
Add a nullable `Nbt` field to `MccInventorySnapshotSlot`,
`MccInventorySearchMatch`, and `MccItemStackSnapshot` so that callers
can access the full item metadata beyond just material and count.

For 1.20.6+ servers the field is a map of component name
(e.g. "minecraft:custom_data") to the serialized component object.
For legacy servers it is the raw NBT dictionary. The field is omitted
entirely for vanilla items that carry no extra data, so there is no
noise for plain items like Stone or Dirt.

Implementation:
- `StructuredComponent`: add `ComponentName` property (set by the
  registry during parse) and mark both it and `TypeId` with
  `[JsonIgnore]` so they are excluded from component serialization.
- `StructuredComponentRegistry.ParseComponent`: assign `ComponentName`
  after instantiation.
- `MccGameCommon.BuildNbt`: new helper that serializes components by
  runtime type (fixing the polymorphism issue with System.Text.Json)
  keyed by component name, falling back to the legacy NBT dictionary.
- Snapshot and search query builders updated to call `BuildNbt`.
2026-06-27 14:41:41 -03:00
..
Components fix: handle null/empty profile name in ProfileComponent serialization 2026-06-17 11:27:23 +02:00
Core feat(inventory): expose NBT/component data in inventory MCP tools 2026-06-27 14:41:41 -03:00
Registries Fix structured components: audit fixes, codec helpers, and serialize implementations 2026-06-11 21:33:48 +02:00
StructuredComponentsHandler.cs Formatted the code and removed logs from Auto Attack 2026-06-04 11:42:41 +02:00