今回は、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ジェネレーターを使ってください
その後に、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ファイルを保存してください。
アドオンが完成したら、マイクラを起動してビヘイビアーパックからサンプルアドオンというアドオンがあると思うのでそのアドオンを有効化してワールドを起動してください。
そして、棒を出して右クリックするとフォームが表示されるはずです。
もしうまくいかなかったらコメントで質問してください。



コメント