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。
触发流程
- 玩家进入新维度时
EntityJoinWorldEvent触发。 - 取
event.world.provider。 - 先按
dimensionId命中conditionsID;再按provider.getClass()命中conditionsProvider(注意:精确类匹配,不走继承)。 - 每次进入维度两个分支都可能触发。
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