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

触发流程

  1. PlayerOpenContainerEvent 触发。
  2. 取玩家当前 openContainer 的类。
  3. 去重:类与上一次触发的 previous 相同时直接跳过——同一次开启同一个 GUI 只触发一次。
  4. 命中目标类则调用 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