Join World Condition (dimension.join)

基本信息

属性 值
handler ID dimension.join
事件订阅 Forge MinecraftForge.EVENT_BUS(net.minecraftforge.event.entity.EntityJoinWorldEvent)
优先级 LOWEST
触发对象 EntityPlayer

配置字段

id 与 provider 互斥,必须填且只能填其一:

字段 类型 含义
id int 维度数字 ID(provider.dimensionId)
provider 字符串 WorldProvider 全限定类名(继承匹配用 Class.forName + isAssignableFrom(WorldProvider.class))

同时存在两个字段则抛 JsonSyntaxException;两者都不存在也抛 JsonSyntaxException。

触发流程

  1. 玩家进入新维度时 EntityJoinWorldEvent 触发。
  2. 取 event.world.provider。
  3. 先按 dimensionId 命中 conditionsID;再按 provider.getClass() 命中 conditionsProvider(注意:精确类匹配,不走继承)。
  4. 每次进入维度两个分支都可能触发。

JSON 示例

进入下界:

{
  "id": "into_the_nether",
  "x": -4, "y": 0,
  "icon": { "registryName": "minecraft:netherrack" },
  "condition": {
    "type": "dimension.join",
    "id": -1
  }
}

相关条目

源码

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