UUIDUtil.java
net.minecraft.core.UUIDUtil
信息
- 全限定名:net.minecraft.core.UUIDUtil
- 类型:public final class
- 包:net.minecraft.core
- 源码路径:src/main/java/net/minecraft/core/UUIDUtil.java
- 起始行号:L22
- 职责:
TODO
字段/常量
-
CODEC- 类型:
Codec<UUID> - 修饰符:
public static final - 源码定位:
L23 - 说明:
TODO
- 类型:
-
CODEC_SET- 类型:
Codec<Set<UUID>> - 修饰符:
public static final - 源码定位:
L25 - 说明:
TODO
- 类型:
-
CODEC_LINKED_SET- 类型:
Codec<Set<UUID>> - 修饰符:
public static final - 源码定位:
L26 - 说明:
TODO
- 类型:
-
STRING_CODEC- 类型:
Codec<UUID> - 修饰符:
public static final - 源码定位:
L27 - 说明:
TODO
- 类型:
-
AUTHLIB_CODEC- 类型:
Codec<UUID> - 修饰符:
public static final - 源码定位:
L34 - 说明:
TODO
- 类型:
-
LENIENT_CODEC- 类型:
Codec<UUID> - 修饰符:
public static final - 源码定位:
L41 - 说明:
TODO
- 类型:
-
STREAM_CODEC- 类型:
StreamCodec<ByteBuf,UUID> - 修饰符:
public static final public public - 源码定位:
L42 - 说明:
TODO
- 类型:
-
UUID_BYTES- 类型:
int - 修饰符:
public static final - 源码定位:
L51 - 说明:
TODO
- 类型:
-
UUID_PREFIX_OFFLINE_PLAYER- 类型:
String - 修饰符:
private static final - 源码定位:
L52 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
private UUIDUtil() @ L54
- 构造器名:UUIDUtil
- 源码定位:L54
- 修饰符:private
参数:
- 无
说明:
TODO
方法
下面的方法块按源码顺序生成。
public static UUID uuidFromIntArray(int[] intArray) @ L57
- 方法名:uuidFromIntArray
- 源码定位:L57
- 返回类型:UUID
- 修饰符:public static
参数:
- intArray: int[]
说明:
TODO
public static int[] uuidToIntArray(UUID uuid) @ L61
- 方法名:uuidToIntArray
- 源码定位:L61
- 返回类型:int[]
- 修饰符:public static
参数:
- uuid: UUID
说明:
TODO
private static int[] leastMostToIntArray(long mostSignificantBits, long leastSignificantBits) @ L67
- 方法名:leastMostToIntArray
- 源码定位:L67
- 返回类型:int[]
- 修饰符:private static
参数:
- mostSignificantBits: long
- leastSignificantBits: long
说明:
TODO
public static byte[] uuidToByteArray(UUID uuid) @ L71
- 方法名:uuidToByteArray
- 源码定位:L71
- 返回类型:byte[]
- 修饰符:public static
参数:
- uuid: UUID
说明:
TODO
public static UUID readUUID(Dynamic<?> input) @ L77
- 方法名:readUUID
- 源码定位:L77
- 返回类型:UUID
- 修饰符:public static
参数:
- input: Dynamic<?>
说明:
TODO
public static UUID createOfflinePlayerUUID(String playerName) @ L86
- 方法名:createOfflinePlayerUUID
- 源码定位:L86
- 返回类型:UUID
- 修饰符:public static
参数:
- playerName: String
说明:
TODO
public static GameProfile createOfflineProfile(String playerName) @ L90
- 方法名:createOfflineProfile
- 源码定位:L90
- 返回类型:GameProfile
- 修饰符:public static
参数:
- playerName: String
说明:
TODO
代码
public final class UUIDUtil {
public static final Codec<UUID> CODEC = Codec.INT_STREAM
.comapFlatMap(list -> Util.fixedSize(list, 4).map(UUIDUtil::uuidFromIntArray), uuid -> Arrays.stream(uuidToIntArray(uuid)));
public static final Codec<Set<UUID>> CODEC_SET = Codec.list(CODEC).xmap(Sets::newHashSet, Lists::newArrayList);
public static final Codec<Set<UUID>> CODEC_LINKED_SET = Codec.list(CODEC).xmap(Sets::newLinkedHashSet, Lists::newArrayList);
public static final Codec<UUID> STRING_CODEC = Codec.STRING.comapFlatMap(s -> {
try {
return DataResult.success(UUID.fromString(s), Lifecycle.stable());
} catch (IllegalArgumentException var2) {
return DataResult.error(() -> "Invalid UUID " + s + ": " + var2.getMessage());
}
}, UUID::toString);
public static final Codec<UUID> AUTHLIB_CODEC = Codec.withAlternative(Codec.STRING.comapFlatMap(s -> {
try {
return DataResult.success(UndashedUuid.fromStringLenient(s), Lifecycle.stable());
} catch (IllegalArgumentException var2) {
return DataResult.error(() -> "Invalid UUID " + s + ": " + var2.getMessage());
}
}, UndashedUuid::toString), CODEC);
public static final Codec<UUID> LENIENT_CODEC = Codec.withAlternative(CODEC, STRING_CODEC);
public static final StreamCodec<ByteBuf, UUID> STREAM_CODEC = new StreamCodec<ByteBuf, UUID>() {
public UUID decode(ByteBuf input) {
return FriendlyByteBuf.readUUID(input);
}
public void encode(ByteBuf output, UUID value) {
FriendlyByteBuf.writeUUID(output, value);
}
};
public static final int UUID_BYTES = 16;
private static final String UUID_PREFIX_OFFLINE_PLAYER = "OfflinePlayer:";
private UUIDUtil() {
}
public static UUID uuidFromIntArray(int[] intArray) {
return new UUID((long)intArray[0] << 32 | intArray[1] & 4294967295L, (long)intArray[2] << 32 | intArray[3] & 4294967295L);
}
public static int[] uuidToIntArray(UUID uuid) {
long mostSignificantBits = uuid.getMostSignificantBits();
long leastSignificantBits = uuid.getLeastSignificantBits();
return leastMostToIntArray(mostSignificantBits, leastSignificantBits);
}
private static int[] leastMostToIntArray(long mostSignificantBits, long leastSignificantBits) {
return new int[]{(int)(mostSignificantBits >> 32), (int)mostSignificantBits, (int)(leastSignificantBits >> 32), (int)leastSignificantBits};
}
public static byte[] uuidToByteArray(UUID uuid) {
byte[] bytes = new byte[16];
ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN).putLong(uuid.getMostSignificantBits()).putLong(uuid.getLeastSignificantBits());
return bytes;
}
public static UUID readUUID(Dynamic<?> input) {
int[] intArray = input.asIntStream().toArray();
if (intArray.length != 4) {
throw new IllegalArgumentException("Could not read UUID. Expected int-array of length 4, got " + intArray.length + ".");
} else {
return uuidFromIntArray(intArray);
}
}
public static UUID createOfflinePlayerUUID(String playerName) {
return UUID.nameUUIDFromBytes(("OfflinePlayer:" + playerName).getBytes(StandardCharsets.UTF_8));
}
public static GameProfile createOfflineProfile(String playerName) {
UUID id = createOfflinePlayerUUID(playerName);
return new GameProfile(id, playerName);
}
}引用的其他类
-
- 引用位置:
方法调用 - 关联成员:
FriendlyByteBuf.readUUID(), FriendlyByteBuf.writeUUID()
- 引用位置:
-
- 引用位置:
字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Util.fixedSize()
- 引用位置:
-
- 引用位置:
参数
- 引用位置: