Kill Condition

基本信息

属性 值
handler ID kill
事件订阅 Forge MinecraftForge.EVENT_BUS(net.minecraftforge.event.entity.living.LivingDeathEvent,与 death handler 共用同一事件)
优先级 LOWEST

配置字段

字段 类型 默认 含义
targets 字符串或字符串数组 [] 目标实体的注册名或全限定类名
isTargetsAllowList 布尔 false targets 是否为白名单

触发流程

  1. LivingDeathEvent.entity.source.getEntity() instanceof EntityPlayer —— 玩家必须是造成死亡的直接攻击者(玩家为 Source 的 Entity)。
  2. 取 event.entityLiving.getClass()(被击杀实体精确类)。
  3. targets.contains(targetClass) ^ isTargetsAllowList —— XOR 校验白/黑名单。

与 Death Condition 的区别

  • death 仅看玩家 自己 怎么死;kill 看玩家作为攻击者造成其他生物死亡。
  • 两者绑定同一 LivingDeathEvent,各自维护独立条件集合。

JSON 示例

杀任意非末影龙生物(黑名单示例):

{
  "id": "pacifist",
  "x": 0, "y": -2,
  "icon": { "registryName": "minecraft:bone" },
  "condition": {
    "type": "kill",
    "targets": ["EnderDragon"],
    "isTargetsAllowList": true
  }
}

相关条目

源码

src/main/java/glowredman/amazingtrophies/condition/KillConditionHandler.java