diff --git a/index.d.ts b/index.d.ts index 6371d0a..e559164 100644 --- a/index.d.ts +++ b/index.d.ts @@ -26,17 +26,26 @@ declare module 'prismarine-auth' { fetchCertificates?: boolean, fetchEntitlements?: boolean fetchProfile?: boolean - }): Promise<{ token: string, entitlements: MinecraftJavaEntitlements, profile: MinecraftJavaProfile, certificates: MinecraftJavaCertificates }> + }): Promise<{ token: string, entitlements: MinecraftJavaLicenses, profile: MinecraftJavaProfile, certificates: MinecraftJavaCertificates }> // Returns a Minecraft Bedrock Edition auth token. Public key parameter must be a KeyLike object. getMinecraftBedrockToken(publicKey: KeyObject): Promise } + // via request to https://api.minecraftservices.com/entitlements/license, a list of licenses the player has + // which includes available access via Xbox Game Pass subscriptions + export interface MinecraftJavaLicenses { + items: { name: string, source: string }[] + signature: string + keyId: string + errors?: unknown[] + } + + // via https://api.minecraftservices.com/entitlements/mcstore export interface MinecraftJavaEntitlements { items: MinecraftJavaEntitlementsItem[] signature: string keyId: string } - export interface MinecraftJavaEntitlementsItem { name: string signature: string diff --git a/src/TokenManagers/MinecraftJavaTokenManager.js b/src/TokenManagers/MinecraftJavaTokenManager.js index 2c1294e..0f5ec03 100644 --- a/src/TokenManagers/MinecraftJavaTokenManager.js +++ b/src/TokenManagers/MinecraftJavaTokenManager.js @@ -94,7 +94,7 @@ class MinecraftJavaTokenManager { async fetchEntitlements (accessToken) { debug(`[mc] fetching entitlements with ${accessToken.slice(0, 16)}`) const headers = { ...fetchOptions.headers, Authorization: `Bearer ${accessToken}` } - const entitlements = await fetch(Endpoints.MinecraftServicesEntitlement, { headers }).then(checkStatus) + const entitlements = await fetch(Endpoints.MinecraftServicesLicense + `?requestId=${crypto.randomUUID()}`, { headers }).then(checkStatus) debug(`[mc] got entitlement response: ${entitlements}`) return entitlements } diff --git a/src/common/Constants.js b/src/common/Constants.js index b12bcde..28aab21 100644 --- a/src/common/Constants.js +++ b/src/common/Constants.js @@ -13,6 +13,7 @@ module.exports = { MinecraftServicesLogWithXbox: 'https://api.minecraftservices.com/authentication/login_with_xbox', MinecraftServicesCertificate: 'https://api.minecraftservices.com/player/certificates', MinecraftServicesEntitlement: 'https://api.minecraftservices.com/entitlements/mcstore', + MinecraftServicesLicense: 'https://api.minecraftservices.com/entitlements/license', MinecraftServicesProfile: 'https://api.minecraftservices.com/minecraft/profile', MinecraftServicesReport: 'https://api.minecraftservices.com/player/report', LiveDeviceCodeRequest: 'https://login.live.com/oauth20_connect.srf',