clearPlayerBaubles(EntityPlayer) / clearPlayerBaubles(String, boolean isClient) |
从指定端缓存移除指定玩家 |
clearClientPlayerBaubles() |
清空客户端缓存(连接新服务器时由 EventHandlerNetwork.onConnectedToServer 调用) |
clearServerPlayerBaubles() |
清空服务器缓存(FMLServerStoppedEvent 时调用) |
pruneServerSide() / pruneClientSide() |
每 200 tick 由 EventHandlerCleanup 调用一次;遍历缓存,弱引用未死的玩家保持原样,若已死但重新找到则更新弱引用;找不到则删除 |
onWorldUnload(World) |
客户端侧:删除引用了此 world 但玩家已 null 的条目,或 worldObj == 该 world 的条目 |
getPlayerBaubles(EntityPlayer) |
按玩家 world 是 client/server 选择对应缓存;不存在则 computeIfAbsent 创建 |
setPlayerBaubles(EntityPlayer, InventoryBaubles) |
把自定义 InventoryBaubles 替换缓存条目(container 关闭时由 ContainerPlayerExpanded.onContainerClosed 调用) |
loadPlayerBaubles(player, mainFile, backupFile) |
服务端读 <name>.baub,失败则尝试 <name>.baubback;NBT 通过 CompressedStreamTools 反序列化;读完后调用 inventory.readNBT |
savePlayerBaubles(player, mainFile, backupFile) |
先把 mainFile 复制为 backup;再写入压缩 NBT;保存失败删除 mainFile |