3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Minecraft BE ScriptingAPI 第4回講座

Last updated at Posted at 2019-04-30

【Minecraft BE】の ScriptingAPI開発講座(4)

今回からバージョンを1.11から1.12βに上げてやっていきます。
1.12から少し書き方が変わったりするのでご注意ください。

注意

ScriptingAPI は現段階でWindows10にしか対応していません。
Android,iOS,XboxOne,Switchでは開発できません。(AndroidはBlockLauncherという外部ツールを使えばできます)

開発環境

windows10 Minecraft ver 1.12.0.2β

1.11から何が変わったの?

まずは、チャットに出力する、
this.broadcastEvent("minecraft:display_chat_event", "hoge");
がありましたが、これ単体では使えません。ではどうするか、

let BroadcastEventData = this.createEventData("minecraft:display_chat_event");
BroadcastEventData.data.message = "I like hogehoge!";
this.broadcastEvent("minecraft:display_chat_event", BroadcastEventData);

2行増えましたね。
面倒くさいですが覚えなおしてくださいね( 'ω')

それでは新しいことをやっていきましょう!

##Scriptingからコマンドを実行する

なんとScriptingからコマンドが実行できちゃいます!
それではさっそくサンプルコードから

let ExecuteEventData = this.createEventData("minecraft:execute_command");
ExecuteEventData.data.command = "/me I like hogehoge!";
this.broadcastEvent("minecraft:execute_command", ExecuteEventData);

とりあえず、実行結果を貼っておきます。
bandicam 2019-04-30 21-30-41-616.jpg

実はもう一つコマンドを実行する方法があります。
それがこちら

this.executeCommand("/me I like hogehoge!", (commandData) => this.commandCallback(commandData) );

はい、1行です。なんだよこっち使ったほうがいいじゃねぇか、そうです。

それと、なんと実行したコマンドのデータなどを取得できます!
とりあえずコード

const Server = server.registerSystem(0, 0);
//~~~省略~~~
Server.update = function () {
    this.executeCommand("/me I like hogehoge!", (commandData) => this.commandCallback(commandData) );
};
Server.commandCallback = function (commandData) {
    //コマンドのデバックなんかにつかえるぞ!
};

updateで回しちゃってますが…まあいいでしょう。
しかしこれにはデメリットがあります。
for文で回しているif文の中に入れると、正常に動作しなくなります。
これは原因不明です、ごめんなさい。

さぁて次回は何を作りましょうか( 'ω')

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?