跳转至

🎈 实体相关事件

"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 : ActorDamageCause
      受伤原因
  • 拦截事件:函数返回false

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

伤害原因 枚举值 解释
None -1 其他
Override 0 非正常方式(如脚本直接设置血量为0),这种方式的伤害不会被盔甲与buff吸收
Contact 1 接触伤害(如仙人掌)
EntityAttack 2 实体攻击
Projectile 3 抛射物攻击
Suffocation 4 窒息(密封空间)
Fall 5 掉落
Fire 6 燃烧
FireTick 7 点燃
Lava 8 熔岩
Drowning 9 溺水
BlockExplosion 10 方块爆炸
EntityExplosion 11 实体爆炸
Void 12 虚空
Suicide 13 自杀
Magic 14 尖牙对生物造成的伤害、守卫者对生物造成的魔法伤害和药水伤害等
Wither 15 凋零效果
Starve 16 饥饿
Anvil 17 下落的铁砧
Thorns 18 荆棘
FallingBlock 19 下落的方块
Piston 20 活塞
FlyIntoWall 21 动能(滑翔撞墙)
Magma 22 岩浆块
Fireworks 23 烟花
Lightning 24 闪电
Charging 25 充能(?)
Temperature 26 温度 (雪人?)
Freezing 27 冰冻
Stalactite 28 被钟乳石砸到
Stalagmite 29 掉落到石笋上
RamAttack 30 山羊冲撞
SonicBoom 31 坚守着音爆攻击
Campfire 32 营火
SoulCampfire 33 灵魂营火
MaceSmash 34 下落攻击
All 35 所有

"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执行命令

Warning

此事件仅在0.9.6及更高版本中可用。

  • 监听函数原型 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