| name | nbt |
| description | Use the nbt! macro from mc_protocol for creating NBT (Named Binary Tag) data for Minecraft protocol encoding. |
NBT Encoding Skill
Use the nbt! macro from mc_protocol for creating NBT data.
When to Use
Use this skill when you need to:
- Encode NBT data for Minecraft packets
- Create text components for chat, action bar, titles
- Build compound NBT structures
Basic Usage
use mc_protocol::nbt;
let compound = nbt! {
"text" => "Hello",
"count" => 42i32,
"flag" => true,
};
let bytes = compound.to_network_bytes();
Nested Compounds
use mc_protocol::nbt;
let nested = nbt! {
"outer" => nbt! {
"inner" => 123i32,
},
};
Supported Types
i8 - Byte
i16 - Short
i32 - Int
i64 - Long
f32 - Float
f64 - Double
&str / String - String
bool - Byte (0 or 1)
NbtCompound - Nested compound
NbtList - List of same-type elements
Text Components (Chat/Action Bar)
For Minecraft text components (used in chat, action bar, titles):
use mc_protocol::nbt;
let text_component = nbt! {
"text" => "Hello World",
};
let colored = nbt! {
"text" => "Red text",
"color" => "red",
};
Best Practices
- Always use the
nbt! macro instead of manual byte manipulation
- Use explicit type suffixes (
42i32, 1.0f32) for numeric literals
- Use
to_network_bytes() for protocol encoding (adds type tag, no root name)