NameAndId.java

net.minecraft.server.players.NameAndId

信息

  • 全限定名:net.minecraft.server.players.NameAndId
  • 类型:public record
  • 包:net.minecraft.server.players
  • 源码路径:src/main/java/net/minecraft/server/players/NameAndId.java
  • 起始行号:L11
  • 职责:

    TODO

字段/常量

  • CODEC
    • 类型: Codec<NameAndId>
    • 修饰符: public static final
    • 源码定位: L12
    • 说明:

      TODO

内部类/嵌套类型

构造器

public NameAndId(GameProfile profile) @ L17

  • 构造器名:NameAndId
  • 源码定位:L17
  • 修饰符:public

参数:

  • profile: GameProfile

说明:

TODO

public NameAndId(com.mojang.authlib.yggdrasil.response.NameAndId profile) @ L21

  • 构造器名:NameAndId
  • 源码定位:L21
  • 修饰符:public

参数:

  • profile: com.mojang.authlib.yggdrasil.response.NameAndId

说明:

TODO

方法

下面的方法块按源码顺序生成。

public static NameAndId fromJson(JsonObject object) @ L25

  • 方法名:fromJson
  • 源码定位:L25
  • 返回类型:NameAndId
  • 修饰符:public static

参数:

  • object: JsonObject

说明:

TODO

public void appendTo(JsonObject output) @ L42

  • 方法名:appendTo
  • 源码定位:L42
  • 返回类型:void
  • 修饰符:public

参数:

  • output: JsonObject

说明:

TODO

public static NameAndId createOffline(String name) @ L47

  • 方法名:createOffline
  • 源码定位:L47
  • 返回类型:NameAndId
  • 修饰符:public static

参数:

  • name: String

说明:

TODO

代码

public record NameAndId(UUID id, String name) {
    public static final Codec<NameAndId> CODEC = RecordCodecBuilder.create(
        i -> i.group(UUIDUtil.STRING_CODEC.fieldOf("id").forGetter(NameAndId::id), Codec.STRING.fieldOf("name").forGetter(NameAndId::name))
            .apply(i, NameAndId::new)
    );
 
    public NameAndId(GameProfile profile) {
        this(profile.id(), profile.name());
    }
 
    public NameAndId(com.mojang.authlib.yggdrasil.response.NameAndId profile) {
        this(profile.id(), profile.name());
    }
 
    public static @Nullable NameAndId fromJson(JsonObject object) {
        if (object.has("uuid") && object.has("name")) {
            String uuidString = object.get("uuid").getAsString();
 
            UUID uuid;
            try {
                uuid = UUID.fromString(uuidString);
            } catch (Throwable var4) {
                return null;
            }
 
            return new NameAndId(uuid, object.get("name").getAsString());
        } else {
            return null;
        }
    }
 
    public void appendTo(JsonObject output) {
        output.addProperty("uuid", this.id().toString());
        output.addProperty("name", this.name());
    }
 
    public static NameAndId createOffline(String name) {
        UUID id = UUIDUtil.createOfflinePlayerUUID(name);
        return new NameAndId(id, name);
    }
}

引用的其他类

  • UUIDUtil
    • 引用位置: 方法调用
    • 关联成员: UUIDUtil.createOfflinePlayerUUID()