Перейти до змісту

Mojang API

Якщо запит провалюється, генерується відповідна помилка (exception). Наприклад, MojangException генерується, коли сервер Mojang повертає повідомлення про помилку.

Як отримати AccessToken або UUID?

Ви можете отримати ці токени за допомогою автентифікації Mojang або Microsoft Xbox. Див. Вхід та сесії.

var session = await loginHandler.Authenticate();
var username = session.Username;
var uuid = session.UUID;

Методи

GetUUID

нікнейм -> uuid

Mojang mojang = new Mojang(new HttpClient());
PlayerUUID uuid = await mojang.GetUUID("username");

// uuid.UUID
// uuid.IsLegacy
// uuid.IsDemo

GetUUIDs

нікнейми -> uuids

Mojang mojang = new Mojang(new HttpClient());
PlayerUUID[] uuids = await mojang.GetUUIDs(new string[] { "user1", "user2" });

foreach (PlayerUUID uuid in uuids)
{
    Console.WriteLine(uuid.UUID);
}

GetNameHistories

примітка: це API було визнано застарілим (deprecated) розробниками Mojang

Mojang mojang = new Mojang(new HttpClient());
NameHistory[] response = await mojang.GetNameHistories("uuid");

foreach (NameHistory item in response.Histories)
{
    // item.Name
    // item.ChangedToAt
    // item.ChangedTime
}

GetProfileUsingUUID

Mojang mojang = new Mojang(new HttpClient());
PlayerProfile profile = await mojang.GetProfileUsingUUID("uuid");

// profile.UUID
// profile.Name
// profile.Skin
// profile.IsLegacy

GetProfileUsingAccessToken

примітка: це API працює лише для акаунтів Xbox

Mojang mojang = new Mojang(new HttpClient());
PlayerProfile profile = await mojang.GetProfileUsingAccessToken("accessToken");

GetPlayerAttributes

примітка: це API працює лише для акаунтів Xbox

Mojang mojang = new Mojang(new HttpClient());
PlayerAttributes attributes = await mojang.GetPlayerAttributes("accessToken");

// attributes.Privileges.OnlineChat
// attributes.Privileges.MultiplayerServer
// attributes.Privileges.MultiplayerRealms
// attributes.Privileges.Telemtry
// attributes.ProfanityFilterPreferences.ProfanityFilterOn

GetPlayerBlocklist

примітка: це API працює лише для акаунтів Xbox

Mojang mojang = new Mojang(new HttpClient());
string[] blocklists = await mojang.GetPlayerBlocklist("accessToken");

GetPlayerCertificates

примітка: це API працює лише для акаунтів Xbox

Mojang mojang = new Mojang(new HttpClient());
PlayerCertificates certs = await mojang.GetPlayerCertificates("accessToken");

// certs.KeyPair.PrivateKey
// certs.KeyPair.PublicKey
// certs.PublicKeySignature
// certs.ExpiresAt
// certs.RefreshedAfter

CheckNameAvailability

Mojang mojang = new Mojang(new HttpClient());
string? result = await mojang.CheckNameAvailability("accessToken", "newName");

ChangeName

примітка: це API працює лише для акаунтів Xbox

Mojang mojang = new Mojang(new HttpClient());
PlayerProfile profile = await mojang.ChangeName("accessToken", "newName");

ChangeSkin

примітка: це API працює лише для акаунтів Xbox

Mojang mojang = new Mojang(new HttpClient());

// SkinType.Steve або SkinType.Alex
PlayerProfile response = await mojang.ChangeSkin("uuid", "accessToken", SkinType.Steve, "skinUrl");

UploadSkin

примітка: це API працює лише для акаунтів Xbox

Mojang mojang = new Mojang(new HttpClient());

// SkinType.Steve або SkinType.Alex
await mojang.UploadSkin("accessToken", SkinType.Steve, "skin_png_file_path");
Mojang mojang = new Mojang(new HttpClient());
Stream stream; // створення потоку (stream) для завантаження скіна
await mojang.UploadSkin("accessToken", SkinType.Steve, stream, "file_name");

ResetSkin

примітка: це API працює лише для акаунтів Xbox

Mojang mojang = new Mojang(new HttpClient());
await mojang.ResetSkin("uuid", "accessToken");

GetBlockedServer

Mojang mojang = new Mojang(new HttpClient());
string[] servers = await mojang.GetBlockedServer();

GetStatistics

примітка: це API було видалено з підтримки Mojang

Mojang mojang = new Mojang(new HttpClient());
Statistics stats = await mojang.GetStatistics(
    StatisticOption.ItemSoldMinecraft,
    StatisticOption.ItemSoldCobalt
);

// stats.Total
// stats.Last24h
// stats.SaleVelocityPerSeconds

CheckGameOwnership

примітка 1: це API працює лише для акаунтів Xbox
примітка 2: це API не перевіряє наявність підписки Xbox Game Pass. Якщо користувач має підписку Xbox Game Pass замість придбаної гри Minecraft, це API поверне false, хоча користувач має доступ до Minecraft і може в нього грати.

Mojang mojang = new Mojang(new HttpClient());
bool result = await mojang.CheckGameOwnership("accessToken");

if (result)
    Console.WriteLine("У вас є Minecraft JE");
else
    Console.WriteLine("У вас немає Minecraft JE");