EventHandlerEntity
基本信息
| 属性 | 值 |
|---|---|
| 路径 | baubles.common.event.EventHandlerEntity |
| 类型 | class |
| 包名 | baubles.common.event |
| 注册位置 | MinecraftForge.EVENT_BUS(Baubles.preInit) |
监听事件
| 事件 | 行为 |
|---|---|
PlayerEvent.LivingUpdateEvent(playerTick) |
每 tick 遍历玩家 bauble 槽位,对每个非空且实现 IBauble 的物品调用 onWornTick(stack, player) |
PlayerDropsEvent(playerDeath) |
玩家死亡且服务端非 creative 且未启用 keepInventory:调用 InventoryBaubles.dropItemsAt,会跳过灵魂绑定物品 |
PlayerEvent.LoadFromFile(playerLoad) |
调 playerLoadDo:先清空缓存;从 <playerDir>/<name>.baub 加载;若不存在则尝试从 <uuid>.baub 旧版兼容加载(成功则复制到 name 文件并删除 uuid 文件);最后调 PlayerHandler.loadPlayerBaubles |
PlayerEvent.SaveToFile(playerSave) |
调 playerSaveDo:写入 <name>.baub + <name>.baubback |
WorldEvent.Unload(onWorldUnload) |
调 PlayerHandler.onWorldUnload |
PlayerEvent.StartTracking(startTracking) |
服务端:当 entityPlayer 开始追踪另一名玩家时,向追踪者发 PacketSyncAllBauble 以初始化其饰品栏 |
玩家文件
| 用途 | 文件名 |
|---|---|
| 主文件 | <playerDir>/<playerName>.baub |
| 备份文件 | <playerDir>/<playerName>.baubback |
| 旧 UUID 文件(兼容) | <playerDir>/<uuid>.baub |
死亡掉落规则
| 条件 | 是否掉落 baubles |
|---|---|
| 客户端侧 | 否(仅服务端执行 dropItemsAt) |
keepInventory=true |
否 |
| creative 模式 | 由 gameRules.getGameRuleBooleanValue("keepInventory") 决定(creative 通常不启用 keepInventory,会正常掉落) |
| 灵魂绑定附魔 | 跳过该物品(ItemStackHelper.isSoulBound) |
相关条目
- InventoryBaubles
- PlayerHandler
- EventHandlerNetwork - 客户端缓存清理
- EventHandlerCleanup - 缓存剪枝
- BaublesConfig - 灵魂绑定附魔 ID 列表