別ファイルから関数読み込み
import {setA,setB,setC} from “./fileName.js”;
setA,setB,setCが読み込む関数
from “./fileName.js”;がファイルの名前になる
注意:存在しない関数を読み込むとエラーが発生する
dimensionの定義
const dimension = world.getDimension(‘overworld’);
ファイル上部で定義しておくと良い
メリット:ワールドから何かする時に役立つ
全プレイヤーの取得
for (let player of dimension.getPlayers())
このコードの場合予めdimensionの定義が必要
サンプル
for (let player of dimension.getPlayers())
{
player.sendMessage(“こんにちは”);
}
何が起こるか:全プレイヤーにこんにちはとチャットに表示する
エンティティの名前の取得
player.name
player.nameTag
エンティティで.nameはあるか不明(できない場合プレイヤー限定)
.name:ゲーマータグ(初期の名前)を取得します
.nameTag:ネームタグを取得します
使い方
player.nameTag = `${player.name}様`
何が起こるか:プレイヤーのネームタグに様が付く
コマンド実行
前提:dimensionの指定やプレイヤー等のエンティティの取得
player.runCommand(`say a`);
player.runCommandAsync(`say a`);
違い:同期実行か非同期実行か
制限:Asyncの方は1tickに実行可能な数に限りがあります
ノックバックを発生させる
前提:プレイヤー等のエンティティの取得
player.applyKnockback(0, 0, 0, 0.2)
詳細はこちら(丸投げ)
注意点:ノックバック耐性に依存するためノックバック耐性が100%だと意味が無い
タグの有無の確認
前提:プレイヤー等のエンティティの取得
player.hasTag(“tag”)
使い方
if(player.hasTag(“hoge”))return;
何が起こるか:プレイヤーがhogeというタグを持っていたら処理を終えます
スニークしているか
前提:プレイヤー等のエンティティの取得
player.isSneaking
使い方
if(player.isSneaking)return;
何が起こるか:プレイヤーがスニークしていたら処理を終えます
アイテムの取得
前提:プレイヤーの取得
let { container } = player.getComponent(‘minecraft:inventory’);
let Item = container.getItem(player.selectedSlot);
container.setItem(player.selectedSlot,Item);
プレイヤーのインベントリから指定した番号のコンテナのアイテムを取得できます
この場合手に持っているアイテムを取得できます。
全部のインベントリを取得する場合for等で回す必要があります。
setItemはアイテムを登録する際に使用します
(今回の場合手持ちのアイテムを取得して取得した手持ちのアイテムを手持ちのアイテムに登録するというかなり無駄をしている謎コードになる)
アイテムの名前の取得,代入
前提:プレイヤーの取得
ItemにはgetItemで得たアイテムスタックが入っています
containerにはプレイヤーのコンテナが入っています
取得
let name = Item.nameTag;
注意:金床などで変更していないとエラー。つまりアイテム自体の名前を取る事はできません
代入
Item.nameTag = “伝説の剣”;
container.setItem(player.selectedSlot,Item);
注意:setItemを行わないと反映されません
アイテムの説明文(Lore)の取得
前提:
ItemにはgetItemで得たアイテムスタックが入っています
containerにはプレイヤーのコンテナが入っています
取得
let lore = Item.getLore();
代入
Item.setLore([“レア度:10″,”とても強い”]);
container.setItem(player.selectedSlot,Item);
注意:setItemを行わないと反映されません
formの表示 (サーバーフォーム)
ActionFormData()
const f = new ActionFormData()
.title(“§dマップ移動”)
.body(“§f移動するエリアを選択して下さい”)
.button(`岩山`)
.button(`草原`,”テクスチャパスを書けばボタンの横にテクスチャ表示も可能”)
f.show(player).then(response =>
{
if(response.canceled)return;
switch(response.selection)省略
});
title:フォームの名前を決める
.body:本文。フォームの中に表示する文字を決める事ができる
.button:表示するボタンの設定、複数個可能
response.canceled:Xボタンを押した場合
押したボタンの取得:response.selectionに入っている
returnせずフォームを表示する関数を最後に表示するようにすれば無限に表示させることも可能
ModalFormData
const f= new ModalFormData()
f.title(“購入する数を選んで下さい§r”);
f.slider(`所持金${gold}G`, 0,64, 1, 0)
f.show(player).then(response =>
…省略
slider:スライダーを出す
slider(ラベル,最小値,最大値, 動く量, 初期値)
slider以外扱った事が無いので他の要素の解説はドキュメントに任せます
ダイナミックプロパティ(DynamicProperty)のセット
前提:プレイヤー等の取得
player.setDynamicProperty(“propertyName”,1);
音を鳴らす playSound
前提:プレイヤーの取得
player.playSound(“sound”, {location:{x, y:y+0.5, z}, volume:1,pitch:1});
“sound”:サウンド名
volume:音量
pitch:ピッチ
利点:runCommandを使用しないためこっちの方が軽い(恐らく)
tellrawの代わり sendMessage
前提:プレイヤーの取得
player.sendMessage(“Hi”);
tellrawと同じようにメッセージを表示する
利点:runCommandを使用しないためこっちの方が軽い(恐らく)
コメント