Minecraft Wiki
Advertisement

UUIDs (Identificador único universal; Classe Java) são números longos de 128 bits que são usados pelo Minecraft para distinguir entre instâncias separadas.

Representação[]

  • Hexadecimal hifenizado: Uma representação hexadecimal do UUID, com hífens separando as diferentes seções em números individuais.
    O hífen é definido para dividir o UUID em números no formato 8-4- 4-4-12 com cada número marcando o número de dígitos hexadecimais que se encaixam na seção correspondente. Mais detalhes seguem na seção Aspectos técnicos.
    Um exemplo dessa representação seria f81d4fae-7dec-11d0-a765-00a0c91e6bf6.
    • Como cada parte é avaliada como um número individual, dígitos vazios no início de uma seção podem ser ignorados.
      Por exemplo, 00000001-0002-0003-0004-000000000005 pode ser avaliado como o mesmo que 1-2-3-4-5.
  • Hexadecimal:O mesmo que a representação hexadecimal hifenizada, mas sem a separação das diferentes seções.
    Um exemplo para essa representação seria 00000001000200030004000000000005, onde é impossível remover a maioria dos dígitos vazios como oposição à representação hexadecimal hifenizada.
  • Mais/Menos: Uma separação dos 64 bits mais significativos dos 64 bits menos significativos. Cada um dos dois números é armazenado separadamente e usa o tipo de dados Long no jogo.
    Este formato está obsoleto, pois era usado antes do 1.16 e foi totalmente substituído pelo formato Int-array.
    Um exemplo dessa representação seria UUIDMost:-568210367123287600 emparelhado com UUIDLeast:-6384696206158828554.
  • Int-array: Uma separação em quatro números de 32 bits. Cada parte é armazenada em uma matriz de inteiros ordenada do mais significativo ao menos significativo.
    Um exemplo dessa representação seria [I;-132296786,2112623056,-1486552928,-920753162]

Ocorrências[]

A tabela a seguir representa as situações em que UUIDs são usados ​​em locais acessíveis por um jogador:

Localização (Geral) Localização (caminho) Formato Uso
Todas as entidades (NBT) UUID int-array Próprio uuid
Modificadores de atributo (NBT) UUID int-array Próprio uuid. Usado ao equipar e desencadear o item para identificar qual modificador adicionar ou remover da entidade.
Modificadores de atributo (Tabela de itens) id Hyphenated hexadecimal Definir uuid de modificador na função set_attributes
/attribute - Hyphenated hexadecimal Usado para identificar os modificadores
Criaturas domésticas (NBT) Owner int-array Proprietário
Projéteis (NBT) Owner int-array Entidade que atirou o projétil
entidades do item (NBT) Owner int-array Jogador alvo do comando /give
entidades do item (NBT) Thrower int-array Jogador que deixou cair o item
Shulker bullets (NBT) Target int-array Entidade direcionada para ataque
Aquedutos (NBT) Target int-array Entidade direcionada para ataque
Cabeças de jogador (NBT) SkullOwner.Id int-array Dono da skin
Cabeças de jogador (NBT) SkullOwner.Properties.textures[].Value.ProfileId hexadecimal Dono da skin
Criaturas (NBT) Leash.UUID int-array Entidade que movia a criatura
Criaturas reproduzíveis (NBT) LoveCause int-array Jogador que alimentou a criatura
Wardens (NBT) anger.suspects[].uuid int-array Alvo associado ao nível de raiva
Zumbi aldeão (NBT) ConversionPlayer int-array Jogador que está convertendo um zumbi aldeão
Criaturas neutras, exceto piglins (NBT) AngryAt int-array Entidade que atacou a criatura neutra
Aldeões (NBT) Gossips[].Target int-array Jogador que causou a fofoca
Jogadores (NBT) RootVehicle.Attach int-array Identificador da entidade que o jogador está montando
Seletores de destino (Comandos) - Hyphenated hexadecimal Entidade selecionada

Aspectos técnicos[]

Intervalo de valores[]

Um UUID pode ser expresso como um número de 128 bits, o que significa que ele suporta todos os valores inteiros de -(2^127) a (2^127)-1. É importante notar que esta avaliação não se refere à gama de valores gerados pelo jogo, mas sim à capacidade do formato.

Nomes de seção em formato hexadecimal hifenizado[]

UUIDs de formato hexadecimal hifenizado seguem o padrão xxxxxxxx-xxxx-Axxx-Bxxx-xxxxxxxxxxxx.

Nome da Seção Faixa de bits
A partir de Para Tamanho Personagens
time-low 96 127 32 8
time-mid 80 95 16 4
time-high-and-version 54 79 16 4
clock-seq-and-reserved 36 53 8 2
clock-seq-low 48 45 8 2
node 0 47 48 12

(Os nomes fazem sentido apenas para UUIDs de versão 1 e 2, mas foram passados para todas as formas de UUIDs usadas.)

Versões e variantes[]

Houve cinco versões de UUIDs. As versões 1 e 2 são baseadas na hora atual e no endereço MAC; as versões 3 e 5 são baseadas em hashing de uma string; a versão 4 é baseada em geração completamente aleatória. O valor "version" ocupa quatro bits e está localizado no formato de string UUID na posição indicada por um "A".

A posição "B" é a variante (formato) do UUID. Dependendo da variante específica, pode ocupar os 1 a 3 bits altos:

  • 0xx é a "variante 0" do Apollo NCS 1.5, um tipo antigo de UUID.
  • 10x é a "variante 1" da IETF RFC 4122 (Leach-Salz). É referido como "variante 2" por Java.
  • 110 é a "variante 2" de produtos antigos da Microsoft. É referido como "variante 6" por Java.
  • 111 é a "variante reservada". É referido como "variante 7" por Java.

No Minecraft[]

O Minecraft usa UUIDs da versão 4, variante 1 (RFC), o que significa que o número inteiro, com exceção dos bits usados para metadados (versão e variante), é gerado aleatoriamente. A função UUID.randomUUID() do Java executa essa tarefa exata.

Uma tabela com os locais e valores dos metadados:

Versão bit a bit

Artigo principal: UUID/metadata
[editar]

Versão recolhida

Artigo principal: UUID/metadata1
[editar]

Links externos[]

Advertisement