RealmsServerPlayerLists.java
com.mojang.realmsclient.dto.RealmsServerPlayerLists
信息
- 全限定名:com.mojang.realmsclient.dto.RealmsServerPlayerLists
- 类型:public record
- 包:com.mojang.realmsclient.dto
- 源码路径:src/main/java/com/mojang/realmsclient/dto/RealmsServerPlayerLists.java
- 起始行号:L24
- 职责:
TODO
字段/常量
LOGGER- 类型:
Logger - 修饰符:
private static final - 源码定位:
L25 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public static RealmsServerPlayerLists parse(String json) @ L27
- 方法名:parse
- 源码定位:L27
- 返回类型:RealmsServerPlayerLists
- 修饰符:public static
参数:
- json: String
说明:
TODO
private static List<ResolvableProfile> parsePlayers(JsonArray array) @ L58
- 方法名:parsePlayers
- 源码定位:L58
- 返回类型:List
- 修饰符:private static
参数:
- array: JsonArray
说明:
TODO
public List<ResolvableProfile> getProfileResultsFor(long serverId) @ L73
- 方法名:getProfileResultsFor
- 源码定位:L73
- 返回类型:List
- 修饰符:public
参数:
- serverId: long
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public record RealmsServerPlayerLists(Map<Long, List<ResolvableProfile>> servers) {
private static final Logger LOGGER = LogUtils.getLogger();
public static RealmsServerPlayerLists parse(String json) {
Builder<Long, List<ResolvableProfile>> elements = ImmutableMap.builder();
try {
JsonObject object = GsonHelper.parse(json);
if (GsonHelper.isArrayNode(object, "lists")) {
for (JsonElement jsonElement : object.getAsJsonArray("lists")) {
JsonObject node = jsonElement.getAsJsonObject();
String playerListString = JsonUtils.getStringOr("playerList", node, null);
List<ResolvableProfile> players;
if (playerListString != null) {
JsonElement element = LenientJsonParser.parse(playerListString);
if (element.isJsonArray()) {
players = parsePlayers(element.getAsJsonArray());
} else {
players = Lists.newArrayList();
}
} else {
players = Lists.newArrayList();
}
elements.put(JsonUtils.getLongOr("serverId", node, -1L), players);
}
}
} catch (Exception var10) {
LOGGER.error("Could not parse RealmsServerPlayerLists", (Throwable)var10);
}
return new RealmsServerPlayerLists(elements.build());
}
private static List<ResolvableProfile> parsePlayers(JsonArray array) {
List<ResolvableProfile> profiles = new ArrayList<>(array.size());
for (JsonElement element : array) {
if (element.isJsonObject()) {
UUID playerId = JsonUtils.getUuidOr("playerId", element.getAsJsonObject(), null);
if (playerId != null && !Minecraft.getInstance().isLocalPlayer(playerId)) {
profiles.add(ResolvableProfile.createUnresolved(playerId));
}
}
}
return profiles;
}
public List<ResolvableProfile> getProfileResultsFor(long serverId) {
List<ResolvableProfile> profileResults = this.servers.get(serverId);
return profileResults != null ? profileResults : List.of();
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
JsonUtils.getLongOr(), JsonUtils.getStringOr(), JsonUtils.getUuidOr()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Minecraft.getInstance()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
GsonHelper.isArrayNode(), GsonHelper.parse()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
LenientJsonParser.parse()
- 引用位置:
-
- 引用位置:
方法调用/返回值 - 关联成员:
ResolvableProfile.createUnresolved()
- 引用位置: