マルチプレイなら『シン・VPS』がおすすめ!

【マイクラ】invertedで意味を反転させる【predicate】

【マイクラ】invertedで意味を反転させる【predicate】

この記事では、Minecraft Java Edition(バージョン1.20.4)の情報をもとに執筆しています。
そのほかのバージョンや機種などでの動作は保証できません。

こんにちは!
マインクラフターのなつめ(@natsume_717b)です。

なつめ

2016年からマイクラを楽しんでおり、最近はクリエイティブモードでコマンドを駆使して遊んでいます!

この記事では、こんな疑問を解決します!

本記事の内容
  • invertedで意味を反転させる
  • 実際の例

predicateの項目の一つに、invertedというものがあります。
これは通常の項目と異なり、別の項目を指示して使うものです。

いまいち分かりにくいわけですが、端的に言ってしまえば「意味を反転させることができる項目」になります。

詳しい使い方など解説していくので、ぜひ参考にしてくださいね。

それでは、さっそく見ていきましょう!

本記事で紹介するデータパックのサンプルはGitHubにてダウンロードできます。

invertedで意味を反転させる

predicateのinvertedでは、指示した内容と反転させたものを検知します。

分かりやすい例では、コマンドにおけるifとunlessの関係ですね。
通常時は入力した内容に沿うためifと同等だと受け取れ、invertedに記述することで、unlessを指示した時と同じように使えます。

例えば、場所の特徴から検知することのできるloacation_checkをinvertedで指示した場合は、「指示した内容に合わない場所にいればOK」ということになります。

「平野のバイオームにいる場合に~」がinvertedによって「平野のバイオームにいなければ~」といった感じですね。

このようにinvertedにするだけで意味を反転できるので、非常に便利で使う機会も少なくない項目になります。

実際の例

ここからは実際にpredicateとして実装する際の話をしていきます。

invertedはpredicateの1種ということで、データパックを用いて導入する必要があります。

データパックの構造としては、以下の通り。

  • datapack本体
    • data
      • sample
        • predicates
          • inverted_test.json
    • pack.mcmeta

inverted_test.jsonの中身はこちら。

{
    "condition": "minecraft:inverted",
    "term": {
      "condition": "minecraft:location_check",
      "predicate": {
        "biome": "minecraft:plains"
      }
    }
  }

invertedが指示されており、その中にlocation_checkが記述されています。

今回の場合はplainsが指示されているので、本来であれば平野のバイオームにいるなら条件を満たすことになります。

しかし、invertedで指示されているため、「平野のバイオームにいない場合」となります。

今回利用した生成サイトはこちら

また、pack.mcmetaの中身は以下の通りになります。

{
  "pack": {
    "pack_format": 26,
    "description": ""
  }
}

上記2つのファイル以外は全てフォルダとなっています。

データパックの作成、導入が済めば、あとはコマンドを実行するだけです。

今回の例の場合は

/execute if predicate sample:inverted_test run give @a diamond 1

を実行することになります。

平野にいれば失敗し、平野以外のバイオームであればrun以降に記述されているgiveコマンドによって、ダイヤモンドが付与されます。

まとめ

というわけで、今回のまとめです。

ポイント
  • invertedは指示したpredicateの内容に沿わない場合に、真となる項目。

この記事は以上になります。

  • 【まとめ】functionコマンドの基本から応用【マイクラ】
  • 【まとめ】カスタムストラクチャーの実装・カスタム方法【マイクラ】