PacketReport.java
net.minecraft.data.info.PacketReport
信息
- 全限定名:net.minecraft.data.info.PacketReport
- 类型:public class
- 包:net.minecraft.data.info
- 源码路径:src/main/java/net/minecraft/data/info/PacketReport.java
- 起始行号:L19
- 实现:DataProvider
- 职责:
TODO
字段/常量
output- 类型:
PackOutput - 修饰符:
private final - 源码定位:
L20 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public PacketReport(PackOutput output) @ L22
- 构造器名:PacketReport
- 源码定位:L22
- 修饰符:public
参数:
- output: PackOutput
说明:
TODO
方法
下面的方法块按源码顺序生成。
public CompletableFuture<?> run(CachedOutput cache) @ L26
- 方法名:run
- 源码定位:L26
- 返回类型:CompletableFuture<?>
- 修饰符:public
参数:
- cache: CachedOutput
说明:
TODO
private JsonElement serializePackets() @ L32
- 方法名:serializePackets
- 源码定位:L32
- 返回类型:JsonElement
- 修饰符:private
参数:
- 无
说明:
TODO
public String getName() @ L63
- 方法名:getName
- 源码定位:L63
- 返回类型:String
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public class PacketReport implements DataProvider {
private final PackOutput output;
public PacketReport(PackOutput output) {
this.output = output;
}
@Override
public CompletableFuture<?> run(CachedOutput cache) {
Path path = this.output.getOutputFolder(PackOutput.Target.REPORTS).resolve("packets.json");
return DataProvider.saveStable(cache, this.serializePackets(), path);
}
private JsonElement serializePackets() {
JsonObject protocols = new JsonObject();
Stream.of(
HandshakeProtocols.SERVERBOUND_TEMPLATE,
StatusProtocols.CLIENTBOUND_TEMPLATE,
StatusProtocols.SERVERBOUND_TEMPLATE,
LoginProtocols.CLIENTBOUND_TEMPLATE,
LoginProtocols.SERVERBOUND_TEMPLATE,
ConfigurationProtocols.CLIENTBOUND_TEMPLATE,
ConfigurationProtocols.SERVERBOUND_TEMPLATE,
GameProtocols.CLIENTBOUND_TEMPLATE,
GameProtocols.SERVERBOUND_TEMPLATE
)
.map(ProtocolInfo.DetailsProvider::details)
.collect(Collectors.groupingBy(ProtocolInfo.Details::id))
.forEach((protocolId, flows) -> {
JsonObject protocolData = new JsonObject();
protocols.add(protocolId.id(), protocolData);
flows.forEach(flow -> {
JsonObject protocolFlowData = new JsonObject();
protocolData.add(flow.flow().id(), protocolFlowData);
flow.listPackets((type, networkId) -> {
JsonObject packetInfo = new JsonObject();
packetInfo.addProperty("protocol_id", networkId);
protocolFlowData.add(type.id().toString(), packetInfo);
});
});
});
return protocols;
}
@Override
public String getName() {
return "Packet Report";
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
实现/方法调用 - 关联成员:
DataProvider.saveStable()
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置: