SynchronizeRegistriesTask.java
net.minecraft.server.network.config.SynchronizeRegistriesTask
信息
- 全限定名:net.minecraft.server.network.config.SynchronizeRegistriesTask
- 类型:public class
- 包:net.minecraft.server.network.config
- 源码路径:src/main/java/net/minecraft/server/network/config/SynchronizeRegistriesTask.java
- 起始行号:L20
- 实现:ConfigurationTask
- 职责:
TODO
字段/常量
-
TYPE- 类型:
ConfigurationTask.Type - 修饰符:
public static final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
requestedPacks- 类型:
List<KnownPack> - 修饰符:
private final - 源码定位:
L22 - 说明:
TODO
- 类型:
-
registries- 类型:
LayeredRegistryAccess<RegistryLayer> - 修饰符:
private final - 源码定位:
L23 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public SynchronizeRegistriesTask(List<KnownPack> knownPacks, LayeredRegistryAccess<RegistryLayer> registries) @ L25
- 构造器名:SynchronizeRegistriesTask
- 源码定位:L25
- 修饰符:public
参数:
- knownPacks: List
- registries: LayeredRegistryAccess
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void start(Consumer<Packet<?>> connection) @ L30
- 方法名:start
- 源码定位:L30
- 返回类型:void
- 修饰符:public
参数:
- connection: Consumer<Packet<?>>
说明:
TODO
private void sendRegistries(Consumer<Packet<?>> connection, Set<KnownPack> negotiatedPacks) @ L35
- 方法名:sendRegistries
- 源码定位:L35
- 返回类型:void
- 修饰符:private
参数:
- connection: Consumer<Packet<?>>
- negotiatedPacks: Set
说明:
TODO
public void handleResponse(List<KnownPack> acceptedPacks, Consumer<Packet<?>> connection) @ L46
- 方法名:handleResponse
- 源码定位:L46
- 返回类型:void
- 修饰符:public
参数:
- acceptedPacks: List
- connection: Consumer<Packet<?>>
说明:
TODO
public ConfigurationTask.Type type() @ L54
- 方法名:type
- 源码定位:L54
- 返回类型:ConfigurationTask.Type
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public class SynchronizeRegistriesTask implements ConfigurationTask {
public static final ConfigurationTask.Type TYPE = new ConfigurationTask.Type("synchronize_registries");
private final List<KnownPack> requestedPacks;
private final LayeredRegistryAccess<RegistryLayer> registries;
public SynchronizeRegistriesTask(List<KnownPack> knownPacks, LayeredRegistryAccess<RegistryLayer> registries) {
this.requestedPacks = knownPacks;
this.registries = registries;
}
@Override
public void start(Consumer<Packet<?>> connection) {
connection.accept(new ClientboundSelectKnownPacks(this.requestedPacks));
}
private void sendRegistries(Consumer<Packet<?>> connection, Set<KnownPack> negotiatedPacks) {
DynamicOps<Tag> ops = this.registries.compositeAccess().createSerializationContext(NbtOps.INSTANCE);
RegistrySynchronization.packRegistries(
ops,
this.registries.getAccessFrom(RegistryLayer.WORLDGEN),
negotiatedPacks,
(registryKey, entries) -> connection.accept(new ClientboundRegistryDataPacket(registryKey, entries))
);
connection.accept(new ClientboundUpdateTagsPacket(TagNetworkSerialization.serializeTagsToNetwork(this.registries)));
}
public void handleResponse(List<KnownPack> acceptedPacks, Consumer<Packet<?>> connection) {
if (acceptedPacks.equals(this.requestedPacks)) {
this.sendRegistries(connection, Set.copyOf(this.requestedPacks));
} else {
this.sendRegistries(connection, Set.of());
}
}
@Override
public ConfigurationTask.Type type() {
return TYPE;
}
}引用的其他类
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
RegistrySynchronization.packRegistries()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
ClientboundUpdateTagsPacket()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
ClientboundRegistryDataPacket()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
ClientboundSelectKnownPacks()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
字段/实现/方法调用/构造调用/返回值 - 关联成员:
ConfigurationTask.Type(), Type()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
TagNetworkSerialization.serializeTagsToNetwork()
- 引用位置: