この記事では、Minecraft Java Edition(バージョン1.20.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめ(@natsume_717b)です。
この記事では、こんな疑問を解決します!
- match_toolでブロック破壊時のツールを確認
- 実際の例
match_toolはpredicateの1種ですが、ルートテーブルで使用するものです。
というのも、ブロックを破壊した際に何のツール(アイテム)を使用していたかでドロップアイテムを変更することのできる項目だからです。
詳しく見ていくので、ぜひ参考にしてくださいね。
本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。
match_toolでブロック破壊時のツールを確認
match_toolを使用することで、ブロック破壊時に使用していたツールを確認できます。
例えば、「石ブロックを破壊した時に石のツルハシを使用していた場合には、ダイヤモンドをドロップする」という感じですね。
このように使うため、predicateでありながら実際はルートテーブルの記述に使用するものになります。
次項で具体例を交えて、詳しく見ていきましょう。
実際の例
前項で説明した通り、ルートテーブルで使用するため、それに合わせてデータパックを作成する必要があります。
今回は前項で説明した内容に合わせて作成します。
つまり、石のツルハシで石を壊した時にダイヤモンドがドロップするように作成するわけですね。
- datapack本体
- data
- minecraft
- loot_tables
- blocks
- stone.json
- blocks
- loot_tables
- minecraft
- pack.mcmeta
- data
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ではブロック破壊時に使用していたツールを検知することができ、ルートテーブルで使用する。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!