Kill Condition
基本信息
| 属性 | 值 |
|---|---|
| handler ID | kill |
| 事件订阅 | Forge MinecraftForge.EVENT_BUS(net.minecraftforge.event.entity.living.LivingDeathEvent,与 death handler 共用同一事件) |
| 优先级 | LOWEST |
配置字段
| 字段 | 类型 | 默认 | 含义 |
|---|---|---|---|
targets |
字符串或字符串数组 | [] |
目标实体的注册名或全限定类名 |
isTargetsAllowList |
布尔 | false |
targets 是否为白名单 |
触发流程
LivingDeathEvent.entity.source.getEntity() instanceof EntityPlayer—— 玩家必须是造成死亡的直接攻击者(玩家为Source的Entity)。- 取
event.entityLiving.getClass()(被击杀实体精确类)。 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