World

Worldオブジェクトは主にブロック操作、Entity関連、ワールド設定などを行う事が出来ます。

Worldオブジェクトは EventEmitter オブジェクトを継承しています。

class World()

メソッド

World.getDimension()

ワールドの環境を取得します。

戻り値:String (NORMAL or NETHER or THE_END)
World.getDifficulty()
難易度を取得します。
戻り値:String (PEACEFUL or EASY or NORMAL or HARD)
World.setDifficulty(difficulty)

難易度を設定します。

引数:
  • difficulty (String) -- 難易度 (PEACEFUL or EASY or NORMAL or HARD)
戻り値:

void

World.getPVP()

PvPフラグを取得します。

戻り値:Boolean
World.setPVP(flag)

PvPフラグを設定します。

引数:
  • pvp (Boolean) -- trueで攻撃可
戻り値:

void

World.getWeather()

天候を取得します。

戻り値:String (THUNDER or STROM or SUNNY)

if (match.getWorld().getWeather() == 'SUNNY') {
    console.log('現在の天候は晴れです。');
}
World.setWeather(weather)

天候を設定します。

引数:
  • weather (String) -- 天候 (THUNDER or STORM or SUNNY)
戻り値:

void

// 天候を晴れにする
match.getWorld().setWeather('SUNNY');

// 雷雨にする
match.getWorld().setWeather('THUNDER');
World.getTime()

時間を取得します。

戻り値:Number

console.log('現在ゲーム内時間の' + Math.round(match.getWorld().getTime() / 1000) + '時です。');
World.setTime(time)

時間を設定します。

引数:
  • time (Number) -- 時 x 1000で表すゲーム時間
戻り値:

void

// 午後2時にする
match.getWorld().setTime(14000);

// 午前3時にする
match.getWorld().setTime(3000);
World.getBlock(x, y, z)

指定座標のブロックを取得します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
戻り値:

Block

var block = match.getWorld().getBlock(30, 64, 0);
console.log('座標30, 64, 0のブロックは羊毛' + (block.getType() == 'WOOL' ? 'です。' : 'ではありません。'));

// 10, 64, 10のブロックを赤の色つきガラスに変える
var block = match.getWorld().getBlock(10, 64, 10)
block.setType('STAINED_GLASS');
block.setData(14);

// 20x20の床を作る
var world = match.getWorld();
for (var x = 100; x < 120; x++) {
    for (var z = 100; z < 120; z++) {
        world.getBlock(x, 64, z).setType('WOOD');
    }
}
World.playSound(x, y, z, soundName, volume, pitch)

指定座標でサウンドを再生します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • soundName (String) -- サウンド名
  • volume (Number) -- ボリューム
  • pitch (Number) -- ピッチ
戻り値:

void

World.playEffect(x, y, z, effectName, data, radius)

指定座標でエフェクトを再生します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • effectName (String) -- エフェクト名
  • data (Number) -- データ
  • radius (Numbmer) -- 範囲
戻り値:

void

World.playParticle(x, y, z, particleName, offset, speed, count)

指定座標でパーティクルを表示します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • particleName (String) -- パーティクル名
  • offset (Number) --
  • speed (Number) --
  • count (Number) --
戻り値:

void

// 100x100の範囲内に20個のパーティクルを生成
setInterval(function() {
    for (var i = 0; i < 20; i++) {
        var x = getRandom(-50, 50);
        var y = 5;
        var z = getRandom(-50, 50);
        match.getWorld().playParticle(x, y, z, 'HEART', 1.0, 1.0, 3);
    }
}, 1000);

function getRandom(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
World.createExplosion(x, y, z, power)

指定座標に爆発を生成します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • power (Number) -- 威力
戻り値:

void

World.strikeLightning(x, y, z, damageFlag)

指定座標に雷を落とします。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • damageFlag (Boolean) -- プレイヤーへのダメージ有無
戻り値:

void

World.spawnEntity(x, y, z, entityType)

指定座標にEntityをスポーンさせます。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • entityType (String) -- EntityType
戻り値:

void

// 空からTNTを落とす
match.getWorld().spawnEntity(0, 128, 0, 'PRIMED_TNT');

// Ocelotを50,64,50に召喚
match.getWorld().spawnEntity(50, 64, 50, 'OCELOT');
World.spawnFallingBlock(x, y, z, type, data)

指定座標のブロックに落下ブロックを生成します。

引数:
  • x (Number) -- X座標
  • y (Number) -- Y座標
  • z (Number) -- Z座標
  • type (String) -- Material
  • data (Number) -- データ
戻り値:

void

World.sendMessage(message)

ワールド内のプレイヤーにメッセージを送信します。

引数:
  • message (String) -- メッセージ
戻り値:

void

World.sendLocaleMessage(name)

ワールド内のプレイヤーに <locale> で定義した多言語メッセージを送信します。

引数:
  • name (String) -- <string> ノードの name 属性
戻り値:

void

イベント

イベントの設定方法は EventEmitter をご覧ください。

World.button

プレイヤーによるWood Button, Stone Button, Leverの操作時

イベントオブジェクト

メソッド 戻り値 説明  
getPlayer() Player 操作したプレイヤー  
getBlock() Block 操作したブロック  
getState() Number レバーの状態(1=ON 0=OFF)、ボタンの場合は常に1

match.getWorld().on('button', function(event) {
    console.log(event.getPlayer().getName() + 'が' + event.getType() + 'を操作しました。');
});
World.use

プレイヤーがアイテムを持った状態で右クリックした時

イベントオブジェクト

メソッド 戻り値 説明
getPlayer() Player プレイヤー
getItemStack() ItemStack プレイヤーが手に持っているアイテム

match.getWorld().on('use', function(event) {
    if (event.getItemStack().getType() == 'FEATHER') {
        event.getPlayer().setVelocity(0, 2, 0);
    }
});