Entity Interact Condition
基本信息
| 属性 | 值 |
|---|---|
| handler ID | interact.entity |
| 事件订阅 | Forge MinecraftForge.EVENT_BUS(net.minecraftforge.event.entity.player.EntityInteractEvent) |
| 优先级 | LOWEST |
配置字段
| 字段 | 类型 | 默认 | 含义 |
|---|---|---|---|
targets |
字符串或字符串数组 | [](必填) |
目标实体的注册名或全限定类名(EntityList.stringToClassMapping 优先,回退 Class.forName) |
触发流程
- 玩家右键实体触发
EntityInteractEvent。 - 取
event.target.getClass()。 - 在
Multimap<Class<? extends Entity>, String>中查找匹配的条目 ID,逐个调用 listener。
匹配严格按精确类(
getClass(),不包含子类);若需子类继承匹配,请在targets中列出每个子类。
JSON 示例
右键村民或猪:
{
"id": "interact_villager",
"x": 0, "y": 1,
"icon": { "registryName": "minecraft:emerald" },
"condition": {
"type": "interact.entity",
"targets": ["Villager", "Pig"]
}
}
相关条目
- API 概述
- Block Condition(右键方块版本,未注册)
源码
src/main/java/glowredman/amazingtrophies/condition/EntityInteractConditionHandler.java