DetectedVersion.java
net.minecraft.DetectedVersion
信息
- 全限定名:net.minecraft.DetectedVersion
- 类型:public class
- 包:net.minecraft
- 源码路径:src/main/java/net/minecraft/DetectedVersion.java
- 起始行号:L18
- 职责:
TODO
字段/常量
-
LOGGER- 类型:
Logger - 修饰符:
private static final - 源码定位:
L19 - 说明:
TODO
- 类型:
-
BUILT_IN- 类型:
WorldVersion - 修饰符:
public static final - 源码定位:
L20 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static WorldVersion createBuiltIn(String id, String name) @ L22
- 方法名:createBuiltIn
- 源码定位:L22
- 返回类型:WorldVersion
- 修饰符:public static
参数:
- id: String
- name: String
说明:
TODO
public static WorldVersion createBuiltIn(String id, String name, boolean stable) @ L26
- 方法名:createBuiltIn
- 源码定位:L26
- 返回类型:WorldVersion
- 修饰符:public static
参数:
- id: String
- name: String
- stable: boolean
说明:
TODO
private static WorldVersion createFromJson(JsonObject root) @ L32
- 方法名:createFromJson
- 源码定位:L32
- 返回类型:WorldVersion
- 修饰符:private static
参数:
- root: JsonObject
说明:
TODO
public static WorldVersion tryDetectVersion() @ L46
- 方法名:tryDetectVersion
- 源码定位:L46
- 返回类型:WorldVersion
- 修饰符:public static
参数:
- 无
说明:
TODO
代码
public class DetectedVersion {
private static final Logger LOGGER = LogUtils.getLogger();
public static final WorldVersion BUILT_IN = createBuiltIn(UUID.randomUUID().toString().replaceAll("-", ""), "Development Version");
public static WorldVersion createBuiltIn(String id, String name) {
return createBuiltIn(id, name, true);
}
public static WorldVersion createBuiltIn(String id, String name, boolean stable) {
return new WorldVersion.Simple(
id, name, new DataVersion(4786, "main"), SharedConstants.getProtocolVersion(), PackFormat.of(84, 0), PackFormat.of(101, 1), new Date(), stable
);
}
private static WorldVersion createFromJson(JsonObject root) {
JsonObject packVersion = GsonHelper.getAsJsonObject(root, "pack_version");
return new WorldVersion.Simple(
GsonHelper.getAsString(root, "id"),
GsonHelper.getAsString(root, "name"),
new DataVersion(GsonHelper.getAsInt(root, "world_version"), GsonHelper.getAsString(root, "series_id", "main")),
GsonHelper.getAsInt(root, "protocol_version"),
PackFormat.of(GsonHelper.getAsInt(packVersion, "resource_major"), GsonHelper.getAsInt(packVersion, "resource_minor")),
PackFormat.of(GsonHelper.getAsInt(packVersion, "data_major"), GsonHelper.getAsInt(packVersion, "data_minor")),
Date.from(ZonedDateTime.parse(GsonHelper.getAsString(root, "build_time")).toInstant()),
GsonHelper.getAsBoolean(root, "stable")
);
}
public static WorldVersion tryDetectVersion() {
try {
WorldVersion var2;
try (InputStream stream = DetectedVersion.class.getResourceAsStream("/version.json")) {
if (stream == null) {
LOGGER.warn("Missing version information!");
return BUILT_IN;
}
try (InputStreamReader reader = new InputStreamReader(stream, StandardCharsets.UTF_8)) {
var2 = createFromJson(GsonHelper.parse(reader));
}
}
return var2;
} catch (JsonParseException | IOException var8) {
throw new IllegalStateException("Game version information is corrupt", var8);
}
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
SharedConstants.getProtocolVersion()
- 引用位置:
-
- 引用位置:
字段/方法调用/构造调用/返回值 - 关联成员:
Simple(), WorldVersion.Simple()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
PackFormat.of()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
GsonHelper.getAsBoolean(), GsonHelper.getAsInt(), GsonHelper.getAsJsonObject(), GsonHelper.getAsString(), GsonHelper.parse()
- 引用位置:
-
- 引用位置:
构造调用 - 关联成员:
DataVersion()
- 引用位置: