ルートテーブル/アイテム修飾子

提供:Minecraft Japan Wiki
ナビゲーションに移動 検索に移動

アイテム修飾子(Item modifier)は、ルートテーブルのファンクションを分離し、/itemコマンドで使用できるようにしたものである。ver1.17で追加された。

数値セレクタ

利用法[編集 | ソースを編集]

以下のファンクションから1つを選んで記述し、JSONファイルとしてデータパックの中に保存する。

ファンクションの一覧[編集 | ソースを編集]

apply_bonus[編集 | ソースを編集]

{
    "function":"apply_bonus",
    "enchantment":"<エンチャントID>",
    "formula":"binominal_with_bonus_count / uniform_bonus_count / ore_drops",
    "parameters":[
        "extraRounds":<4バイト整数値>,
        "probability":<4バイト浮動小数点値>,
        "bonusMultiplier":<4バイト浮動小数点値>
    ]
}

エンチャントレベルを反映してアイテムの生成数を変える。エンチャントIDはこちらを参照。

binominal_with_bonus_countの場合:
"enchantment"で指定したエンチャントのレベルをL、"parameters"の"extraRounds"の値をE、"probability"の値をPとして、二項分布(L+E, P)に従う値を返す。
uniform_bonus_countの場合:
"enchantment"で指定したエンチャントのレベルをL、"parameters"の"bonusMultiplier"の値をBとして、0とL×Bの間の任意の数を返す。
ore_dropsの場合:
"enchantment"で指定したエンチャントのレベルをLとすると、もともとのアイテムの生成数にmax(0,random(0,L+2)-1)+1を掛けた値を返す。
ただしmax(a,b)はaとbのうち大きい方の値を表し、random(a,b)はaとbの間の任意の数を表す。


copy_name[編集 | ソースを編集]

{
    "function":"copy_name",
    "source":"block_entity"
}

ブロックのカスタムネームを引き継ぐ。
ブロックを採掘したときに出るアイテムを指定する場合にのみ有効。


copy_nbt[編集 | ソースを編集]

{
    "function":"copy_nbt",
    "source":"block_entity / this / killer / killer_player / direct_killer",
    "ops":[
        {
            "source":"<データタグのパス>",
            "target":"<データタグのパス>",
            "op":"replace / append / merge"
        }
    ]
}

データタグ(NBTタグ)の内容をコピーする。sourceで指定したタグからtargetで指定したタグへコピーが行われる。
opでreplaceとすると上書き、appendとするとリストへの追加(コピー先のタグがList型の場合)、mergeとするとタグへの追加(コピー先のタグがcompound型の場合)が行われる。 sourceの値は、ブロックエンティティの場合block_entity、エンティティを倒したエンティティの場合はkiller、エンティティを倒したプレイヤーの場合はkiller_player、エンティティを直接倒したエンティティの場合はdirect_killer、それ以外の場合はthisとする。
killerとdirect_killerの違いであるが、たとえば矢でエンティティを倒した場合、killerは矢を放ったエンティティ、direct_killerは矢自体となる。

データタグのパスの記法 (NBT path format)
AでタグAを選択。
{}でデータタグ全体を選択。
{A:x}でタグA:xが含まれている場合に限りデータタグ全体を選択。
A{}でCompound型のタグAを選択。
A{B:x}でタグB:xを含むCompound型のタグAを選択。
A[]でList型のタグAのすべての要素を選択。
A[x]でList型のタグAの(x+1)番目の要素を選択。
A[{}]でList型のタグAに含まれる{}で区切られた要素をすべて選択。
A[{B:x}]でList型のタグAに含まれる{}で区切られた要素のうちタグB:xを含むものを選択。
A.BでCompound型のタグAに含まれるタグBを選択。

これらは入れ子的に使用可能。
例えば{A:{B:{C:[D:135,E:534]}}}というタグ構造に対して、A.B.C[0]のように書くことでタグDを選択できる。

copy_state[編集 | ソースを編集]

{
    "function":"copy_state",
    "block":"<ブロックID>",
    "properties":[
        "<ブロックの状態>"
    ]
}

ブロックの状態をコピーする。ブロックIDはこちらを、状態についてはこちらを参照。


enchant_randomly[編集 | ソースを編集]

{
    "function":"enchant_randomly",
    "enchantments":[<エンチャントID>]
}

ランダムなエンチャントを付与する。
enchantmentsタグがある場合はそこに書かれたエンチャントのいずれかが付与され、ない場合はそのアイテムに付与できるすべてのエンチャントが対象となる。
エンチャントIDはこちらを参照。


enchant_with_levels[編集 | ソースを編集]

{
    "function":"enchant_with_levels",
    "treasure":trueまたはfalse,
    "levels":<4バイト整数値> / "$!数値セレクタ!$"
}

アイテムに特定のエンチャントレベルのエンチャントを付与する。
treasureはトレジャーエンチャントを付与するかどうか。


exploration_map[編集 | ソースを編集]

{
    "function":"exploration_map",
    "destination":"<構造物のID>",
    "decoration":"<マップアイコンのID>",
    "zoom":<4バイト整数値>,
    "search_radius":<4バイト整数値>,
    "skip_existing_chunks":true / false
}

白紙の地図を冒険家の地図に置き換える。


destination
その地図が示す構造物の種類を指定する。構造物のIDはこちらを参照。
decoration
地図上で構造物を示すアイコンを指定する。アイコンのIDは以下の通り。
ID 画像 ID 画像
player banner_yellow
frame banner_lime
red_marker banner_pink
blue_marker banner_gray
target_x banner_light_gray
target_point banner_cyan
player_off_map banner_purple
player_off_limits banner_blue
mansion banner_brown
monument banner_green
banner_white banner_red
banner_orange banner_black
banner_magenta red_x
banner_light_blue
zoom
地図の倍率。
search_radius
構造物を探す距離(チャンク単位)
skip_existing_chunks
生成済みのチャンクをスキップするかどうか(オプション)。デフォルトはtrue。


explosion_decay[編集 | ソースを編集]

{
    "function":"explosion_decay"
}

爆発があったときに、爆発力の逆数の確率でアイテムを消す。


furnace_smelt[編集 | ソースを編集]

{
    "function":"furnace_smelt"
}

アイテムを精錬後のアイテムに置き換える。


fill_player_head[編集 | ソースを編集]

{
    "function":"fill_player_head",
    "entity":"this / killer / killer_player / direct_killer"
}

プレイヤーの頭を特定のプレイヤーのものに置き換える。


limit_count[編集 | ソースを編集]

{
    "function":"limit_count",
    "limit":<4バイト整数値> / "$!数値セレクタ!$"
}

生成されるアイテムのスタック数に上限を設ける。

looting_enchant[編集 | ソースを編集]

{
    "function":"looting_enchant",
    "count":<4バイト整数値> / "$!数値セレクタ!$",
    "limit":<4バイト整数値>
}

ドロップ増加のエンチャントに応じてドロップアイテム数を補正する。limitは上限を指定する。


set_attributes[編集 | ソースを編集]

{
    "function":"set_attributes",
    "modifiers":[
        {
            "name":"<Modifier名>",
            "attribute":"<Attribute名>",
            "operation":"addition / multiply_base / multiply_total",
            "amount":<4バイト浮動小数点値> / "$!数値セレクタ!$",
            "id":"<UUID>",
            "slot":"mainhand/offhand/feet/legs/chest/head" / ["<以上のいずれか>"]
        }
    ]
}

アイテムのAttributeを変更する。Attributeについてはこちらを参照。


set_contents[編集 | ソースを編集]

{
    "function":"set_contents",
    "entries":[{<エントリー>}]
}

インベントリのあるブロックのドロップに内容物を追加する。
内容物の指定は、entriesタグ内にルートテーブルのエントリーを並べて行う。


set_count[編集 | ソースを編集]

{
    "function":"set_count",
    "count":<4バイト整数値> / "$!数値セレクタ!$"
}

1スタックあたりのアイテムの個数を指定する。


set_damage[編集 | ソースを編集]

{
    "function":"set_damage",
    "damage":<4バイト浮動小数点値> / "$!数値セレクタ!$"
}

アイテムの耐久値を設定する。"damage"で指定した数が1.0で耐久最大、0.0で耐久なしとなる。


set_loot_table[編集 | ソースを編集]

{
    "function":"set_loot_table",
    "name":"<ルートテーブルのパス>",
    "seed":<4バイト整数値>
}

アイテムにルートテーブルを付与する。
seedはルートテーブルのシード値。ワールドのシード値とは無関係。


set_lore[編集 | ソースを編集]

{
    "function":"set_lore",
    "lore":["<説明文の1行目>","<説明文の2行目>",…],
    "entity":"this / killer / killer_player / direct_killer",
    "replace":true / false
}

アイテムの説明文を書き換える。"entity"はテキスト中の@sを置き換えるのに使用する。
エンティティを倒したエンティティの場合はkiller、エンティティを倒したプレイヤーの場合はkiller_player、エンティティを直接倒したエンティティの場合はdirect_killer、それ以外の場合はthisとする。
killerとdirect_killerの違いであるが、たとえば矢でエンティティを倒した場合、killerは矢を放ったエンティティ、direct_killerは矢自体となる。
replaceは上書きするかどうか。


set_name[編集 | ソースを編集]

{
    "function":"set_name",
    "name":"<名前>",
    "entity":"this / killer / killer_player / direct_killer"
}

アイテムの名前を書き換える。"entity"はテキスト中の@sを置き換えるのに使用する。
エンティティを倒したエンティティの場合はkiller、エンティティを倒したプレイヤーの場合はkiller_player、エンティティを直接倒したエンティティの場合はdirect_killer、それ以外の場合はthisとする。
killerとdirect_killerの違いであるが、たとえば矢でエンティティを倒した場合、killerは矢を放ったエンティティ、direct_killerは矢自体となる。


set_nbt[編集 | ソースを編集]

{
    "function":"set_nbt",
    "tag":"<NBTタグ>"
}

アイテムにNBTタグを付与する。引用符(")は\でエスケープしなくてはいけない。


set_stew_effect[編集 | ソースを編集]

{
    "function":"set_stew_effect",
    "effects":[
        {
            "type":"<エフェクトID>",
            "duration":<4バイト整数値>
        }
    ]
}

怪しげなシチューのエフェクトを指定。エフェクトIDはこちらを参照。
durationは継続時間。


数値セレクタ[編集 | ソースを編集]

数値セレクタは以下の3種類である。

{
    "type":"constant",
    "value":<4バイト整数値> / <4バイト浮動小数点値>
}

valueの値を返す。


{
    "type":"uniform",
    "min":<4バイト整数値> / <4バイト浮動小数点値> / <数値セレクタ>,
    "max":<4バイト整数値> / <4バイト浮動小数点値> / <数値セレクタ>
}

minとmaxの間の任意の数を返す。


{
    "type":"binominal",
    "n":<4バイト整数値> / <数値セレクタ>,
    "p":<4バイト浮動小数点値> / <数値セレクタ>
}

二項分布(n,p)に従う値を返す。

Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。