Open Container Condition
基本信息
| 属性 | 值 |
|---|---|
| handler ID | container.open |
| 事件订阅 | Forge MinecraftForge.EVENT_BUS(net.minecraftforge.event.entity.player.PlayerOpenContainerEvent) |
| 优先级 | LOWEST |
配置字段
| 字段 | 类型 | 默认 | 含义 |
|---|---|---|---|
containers |
字符串或字符串数组 | [] |
Container 全限定类名(Class.forName + isAssignableFrom(Container.class)) |
触发流程
PlayerOpenContainerEvent触发。- 取玩家当前
openContainer的类。 - 去重:类与上一次触发的
previous相同时直接跳过——同一次开启同一个 GUI 只触发一次。 - 命中目标类则调用 listener。
JSON 示例
首次打开熔炉:
{
"id": "cookbook",
"x": 0, "y": -3,
"icon": { "registryName": "minecraft:furnace" },
"condition": {
"type": "container.open",
"containers": ["net.minecraft.inventory.ContainerFurnace"]
}
}
相关条目
源码
src/main/java/glowredman/amazingtrophies/condition/OpenContainerConditionHandler.java