跳到正文
本頁目錄

🎈 實體相關事件

"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 為傷害原因枚舉,枚舉值如下,有問號的待驗證,???待補充

ActorDamageCause 枚舉值解釋
ActorDamageCause.None-1其他
ActorDamageCause.Override0非正常方式(如腳本直接設置血量為0),這種方式的傷害不會被盔甲與buff吸收
ActorDamageCause.Contact1接觸傷害(如仙人掌)
ActorDamageCause.EntityAttack2實體攻擊
ActorDamageCause.Projectile3拋射物攻擊
ActorDamageCause.Suffocation4窒息(密封空間)
ActorDamageCause.Fall5掉落
ActorDamageCause.Fire6燃燒
ActorDamageCause.FireTick7點燃
ActorDamageCause.Lava8熔岩
ActorDamageCause.Drowning9溺水
ActorDamageCause.BlockExplosion10方塊爆炸
ActorDamageCause.EntityExplosion11實體爆炸
ActorDamageCause.Void12虛空
ActorDamageCause.SelfDestruct13自殺
ActorDamageCause.Magic14尖牙對生物造成的傷害、守衛者對生物造成的魔法傷害和藥水傷害等
ActorDamageCause.Wither15凋零效果
ActorDamageCause.Starve16飢餓
ActorDamageCause.Anvil17下落的鐵砧
ActorDamageCause.Thorns18荊棘
ActorDamageCause.FallingBlock19下落的方塊
ActorDamageCause.Piston20活塞
ActorDamageCause.FlyIntoWall21動能(滑翔撞牆)
ActorDamageCause.Magma22岩漿塊
ActorDamageCause.Fireworks23煙花
ActorDamageCause.Lightning24閃電
ActorDamageCause.Charging25充能(?)
ActorDamageCause.Temperature26溫度 (雪人?)
ActorDamageCause.Freezing27冰凍
ActorDamageCause.Stalactite28被鐘乳石砸到
ActorDamageCause.Stalagmite29掉落到石筍上
ActorDamageCause.RamAttack30山羊衝撞
ActorDamageCause.SonicBoom31堅守著音爆攻擊
ActorDamageCause.Campfire32營火
ActorDamageCause.SoulCampfire33靈魂營火
ActorDamageCause.MaceSmash34下落攻擊
ActorDamageCause.All35所有

"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()

"onPortalTrySpawnPigZombie" - 下界傳送門嘗試生成殭屍豬靈

  • 監聽函數原型 function(pos,axis)

  • 參數:

    • pos : IntPos
      發生嘗試生成的位置(傳送門方塊座標)
    • axis : Integer
      傳送門朝向枚舉值(0=Unknown,1=X,2=Z)
  • 攔截事件:函數返回false

"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。

"onEndermanTakeBlock" - 末影人搬運方塊

Warning

此事件僅在0.11.3及更高版本中可用。

  • 監聽函數原型 function(entity, block, pos)
  • 參數:
    • entity : Entity
      搬運方塊的末影人
    • block : Block
      被搬運的方塊
    • pos : BlockPos
      被搬運的方塊座標
  • 攔截事件:函數返回false