やってくれたなMojangといったところですが、気がついたのが現時点でのエラーログなので1.20.xのエラーとしていますが、ここ最近のバージョンアップでいくつかコマンド記述の名前や、コマンドでのJSONの構文の取り扱いを変更したとみられるエラーを確認しました。
以下にエラーの一部を書いておきます。
Couldn't parse element loot_tables:main:gameplay/fishing/junk - Not a json array: {"condition":"minecraft:alternative","terms":[{"condition":"minecraft:location_check","predicate":{"biome":"minecraft:jungle"}},{"condition":"minecraft:location_check","predicate":{"biome":"minecraft:jungle_hills"}},{"condition":"minecraft:location_check","predicate":{"biome":"minecraft:jungle_edge"}},{"condition":"minecraft:location_check","predicate":{"biome":"minecraft:bamboo_jungle"}},{"condition":"minecraft:location_check","predicate":{"biome":"minecraft:modified_jungle"}},{"condition":"minecraft:location_check","predicate":{"biome":"minecraft:modified_jungle_edge"}},{"condition":"minecraft:location_check","predicate":{"biome":"minecraft:bamboo_jungle_hills"}}]}
Minecraftのエラーって場所とかファイル名で教えてくれるのですが、実際どう直せばいいとか正確な位置を教えてくれないことがあるので困ります。
Amazon | マインクラフト(MINECRAFT) モブヘッド ミニフィギュア アソートE 【フィギュア36体入り Box販売】 【6才~】 986E-HDV64 | フィギュア・ドール 通販
わたしは年度によってデータパックを複数分けているのですが、場所は釣りの釣果を司るファイルで
datapacks\フォルダ\data\minecraft\gameplay\fishing
にある、junk.json
ここが以前だと
{ "type": "minecraft:item", "conditions": [ { "condition": "minecraft:alternative", "terms": [ { "condition": "minecraft:location_check", "predicate": { "biome": "minecraft:jungle" } },
となっていましたが
{ "type": "minecraft:item", "conditions": [ { "condition": "minecraft:any_of", "terms": [ { "condition": "minecraft:location_check", "predicate": { "biome": "minecraft:jungle" } },
のように変更されています。
Wikiだと2023年5月3日親バージョン1.20のスナップショットで変更されていたようです。
プレディケート
Java Edition 23w18a – Minecraft Wiki
ルート条件alternativeは、any_ofに改名された。
新しいルート条件all_ofが追加された。
下位の条件をすべて通過した際に通過できる条件。構文はany_ofと同じ。
https://minecraft.fandom.com/ja/wiki/Java_Edition_23w18a
また、スコアボードのサイドバーの表示スロット名が1.20.2でbelowName
からbelow_name
に変更になっています。
scoreboard objectives setdisplay belowName HP
↓
scoreboard objectives setdisplay below_name HP
さらにはJSONの書き方も変更があったと見られるが、割と影響が大きそうな変更となっています。
{"text":"[JSON] ","color":"gold","bold":"true"}
↓
{"text":"[JSON]","color":"gold","bold":true}
生のJSONテキスト形式
パッチノート – Minecraft Japan Wiki
プレーンテキストのチャットコンポーネント(テキスト、兄弟なし、スタイルなし)は、{“text”: “your text”}ではなく、常に文字列としてシリアル化されるようになった。
チャットコンポーネントは、ネットワーク経由で送信されるときにNBTにシリアル化されるようになった。
タイプnbtのコンポーネントには、許可される値:entity、block、storageを含むsourceフィールドが追加された。
解析を高速化し、エラー チェックを改善するために、チャット コンポーネントにオプションのタイプ値(許可される値:text、translatable、score、selector、nbt、keybind)が追加された。
show_entity・hoverEventスタイルのidフィールドは、UUIDを4つの整数の配列としても受け入れるようになった。
translate コンポーネントの数値およびブール引数は文字列に変換されなくなりました。
以下のJSONコンポーネント表現は受け入れられなくなった:
null
[]
以下のスタイルフィールドのエラーが黙って無視されなくなった:
color
clickEvent
hoverEvent
hoverEvent[action=show_entity].contents.name
hoverEvent[action=show_item].contents.tag
https://minecraftjapan.miraheze.org/wiki/%E3%83%91%E3%83%83%E3%83%81%E3%83%8E%E3%83%BC%E3%83%88
データパックのエラーチェックでエラー箇所を修正しておきましたが、これの修正だけで半日潰れちゃいました。