Guides / Commands & Data

Головы игроков по нику: как работает компонент профиля и почему головы становятся пустыми

Голова хранит снимок скина, а не живую ссылку. Здесь объясняется, как работает компонент профиля, почему старая голова показывает неправильный скин и как в этом задействован поиск по UUID.

Выдача Головы игрока, казалось бы, должна требовать всего один аргумент. Так и есть, но то, что сохраняется, отличается от ожиданий, и это объясняет большинство странностей, связанных с головами.

Команда

/give @p player_head[profile="Notch"]

Компонент profile заменил старый NBT SkullOwner. Фрагменты, использующие {SkullOwner:"Notch"}, относятся к версии до 1.20.5 и теперь не работают.

Что на самом деле сохраняется

Голова не хранит никнейм и не загружает скин позже. При создании головы сервер преобразует имя в UUID и снимок текстуры, а затем "запекает" это в предмет:

"profile": {
  "name": "Notch",
  "id": [I; …],
  "properties": [{ "name": "textures", "value": "<base64>" }]
}

Два следствия:

  • Голова, сделанная год назад, показывает скин того года. Смена скина Игроком не обновляет головы, уже находящиеся в мире. Это не баг, и обновления не происходит.
  • Головы работают в офлайн-режиме. После "запекания" для их отображения не требуется вызов Mojang API, поэтому головы сохраняются на серверах в офлайн-режиме, в то время как /give ... profile="Name" там не разрешается.

Почему голова пустая или показывает Стива

В порядке вероятности:

  1. Имя не было разрешено. Сервер в офлайн-режиме, или API был недоступен во время выполнения команды. Нечего "запекать", поэтому вы получаете стандартную голову.
  2. Имя не существует. Mojang ничего не возвращает для удаленных или никогда не зарегистрированных аккаунтов.
  3. Чанк не перезагружен. Голова разрешается асинхронно; иногда нужно отвернуться и снова посмотреть.

Ожидание редко помогает — если профиль не был "запечен" при создании, он остается пустым. Выдайте голову заново.

Пользовательские головы используют текстуру, а не имя

Декоративные головы — мебель, еда, головы мобов из каталогов — не имеют владельца. Они содержат только значение текстуры properties с base64-блобом, указывающим на URL текстуры. Именно поэтому их можно делиться одной длинной командой выдачи, и они никогда не ломаются, когда Игрок меняет имя.

Base64 декодируется в небольшой JSON, содержащий textures.SKIN.url на textures.minecraft.net. Ничто другое в нем не имеет значения для рендеринга.

Форматы UUID

Существуют две формы, и они не взаимозаменяемы во всех контекстах:

trimmed   069a79f444e94726a5befca90e38aaf5
dashed    069a79f4-44e9-4726-a5be-fca90e38aaf5

Команды и NBT обычно требуют форму с дефисами или целочисленный массив. Веб-API обычно возвращают усеченную форму. Преобразование между ними механическое — вставьте дефисы после 8, 12, 16 и 20 символов.

Выдайте голову по нику, просмотрите каталоги декоративных голов или преобразуйте форматы UUID в Инструментах для Голов Игроков и Никнеймов.

Головы и никнеймы игроков →

More guides

Browse all →

Нужны другие инструменты для Minecraft?

Набор генераторов, просмотрщиков и конвертеров прямо в браузере — всё бесплатно.