mojira.dev

Nullicorn

Assigned

No issues.

Reported

No issues.

Comments

This is not a traffic issue. The site is specifically checking for the minecraft_bedrock entitlement key to see if the account owns the game, which those who didn't purchase Bedrock before it was bundled with Java don't have.

Cape claiming works perfectly fine when done manually, i.e. the following in the browser's console:
MinecraftUser.claim15YearCape({
  javaUrlBase: 'https://api.minecraftservices.com',
  capes: [],
  capeId: 'ef9e95b6-48a3-4fd7-93d4-7e7d9448d2f1',
  bedrockEntitlementOffer: '7118a7d5-240e-4f6d-8959-5269ba041938',
  bedrockEntitlementId: 'b0bf1091-bb6b-4bd7-80f9-6e43f0d03e39',
  bedrockUrlBase: 'https://net.web.minecraft-services.net'
})

 

Edit:

Some reassurance for anyone who has used this and is worried about their account security:

  • The function MinecraftUser.claim15YearCape comes from the page itself and is the one that's supposed to be run when clicking the claim button

  • javaUrlBase and bedrockUrlBase are URLs to Minecraft's account services. Both come from the page's source code and are the ones intended to be given there

  • capes is your account's current list of capes, though I found that it wasn't needed and left it blank in the snippet: []

  • capeId just indicates which cape is being claimed. In this case, that ID corresponds to the anniversary cape. All capes have an ID like that, and this one was also taken from the page's source

  • bedrockEntitlementOffer and bedrockEntitlementId identify the 15-year promotion on the Bedrock side of things, telling the server what's being claimed (and what to check to see if it's already been claimed). Again, these are straight from the page's source

For context, here's the data used to initialize the cape section of the page:

 

{
    "bedrockEntitlementOffer": "7118a7d5-240e-4f6d-8959-5269ba041938",
    "bedrockEntitlementId": "b0bf1091-bb6b-4bd7-80f9-6e43f0d03e39",
    "gameEntitlementKey": "minecraft_bedrock",
    "javaCapeId": "ef9e95b6-48a3-4fd7-93d4-7e7d9448d2f1"
}

Here's the portion of their code that calls MinecraftUser.claim15YearCape. I used this as a reference:

 

claim15YearCape: (t, e, s, i) => {
    let a = 'https://api-staging.minecraftservices.com',
    n = 'https://net.stage-732c232f.web.minecraft-services.net';
    switch (this.#n.environment) {
      case 'preview':
      case 'prod':
        a = 'https://api.minecraftservices.com',
        n = 'https://net.web.minecraft-services.net'
    }
    return MinecraftUser.claim15YearCape({
      javaUrlBase: a,
      capes: t,
      capeId: e,
      bedrockEntitlementOffer: s,
      bedrockEntitlementId: i,
      bedrockUrlBase: n
    })
}

Source: https://www.minecraft.net/webui/mc-components.min.js