Универсальный уникальный идентификатор

UUID ( Универсальные уникальные идентификаторы ; Java Class) — это 128-битные числа, которые используются Minecraft для различения отдельных экземпляров.

Представление

  • Шестнадцатеричный разделитель с дефисом : шестнадцатеричное представление UUID с дефисами, разделяющими различные разделы на отдельные числа.
    Дефис предназначен для разделения UUID на числа в формате 8-4 -4-4-12 , где каждое число обозначает количество шестнадцатеричных цифр, подходящих для соответствующего раздела. Более подробная информация представлена ​​в разделе «Технические аспекты».
    Примером такого представления может быть f81d4fae-7dec-11d0-a765-00a0c91e6bf6 .
    • Поскольку каждая часть оценивается как отдельный номер, пустые цифры в начале раздела можно игнорировать.
      Например, 00000001-0002-0003-0004-000000000005 может быть вычисляется как 1-2-3-4-5.
  • Шестнадцатеричный : То же, что и шестнадцатеричное представление с дефисом, но без разделения различных разделов.
    Примером для этого представления может быть 00000001000200030004000000000005 , где это невозможно для большинства должны быть удалены пустые цифры, а не шестнадцатеричное представление с дефисом.
  • Наибольшее/наименьшее : разделение 64 старших битов от 64 младших битов. Каждое из двух чисел хранится отдельно и использует в игре тип данных Long .
    Этот формат устарел, так как он использовался до 1.16 и был полностью заменен на Int- формат массива.
    Примером такого представления может быть UUIDMost: -568210367123287600 в паре с UUIDLeast: -6384696206158828554 .
  • Int-array : разделение на четыре 32-битных числа. Каждая часть хранится в целочисленном массиве, упорядоченном от наиболее значимого до наименее значимого.
    Примером такого представления может быть [I; -132296786,2112623056, -1486552928, -920753162]

Случаи

В следующей таблице представлены ситуации, в которых UUID используются в местах, доступных для игрока:

Местоположение (общее) Местоположение (путь) Формат Использовать
Все сущности (NBT) UUID int-array Собственный UUID
Модификаторы атрибутов (NBT) UUID int-array Собственный UUID. Используется при оснащении и снятии экипировки элемента, чтобы определить, какой модификатор добавить или удалить из объекта..
Модификаторы атрибутов (таблица добычи) id Шестнадцатеричный разделитель с переносом Установить UUID модификатора в функции set_attributes
/attribute Шестнадцатеричный разделитель с дефисом Используется для идентификации модификатора
Прирученные мобы (NBT) Владелец int-array Владелец
Снаряды (NBT) Владелец int-array Сущность, которая стреляла снарядом
Сущности предметов (NBT) Owner int-array Целевой игрок для /give команда
Сущности элемента (NBT) Метатель int-array Игрок, уронивший предмет
Пули Шулкера (NBT) Цель int-array Объект, нацеленный на атаку
Трубопроводы (NBT) Target int-array Объект, нацеленный на атаку
Головы игрока (NBT) SkullOwner.Id int-array Владелец скина
Головы игроков (NBT) SkullOwner.Properties.textures []. Value.ProfileId шестнадцатеричный Владелец скина
Мобы (NBT) Leash.UUID int-array Сущность, которая обуздала моба
Разводимые мобы (NBT) LoveCause int-array Игрок, который накормил моба
Зомби-жители (NBT ) ConversionPlayer int-array Игрок, конвертирующий зомби-жителя
Нейтральные мобы, кроме свиней (NBT) AngryAt int-array Сущность, которая повредила нейтральному мобу
Жители (NBT) Сплетни []. Цель int-array Игрок, который спровоцировал сплетни
Players (NBT) RootVehicle.Attach int-array Идентификатор объекта, на котором сидит игрок
Целевые селекторы (команды) Шестнадцатеричный разделенный дефис Выбранный объект

Технические аспекты

Диапазон значений

UUID может быть выражен как 128-битное число, что означает, что он поддерживает все целочисленные значения от - (2 ^ 127) до (2 ^ 127) -1 . Важно отметить, что эта оценка не относится к диапазону значений, генерируемых игрой, а вместо этого фокусируется на емкости формата.

Названия разделов шестнадцатеричного формата с переносом через дефис

UUID в шестнадцатеричном формате с дефисом следуют шаблону xxxxxxxx-xxxx-Axxx-Bxxx-xxxxxxxxxxxx .

Имя раздела Диапазон бит
От до Размер Символы
мало времени 96 127 32 8
время-середина 80 95 16 4
высокая версия и время 54 79 16 4
часы-сек-и-зарезервированы 36 53 8 2
clock-seq-low 48 45 8 2
узел 0 47 48 12

(Имена имеют смысл только для версии 1 и 2 UUID, но он был передан во все формы используемых UUID.)

Версии и варианты

Было пять версий UUID. Версии 1 и 2 основаны на текущем времени и MAC-адресе; версии 3 и 5 основаны на хешировании строки; версия 4 основана на полностью случайной генерации. Значение «версия» занимает четыре бита и находится в строковом формате UUID в позиции, обозначенной буквой «A».

Позиция «B» — это вариант (формат) UUID. . В зависимости от конкретного варианта, он может занимать от 1 до 3 старших бит:

  • 0xx — это «вариант 0» Apollo NCS 1.5, старый тип UUID.
  • 10x — это «вариант 1» IETF RFC 4122 (Leach-Salz). В Java это называется «вариантом 2».
  • 110 — это «вариант 2» старых продуктов Microsoft. В Java он упоминается как «вариант 6».
  • 111 — это «зарезервированный вариант». В Java это называется «вариантом 7».

В Minecraft

Minecraft использует UUID версии 4, вариант 1 (RFC), что означает, что все число, за исключением битов, используемых для метаданных (версия и вариант), генерируется случайным образом. Функция Java UUID.randomUUID () выполняет именно эту задачу.

Таблица с расположениями и значениями метаданных:

Побитовая версия

Основная статья: UUID/метаданные

Свернуто версия

Основная статья: UUID/metadata1

Распознавание фальшивых знаменитостей

У каждого игрока в minecraft есть свой UUID, и нет никакого хак-клиента, который мог бы это изменить, в отличие от никнейма.

Чтобы распознать настоящего игрока, вам нужно выполнить эти 3 шага

  1. сделать /w какой-нибудь текст после этого наведите указатель мыши на ник в тексте Вы прошептали , и вы увидите его uuid.
  2. перейдите в NameMC и напишите имя в здесь он покажет вам несколько учетных записей и uuid под названием
  3. сравните uuids

Внешние ссылки

  • Генерация UUID в шестнадцатеричном формате с дефисом
  • Создание UUID в шестнадцатеричном формате с дефисом
  • Преобразование и создание всех различных форматов, за исключением шестнадцатеричный формат с дефисом принимается только в качестве входных.
  • NameMC
Оцените статью
Gamicon.ru
Добавить комментарий