この記事では、Minecraft Java Edition(バージョン1.20.5)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめです。
この記事では、こんな疑問を解決します!
- modify_contentsで格納物にitem_modifierを適用する
- 実例
modify_contentsはチェストの中身やクロスボウに装填したアイテムなどの格納物に対して、item_modifierを適用させるための項目です。
使いどころが少ないようで多いため、決して軽視できない項目と言えます。
具体的な例を交えて説明するので、ぜひ参考にしてくださいね。
それでは見ていきましょう!
本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。
modify_contentsで格納物にitem_modifierを適用する
modify_contentsは格納物に対してitem_modifierを適用することに特化しています。
格納物というのはチェストや樽、バンドルに格納されているアイテムや弓、クロスボウにセットされているアイテムをこの場では指します。
正確にはcontainer、bundle_contents、charged_projectilesに対して適用できる項目です。
つまり、チェストやバンドルに仕舞われているアイテムやクロスボウを引き絞ってセットされたアイテムに対してitem_modifierを適用するわけですね。
分かりやすい例を挙げるならば、チェストに仕舞っているアイテムに対してset_nameを使って名前を変更してしまうなどといった感じになります。
次項では具体的に見ていきましょう。
実例
まずはデータパックの構造からです。
- データパック本体
- data
- フォルダー
(今回はsampleと命名したとします)- item_modifiers
- jsonファイル
(今回はtest.jsonと命名したとします)
- jsonファイル
- item_modifiers
- フォルダー
- pack.mcmeta
- data
jsonファイルには、以下のような記述を行います。
{
"function": "minecraft:modify_contents",
"component": "minecraft:container",
"modifier": {
"function": "minecraft:set_name",
"target": "item_name",
"name": "Custom_Name"
}
}
上記の場合は、conatainerを持つアイテムに対して、格納物すべてにCustom_Nameという名前に変更するよう指示しているものです。
componentの部分でcontainer、bundle_contents、charged_projectilesのどれを対象とするのかを指示し、modifier内で適用したいitem_modifierの内容を書き込んでいます。
また、基本的にはすべての格納物に対して適用させてしまうため、必要に応じてconditionで条件を指示してあげる必要があります。
まとめ
というわけで、今回のまとめです。
- modify_contentsを使うことで、格納物に対してitem_modifierを適用させることが出来る。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!