Komenda /give po komponentach danych: co zastąpiło tagi NBT
W wersji 1.20.5 NBT przedmiotów zostało zastąpione komponentami danych, a większość poradników z /give w sieci wciąż jest napisana po staremu. Oto mapowanie znanych ci tagów na komponenty, które działają teraz.
Jeśli wklejasz komendę /give ze starszego poradnika, a gra odrzuca ją z błędem składni, oznacza to, że komenda jest napisana w formacie NBT sprzed wersji 1.20.5. Dane przedmiotów przeniesiono do komponentów danych (data components), a stary blok {display:{Name:...}} nie jest już parsowany.
Zmienił się kształt
old /give @p diamond_sword{display:{Name:'"Skybreaker"'},Enchantments:[{id:sharpness,lvl:5}]}
new /give @p diamond_sword[custom_name="Skybreaker",enchantments={sharpness:5}]
Nawiasy kwadratowe zamiast klamrowych. Komponenty to płaska, oddzielona przecinkami lista przy identyfikatorze przedmiotu.
Mapowania, po które naprawdę będziesz sięgać
| Stare NBT | Komponent danych |
|---|---|
display:{Name:...} | custom_name |
display:{Lore:[...]} | lore |
Enchantments:[{id,lvl}] | enchantments={id:level} |
Unbreakable:1b | unbreakable={} |
CustomModelData:3 | custom_model_data={floats:[3]} |
AttributeModifiers:[...] | attribute_modifiers |
display:{color:...} | dyed_color |
SkullOwner | profile |
Trzy pułapki
- Cudzysłowy.
custom_nameprzyjmuje komponent tekstowy zapisany jako SNBT, więc zwykła nazwa to po prostucustom_name="Skybreaker". Stara formacustom_name='"Skybreaker"'z poradników z okresu 1.20.5 sprawia, że nazwa przedmiotu zawiera widoczne cudzysłowy. - Usuwanie wartości domyślnej. Poprzedź komponent znakiem
!, aby usunąć komponent, który przedmiot normalnie ma —[!attribute_modifiers]daje miecz bez żadnego bonusu do obrażeń. - Bedrock nie ma nic z tego. Bedrock
/givewciąż używa własnego modelu wartości danych i komponentów; ciąg komponentów z Java nie zadziała w tym wydaniu.
Generator /give zapisuje za ciebie formę komponentową i pokazuje wynik dla obu wydań, więc możesz skopiować ten, który pasuje do serwera, na którym grasz.