ServerAdvancementManager.java
net.minecraft.server.ServerAdvancementManager
信息
- 全限定名:net.minecraft.server.ServerAdvancementManager
- 类型:public class
- 包:net.minecraft.server
- 源码路径:src/main/java/net/minecraft/server/ServerAdvancementManager.java
- 起始行号:L23
- 继承:SimpleJsonResourceReloadListener
- 职责:
TODO
字段/常量
-
LOGGER- 类型:
Logger - 修饰符:
private static final - 源码定位:
L24 - 说明:
TODO
- 类型:
-
advancements- 类型:
Map<Identifier,AdvancementHolder> - 修饰符:
private - 源码定位:
L25 - 说明:
TODO
- 类型:
-
tree- 类型:
AdvancementTree - 修饰符:
private - 源码定位:
L26 - 说明:
TODO
- 类型:
-
registries- 类型:
HolderLookup.Provider - 修饰符:
private final - 源码定位:
L27 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public ServerAdvancementManager(HolderLookup.Provider registries) @ L29
- 构造器名:ServerAdvancementManager
- 源码定位:L29
- 修饰符:public
参数:
- registries: HolderLookup.Provider
说明:
TODO
方法
下面的方法块按源码顺序生成。
protected void apply(Map<Identifier,Advancement> preparations, ResourceManager manager, ProfilerFiller profiler) @ L34
- 方法名:apply
- 源码定位:L34
- 返回类型:void
- 修饰符:protected
参数:
- preparations: Map<Identifier,Advancement>
- manager: ResourceManager
- profiler: ProfilerFiller
说明:
TODO
private void validate(Identifier id, Advancement advancement) @ L53
- 方法名:validate
- 源码定位:L53
- 返回类型:void
- 修饰符:private
参数:
- id: Identifier
- advancement: Advancement
说明:
TODO
public AdvancementHolder get(Identifier id) @ L61
- 方法名:get
- 源码定位:L61
- 返回类型:AdvancementHolder
- 修饰符:public
参数:
- id: Identifier
说明:
TODO
public AdvancementTree tree() @ L65
- 方法名:tree
- 源码定位:L65
- 返回类型:AdvancementTree
- 修饰符:public
参数:
- 无
说明:
TODO
public Collection<AdvancementHolder> getAllAdvancements() @ L69
- 方法名:getAllAdvancements
- 源码定位:L69
- 返回类型:Collection
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public class ServerAdvancementManager extends SimpleJsonResourceReloadListener<Advancement> {
private static final Logger LOGGER = LogUtils.getLogger();
private Map<Identifier, AdvancementHolder> advancements = Map.of();
private AdvancementTree tree = new AdvancementTree();
private final HolderLookup.Provider registries;
public ServerAdvancementManager(HolderLookup.Provider registries) {
super(registries, Advancement.CODEC, Registries.ADVANCEMENT);
this.registries = registries;
}
protected void apply(Map<Identifier, Advancement> preparations, ResourceManager manager, ProfilerFiller profiler) {
Builder<Identifier, AdvancementHolder> builder = ImmutableMap.builder();
preparations.forEach((id, advancement) -> {
this.validate(id, advancement);
builder.put(id, new AdvancementHolder(id, advancement));
});
this.advancements = builder.buildOrThrow();
AdvancementTree tree = new AdvancementTree();
tree.addAll(this.advancements.values());
for (AdvancementNode root : tree.roots()) {
if (root.holder().value().display().isPresent()) {
TreeNodePosition.run(root);
}
}
this.tree = tree;
}
private void validate(Identifier id, Advancement advancement) {
ProblemReporter.Collector problemCollector = new ProblemReporter.Collector();
advancement.validate(problemCollector, this.registries);
if (!problemCollector.isEmpty()) {
LOGGER.warn("Found validation problems in advancement {}: \n{}", id, problemCollector.getReport());
}
}
public @Nullable AdvancementHolder get(Identifier id) {
return this.advancements.get(id);
}
public AdvancementTree tree() {
return this.tree;
}
public Collection<AdvancementHolder> getAllAdvancements() {
return this.advancements.values();
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
字段/构造调用/返回值 - 关联成员:
AdvancementHolder()
- 引用位置:
-
- 引用位置:
字段/构造调用/返回值 - 关联成员:
AdvancementTree()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
TreeNodePosition.run()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
SimpleJsonResourceReloadListener
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
方法调用/构造调用 - 关联成员:
Collector(), ProblemReporter.Collector()
- 引用位置:
-
- 引用位置:
参数
- 引用位置: