アドオンでコマンド追加の方法

スポンサーリンク

マイクラの配布サイト › フォーラム › 技術相談(統合版) › アドオンでコマンド追加の方法

2件の返信スレッドを表示中
  • 投稿者
    投稿
    • #258225 返信

      質問をさせて頂きます。
      1、統合版でアドオンを追加する方法はAPI限定なのか。
      2、その際の構文を教えていただきたい。
      3、manifestのバージョンはいくつにするべきか。
      コマンド実装をしたいので有識者の方々、教えてください。

    • #258356 返信
      wakame11
      参加者

      1.統合版でアドオンを追加する方法はAPI限定なのか
      もしそのアドオンがタイポで、タイトルの「アドオンでコマンドを追加する方法」のことであるなら、広く見ればあります。
      方法はいくつかありますが、どれもスラッシュコマンドではありません。スラッシュコマンドを実装することは今のところ不可能です。
      例えば、既に存在する[function]コマンドを利用して、.mcfunctionファイルに書き込んだコマンドを実行することができます。
      これは複数行あっても一気に実行できますが、コマンドしか実行できなく、scriptApiのような広いことはできません。

      別の方法は、pythonなどの外部モジュールを使ってローカルサーバーを構築し、マインクラフト内でサーバーと接続し、チャットを検知する方法です。
      この方法では[?help]などスラッシュコマンドではありませんが、特定の文字列を検知して、対象へ操作を実行することができます。
      ただ、サーバーを開くために必要な知識や環境が誰にでもそろっているわけではないのでお勧めできません。

      一番おすすめなのはベータ版のscriptApiを使うことです。
      scriptApiのベータ版でのみ使用できるイベントで、[before.chatSend]というものを使います。
      このやり方なら、プレイヤーが送信したチャットを事前に内容などを把握し、キャンセルしてから好きなコードを実行することができます。
      ですが、ベータ版なのでワールド作成時に実験的機能の[ベータAPI]をオンにする手間があります。
      とりえあずこの方法のコードを書いておきます。

      話は戻って、質問がそのままの意味であるのなら、アドオンの作り方はscriptApiだけではありません。
      自分はむしろメインはリソースパックとビヘイビアパックで自分でアイテムやモブを追加できる点だと思っています。
      そこにscriptApiを使ってより自由な動作を追加できるということだと思ってます。

      2.構文
      main.js

      
      import { world } from "@minecraft/server";
      
      world.beforeEvents.chatSend.subscribe(ev => {
          if (ev.message === "?help") {
              ev.cancel = true;
              ev.sender.sendMessage("へるぷ");
          }
      });
      

      manifest.json

      
      {
        "format_version": 2,
        "header": {
          "name": "アドオンの名前",
          "description": "アドオンの説明",
          "uuid": "b0fbb1fb-6151-42e6-9c0e-be864a3548a3",
          "version": [1,0,0],
          "min_engine_version": [1,20,0]
        },
        "modules": [
          {
            "type": "script",
            "language": "javascript",
            "uuid": "a1bdb4b6-4d2f-48e1-93cb-4bbb28cb6a11",
            "entry": "scripts/main.js",
            "version": [1,0,0]
          },
          {
            "description": "アドオンの説明",
            "type": "data",
            "uuid": "31b93174-f46e-4c6b-960c-69a37143ca3b",
            "version": [1,0,0]
          }
        ],
        "dependencies": [
          {
            "module_name": "@minecraft/server",
            "version": "2.10.0-beta"
          },
          {
            "module_name": "@minecraft/server-ui",
            "version": "2.0.0"
          }
        ],
        "capabilities": [
          "script_eval"
        ]
      }
      

      3.manifestのバージョン
      manifestにはバージョンがいっぱい書かれてます。
      アドオン:1.0.0
      スクリプト:1.0.0
      説明:1.0.0
      @minecraft/server:2.10.0-beta
      @minecraft/server-ui:2.0.0
      それぞれこんな感じでいいと思います
      上記のmain.jsがベータ版のみなので、ラスト2つは固定です。

    • #258457 返信
      匿名
      ゲスト

      APIでCustomCommandが作れるらしいです
      CustomCommandの作り方

2件の返信スレッドを表示中
返信先: アドオンでコマンド追加の方法で#258633に返信
あなたの情報:




スポンサーリンク