マルチプレイなら『シン・VPS』がおすすめ!

【マイクラ】match_toolで使用したアイテムを検知【predicate】

【マイクラ】match_toolで使用したアイテムを検知【predicate】

この記事では、Minecraft Java Edition(バージョン1.20.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。

こんにちは!
マインクラフターのなつめ(@natsume_717b)です。

なつめ

2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!

この記事では、こんな疑問を解決します!

本記事の内容
  • match_toolでブロック破壊時のツールを確認
  • 実際の例

match_toolはpredicateの1種ですが、ルートテーブルで使用するものです。

というのも、ブロックを破壊した際に何のツール(アイテム)を使用していたかでドロップアイテムを変更することのできる項目だからです。

詳しく見ていくので、ぜひ参考にしてくださいね。

本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。

match_toolでブロック破壊時のツールを確認

match_toolを使用することで、ブロック破壊時に使用していたツールを確認できます。

例えば、「石ブロックを破壊した時に石のツルハシを使用していた場合には、ダイヤモンドをドロップする」という感じですね。

このように使うため、predicateでありながら実際はルートテーブルの記述に使用するものになります。

次項で具体例を交えて、詳しく見ていきましょう。

実際の例

前項で説明した通り、ルートテーブルで使用するため、それに合わせてデータパックを作成する必要があります。

今回は前項で説明した内容に合わせて作成します。
つまり、石のツルハシで石を壊した時にダイヤモンドがドロップするように作成するわけですね。

  • datapack本体
    • data
      • minecraft
        • loot_tables
          • blocks
            • stone.json
    • pack.mcmeta

pack.mcmetaとjsonファイル以外は全てフォルダになります。

pack.mcmetaの中身は以下の通り。

{
  "pack": {
    "pack_format": 26,
    "description": ""
  }
}

stone.jsonは以下の通り。

{
    "type": "minecraft:block",
    "pools": [
      {
        "rolls": 1,
        "entries": [
          {
            "type": "minecraft:item",
            "name": "minecraft:diamond"
          }
        ],
        "conditions": [
          {
            "condition": "minecraft:match_tool",
            "predicate": {
              "items": [
                "minecraft:stone_pickaxe"
              ]
            }
          }
        ]
      }
    ]
  }
  

conditions部分にmatch_toolを指示し、検知するアイテムとして石のツルハシ(stone_pickaxe)を記述しています。

match_toolではツールのみならず、アイテムであれば指示できます。

また、通常時のドロップなどを記述していないため、石のツルハシ以外で壊した場合は何もドロップしません。

まとめ

というわけで、今回のまとめです。

ポイント
  • match_toolではブロック破壊時に使用していたツールを検知することができ、ルートテーブルで使用する。

この記事は以上になります。

  • 【まとめ】functionコマンドの基本から応用【マイクラ】
  • 【まとめ】カスタムストラクチャーの実装・カスタム方法【マイクラ】
  • 【一覧】夏メの制作物【マップ・データパック配布】