#ModalFormDataで送信された内容によって処理
1 messages · Page 1 of 1 (latest)
mazu
showまで書いた前提とします
showに.then(res => {})をはやして書く感じです
de
フォームの内容は
res.formValues[]で確認できます
上から一番目は
res.formValues[0]
二番目はres.formValues[1]みたいな感じです
テキストフィールドの場合はstringが帰ってきて
ドロップダウンは
string
スライダーは―Number
toggleは trueかfalseが返ってきます
わからなかったらコード付きで説明します
ありがとうございます!
コード付きでおねがいします...
const form = new ModalFormData()
.title("title")
.toggle("トグル",false)
.slider("スライダー",0,100,1,0)
.dropdown("ドロップダウン",["1","2","3"],0)
.textField("テキストフィールド","プレースホルダ","初期値");
form.show(player).then(res => {
if (res.canceled) return;
//上から順でスライダードロップダウンとなっていて
///res.formValues[0]が上から一番目
///res.formValues[1]が上から一2番目みたいな感じです
//フォームの値を変えながら試してみるといいと思います
player.sendMessage(` toglgle: ${res.formValues[0]}`);
player.sendMessage(` slider: ${res.formValues[1]}`);
player.sendMessage(` dropdown: ${res.formValues[2]}`);
player.sendMessage(` textField: ${res.formValues[3]}`);
if (res.formValues[0]) player.sendMessage("トグルはtrueになってます")//トグルが押された状態の時に送信される
});
}
textFIeldで指定された文字を書きたいときは
if(res.formValues[1~3] === test)
みたいに書けば大丈夫ですか?
行けるはずです
いまやってみましたができませんでした..
formの内容を保存することはできますか?
player.score.set(${res.formValues[2]);
とかでできますか?
(スライダーの数字をスコアに入れたい)
const score = world.scoreboard.getObjective(スコアの名前);
score.setScore(player, res.formValues[2]);
で出来ます