フォームの作り方(ActionFormData,ModalFormData)

スポンサーリンク

今回は、ActionFormDataとModalFormDataを使ったフォームを作ります。

今回使うアプリは、VS codeです。

VS codeのダウンロードページは、こちらです

Visual Studio Code – Code Editing. Redefined

まずこちらの投稿は、windowsのパソコンで作ります。

まずwindowsキーとRキーを押してフォルダー選択が出てくるのでこのパスを入力してください

%LocalAppData%\Packages\Microsoft.MinecraftUWP_8wekyb3d8bbwe\LocalState\games\com.mojang\development_behavior_packs

このパスを入力したらdevelopment_behavior_packsというフォルダーが出てくるのでその中に好きな名前のフォルダーを作ってください

その中にmanifest.jsonファイルを作ってください

その中のコードは、このよう感じです

{
    "format_version": 2,
    "header": {
      "name": "サンプルアドオン",
      "description": "これは、サンプルです",
      "uuid": "c90e89aa-3f7e-45a9-b802-40bd18fcaad1",
      "version": [0, 1, 0],
      "min_engine_version": [1, 20, 0]
    },
    "modules": [
      {
        "type": "script",
        "language": "javascript",
        "uuid": "351d5e32-1b10-4a75-a9e0-2f8619a722b0",
        "entry": "scripts/main.js",
        "version": [0, 1, 0]
      }
    ],
    "capabilities": ["script_eval"],
    "dependencies": [
      {
        "module_name": "@minecraft/server",
        "version": "1.10.0"
      },
      {
          "module_name": "@minecraft/server-ui",
          "version": "1.1.0"
      }
    ]
  }

manifest.jsonのuuidのところを必ず変えてくださいuuidを変えるには、こちらのオンラインuuidジェネレーターを使ってください

Online UUID Generator Tool

その後に、manifest.jsonファイルを保存してください

そしたらそこに、scriptsフォルダーを作り、その中にmain.jsファイルを作ってください。

その中のコードは、このような感じです

import { world } from "@minecraft/server";
import { ActionFormData, ModalFormData } from "@minecraft/server-ui";

world.afterEvents.itemUse.subscribe(ev => {
    const player = ev.source;
    const itemStack = ev.itemStack;
    if (itemStack.typeId === "minecarft:stick") {
        menu01(player)
    }
});
async function menu01(player) {
    const form = new ActionFormData();
    //タイトル
    form.title("サンプルフォーム");
    //ボタン(名前)
    form.button("next ModalFormData");
    //フォームを表示
    const { canceled, selection } = await form.show(player);
    //selection === 0は、1個目ボタンを感知する
    if (selection === 0) {
        //menu02を表示
        menu02(player);
    }
}
async function menu02(player) {
    const form = new ModalFormData();
    //タイトル
    form.title("ModalFormData");
    //スライダー(名前,最小値,最大値,刻み,初期値) 
    form.slider("スライダー", 1, 100, 1, 1);
    //ドロップダウン(名前,配列,初期値)
    form.dropdown("ドロップダウン", ["1", "2", "3"], 0);
    //テキストフィールド(名前,プレースホルダ,初期値)
    form.textField("テキストフィールド", "プレースホルダ", "");
    //トグル(名前,初期値)
    form.toggle("トグル", false)
    //フォームを表示r
    form.show(player).then(res => {
        if (res.canceled) { //フォームをキャンセルした場合
            player.runCommand("say キャンセルしました");
        } else { //キャンセルされてない場合
            //フォームの結果をsayする
            player.runCommand("say スライダー: " + res.formValues[0]);
            player.runCommand("say ドロップダウン: " + res.formValues[1]);
            player.runCommand("say テキストフィールド: " + res.formValues[2]);
            player.runCommand("say トグル: " + res.formValues[3]);
        }
    });
}

そしたら、main.jsファイルを保存してください。

アドオンが完成したら、マイクラを起動してビヘイビアーパックからサンプルアドオンというアドオンがあると思うのでそのアドオンを有効化してワールドを起動してください。

そして、棒を出して右クリックするとフォームが表示されるはずです。

もしうまくいかなかったらコメントで質問してください。

※投稿記事に含まれるファイルやリンクにより発生した被害についてクラフターズコロニーは責任を取りません
投稿通報

コメント

コメント通報