Что такое UUID в Minecraft и почему он нужен

UUID - это уникальный идентификатор игрока в Minecraft. Он привязан к аккаунту и используется сервером для хранения данных: инвентаря, достижений, привязок плагинов и других сведений. Поэтому когда в игре меняется ник или меняется режим подключения, серверу важно опираться именно на uuid, а не на имя. Описание UUID и его роль для идентификации есть в справке Minecraft Wiki.

Источник: UUID описан на русскоязычной Minecraft Wiki (Universeally Unique Identifier, структура и использование).
Подробнее: https://minecraft.wiki/w/Калькулятор%25D0%25B3%25D0%25B0%25D0%25BB%25D1%258C%25D0%25B3%25D0%25BE%25D1%2580%25D0%25B8%25D1%258F/UUID

Главная проблема на пиратке (offline-mode)

На пиратском сервере чаще всего включен режим offline-mode. В этом случае сервер не получает uuid с официальных серверов и вместо этого генерирует uuid самостоятельно по нику. Отсюда два практических эффекта:
- uuid зависит от выбранного ника
- “один и тот же ник” на разных серверах может получить разный uuid, если меняются настройки (например, онлайн/offline режим)

Отдельно учтите: в обсуждениях админов на форумах неоднократно поднимается тема того, что uuid в offline и online может различаться и из-за этого “пляшут” привязки и playerdata. Это же обсуждение обычно упирается в то, как именно сервер формирует uuid.

Проверенный способ на самом сервере: команда по сущности

Если игрок уже загрузился на сервер (он находится в онлайне), проще всего посмотреть uuid по сущности через встроенные команды.

1) Откройте консоль или чат сервера с правами администратора.
2) Выполните команду под видом “получить uuid по сущности игрока”:
- /data get entity <PLAYERNAME> UUID

Пояснение: вы получаете uuid текущего игрока как значение свойства UUID для сущности игрока. Такой подход указан в справочных материалах по UUID в Minecraft Wiki (через /data get entity ... UUID).

Примечание по формулировке: некоторые версии меняют детали команды, но логика остается - запросить UUID у сущности игрока.

Если игрока нет в онлайне

Если игрок оффлайн, то “посмотреть uuid командой по сущности” не получится, потому что сущности в мире нет.

Тогда есть два рабочих сценария.

Сценарий A: сервер в offline-mode и вы знаете ник

Так как uuid генерируется по нику, вам не нужен запрос к игроку, достаточно посчитать uuid для этого ника. Для этого используют калькуляторы UUID, которые повторяют логику генерации для offline-mode (в реальности это преобразование имени в UUID по алгоритму Mojang для offline UUID).

Практика:
- возьмите точный ник
- посчитайте uuid через калькулятор для offline UUID
- используйте полученный uuid в playerdata или в плагинах

Источник по вычислению UUID и использованию калькуляторов: Minecraft Wiki, раздел “Калькуляторы/UUID”.
https://ru.minecraft.wiki/w/%D0%9A%D0%B0%D0%BB%D1%8C%D0%BA%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D1%8B/UUID

Сценарий B: игрок играл в онлайне где-то ранее

Если сервер и настройки менялись, uuid мог быть другим (online uuid против offline uuid). В таком случае “посчитать по нику” не всегда помогает, потому что часть данных могла привязаться к другому uuid.

В форумах по теме “пляски uuid” отмечают, что при смене offline-mode/online-mode меняется uuid и ломаются привязки в playerdata. Поэтому безопасный путь - восстановить uuid из данных, которые уже лежат на сервере, и сопоставить с нужной записью.

Как не запутаться: краткая шпаргалка

Ситуация Что известно Что делать Где взять uuid
Игрок сейчас в игре есть ник и онлайновое подключение выполнить /data get entity <PLAYERNAME> UUID команда в игре
Игрок оффлайн, сервер offline-mode есть ник посчитать offline UUID по нику калькулятор UUID
Режимы менялись (online/offline) непонятно, какой uuid нужен найти соответствующую запись в playerdata и сверить файлы сервера + сопоставление

Типичные ошибки

1) Думать, что uuid “всегда один и тот же”. В реальности на пиратских серверах часто действует offline-mode, и uuid формируется по нику и настройкам сервера.
2) Пытаться командой узнать uuid оффлайн-игрока. Команда работает с сущностью, а значит игрок должен быть в онлайне.
3) Брать ник с регистрацией “примерно как в чате”. Ник должен совпадать точно, иначе uuid, вычисленный по нику, будет другим.

Полезные ссылки

  • Minecraft Wiki. UUID, назначение и использование: https://minecraft.wiki/w/Калькулятор%25D0%25B3%25D0%25B0%25D0%25BB%25D1%258C%25D0%25B3%25D0%25BE%25D1%2580%25D0%25B8%25D1%258F/UUID
  • Minecraft Wiki. Калькуляторы/UUID: https://ru.minecraft.wiki/w/%D0%9A%D0%B0%D0%BB%D1%8C%D0%BA%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D1%8B/UUID
  • Обсуждение темы “как узнать uuid игрока” и влияния режима подключения на uuid (форум Bukkit): https://bukkit.ru/threads/uuid-nika-igroka-v-oflajne-onlajne.111161/
  • Обсуждение влияния offline/online и uuid на пиратских серверах (форум Bukkit): https://bukkit.ru/threads/unikalen-li-uuid-na-piratskom-servere.113521/