注目キーワード

【ScriptAPI】UIの表示でエラーが出たときの対処法【マイクラ統合版】

はじめに

ScriptAPIでUIを表示できるのは周知のとおりですが、時としてこのようなエラーメッセージが表示されることがあります。

Native function [ActionFormData::] does not have required privileges

本記事では、このエラーに対する対処法を提示します。

UI表示方法

そもそもですが、UIの表示方法に関してはこちらが詳しいです。この記事をご覧になることで、オリジナルのUIを持ったアドオンを制作することが可能になります。

対処法

uiを表示する関数を呼び出す過程で、berforeEventsを使っていませんか?beforeEventsではなく、afterEventsを用いることで問題は解決します。以下は、有効(エラーの出ない)なAPIScriptの例です。

import * as server from '@minecraft/server';
import * as ui from '@minecraft/server-ui';

//ここにスクリプトを記述

function show_form(player){
    const form = new ui.ActionFormData();
    form.title("Test GUI");
    form.button("Test Button");
    form.button("Test Button 2");
    form.show(player).then((response) => {
        switch(response.selection){
            case 0:
                player.sendMessage("You clicked Test Button!");
                break;
            case 1:
                player.sendMessage("You clicked Test Button 2!");
                break;
            default:
                player.sendMessage("You clicked an unknown button!");
                break;
        }
    }).catch(error =>
        player.sendMessage("An error occurred: " + error.message)
    );
}

server.world.afterEvents.itemUse.subscribe(ev => {
    if (ev.itemStack.typeId == "minecraft:stick"){
        let player = ev.source;
        show_form(player);
    }
});

これを保存し、アドオンを有効化後マインクラフトを起動することで、棒を使うとUIが表示されるようになります。是非、お試しください。

次の動画のサムネイルです。

black smartphone displaying error
最新情報をチェックしよう!