この記事では、Minecraft Java Edition(バージョン1.20.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。
こんにちは!
マインクラフターのなつめです。
この記事では、こんな疑問を解決します!
- set_enchantmentsでエンチャント付与
- 実例
set_enchantmentsはその名の通り、エンチャントを付与するためのitem_modifierとなっています。
item_modifierには複数の、エンチャントを付与することが出来る項目がありますが、それらの違いを解説するほか、具体的な例も見ていきます。
それでは、さっそく見ていきましょう!
本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。
set_enchantmentsでエンチャント付与
set_enchantを使用することで、アイテムにエンチャントを付与することが出来ます。
同じitem_modifierとしてエンチャントを付与することが出来るenchant_randomlyやenchant_with_levelsがありますが、それらとは異なり、指示したエンチャント内容そのものを付与します。
なので、ランダム性がないものになっています。
enchant_randomlyやenchant_with_levelsについては、過去記事をどうぞ。
指示したものを確実に付与できるので、ランダム性が必要ない場合にはset_enchantsを使いましょう。
実例
実際の例を見ていきます。
データパックの構造としては、以下の通り。
- データパック本体
- data
- minecraft
- loot_tables
- entities
- cod.json
- entities
- loot_tables
- フォルダー
(今回はsampleと命名したとします)- item_modifiers
- jsonファイル
(今回はtest.jsonと命名したとします)
- jsonファイル
- item_modifiers
- minecraft
- pack.mcmeta
- data
上記では、タラのドロップ品をエンチャントが付与されているアイテムに変更しているほか、item_modifierとしてset_enchantsを記述しているファイルの場所を示しています。
それぞれのjsonファイルの記述を見てみます。
タラのドロップ品を変更しているファイルの記述
cod.jsonの中身はこちら。
{
"type": "minecraft:entity",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:diamond_axe",
"functions": [
{
"function": "minecraft:set_enchantments",
"enchantments": {
"minecraft:fortune": 3
}
}
]
}
]
}
]
}
このように記述した場合、タラのドロップ品がダイヤモンドの斧となり、その斧には幸運Ⅲのエンチャントが付与されています。
記述する際に特に難しいことはなく、ennchantments内にエンチャントの指示とそのレベルを記述するだけですね。
item_modifierとしての記述
item_modifierとして記述する場合は、以下のようなものになります。
[
{
"function": "minecraft:set_enchantments",
"enchantments": {
"minecraft:infinity": 3,
"minecraft:efficiency": 3
},
"add": true
}
]
この場合は、無限Ⅲと効率強化Ⅲが付与されます。
本来付与されないエンチャントでもitem_modifierを使うことで付与できてしまいます。
そのため、相容れない上記のような組み合わせでも問題ありません。
また、addの項目をtrueにしているため、これから付与しようとしているエンチャントがすでに付与されていた場合は、そのレベルを合算します。
上記の例で言えば、効率強化Ⅱが付いている状態で適用させれば、効率強化Ⅴとなるわけですね。
addがfalseで指示されていた場合は、重複するエンチャントはもともとのレベルを無視して、item_modifierで指示されているレベルになります。
要は合算することなく、上書きしてしまうわけです。
適用させるコマンドとしては、以下のようなものになります。
/item modify entity @s weapon.mainhand sample:test
まとめ
というわけで、今回のまとめです。
- set_enchantmentsを使うことで、指示したエンチャントをアイテムに付与させることが出来る。
この記事は以上になります。
2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!