跳转至

🎈 实体相关事件

"onMobDie" - 生物死亡

  • 监听函数原型 function(mob,source,cause)
  • 参数:
  • mob : Entity
    死亡的实体对象
  • source : Entity
    伤害来源的实体对象(可能为Null
  • cause : Integer
    死亡原因

  • 拦截事件:不可以拦截

注意,当玩家死亡时,除了触发onPlayerDie事件,这个事件同样也会被触发一次

"onMobHurt" - 生物受伤(包括玩家)

  • 监听函数原型 function(mob,source,damage,cause)
  • 参数:
  • mob : Entity
    受伤的实体对象
  • source : Entity
    伤害来源的实体对象(可能为Null
  • damage : Float
    受到的伤害数值
  • cause : DamageCause 受伤原因
  • 拦截事件:函数返回false

DamageCause 为伤害原因枚举,枚举值如下,有问号的待验证,???待补充

伤害原因 枚举值 解释
None -0x01 其他
Override 0x00 非正常方式(如脚本直接设置血量为0),这种方式的伤害不会被盔甲与buff吸收
Contact 0x01 接触伤害(如仙人掌)
EntityAttack 0x02 实体攻击
Projectile 0x03 抛射物攻击
Suffocation 0x04 窒息(密封空间)
Fall 0x05 掉落
Fire 0x06 燃烧
FireTick 0x07 点燃
Lava 0x08 熔岩
Drowning 0x09 溺水
BlockExplosion 0x0A 方块爆炸
EntityExplosion 0x0B 实体爆炸
Void 0x0C 虚空
Suicide 0x0D 自杀
Magic 0x0E 尖牙对生物造成的伤害、守卫者对生物造成的魔法伤害和药水伤害等
Wither 0x0F 凋零效果
Starve 0x10 饥饿
Anvil 0x11 下落的铁砧
Thorns 0x12 荆棘
FallingBlock 0x13 下落的方块
Piston 0x14 活塞
FlyIntoWall 0x15 动能(滑翔撞墙)
Magma 0x16 岩浆块
Fireworks 0x17 烟花
Lightning 0x18 闪电
Charging 0x19 充能(?)
Temperature 0x1A 温度 (雪人?)
Freezing 0x1B 冰冻
Stalactite 0x1C 被钟乳石砸到
Stalagmite 0x1D 掉落到石笋上
All 0x1F 所有

"onEntityExplode" - 发生由实体引起的爆炸

  • 监听函数原型 function(source,pos,radius,maxResistance,isDestroy,isFire)
  • 参数:
  • source : Entity
    爆炸来源的实体对象
  • pos : FloatPos
    爆炸发生的坐标
  • radius : Float 爆炸波及的半径
  • maxResistance : Float
    爆炸可破坏的方块爆炸抗性上限
  • isDestroy : Boolean
    爆炸是否破坏方块
  • isFire : Boolean
    爆炸是否产生火焰

  • 拦截事件:函数返回false

"onMobTrySpawn" - 发生于实体尝试自然生成

  • 监听函数原型 function(typeName,pos)
  • 参数:
  • typeName : string
    生成实体名称
  • pos : FloatPos
    生成的坐标

  • 拦截事件:函数返回false

"onMobSpawned" - 发生于实体自然生成完成

  • 监听函数原型 function(entity,pos)
  • 参数:
  • entity : Entity
    生成的实体对象
  • pos : FloatPos
    生成的坐标

  • 拦截事件:不可拦截

此事件为实体成功生成后触发,不可直接拦截,如需拦截请使用entity.despawn()或entity.remove()

"onProjectileHitEntity" - 实体被弹射物击中

  • 监听函数原型 function(entity,source)
  • 参数:
  • entity: Entity
    被击中的实体对象
  • source : Entity
    发射的弹射物实体(如箭)
  • 拦截事件:不可以拦截

"onWitherBossDestroy" - 凋灵破坏方块

  • 监听函数原型 function(witherBoss,AAbb,aaBB)
  • 参数:
  • witherBoss: Entity
    凋灵的实体对象

  • AAbb: IntPos

    凋灵将破坏的区域(长方体),对角点A坐标

  • aaBB: IntPos

    凋灵将破坏的区域(长方体),对角点B坐标

  • 拦截事件:函数返回false

注意,此事件不包括凋灵爆炸的破坏。

"onRide" - 生物骑乘

  • 监听函数原型 function(entity1,entity2)
  • 参数:
  • entity1 : Entity
    尝试骑乘的实体对象
  • entity2 : Entity
    被骑乘的实体对象
  • 拦截事件:函数返回false

注:骑乘包括坐矿车、坐船、骑马、骑猪等。

"onStepOnPressurePlate" - 生物踩压力板

  • 监听函数原型 function(entity,pressurePlate)
  • 参数:
  • entity : Entity
    踩压力板的实体对象
  • pressurePlate : Block
    被踩的压力板方块对象
  • 拦截事件:函数返回false

注:生物踩压力板时,将会反复多次触发此事件。

"onSpawnProjectile" - 弹射物创建

  • 监听函数原型 function(shooter,type)
  • 参数:

  • shooter : Entity
    发射弹射物的的实体对象

  • type : String
    弹射物标准类型名

  • 拦截事件:函数返回 false

注:已知可拦截的弹射物有鸡蛋、末影珍珠、雪球、三叉戟、箭、钓竿(鱼钩)。

"onProjectileCreated" - 弹射物创建完毕

  • 监听函数原型 function(shooter,entity)
  • 参数:

  • shooter : Entity
    创建此弹射物的的实体对象

  • entity : Entity
    被创建的弹射物实体对象

  • 拦截事件:不可以拦截

"onNpcCmd" - NPC执行命令

  • 监听函数原型 function(npc,pl,cmd)
  • 参数:
  • npc : Entity
    执行命令的NPC实体对象
  • pl : Player
    触发NPC命令执行的玩家对象
  • cmd : String
    NPC执行的命令
  • 拦截事件:函数返回false

"onChangeArmorStand" - 操作盔甲架

  • 监听函数原型 function(as,pl,slot)

  • 参数:

  • as: Entity
    被操作的盔甲架实体对象

  • pl : Player
    操作盔甲架的玩家对象

  • slot : Number

    装备栏编号

  • 拦截事件:函数返回false

"onEntityTransformation" - 实体转变

  • 监听函数原型 function(uniqueId,entity)
  • 参数:

  • uniqueId: String 转变前的实体的唯一标识符

  • entity : Entity 转换完成的实体
  • 拦截事件:不可以拦截

注:此事件为 Addons 中实体的 TransformationComponent 激活时触发,多用于引擎与Addon交互。由于转变前的实体指针很快被销毁,因此只提供UniqueId