Skip to content

15.3 方块信息获取及操作


一、BlockContainerJS

1、属性

属性功能返回值类型
world返回WorldJSWorldJS
pos返回BlockPosBlockPos
x返回方块x坐标整形
y返回方块y坐标整形
z返回方块z坐标整形
down返回该方块下方的方块BlockContainerJS
up返回该方块上方的方块BlockContainerJS
north返回该方块北方的方块BlockContainerJS
south返回该方块南方的方块BlockContainerJS
west返回该方块西方的方块BlockContainerJS
east返回该方块东方的方块BlockContainerJS
blockState返回包含该方块状态的对象BlockState
id返回方块ID字符串
light返回光照等级整形
canSeeSky是否露天布尔值
item返回方块对应的物品ItemStackJS
playersInRadius返回范围内的玩家EntityArrayList
biomeId返回所处群系的ID字符串
properties返回带有当前方块所有属性的对象[1]对象

[1]如block.properties.facing会返回当前方块朝向的字符串

2、方法

方法功能返回值类型
offset(Direction 方向, int 格数)返回在给定方向上指定格数以外的方块BlockContainerJS
offset(Direction 方向)返回在给定方向上一格以外的方块BlockContainerJS
offset(整形 x, 整形 y, 整形 z)返回以当前方块为坐标系原点,指定X,Y,Z以外的方块BlockContainerJS
setBlockState(BlockState 状态值, int )设置方块状态值void
hasTag(tag)返回是否具有指定标签布尔值
set(命名空间 方块ID, Map<字符串, 字符串> 方块属性, 整形 flags)在当前位置设置方块void
set(命名空间 方块ID, Map<字符串, 字符串> 方块属性)在当前位置设置方块void
set(命名空间 方块ID)在当前位置设置方块void
createExplosion()新建爆炸事件(见下文)ExplosionJS
createEntity(命名空间ID)新建实体(见15.2)EntityJS
spawnLightning(布尔值 是否只有效果, nullable EntityJS 玩家)生成闪电void
spawnLightning(布尔值 是否只有效果)生成闪电void
spawnFireworks(FireworksJS 烟花)生成烟花(见下文)void
getInventory(Direction 方向)获取方块的库存nullable InventoryJS
getPlayersInRadius(浮点型 范围)返回指定范围内的玩家列表EntityArrayList

二、ExplosionJS

新建爆炸和新建实体类似,你需要先新建一个爆炸,然后设置属性,再在合适的时间生成它即可

函数功能返回值类型
exploder(EntityJS 实体)设定是谁引起的爆炸ExplosionJS
strength(浮点型 爆炸强度)设定爆炸的强度ExplosionJS
causesFire(布尔值 是否引火)设定爆炸是否会生成火ExplosionJS
damagesTerrain(布尔值 是否破坏环境)设定爆炸是否破坏地形[2]ExplosionJS
destroysTerrain(布尔值 是否破坏环境)设定爆炸是否破坏地形[2]ExplosionJS
explode()炸!void

[2]damagesTerrain会破坏方块但是掉落方块,destroysTerrain会破坏方块且不掉落方块。若不设置默认为破坏且掉落方块。

一个简单的例子,在玩家右键方块时生成一个小爆炸

onEvent('block.right_click', event => {
	// 新建爆炸
	let explosion = event.block.createExplosion();
	// 设置爆炸强度,默认值为3
	explosion.strength(100.0);
	// 设置是否生成火,默认值为false
	explosion.causesFire(true);
	explosion.explode();
})

(应该很小吧)

Contributors

Changelog