ブロック・アイテム・エンティティID:名前空間、ブロック状態、そして異なるものたち
IDは必ずしもアイテムの名前と同じではなく、ブロックIDはアイテムIDと同一ではありません。命名規則、古いコマンドを壊す改名、そして状態がどこに収まるのかを解説します。名前空間は省略できますが、明示することが推奨されます。
「Unknown item」や「Unknown block」で失敗するコマンドはすべてIDの問題です。そしてその規則は「小文字とアンダースコア」よりもずっと繊細です。
データにおいて名前空間は省略できない
minecraft:diamond_sword
my_pack:custom_sword
コマンドではminecraft:を省略できます——/give @s diamond_swordは動作します——し、JSONファイルも同様です。ルートテーブルやレシピ内の裸のdiamond_swordはminecraft:diamond_swordに解決されます。それでも常に名前空間を書くようにしましょう。自分のIDが曖昧でなくなり、名前空間内のタイプミスも見つけやすくなります。
ブロックIDとアイテムIDは別物
アイテムを持たないブロックもあれば、別のブロックを設置するアイテムもあります:
| アイテム | 設置されるブロック |
|---|---|
minecraft:wheat_seeds | minecraft:wheat |
minecraft:redstone | minecraft:redstone_wire |
minecraft:string | minecraft:tripwire |
minecraft:flower_pot | minecraft:flower_pot、ただし植木鉢入りは別ブロック |
| — | minecraft:water、minecraft:fireはアイテムを持たない(airは空スタックとしてのみアイテムに存在) |
/setblockはブロックIDを取ります。/giveはアイテムIDを取ります。間違った方を使うことが、明らかに存在するものに対して「そのIDは存在しません」と言われる最も一般的な原因です。
ブロック状態は角括弧の中に住む
/setblock ~ ~ ~ oak_stairs[facing=east,half=top,waterlogged=true]
状態はアイテムではなくブロックのプロパティです——普通の階段アイテムの回転は設置時に決まります。例外はblock_stateコンポーネントを持つアイテムで、そのプロパティは設置後に適用されます。指定されていないプロパティはデフォルト値を取ります。
waterloggedは人をよく引っかけます:階段、ハーフブロック、フェンス、その他数十種類に存在し、それを指定せずにブロックを設置すると、そこにあった水が削除されます。
古いコマンドを壊す改名
いくつかのIDは変更され、古いものは単に不明なものになりました:
| 旧 | 現在 |
|---|---|
grass | short_grass |
grass_path | dirt_path |
scute | turtle_scute |
sign | oak_signおよびその仲間たち |
grassが厄介なものです。なぜならgrass_blockは今も存在し、別のものであるからです。植物に対してgrassを使っていた古いコマンドは、不明なブロックとして失敗するようになりました。
エンティティID
ほとんどは予測可能ですが、例外があります:snowmanではなくminecraft:snow_golem、mushroom_cowではなくminecraft:mooshroom、そしてすべての飛翔体は独自のエンティティです——minecraft:arrow、minecraft:spectral_arrow、minecraft:trident。
技術的にはブロックエンティティであるエンティティ——チェスト、ホッパー、看板——はエンティティリストに現れず、/summonすることもできません。それらはブロックとして設置され、/dataで編集します。
タグはリストに勝る
#minecraft:planks #minecraft:logs #minecraft:wool
#minecraft:doors #minecraft:beds #minecraft:swords
コマンドやJSONがタグを受け入れる場所では、それを使うことでMojangが新しい木材の種類を追加しても生き残ります。13種類の板材IDをすべてハードコードすることはできません。
すべてのブロック、アイテム、エンティティIDを、ブロック状態とそれぞれが属するタグとともに検索するには、Block, Item & Entity ID Browserをご利用ください。