Minecraft 1.20.xにバージョンアップによる変更が原因で過去マップのデータパックにあるコマンドやJSON構文エラー

Minecraft 1.20.xにバージョンアップによる変更が原因で過去マップのデータパックにあるコマンドやJSON構文エラー

やってくれたなMojangといったところですが、気がついたのが現時点でのエラーログなので1.20.xのエラーとしていますが、ここ最近のバージョンアップでいくつかコマンド記述の名前や、コマンドでのJSONの構文の取り扱いを変更したとみられるエラーを確認しました。

Minecraft 1.20.xにバージョンアップによる変更が原因で過去マップのデータパックにあるコマンドやJSON構文エラー
Minecraft 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のスナップショットで変更されていたようです。

プレディケート
ルート条件alternativeは、any_ofに改名された。
新しいルート条件all_ofが追加された。
下位の条件をすべて通過した際に通過できる条件。構文はany_ofと同じ。

Java Edition 23w18a – Minecraft Wiki
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テキスト形式
プレーンテキストのチャットコンポーネント(テキスト、兄弟なし、スタイルなし)は、{“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

パッチノート – Minecraft Japan Wiki
https://minecraftjapan.miraheze.org/wiki/%E3%83%91%E3%83%83%E3%83%81%E3%83%8E%E3%83%BC%E3%83%88

データパックのエラーチェックでエラー箇所を修正しておきましたが、これの修正だけで半日潰れちゃいました。

Related Posts Plugin for WordPress, Blogger...