ルートテーブル/プレディケート

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

プレディケート(Predicate)は、ルートテーブル条件(コンディション)を分離し、コマンドの実行時の条件(引数。こちらを参照)としても使えるようにしたものである。ver1.15で追加された。

数値セレクタ
アイテム共通
エンティティ共通
位置共通
ダメージの種類共通

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

以下のコンディションから一つまたは複数を選んで記述し、JSONファイルとしてデータパックの中に保存する。
複数個選んだ場合は、中括弧 [] の中に並列する。

コンディションの一覧[編集 | ソースを編集]

以下の説明中で、「アイテム共通」、「位置共通」、「エンティティ共通」、「ダメージの種類共通」と書かれている部分をクリックすると、その部分に使えるタグの一覧に移動する。ブラウザの戻るボタンで元の位置に戻ることができる。

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

{
    "condition":"block_state_property",
    "block":"<ブロックID>",
    "property":{<そのブロックの状態>}
}

ブロックの種類および状態に対する条件。ブロックIDはこちらを、ブロックの状態はこちらを参照。


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

{
    "condition":"damage_source_properties",
    "predicate":{"$!ダメージの種類共通!$"}
}

ダメージの種類に対する条件。


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

{
    "condition":"entity_properties",
    "entity":"this / killer / killer_player / direct_killer",
    "predicate":{"$!エンティティ共通!$"}
}

エンティティに対する条件。
エンティティを倒したエンティティへの条件の場合はkiller、エンティティを倒したプレイヤーへの条件の場合はkiller_player、エンティティを直接倒したエンティティへの条件の場合はdirect_killer、それ以外の場合はthisとする。
killerとdirect_killerの違いであるが、たとえば矢でエンティティを倒した場合、killerは矢を放ったエンティティ、direct_killerは矢自体となる。


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

{
    "condition":"entity_scores",
    "entity":"thisまたはkillerまたはkiller_playerまたはdirect_killer",
    "scores":{
        "<スコアボードオブジェクト名>":<4バイト整数値> / "$!数値セレクタ!$"
    }
}

スコアボードの値に対する条件。
エンティティを倒したエンティティへの条件の場合はkiller、エンティティを倒したプレイヤーへの条件の場合はkiller_player、エンティティを直接倒したエンティティへの条件の場合はdirect_killer、それ以外の場合はthisとする。
killerとdirect_killerの違いであるが、たとえば矢でエンティティを倒した場合、killerは矢を放ったエンティティ、direct_killerは矢自体となる。


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

{
    "condition":"killed_by_player",
    "inverse":true / false
}

他のエンティティを倒したプレイヤーがいるか(=エンティティがプレイヤーに倒されたか)を判定。inverseをtrueとすると、真偽が反転する。

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

{
    "condition":"location_check",
    "offsetX":<4バイト整数値>,
    "offsetY":<4バイト整数値>,
    "offsetZ":<4バイト整数値>,
    "predicate":{"$!位置共通!$"}
}

位置に対する条件。


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

{
    "condition":"match_tool",
    "predicate":{"$!アイテム共通!$"}
}

ツールに対する条件。


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

{
    "condition":"random_chance",
    "chance":<4バイト浮動小数点値>
}

0~1までの任意の数を生成し、それがchanceに記載した値より小さいときに真となる。
(言い換えれば、chanceの値の確率で真となる)


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

{
    "condition":"random_chance_with_looting",
    "chance":<4バイト浮動小数点値>,
    "looting_multiplier":<4バイト浮動小数点値>
}

random_chanceに幸運の効果を反映させたバージョン。


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

{
    "condition":"survives_explosion"
}

爆発が起きたとき、爆発力の逆数の確率で真となる。


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

{
    "condition":"table_bonus",
    "enchantment":"<エンチャントID>",
    "chances":[<各エンチャントレベルに対応する確率>]
}

エンチャントレベル毎に定めた確率で真となる。
chancesタグの中には、エンチャントレベルに応じた確率をレベル0(=エンチャントなし)から順に記述する。


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

{
    "condition":"time_check",
    "value":<4バイト整数値> / "$!数値セレクタ!$",
    "period":<4バイト整数値>
}

現在の時間に対する条件。periodタグがある場合、現在の時間をperiodタグの値で割った余りで判定される。


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

{
    "condition":"weather_check",
    "raining":true / false,
    "thundering":true / false
}

現在の天候に対する条件。


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

{
    "condition":"reference",
    "name":"<predicateファイルのパス>"
}

nameに記載したプレディケートが真の時に真となる。


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

{
    "condition":"alternative",
    "terms":[
        <コンディション>
    ]
}

termsの中に並べたコンディションのうちいずれか一つが真の時に真となる。


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

{
    "condition":"inverted",
    "term":<コンディション>
}

termの後ろに記述したコンディションの真偽を反転させる。


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

数値セレクタは以下の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)に従う値を返す。


共通のタグ[編集 | ソースを編集]

アイテム共通[編集 | ソースを編集]

"item":"<アイテムID>"

アイテムのID。
ver1.13以降はこちらver1.12.2まではこちらを参照。


"nbt":{<アイテムのデータタグ>}

そのアイテムのデータタグを指定。
データタグについてはこちらを参照。


"tag":"<データパックのタグのパス>"

ver1.13で追加
データパックのタグについてはこちらを参照。


"count":<4バイト整数値>または
"count":{"min":<4バイト整数値>,"max":<4バイト整数値>}

アイテムの個数。


"durability":<4バイト整数値>または
"durability":{"min":<4バイト整数値>,"max":<4バイト整数値>}

アイテムの耐久値。


"enchantments":[{"enchantment":"<ID>","levels":<4バイト整数値>}]または
"enchantments":[{"enchantment":"<ID>","levels":{"min":<4バイト整数値>,"max":<4バイト整数値>}}]

アイテムのエンチャントの種類とそのレベル。
IDについてはこちらを参照。


"stored_enchantments":[{"enchantment":"<ID>","levels":<4バイト整数値>}]または
"stored_enchantments":[{"enchantment":"<ID>","levels":{"min":<4バイト整数値>,"max":<4バイト整数値>}]

ver1.15で追加
エンチャントの本のエンチャントの種類、およびそのレベル。ver1.14.4まではエンチャントの本もenchantmentsタグを用いる。


"potion":"<ポーションの種類>"

ポーションの場合のみ有効。
ポーションの種類は以下の表を参照。


表:ポーションの種類を表す文字列

ポーション 効果 通常 II 延長
未使用のポーション なし empty
水入り瓶 なし water
ありふれたポーション なし mundane
濃厚なポーション なし thick
奇妙なポーション なし awkward
暗視のポーション 暗視 night_vision long_night_vision
透明化のポーション 透明化 invisibility long_invisibility
跳躍のポーション 跳躍力上昇 leaping strong_leaping long_leaping
耐火のポーション 火炎耐性 fire_resistance long_fire_resistance
俊敏のポーション 移動速度上昇 swiftness strong_swiftness long_swiftness
鈍化のポーション 移動速度低下 slowness strong_slowness long_slowness
水中呼吸のポーション 水中呼吸 water_breathing long_water_breathing
治癒のポーション 即時回復 healing strong_healing
負傷のポーション 即時ダメージ harming strong_harming
毒のポーション poison strong_poison long_poison
再生のポーション 再生能力 regeneration strong_regeneration long_regeneration
力のポーション 攻撃力上昇 strength strong_strength long_strength
弱化のポーション 弱体化 weakness long_weakness
幸運のポーション 幸運 luck
タートルマスターのポーション 移動速度低下・耐性 turtle_master strong_turtle_master long_turtle_master
低速落下のポーション 落下速度低下 slow_falling long_slow_falling


位置共通[編集 | ソースを編集]

"biome":"<バイオームID>"

その位置におけるバイオーム
ver1.13以降のバイオームIDはこちらを、ver1.12.2までのバイオームIDはこちらを参照。


"block":{
    "block":"<ブロックID>",
    "state":{<ブロックの状態>},
    "tag":"<データパックのタグ>",
    "nbt":"<NBTタグ>"
}

ver1.15で追加
その位置に存在するブロック
ブロックIDはこちらを、ブロックの状態はこちらを参照。


"fluid":{
    "fluid":"<液体のID>",
    "tag":"<データパックのタグ>",
    "state":{<状態>}
}

ver1.15で追加
その位置に存在する液体。
液体のIDはこちらを、状態はこちらを参照。


"light":{
    "light":<4バイト整数値> / {"max":<4バイト整数値>,"min":<4バイト整数値>}
}

ver1.15で追加
その位置の明るさ。


"smokey":true / false

ver1.16で追加
付近に焚火または魂の焚火があるかどうか。


"position":{
    "x":<8バイト浮動小数点値> / {"max":<8バイト浮動小数点値>,"min":<8バイト浮動小数点値>},
    "y":<8バイト浮動小数点値> / {"max":<8バイト浮動小数点値>,"min":<8バイト浮動小数点値>},
    "z":<8バイト浮動小数点値> / {"max":<8バイト浮動小数点値>,"min":<8バイト浮動小数点値>}
}

その位置の座標。


"dimension":"overworld / the_nether / the_end"

その位置のディメンション。


"structure":"<構造物のID>"

ver1.19から
その位置にある構造物。構造物のIDはこちらを参照。


"feature":"<構造物のID>"

ver1.18.2まで
その位置にある構造物。構造物のIDはこちらを参照。


エンティティ共通[編集 | ソースを編集]

"type":"<エンティティID>"

エンティティのID。
ver1.13以降はこちらを、ver1.12.2まではこちらを参照。


"nbt":"<NBTタグ>"

エンティティのデータタグ。
こちらを参照。


"team":"<チーム名>"

ver1.15で追加
そのエンティティが属するチーム。


"location":{"$!位置共通!$"}

エンティティのいる場所に対する条件。


"distance":{
    "absolute":{
        "max":<4バイト浮動小数点値>,
        "min":<4バイト浮動小数点値>
    },
    "horizontal":{
        "max":<4バイト浮動小数点値>,
        "min":<4バイト浮動小数点値>
    },
    "x":{
        "max":<4バイト浮動小数点値>,
        "min":<4バイト浮動小数点値>
    },
    "y":{
        "max":<4バイト浮動小数点値>,
        "min":<4バイト浮動小数点値>
    },
    "z":{
        "max":<4バイト浮動小数点値>,
        "min":<4バイト浮動小数点値>
    }
}

プレイヤーから当該エンティティまでの距離。
absoluteは直線距離、horizontalは水平方向、
xはx軸方向、yはy軸方向、zはz軸方向の距離に対する条件となる。


"effects":{
    "<エフェクトID>":{
        "amplifier":<4バイト整数値> / {"min":<4バイト整数値>,"max":<4バイト整数値>},
        "duration":<4バイト整数値> / {"min":<4バイト整数値>,"max":<4バイト整数値>}
    }
}

当該エンティティに付与されているエフェクト。
エフェクトIDはこちらを参照。

amplifier
エフェクトのレベルを指定する。
duration
エフェクトの継続時間をtick(1/20秒)単位で指定する。


"equipment":{
    "mainhand":{"$!アイテム共通!$"},
    "offhand":{アイテム共通},
    "head":{アイテム共通},
    "chest":{アイテム共通},
    "legs":{アイテム共通},
    "feet":{アイテム共通}
}

ver1.14で追加
当該エンティティの装備しているアイテム。


"flags":{
    "is_on_fire":true / false,
    "is_sneaking":true / false,
    "is_sprinting":true / false,
    "is_swimming":true / false,
    "is_baby":true / false
}

ver1.14で追加
エンティティに対する条件。
is_on_fireは火がついているかどうか、is_sneakingはスニークしているかどうか、is_sprintingは走っているかどうか、is_swimmingは水中にいるかどうか、is_babyは子供かどうか。


"targeted_entity":{"$!エンティティ共通!$"}

当該エンティティが攻撃したエンティティに対する条件。


"vehicle":{"$!エンティティ共通!$"}

当該エンティティが乗っているエンティティに対する条件。


"type_spedific":{
    "type":"player" / "fishing_hook" / "lightning_bolt" / "cat" / "frog" / "slime",
    "<固有のタグ>":<値>
}

ver1.19から
特定のエンティティに対して有効な条件。typeの値に対応する固有のタグは以下の通り。


playerの場合:

    "advancements":{
        "<進捗のパス>":true / false,
        "<進捗のパス>":{
            "<条件の名前>":true / false
        }
    },
    "gamemode":"survival / creative / adventure / spectator",
    "level":<4バイト整数値>または{"max":<4バイト整数値>,"min":<4バイト整数値>},
    "recipes":{
        "<レシピのパス>":true / false
    },
    "stats":[
        {
            "type":"<統計の名前空間>",
            "stat":"<統計のID>",
            "value":<4バイト整数値>または{"max":<4バイト整数値>,"min":<4バイト整数値>}
        }
    ],
    "looking_at":{"$!エンティティ共通!$"}

プレイヤーに対する条件。

advancements
進捗、または進捗解除に必要な特定の条件を取得しているかどうか。
gamemode
プレイヤーのゲームモード
level
プレイヤーの経験値レベルに対する条件。
recipes
そのレシピが解放されているかどうか。
stats
統計の値に対する条件。名前空間とIDについてはこちらを参照。
looking_at
プレイヤーの視線の先にあるエンティティに対する条件。


fishing_hookの場合:

    "in_open_water":true / false

釣り竿の浮きに対する条件。

in_open_water
浮きの周囲5×4×5ブロックが水か空気であるかどうか。デフォルトでは「宝」カテゴリのアイテムが釣れるかどうかの判定に用いられている。


lightning_boltの場合:

    "blocks_set_on_fire":<4バイト整数値> / {"min":<4バイト整数値>,"max":<4バイト整数値>},
    "entity_struck":{"$!エンティティ共通!$"}

雷に対する条件。

blocks_set_on_fire
雷によって発火したブロックの個数に対する条件。
entity_struck
雷が当たったエンティティに対する条件。


catの場合:

    "variant":"<ネコの種類>"

ネコに対する条件。

variant
ネコの種類を指定。可能な値はネコのデータタグvariantに指定できるものと同じ。


frogの場合:

    "variant":"<カエルの種類>"

カエルに対する条件。

variant
カエルの種類を指定。可能な値はカエルのデータタグvariantに指定できるものと同じ。


slimeの場合:

    "size":<4バイト整数値> / {"min":<4バイト整数値>,"max":<4バイト整数値>}

スライムマグマキューブに対する条件。

size
大きさを指定。


"player":{
    "advancements":{
        "<進捗のパス>":true / false,
        "<進捗のパス>":{
            "<条件の名前>":true / false
        }
    },
    "gamemode":"survival / creative / adventure / spectator",
    "level":<4バイト整数値>または{"max":<4バイト整数値>,"min":<4バイト整数値>},
    "recipes":{
        "<レシピのパス>":true / false
    },
    "stats":[
        {
            "type":"<統計の名前空間>",
            "stat":"<統計のID>",
            "value":<4バイト整数値>または{"max":<4バイト整数値>,"min":<4バイト整数値>}
        }
    ],
    "looking_at":{"$!エンティティ共通!$"}
}

ver1.15からver1.18.2まで(looking_atはver1.17から)
エンティティがプレイヤーの場合に使える条件。上記「playerの場合」を参照。


"fishing_hook":{
    "in_open_water":true / false
}

ver1.16からver1.18.2まで
釣り竿の浮きに対する条件。上記「fishing_hookの場合」を参照。


"lightning_bolt":{
    "blocks_set_on_fire":<4バイト整数値> / {"min":<4バイト整数値>,"max":<4バイト整数値>},
    "entity_struck":{"$!エンティティ共通!$"}
}

ver1.17からver1.18.2まで
雷に対する条件。上記「lightning_boltの場合」を参照。


"catType":"<ネコの種類>"

ver1.14からver1.18.2まで
ネコに対する条件。ネコの種類は以下の通り。

クリックして表示
種類
minecraft:textures/entity/cat/tabby.png キジトラ
minecraft:textures/entity/cat/tuxedo.png 白黒
minecraft:textures/entity/cat/red.png チャトラ
minecraft:textures/entity/cat/siamese.png シャム
minecraft:textures/entity/cat/british_shorthair.png ブリティッシュショートヘア
minecraft:textures/entity/cat/calico.png 三毛
minecraft:textures/entity/cat/persian.png ペルシャ
minecraft:textures/entity/cat/ragdoll.png ラグドール
minecraft:textures/entity/cat/white.png 白ネコ
minecraft:textures/entity/cat/jellie.png キジ白
minecraft:textures/entity/cat/all_black.png


ダメージの種類共通[編集 | ソースを編集]

"bypasses_armor":true / false,
"bypasses_invulnerability":true / false,
"bypasses_magic":true / false,
"is_explosion":true / false,
"is_fire":true / false,
"is_magic":true / false,
"is_projectile":true / false,
"is_lightning":true / false

ダメージの種類に対する条件。

bypasses_armor
防具による軽減を受けないダメージかどうか。
bypasses_invulnerability
奈落、またはkillコマンドによるダメージかどうか。
bypasses_magic
空腹、奈落、またはkillコマンドによるダメージかどうか。
is_explosion
爆発系のダメージかどうか。
is_fire
燃焼系のダメージかどうか。
is_magic
ステータス効果、ソニックブーム、棘の鎧、または間接攻撃によるダメージかどうか。
is_projectile
発射物によるダメージかどうか。
is_lightning
ver1.14で追加。雷によるダメージかどうか。


"direct_entity":{"$!エンティティ共通!$"}
"source_entity":{"$!エンティティ共通!$"}
direct_entity
直接ダメージを与えたエンティティ。例えばスケルトンが放った矢がダメージを与えた場合は、矢となる。
source_entity
ダメージを与える原因となったエンティティ。他のエンティティによって発射されたエンティティの場合は、発射した方のエンティティが該当する。
例えばスケルトンが放った矢がダメージを与えた場合は、スケルトンとなる。
Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。