本条基于 Minecraft 1.20.1 + Forge,Mojang 映射名。
ServerLevel(net.minecraft.server.level.ServerLevel)是服务端的维度对象,每个维度一个实例,持有该维度所有实体相关的容器。
与实体储存的关系
entityManager:PersistentEntitySectionManager<Entity>,负责实体的加载、保存与可见性;其getEntityGetter()返回 LevelEntityGetterAdapter,即getEntities()的返回值。entityTickList:EntityTickList,只决定哪些实体每 tick 被更新。dragonParts:Int2ObjectMap,存多部件实体的子部件(原版只放末影龙部件,Forge 扩展为PartEntity)。- 内部类
EntityCallbacks实现 LevelCallback,在实体状态变化时同步上述容器。
常用入口
getEntities()→ LevelEntityGetterAdaptergetAllEntities()即getEntities().getAll()getEntity(int)/getEntity(UUID)getEntities(EntityTypeTest, Predicate, List, int):供 EntitySelector 使用tick()中entityTickList.forEach(...)驱动实体更新
所在链路
/forge entity list 与 say @e 都从这里取实体;客户端渲染链路(LevelRenderer)对应的是 ClientLevel。