阿特我自己
[email protected]
Hello WvT
Minecraft Script Engine 中文 API 文档
Minecraft Script Engine 中文 API 文档

本文档由 @阿特我自己 制作,未经授权禁止以任何形式进行引用或转载,版权所有,侵权必究!

当前修订版本:1.3.1

加入学习交流群:132538683

索引:
内置对象
系统相关
事件相关
实体相关
组件相关
实体查询
方块相关
指令相关
组件列表
事件列表



内置对象

内置对象是对脚本引擎所返回的对象结构概览

EntityObject

代表一个实体
该对象的结构如下:
属性

名称 类型 描述
__type__ String 只读-对象的类型。实体对象可以是”entity”或”item_entity”
__identifier__ String 只读-对象的命名空间标识符。例如:若该对象的类型为”entity”,且指向一个原版牛,则该属性的值为”minecraft:cow”
id Positive Integer 只读-所指向的实体的唯一ID

ComponentObject

代表一个组件
该对象的结构如下:
属性

名称 类型 描述
__type__ String 只读-对象的类型。该属性的值将会是”component”
__identifier__ String 只读-对象的命名空间标识符。例如:若该对象的类型为”component”,且代表坐标组件,则该属性的值为”minecraft:position”
data Object 只读-组件所包含的数据

EventDataObject

代表一个事件所传递的数据
该对象的结构如下:
属性

名称 类型 描述
__type__ String 只读-对象的类型。该属性的值将会是”event_data”
__identifier__ String 只读-对象的命名空间标识符。例如:若该对象的类型为”event_data”,且代表一个发送聊天消息事件,则该属性的值为”minecraft:display_chat_event”
data Object 只读-事件所传递的数据

QueryObject

代表一个实体查询器
该对象的结构如下:
属性

名称 类型 描述
__type__ String 只读-对象的类型。该属性的值将会是”query”
query_id Positive Integer 只读-所指向的实体查询器的唯一ID

LevelObject

代表一个存档
可以通过server.level和client.level获得该对象
该对象的结构如下:
属性

名称 类型 描述
__type__ String 只读-对象的类型。该属性的值将会是”level”
level_id Positive Integer 只读-所指向的level的唯一ID

ItemStackObject

代表容器中的一组物品
该对象的结构如下:
属性

名称 类型 描述
__type__ String 只读-对象的类型。该属性的值将会是”item_stack”
__identifier__ String 只读-对象的命名空间标识符。例如:若该对象的类型为”item_stack”,且代表一组草方块,则该属性的值为”minecraft:grass”
item String 只读-物品的标识符。空物品的标识符为”minecraft:undefined”
count String 只读-该组物品的数量

BlockObject

代表世界中的一个方块
该对象的结构如下:
属性

名称 类型 描述
__type__ String 只读-对象的类型。该属性的值将会是”block”
__identifier__ String 只读-对象的命名空间标识符。例如:若该对象的类型为”block”,且代表一个基岩方块,则该属性的值为”minecraft:bedrock”
ticking_area Object 只读-方块所在的常加载区域
block_position Object 只读-该方块的坐标,该对象包含x, y, z三个属性。该对象也作为其唯一标识符的一部分

常加载区域

有两种类型的常加载区域对象:实体和世界。当一个函数调用一个常加载区域时,可以将任一类型作为参数。

EntityTickingAreaObject

代表世界中的实体所在的常加载区域,例如玩家周围的区块
该对象的结构如下:
属性

名称 类型 描述
__type__ String 只读-对象的类型。该属性的值将会是”entity_ticking_area”
entity_ticking_area_id Positive Integer 只读-该常加载区域的UUID

LevelTickingAreaObject

代表世界中所定义的常加载区域,例如使用 /tickarea 指令添加的常加载区域
该对象的结构如下:
属性

名称 类型 描述
__type__ String 只读-对象的类型。该属性的值将会是”level_ticking_area”
level_ticking_area_id String 只读-该常加载区域的UUID



系统相关

加入版本:1.9.0.3

client.registerSystem(MajorVersion, MinorVersion)

注册一个客户端并获取对应的System对象
属性

名称 类型 描述
MajorVersion Integer 脚本引擎的主要版本
MinorVersion Integer 脚本引擎的修订版本

返回值

类型 描述
Object 注册的客户端所对应的System对象,该对象包含如下三个属性

名称 类型 描述
initialize Method 当世界已经准备好,但还未进入世界时,执行此方法
update Method 每tick(20/1秒)执行一次此方法,需要保证耗时低于50ms,否则游戏会卡顿
shutdown Method 当执行此客户端脚本的玩家退出世界时,执行此方法

加入版本:1.9.0.3

server.registerSystem(MajorVersion, MinorVersion)

注册一个客户端并获取对应的System对象
属性

名称 类型 描述
MajorVersion Integer 脚本引擎的主要版本
MinorVersion Integer 脚本引擎的修订版本

返回值

类型 描述
Object 注册的服务端所对应的System对象,该对象包含如下三个属性

名称 类型 描述
initialize Method 当世界已经准备好,但还未进入世界时,执行此方法
update Method 每tick(20/1秒)执行一次此方法,需要保证耗时低于50ms,否则服务器可能停止工作
shutdown Method 当所有玩家都退出世界时,执行此方法



事件相关

以下均为System对象的方法

加入版本:1.12.0.2

registerEventData(EventIdentifier, EventData)

注册一个自定义事件到脚本引擎,并指定其事件数据的模板
自定义事件在使用前必须先注册
参数

名称 类型 描述
EventIdentifier String 自定义事件的标识符,使用命名空间格式,且命名空间不能为”minecraft”
EventData Object 一个包含正确所需属性及初始值的事件数据模板/td>

返回值

类型 描述
Boolean true 成功注册自定义事件
Object null 在注册自定义事件时出现了错误

加入版本:1.12.0.2

createEventData(EventIdentifier)

创建一个事件数据的模板,包含事件数据所需的所有属性及其初始值
自定义事件必须先注册
参数

名称 类型 描述
EventIdentifier String 事件的标识符

返回值

类型 描述
EventDataObject 所获得的事件数据对象
Object null 在创建事件数据时出现了错误

加入版本:1.9.0.3

broadcastEvent(EventIdentifier, EventData)

广播一个事件并传递数据,服务端和客户端都可监听到该事件
参数

名称 类型 描述
EventIdentifier String 将要广播的事件的标识符
EventData EventDataObject 通过createEventData()获取并修改的数据对象

返回值

类型 描述
Boolean true 事件广播成功
Object null 广播事件时出现了问题

加入版本:1.9.0.3

listenForEvent(EventIdentifier, CallbackObject)

为指定事件注册事件监听器
参数

名称 类型 描述
EventIdentifier String 将要监听的事件的标识符,可以是内置事件,也可以是脚本中自定义的事件
CallbackObject Object 回调的对象,当监听到事件时会调用该对象,该对象需要接收一个EventDataObject对象

返回值

类型 描述
Boolean true 成功为该事件注册事件监听器
Object null 注册事件监听器时出现了错误



实体相关

以下均为System对象的方法

加入版本:1.9.0.3

createEntity()

创建一个空实体,暂且不将其放到世界中

返回值

类型 描述
EntityObject 新创建的实体的EntityObject对象
Object null 创建实体时出现了问题

加入版本:1.9.0.3

createEntity(Type, TemplateIdentifier)

创建实体并指定类型和JSON模板

参数

名称 类型 描述
Type String 实体的类型,必须是”entity”和”item_entity”之一
TemplateIdentifier String 实体标识符,可以是内置的,也可以是行为包定义的,如”minecraft:cow”

返回值

类型 描述
EntityObject 新创建的实体的EntityObject对象
Object null 创建实体时出现了问题

加入版本:1.9.0.3

destroyEntity(EntityObject)

直接移除一个实体。该方法并不会触发实体死亡的事件

参数

名称 类型 描述
EntityObject EntityObject 一个实体所对应的EntityObject对象

返回值

类型 描述
Boolean true 该实体被成功移除
Object null 移除实体时出现了点问题

加入版本:1.9.0.3

isValidEntity(EntityObject)

检查给定的EntityObject对象是否对应一个有效实体

参数

名称 类型 描述
EntityObject EntityObject 一个实体所对应的EntityObject对象

返回值

类型 描述
Boolean true 是一个有效实体
Boolean false 不是一个有效实体
Object null 验证实体时出现了错误



组件相关

以下均为System对象的方法

加入版本:1.9.0.3

registerComponent(ComponentIdentifier, ComponentData)

注册一个自定义组件
参数

名称 类型 描述
ComponentIdentifier String 自定义组件的标识符。需要使用命名空间,如”my_pack:my_custom_component”
ComponentData Object 一个JavaScript对象,用于定义组件的所有属性及属性的默认值

返回值

类型 描述
Boolean true 成功注册
Object null 注册组件时出现了错误


加入版本:1.9.0.3
最后改动版本:1.12.0.2

createComponent(Target, ComponentIdentifier)

创建指定的组件,并将其添加到指定的目标中
参数

名称 类型 描述
Target Object 目标对象,该对象可以是EntityObject、LevelObject、BlockObject等
ComponentIdentifier String 要添加的组件的标识符,可以是内置组件,也可以是自定义组件,如”minecraft:position”

返回值

类型 描述
ComponentObject 组件对象
Object null 创建组件时出错


加入版本:1.9.0.3
最后改动版本:1.12.0.2

hasComponent(Target, ComponentIdentifier)

检查所给的目标是否具有指定的组件
参数

名称 类型 描述
Target Object 目标对象,该对象可以是EntityObject、LevelObject、BlockObject等
ComponentIdentifier String 要检查的组件的标识符

返回值

类型 描述
Boolean true 该实体具有所指定的组件
Boolean false 该实体没有所指定的组件
Object null 传入了未知组件,或其他错误


加入版本:1.9.0.3
最后改动版本:1.12.0.2

getComponent(Target, ComponentIdentifier)

从指定目标中获得指定的组件
参数

名称 类型 描述
Target Object 目标对象,该对象可以是EntityObject、LevelObject、BlockObject等
ComponentIdentifier String 要获取的组件的标识符

返回值

类型 描述
ComponentObject 获取到的组件的ComponentObject对象
Object null 实体没有该组件,或出现其他错误


加入版本:1.9.0.3
最后改动版本:1.12.0.2

applyComponentChanges(Target, ComponentObject)

将组件应用回指定目标
参数

名称 类型 描述
Target Object 目标对象,该对象可以是EntityObject、LevelObject、BlockObject等
ComponentObject Object 一个组件所对应的ComponentObject对象

返回值

类型 描述
Boolean true 该组件已成功应用
Object null 应用组件时出现错误


加入版本:1.9.0.3
最后改动版本:1.12.0.2

destroyComponent(Target, ComponentIdentifier)

从指定目标中移除组件
参数

名称 类型 描述
Target Object 目标对象,该对象可以是EntityObject、LevelObject、BlockObject等
ComponentIdentifier String 所要移除的组件的标识符

返回值

类型 描述
Boolean true 该组件已成功从实体中删除
Object null 实体没有该组件,或出现了其他错误



实体查询

以下均为System对象的方法

加入版本:1.9.0.3

registerQuery()

注册一个没有过滤规则的实体查询器,默认将捕获所有实体
返回值

类型 描述
QueryObject 实体查询器对象
Object null 注册实体查询器时出错

加入版本:1.9.0.3

registerQuery(Component, ComponentField1, ComponentField2, ComponentField3)

注册一个实体查询器并给定一个过滤规则
过滤规则是一个组件,当实体拥有该组件且组件的属性相符时,该实体将会被捕获
参数

名称 类型 默认值 描述
Component String 将用于过滤实体的组件的标识符
ComponentField1 String x 第一个 组件中的属性 的名称。默认情况下将设置为”x”
ComponentField2 String y 第二个 组件中的属性 的名称。默认情况下将设置为”y”
ComponentField3 String z 第三个 组件中的属性 的名称。默认情况下将设置为”z”

返回值

类型 描述
QueryObject 实体查询器对象
Object null 注册实体查询器时出错

加入版本:1.9.0.3

addFilterToQuery(Query, ComponentIdentifier)

为给定的实体查询器添加一个过滤规则
参数

名称 类型 描述
Query QueryObject 实体查询器对象
ComponentIdentifier String 将要添加到过滤规则的组件的标识符,可以是内置组件,也可以是脚本中自定义的组件

加入版本:1.9.0.3

getEntitiesFromQuery(Query)

从给定的实体查询器中获取所有符合规则的实体
参数

名称 类型 描述
Query QueryObject 一个实体查询器的Query对象

返回值

类型 描述
Array array 一组EntityObjects对象,包含所有符合规则的实体
Object null 获取实体时出现了问题

加入版本:1.9.0.3

getEntitiesFromQuery(Query, ComponentField1_Min, ComponentField2_Min, ComponentField3_Min, ComponentField1_Max,
ComponentField2_Max, ComponentField3_Max)

从给定的实体查询器中获取所有符合规则的实体
除了需要符合实体查询器的过滤规则外,还手动指定了如下规则
参数

名称 类型 描述
Query QueryObject 一个实体查询器的Query对象
ComponentField1_Min Decimal 在注册实体查询器时,所指定的 第一个属性 的最小值
ComponentField2_Min Decimal 在注册实体查询器时,所指定的 第二个属性 的最小值
ComponentField3_Min Decimal 在注册实体查询器时,所指定的 第三个属性 的最小值
ComponentField1_Max Decimal 在注册实体查询器时,所指定的 第一个属性 的最大值
ComponentField2_Max Decimal 在注册实体查询器时,所指定的 第二个属性 的最大值
ComponentField3_Max Decimal 在注册实体查询器时,所指定的 第三个属性 的最大值

返回值

类型 描述
Array array 一组EntityObject对象,包含所有符合规则的实体
Object null 获取实体时出现了问题



指令相关

加入版本:1.12.0.2

executeCommand(Command, Callback)

在服务端执行一个指令,指令将会在当前帧结束时被查询并执行
指令的所有输出都会被发送到Callback监听器
参数

名称 类型 描述
Command String 需要执行的指令(包含斜杠)
Callback Object 在指令执行完毕之后的回调对象,结构如下:
属性

名称 类型 描述
data Object 返回的数据
command String 执行的命令



方块相关

Script Engine 无法获取未加载的区块内的方块,可以通过实体的 tick_word 组件获取常加载区域,或在游戏内使用 /tickarea 指令添加一个存档级别的常加载区域有

加入版本:1.12.0.2

getBlock(TickingArea, x, y, z)

获取常加载区域内的一个方块
参数

名称 类型 描述
TickingArea TickingAreaObject 方块所在的常加载区域
x Integer 方块的x坐标
y Integer 方块的y坐标
z Integer 方块的z坐标

返回值

类型 描述
BlockObject object 一个包含了方块数据的对象
Object null 在检索方块时出现错误

加入版本:1.12.0.2

getBlock(TickingArea, PositionObject)

获取常加载区域内的一个方块
参数

名称 类型 描述
TickingArea TickingAreaObject 方块所在的常加载区域
PositionObject Object 一个包含x, y, z三个属性的坐标对象

返回值

类型 描述
BlockObject 一个包含了方块数据的对象
Object null 在检索方块时出现错误

加入版本:1.12.0.2

getBlocks(TickingArea, xMin, yMin, zMin, xMax, yMax, zMax)

获取常加载区域内的一片方块
参数

名称 类型 描述
xMix – zMax Integer 起始坐标与终止坐标

返回值

类型 描述
Array 包含该片区域的方块对应的BlockObject的数组
Object null 在检索方块时出现错误

加入版本:1.12.0.2

getBlocks(TickingArea, MinimumPositionObject, MaximumPositionObject)

获取常加载区域内的一片方块
参数

名称 类型 描述
MinimumPositionObject Object 起始坐标的对象,包含x, y, z三个属性
MaximumPositionObject Object 终止坐标的对象,包含x, y, z三个属性

返回值

类型 描述
Array 包含该片区域的方块对应的BlockObject的数组
Object null 在检索方块时出现错误



组件列表

存档组件

存档的组件通过 getComponent() 方法获得,EntityObject 参数传入 server.level 或 client.level

加入版本:1.12.0.2

minecraft:ticking_areas

该组件包含当前世界中使用 /tickarea 指令定义的所有的常加载区域
属性
该组件的数据是所有常加载区域的key-value对
key 是常加载区域的名称
value 是其对应的LevelTickingAreaObject

加入版本:1.12.0.2

minecraft:weather

该组件包含当前世界的天气
属性

名称 类型 描述
do_weather_cycle Boolean 是否进行天气轮换
rain_level Decimal 雨的级别,范围:0 ~ 1
rain_time Integer 雨水的持续时间(单位:tick)
lightning_level Decimal 闪电的级别,范围:0 ~ 1
lightning_time Integer 闪电的持续时间(单位:tick)

方块组件

方块的组件也通过getComponent()方法获得,EntityObject参数传入一个BlockObject

加入版本:1.12.0.2

minecraft:blockstate

该组件包含方块的所有状态,包括材质、方向等等
属性
不同的方块有不同的属性,请自己测试或等待作者收集属性表

服务端组件

加入版本:1.12.0.2

minecraft:armor_container

此组件表示一个实体的装甲栏的所有物品,物品顺序由上至下
注意:目前为止(1.12.0.2)装甲栏为只读模式,无法修改
属性
组件数据为一个包含了所有物品对应的ItemStackObject的数组

加入版本:1.9.0.3

minecraft:attack

实体的攻击伤害
属性

名称 类型 默认值 描述
damage Range [a, b] 近战攻击造成的伤害的范围,负值将会治愈实体
effect_name String 攻击附带的药水效果
effect_duration Decimal 0.0 药水效果的持续时间(单位:秒)

加入版本:1.9.0.3

minecraft:collision_box

实体的碰撞箱体积
属性

名称 类型 默认值 描述
width Decimal 1.0 宽度(单位:方块)
height Decimal 1.0 高度(单位:方块)

加入版本:1.9.0.3

minecraft:damage_sensor

实体如何对指定类型的伤害作出反应
属性

名称 类型 默认值 描述
on_damage List 当受到指定类型的伤害时所要触发的事件的列表,允许为实体定义和事件指定过滤器
deals_damage Boolean true 是否对实体造成伤害
cause String 指定类型的伤害

加入版本:1.9.0.3

minecraft:equipment

定义实体可持有的装备以定义实体的战利品列表
属性

名称 类型 默认值 描述
table String 装备列表的JSON文件的路径,相对于行为包的根目录
slot_drop_chance List 可以从该物品栏中删除装备物品的物品栏列表

加入版本:1.9.0.3

minecraft:equippable

定义实体可装备的物品及数量
属性

名称 类型 默认值 描述
accepted_items List 可用的物品列表
interact_text String 使用触控设备与其交互时显示的文本
item String 当实体装备物品时将触发的事件
on_equip String 当实体装备物品时将触发的事件
on_unequip String 当实体卸下物品时将触发的事件
slot Integer 0 物品栏的序号

加入版本:1.9.0.3

minecraft:explode

控制实体的爆炸方式及变量
属性

名称 类型 默认值 描述
fuseLength Range [a, b] [0.0, 0.0] 爆炸耗时的随机时间范围
power Decimal 3.0 爆炸半径
maxResistance Decimal false 方块的最大抗爆阻力
fuseLit Boolean false 是否已被点着
causesFire Boolean false 是否引起火灾
breaks_blocks Boolean true 是否破坏方块
fireAffectedByGriefing Boolean false causesFire是否受到游戏规则的影响
destroyAffectedByGriefing Boolean false breaks_blocks是否受到游戏规则的影响

加入版本:1.12.0.2

minecraft:hand_container

此组件表示一个实体手上所持有的物品
注意:目前为止(1.12.0.2),手持物内容为只读模式。如果实体是玩家,则0对应左手,1对应右手

属性
组件数据为一个包含了所有物品对应的ItemStackObject的数组

加入版本:1.9.0.3

minecraft:healable

定义玩家如何治疗实体
属性

名称 类型 默认值 描述
force_use Boolean false 是否可以强制使用物品,无论实体是否已处于健康状态
filters MinecraftFilter 用于定义此触发器条件的过滤器组
items Array 可用于治疗实体的物品的JSON数组
属性

名称 类型 默认值 描述
item String 物品的标识符
heal_amount Integer 1 治愈的生命值
filters Minecraft Filter 过滤器组,用于定义使用此物品修复实体的条件

加入版本:1.12.0.2

minecraft:hotbar_container

玩家的快捷物品栏所包含的所有物品,按照从左到右的顺序
注意:目前为止(1.12.0.2),快捷物品栏为只读模式
属性
组件数据为一个包含了所有物品对应的ItemStackObject的数组

加入版本:1.12.0.2

minecraft:health

定义实体当前和最大生命值。将组件应用回实体后,实体状态将发生改变,如果当前生命值小于等于0将会死亡
属性

名称 类型 默认值 描述
value Integer 1 当前生命值
max Integer 10 最大生命值

加入版本:1.9.0.3

minecraft:interact

定义玩家与实体的交互方式
属性

名称 类型 默认值 描述
spawn_entities Array 发生交互时要生成的实体标识符的数组
on_interact String 发生交互时要触发的事件标识符
particle_on_start JSON Object 将在交互开始时触发的粒子效果

名称 类型 默认值 描述
particle_type String 将产生的粒子类型的标识符
particle_y_offset Decimal 0.0 y轴偏移
particle_offset_towards_interactor/td> Boolean false 粒子是否会更接近进行交互的人
cooldown Decimal 0.0 可再次与实体交互的冷却时间(单位:秒)
swing Boolean false 如果为true,则玩家将在与此实体交互时执行“swing”动画
use_item Boolean false 如果为true,则交互将使用物品
hurt_item Integer 0 与实体交互时,物品消耗的耐久度
interact_text String 使用触摸屏设备时,交互按钮显示的文本(如上马、上船)
add_items JSON Object Loot table,其中包含成功交互后添加到玩家库存中的项目

名称 类型 默认值 描述
table String 战利品表文件路径,相对于行为包根目录
spawn_items JSON Object 在成功交互时,物品会掉落在地面上

名称 类型 默认值 描述
table String 战利品表文件路径,相对于行为包根目录
transform_to_item String 使用的项目将在成功交互后转换为此项目。格式:itemName:auxValue
play_sounds Array 交互发生时要播放的声音标识符的数组

加入版本:1.9.0.3

minecraft:inventory

定义实体的库存(类型、大小,限制等)。目前还不能更改库存内容。
属性

名称 类型 默认值 描述
container_type String none 实体的库存的类型,可以是”horse”, ‘minecart_chest”, “minecart_hopper”, “inventory”, “container”, “hopper”其中之一
inventory_size Integer 5 物品栏数量
can_be_siphoned_from Boolean false 是否可以与漏斗交互
private Boolean false 是否只有实体可以访问
restrict_to_owner Boolean false 是否只能由其所有者或其自身访问
additional_slots_per_strength Integer 0 每个额外强度,该实体可获得的物品栏数

加入版本:1.12.0.2

minecraft:inventory_container

此组件表示一个实体的仓库内容
注意:目前为止(1.12.0.2),仓库内容为只读模式。如果实体是玩家,则0~8对应快捷物品栏,9~16对应第一行物品栏,17~24对应第二行物品栏,25~32对应第三行物品栏

属性
组件数据为一个包含了所有物品对应的ItemStackObject的数组

加入版本:1.9.0.3

minecraft:lookat

使实体看向另一个实体
属性

名称 类型 默认值 描述
filters Minecraft Filter player 该实体将会看向的实体
look_cooldown Range [a, b] [0.0, 0.0] 实体寻找目标的冷却时间范围
look_event String 当过滤器内的实体看向该实体时所触发的事件
mAllowInvulnerable Boolean false 无敌的实体(例如,处于创造模式的玩家)是否可以被视为有效目标
searchRadius Decimal 10.0 此实体看向另一个实体的最大距离
setTarget Boolean 实体是否将攻击目标设置为看向他的实体

加入版本:1.9.0.3

minecraft:nameable

实体是否可被命名及显示方式
属性

名称 类型 默认值 描述
name String 实体的当前名称
name_actions JSON Object 实体的特殊名称,以及被命名为特殊名称后触发的事件

名称 类型 描述
on_named String 当实体被命名为特殊名称时触发的事件
name_filter List 特殊名称列表
default_trigger String 在实体被命名时触发的事件
alwaysShow Boolean false 是否始终显示名称
allowNameTagRenaming Boolean true 是否可以使用命名牌重命名该实体

加入版本:1.9.0.3

minecraft:position

实体的坐标
属性

名称 类型 默认值 描述
x Decimal 0.0 X轴(东西方向)位置
y Decimal 0.0 Y轴(高度)位置
z Decimal 0.0 Z轴(南北方向)位置

加入版本:1.9.0.3

minecraft:rotation

实体的头部和身体的旋转角度
属性

名称 类型 默认值 描述
x Decimal 0.0 头部的垂直旋转角度
y Decimal 0.0 身体的水平旋转角度

加入版本:1.9.0.3

minecraft:shooter

定义实体的远程攻击,此组件并不允许实体使用远程攻击,它只用于定义实体射击的弹药类型
属性

名称 类型 默认值 描述
def String 用作远程攻击弹药的实体标识符,该实体必须具有能够作为弹药射击的弹药组件
auxVal Integer -1 要对命中实体应用的药水效果的数字ID


加入版本:1.9.0.3
最后改动版本:1.12.0.2

minecraft:spawn_entity

控制实体生成实体或物品的能力(如鸡下蛋的能力)
属性

名称 类型 默认值 描述
should_leash Boolean false 如果为true,被生成的实体将会绑定到其父级/跟随其的父母
num_to_spawn Integer 1 每次生成的实体数量
min_wait_time Integer 300 生成实体或物品的最小冷却时间(单位:秒)
max_wait_time Integer 600 生成实体或物品的最大冷却时间(单位:秒)
spawn_sound String “egg” 生成实体或物品时要播放的声音的标识符
spawn_item String “egg” 要生成的物品的标识符
spawn_entity String 要生成的实体的标识符
spawn_method String “born” 生成实体或物品的方法
spawn_event String 生成实体或物品时触发的事件
filters Minecraft Filter 如果存在,则指定实体仅在过滤器计算结果为true时才会生成
single_use Boolean true 如果为true,则此实体将只生成一次实体


加入版本:1.9.0.3
最后改动版本:1.12.0.2

minecraft:teleport

控制实体传送自身的能力(类似于末影人)
属性

名称 类型 默认值 描述
darkTeleportChance Decimal 0.01 实体在夜晚的传送几率(范围:0.0 ~ 1.0)
lightTeleportChance Decimal 0.01 实体在白天的传送几率(范围:0.0 ~ 1.0)
maxRandomTeleportTime Decimal 20.0 传送的冷却时间的最大值(单位:秒)
minRandomTeleportTime Decimal 0.0 传送的冷却时间的最小值(单位:秒)
randomTeleportCube Vector [a, b, c] [32.0, 16.0, 32.0] 随机传送范围,实体将传送到此立方体区域内的任意位置
randomTeleports Boolean true 如果为true,则实体将随机传送
targetDistance Decimal 16.0 实体在追逐目标时传送的最大距离
target_teleport_chance Decimal 1.0 实体的随机传送几率

客户端组件

加入版本:1.9.0.3

minecraft:molang

MoLang组件可以访问实体中的MoLang变量。要了解有关MoLang
varibles的更多信息,请查看附加文档。在脚本中,您可以获取和设置实体的JSON文件中定义的这些变量。由于MoLang变量的格式化(例如entity.isgrazing),您必须使用对象上的[]运算符来访问变量。



事件列表

客户端事件

可监听事件

加入版本:1.9.0.3

minecraft:client_entered_world

只要玩家加入世界,就会触发此事件
属性

名称 类型 描述
player EntityObject 玩家的 EntityObject 对象,一但玩家断开连接,该对象将会失效

加入版本:1.9.0.3

minecraft:hit_result_changed

当光标(十字准星、触控模式的圆圈中心)从指向一个方块或空气变为指向一个实体时,触发此事件。最多1000格距离
属性

名称 类型 描述
entity EntityObject 指向的实体
position Vector [a, b, c] 指向的实体的坐标

加入版本:1.9.0.3

minecraft:hit_result_continuous

每tick都会触发该事件,并告诉你光标(十字准星、触控模式的圆圈中心)指向的实体或方块,最大距离1000格
属性

名称 类型 描述
entity EntityObject 指向的实体(如果存在)
position Vector [a, b, c] 指向的实体或方块的坐标

加入版本:1.9.0.3

minecraft:pick_hit_result_changed

当鼠标指针(PC的鼠标指针、其他平台的虚拟指针)从指向一个实体变为指向一个方块或空气时,触发此事件,最大距离1000格
属性

名称 类型 描述
entity EntityObject 指向的实体(如果存在)
position Vector [a, b, c] 指向的实体的坐标

加入版本:1.9.0.3

minecraft:pick_hit_result_continuous

每tick都会触发该事件,并告诉你鼠标指针(PC的鼠标指针、其他平台的虚拟指针)指向的实体或方块,最大距离1000格
属性

名称 类型 描述
entity EntityObject 指向的实体(如果存在)
position Vector [a, b, c] 指向的实体或方块的坐标

 

可触发事件

加入版本:1.9.0.3

minecraft:display_chat_event

向运行该客户端脚本的玩家的聊天框发送一条消息
属性

名称 类型 描述
message String 要发送的消息

加入版本:1.9.0.3

minecraft:load_ui

向运行该客户端脚本的特定玩家显示UI界面,此事件将界面添加到UI堆栈的顶部,触发后UI将立即显示
属性

名称 类型 描述
path String HTML文件的路径,相对于资源包根目录
options JSON Object 选项。你可以通过将其值设置为true或false来改变界面选项

名称 描述
always_accepts_input 如果为true,只要界面处于UI栈中,将始终接受并处理输入,即使有其他自定义UI显示在其上方
render_game_behind 如果为true,游戏将在界面下继续显示
absorbs_input 如果为true,输入将不会穿透到下方界面
is_showing_menu 如果为true,界面将会被视为暂停菜单,此时游戏的暂停菜单将不会显示在该界面的上方
should_steal_mouse 如果为true,该界面将捕获鼠标指针并限制其移动到该UI界面
force_render_below 如果为true,则即使另一个屏幕位于其上并且将在其上显示(包括HUD),也将显示此屏幕
render_only_when_topmost 如果为true,则仅当该界面处于UI栈顶时才会显示


加入版本:1.9.0.3
最后改动版本:1.12.0.2

minecraft:send_ui_event

将UI事件发送到运行该脚本的特定玩家的UI引擎。触发事件后,将立即发送该UI事件。
属性

名称 类型 描述
eventIdentifier String UI事件的标识符
data String UI事件的数据

加入版本:1.9.0.3

minecraft:spawn_particle_attached_entity

在客户端创建跟随实体的粒子效果,仅当前客户端可见
属性

名称 类型 默认值 描述
effect String 粒子效果的标识符
entity Object 要附加到的实体的对象
offset Vector [a, b, c] [0, 0, 0] 粒子效果相对于实体中心的偏移

加入版本:1.9.0.3

minecraft:spawn_particle_in_world

在客户端创建静态粒子效果,仅当前客户端可见。
属性

名称 类型 默认值 描述
effect String 粒子效果的标识符
offset Vector [a, b, c] [0, 0, 0] 粒子效果的坐标


加入版本:1.9.0.3
最后改动版本:1.12.0.2

minecraft:unload_ui

关闭UI,事件数据仅包含一个字符串,即UI的名字

加入版本:1.12.0.2

minecraft:script_logger_config

此事件用于为客户端脚本打开和关闭各种级别的日志记录。请注意,打开/关闭日志记录不仅限于广播事件的脚本,它将影响所有客户端脚本,包括应用于世界的其他行为包中的脚本。有关日志记录的详细信息,请参阅“调试”部分。
属性

名称 类型 默认值 描述
log_errors Boolean false 是否记录error级别的日志
log_warnings Boolean false 是否记录warning级别的日志
log_information Boolean false 是否记录information级别的日志

 

服务端事件

可监听事件

加入版本:1.12.0.2

minecraft:block_destruction_started

当玩家开始破坏一个方块时触发(创造模式直接破坏不会触发)
属性

名称 类型 描述
player EntityObject 正在破坏此方块的玩家
block_position Object 被破坏的方块的坐标,包含x, y, z三个属性

加入版本:1.12.0.2

minecraft:block_destruction_stopped

当玩家停止破坏一个方块时触发(创造模式直接破坏不会触发)
当方块被完全破坏时也会触发该方法,但destruction_progress为0。
1.12.0.2的bug: 当方块被破坏后鼠标指针指向空气方块时,会再次触发一次该方法,且触发于真数据之前,本次触发除player以外的属性都为脏数据(x=0,y=0,z=0,进度=0)
属性

名称 类型 描述
player EntityObject 停止破坏此方块的玩家
block_position Object 被破坏的方块的坐标,包含x, y, z三个属性
destruction_progress Decimal 停止破坏此方块时,方块已经被破坏的进度,范围:0.0 ~ 1.0

加入版本:1.12.0.2

minecraft:entity_acquired_item

当实体获得物品时触发
属性

名称 类型 描述
entity EntityObject 获得物品的实体
item_stack ItemStackObject 获得的物品
acquisition_method String 获得物品的方式
“picked_up” -> 捡起
“filled” -> 因装水获得水桶、因放置水桶获得桶
待补充…
acquired_amount Integer 获得的物品数量
secondary_entity String 影响该物品的实体。如玩家与村民完成交易(购买物品)时,entity是玩家,secondary_entity是村民

加入版本:1.12.0.2

minecraft:entity_carried_item_changed

当实体的手持物改变时触发(在两个空物品栏之间切换不会触发)
属性

名称 类型 描述
entity EntityObject 改变了手持物的实体
previous_carried_item ItemStackObject 上一个手持物
carried_item String 当前手持物

加入版本:1.9.0.3

minecraft:entity_created

当玩家除外的实体加入到世界时触发此事件
属性

名称 类型 描述
entity EntityObject 刚刚创建的实体

加入版本:1.9.0.3

minecraft:entity_death

实体正常死亡时会触发此事件,删除实体时不会触发此事件
属性

名称 类型 描述
entity EntityObject 刚刚死亡的实体

加入版本:1.12.0.2

minecraft:entity_dropped_item

当实体丢出物品时会触发
属性

名称 类型 描述
entity EntityObject 丢出物品的实体
item_stack ItemStackObject 丢出的物品

加入版本:1.12.0.2

minecraft:entity_equipped_armor

当实体的装甲栏装上/卸下了一个装备时触发
属性

名称 类型 描述
entity EntityObject 装上/卸下装备的实体
item_stack ItemStackObject 被装备的物品。如果是被卸下的,则标识符为”minecraft:undefined”

加入版本:1.9.0.3

minecraft:entity_start_riding

当实体乘上另一个实体时触发此事件
属性

名称 类型 描述
entity EntityObject 乘坐者
ride EntityObject 被乘坐的实体

加入版本:1.9.0.3

minecraft:entity_stop_riding

当实体停止乘坐另一个实体时,触发此事件
属性

名称 类型 描述
entity EntityObject 被乘坐的实体
exit_from_rider Boolean 是否为乘坐者自行决定停止骑行的
entity_is_being_destroyed Boolean 是否因为乘坐者死亡而停止骑行的
switching_rides Boolean 是否是因为乘坐者乘上了其他实体

加入版本:1.9.0.3

minecraft:entity_tick

每个实体每tick都会触发此事件,玩家实体除外
属性

名称 类型 描述
entity EntityObject 触发此事件的实体

加入版本:1.12.0.2

minecraft:entity_use_item

当实体使用物品时触发
属性

名称 类型 描述
entity EntityObject 使用物品的实体
item_stack ItemStackObject 将要被使用的物品
use_method String 使用物品的方式
“place” -> 放置。放置方块/怪物蛋等
“interact” -> 交互。使用骨粉等
“pour_bucket” -> 放置水桶、岩浆桶、鱼桶
“fill_bucket” -> 往桶装水/岩浆/鱼、往炼药锅装水
待补充…

加入版本:1.9.0.3

minecraft:player_attacked_entity

当玩家攻击实体时,触发此事件
属性

名称 类型 描述
player EntityObject 玩家
attacked_entity EntityObject 被攻击的实体

加入版本:1.12.0.2

minecraft:player_destroyed_block

当玩家破坏了一个方块时触发(创造模式直接破坏不会触发)
属性

名称 类型 描述
player EntityObject 破坏该方块的玩家
block_position Object 被放置的方块的坐标,包含x, y, z三个属性
block_identifier String 方块的标识符

加入版本:1.12.0.2

minecraft:piston_moved_block

当活塞移动方块时触发
属性

名称 类型 描述
piston_position Object 活塞主体(非活塞臂)的坐标
block_position Object 移动后的方块坐标
piston_action String 活塞移动方块的方式
“extended” -> 推动
“retracted” -> 拉回

加入版本:1.12.0.2

minecraft:play_sound

当播放了一段音效时会触发
属性

名称 类型 默认值 描述
sound String 声音的标识符
volume Decimal 1.0 音量
pitch Decimal 1.0 音高
position Vector [a, b, c] [0, 0, 0] 播放声音的坐标

加入版本:1.12.0.2

minecraft:player_placed_block

当玩家放置一个方块时触发
属性

名称 类型 描述
player EntityObject 放置该方块的玩家
block_position Object 被放置的方块的坐标,包含x, y, z三个属性

加入版本:1.10.0.3

minecraft:weather_changed

当天气发生变化的时候触发
属性

名称 类型 描述
dimension String 天气发生变化的世界维度(主世界、末地、地狱等)
raining Boolean 新天气是否有雨
lightning Boolean 新天气是否有闪电

 

可触发事件

加入版本:1.9.0.3

minecraft:display_chat_event

在服务端向所有玩家的聊天框发送一条消息
属性

名称 类型 默认值 描述
message String 要发送的消息

加入版本:1.9.0.3

minecraft:execute_command

在服务端执行一条斜杠指令
属性

名称 类型 默认值 描述
command String 要执行的指令(不带斜杠)

加入版本:1.12.0.2

minecraft:play_sound

播放一段音效
属性

名称 类型 默认值 描述
sound String 要播放的音效的标识符
volume Decimal 1.0 音量
pitch Decimal 1.0 音高
position Vector [a, b, c] [0, 0, 0] 播放声音的坐标

加入版本:1.9.0.3

minecraft:spawn_particle_attached_entity

在服务端创建跟随实体的粒子效果,所有玩家都可见。
属性

名称 类型 默认值 描述
effect String 粒子效果的标识符
entity EntityObject 要附加到的实体的对象
offset Vector [a, b, c] [0, 0, 0] 粒子效果相对于实体中心的偏移

加入版本:1.9.0.3

minecraft:spawn_particle_in_world

在服务端创建静态粒子效果,所有玩家都可见。
属性

名称 类型 默认值 描述
effect String 粒子效果的标识符
offset Vector [a, b, c] [0, 0, 0] 粒子效果的坐标

加入版本:1.12.0.2

minecraft:script_logger_config

此事件用于为服务器脚本打开和关闭各种级别的日志记录。请注意,打开/关闭日志记录不仅限于广播事件的脚本,它将影响所有服务器脚本,包括应用于世界的其他行为包中的脚本。有关日志记录的详细信息,请参阅“调试”部分。
属性

名称 类型 默认值 描述
log_errors Boolean false 是否记录error级别的日志
log_warnings Boolean false 是否记录warning级别的日志
log_information Boolean false 是否记录information级别的日志

赞赏

发表评论

textsms
account_circle
email

Hello WvT

Minecraft Script Engine 中文 API 文档
 本文档由 @阿特我自己 制作,未经授权禁止以任何形式进行引用或转载,版权所有,侵权必究! 当前修订版本:1.3.1 加入学习交流群:132538683 索引: 内置对象 系统相…
扫描二维码继续阅读
2018-12-12


没有激活的小工具