O comando /give depois dos componentes de dados: o que substituiu as tags NBT
A versão 1.20.5 substituiu as NBTs de itens por componentes de dados, e a maioria dos exemplos de /give online ainda estão escritos da maneira antiga. Aqui está o mapeamento das tags que você conhece para os componentes que funcionam agora.
Se você colar um comando /give de um guia antigo e o jogo responder Unknown item tag ou silenciosamente ignorar seus encantamentos, o comando está escrito no formato NBT pré-1.20.5. Os dados dos itens foram movidos para componentes de dados, e o antigo bloco {display:{Name:...}} não é mais interpretado.
A forma mudou
old /give @p diamond_sword{display:{Name:'"Skybreaker"'},Enchantments:[{id:sharpness,lvl:5}]}
new /give @p diamond_sword[custom_name='"Skybreaker"',enchantments={sharpness:5}]
Colchetes, não chaves. Os componentes são uma lista plana, separada por vírgulas, no ID do item.
Os mapeamentos que você realmente vai usar
| NBT Antigo | Componente de dados |
|---|---|
display:{Name:...} | custom_name |
display:{Lore:[...]} | lore |
Enchantments:[{id,lvl}] | enchantments={id:level} |
Unbreakable:1b | unbreakable={} |
CustomModelData:3 | custom_model_data=3 |
AttributeModifiers:[...] | attribute_modifiers |
display:{color:...} | dyed_color |
SkullOwner | profile |
Três armadilhas
- Aspas.
custom_nameaceita um componente de texto JSON, então uma string simples ainda precisa
de suas próprias aspas dentro do argumento: custom_name='"Skybreaker"'.
- Removendo um padrão. Prefixar com
!para remover um componente que o item normalmente possui —
[!attribute_modifiers] dá uma espada sem nenhum bônus de dano.
- Rocha Matriz não tem nada disso. A Rocha Matriz
/giveainda usa seu próprio modelo de valor de dados e
componentes; uma string de componente Java não funcionará lá.
O /give Generator escreve o formato de componente para você e mostra a saída para ambas as edições, para que você possa copiar a que corresponde ao servidor em que está.