Minecraft Wiki
Registrieren
Advertisement

Die Mojang API (Application Programming Interface) ist eine von Mojang zur Verfügung gestellte Programmierschnittstelle, über die man mit selbst geschriebenen Programmen Spielerdaten abfragen kann. Sie ist für Serverbetreiber und Plugin-Entwickler gedacht und wird durch einen Mojang-Server betrieben.

Alle Abfragen sind zur Zeit auf 600 pro 10 Minuten begrenzt[1]. Manche Abfragen sind auch für Demo-Accounts (registrierte Accounts ohne Kauf des Spiels) möglich, aber nicht alle.

UUID zu bestimmter Zeit[]

Eingabe Ein Spielername (Groß-/Kleinschreibung ist egal) und optional eine UNIX-Zeit (Sekunden seit dem 1. Januar 1970). Wird die UNIX-Zeit weggelassen, wird die aktuelle Zeit angenommen. Hier gibt es eine Online-Umrechnung der UNIX-Zeit.
GET-Abfrage https://api.mojang.com/users/profiles/minecraft/<Spielername> oder
https://api.mojang.com/users/profiles/minecraft/<Spielername>?at=<UNIX-Zeit>
Ausgabe
    • id: Die UUID des Spielers.
    • name: Der Spielername in korrekter Groß-/Kleinschrift.
    • legacy: true, wenn es sich um einen alten Minecraft-Account handelt, ansonsten ist legacy nicht in der Ausgabe enthalten.
    • demo: true, wenn es sich um einen nicht bezahlten Demo-Account handelt, ansonsten ist demo nicht in der Ausgabe enthalten.
Beispiel https://api.mojang.com/users/profiles/minecraft/OYO123?at=1420066800
liefert die UUID des Spielers "oyo123" zum 1. Januar 2015. Die Ausgabe erfolgt in einer Zeile ohne Leerzeichen und Zeilenumbrüche und wird nur hier strukturiert dargestellt:
 {
   "id":"61699b2ed3274a910f1e0ea8c3f06bc6",
   "name":"oyo123"
 }
Fehlermeldungen
  • Wenn es keinen Spieler mit dem Namen gibt, wird keine Ausgabe geliefert (HTTP Status Code 204 = no content).
  • Wenn die UNIX-Zeit kein gültiger Wert ist, wird der HTTP Status Code 400 (= bad request) mit folgender Fehlermeldung geliefert:
    {"error":"IllegalArgumentException","errorMessage":"Invalid timestamp."}

Alle Spielernamen[]

Eingabe Die UUID eines Spielers.
GET-Abfrage https://api.mojang.com/user/profiles/<UUID>/names
Ausgabe
  • Eine Liste mit allen Spielernamen, die dieser Account jemals hatte. Achtung: Das sind nicht die Zweitaccounts, sondern alle geänderten Spielernamen eines Accounts.
    • Ein Spielername.
      • name: Der Spielername in korrekter Groß-/Kleinschrift.
      • changedToAt: Änderungszeitpunkt in UNIX-Zeit (Sekunden seit dem 1. Januar 1970).
Beispiel https://api.mojang.com/user/profiles/61699b2ed3274a910f1e0ea8c3f06bc6/names
liefert den ursprünglichen Spielernamen oyo123, die Änderung vom 4. Februar 2015 in xXoyoXx und die Änderung vom 1. April 2015 in __oyo__. Die Ausgabe erfolgt in einer Zeile ohne Leerzeichen und Zeilenumbrüche und wird nur hier strukturiert dargestellt:
 [
   {
     "name": "oyo123"
   },
   {
     "name": "xXoyoXx",
     "changedToAt": 1423047600000
   },
   {
     "name": "__oyo__",
     "changedToAt": 1427882400000
   }
 ]
Fehlermeldungen
  • Wenn es keinen Spieler mit der UUID gibt, wird keine Ausgabe geliefert (HTTP Status Code 204 = no content).

Alle UUIDs[]

Eingabe Eine Liste von maximal 10 Spielernamen. Der "Content-Type"-HTTP header muss "application/json" sein.
POST-Abfrage an https://api.mojang.com/profiles/minecraft
Ausgabe
  • Eine Liste mit allen UUIDs der übergebenen Spieler. Für nicht existierende Spielernamen wird kein Ergebnis geliefert.
    • Ein Spielername.
      • id: Die UUID des Spielers.
      • name: Der Spielername in korrekter Groß-/Kleinschrift.
      • legacy: true, wenn es sich um einen alten Minecraft-Account handelt, ansonsten ist legacy nicht in der Ausgabe enthalten.
      • demo: true, wenn es sich um einen nicht bezahlten Demo-Account handelt, ansonsten ist demo nicht in der Ausgabe enthalten.
Beispiel Senden von ["oyo123","yoyo"]. Die Ausgabe erfolgt in einer Zeile ohne Leerzeichen und Zeilenumbrüche und wird nur hier strukturiert dargestellt:
 [
   {
     "id": "61699b2ed3274a910f1e0ea8c3f06bc6",
     "name": "oyo123"
   },
   {
     "id": "06cb8cae14793ec50df31026ac5f420a",
     "name": "yoyo",
     "legacy": true,
     "demo": true
   }
 ]
Fehlermeldungen
  • Wenn ein Spielername in der Auflistung fehlt (zwei Kommas hintereinander) oder ein Leerstring "" ist, wird eine IllegalArgumentException geliefert.

Skin und Cape[]

Eingabe Die UUID eines Spielers und optional die Anforderung einer Signatur. Die Abfrage für eine bestimmte UUID kann frühestens nach einer Minute wiederholt werden.
GET-Abfrage https://sessionserver.mojang.com/session/minecraft/profile/<UUID> oder
https://sessionserver.mojang.com/session/minecraft/profile/<UUID>?unsigned=false
Ausgabe
    • id: Die UUID des Spielers.
    • name: Der Spielername in korrekter Groß-/Kleinschrift.
    • properties: Eine Liste der Eigenschaften des Spielers.
      • name: Name der Eigenschaft. Es gibt bisher nur die Eigenschaft "textures" ("Spielertexturen").
      • signature: Nur wenn angefordert, wird hier der private Schlüssel des Mojang-Servers "Yggdrasil" als Base64-String geliefert.
      • value: Alle Texturen (Skin und ggf. Cape) in einer Base64-Zeichenkette. Für Base64 gibt es Online-Decodierungen, z.B. diese. Nach der Entschlüsselung erhält man folgende Informationen:
        • Das namenlose Texturobjekt.
          • profileId: Optional die UUID des Spielers ohne Bindestriche.
          • profileName: Optional der Spielername.
          • isPublic: true oder false. Der Wert true ist Standard und kann weggelassen werden. false gibt an, dass die Textur-URL nicht öffentlich zugänglich ist.
          • textures: Die Texturen.
            • SKIN: Skin-Textur.
              • url: Die URL der Skin-Textur.
              • metadata: Optional. Metadaten zum Skin.
                • model: "slim", wenn das Spielermodell "Alex" ist. Beim Spielermodell "Steve" fehlen die Metadaten.
            • CAPE: Umhang-Textur.
              • url: Die URL der Umhang-Textur. Ein Umhang wird bei Köpfen nicht angezeigt. Ansonsten wird ein Umhang nur angezeigt, wenn in den Account-Daten des Spielers ein Umhang durch Mojang eingetragen wurde.
          • timestamp: Optional die Unixzeit in Millisekunden des Zeitpunktes, wann die Texturdaten abgerufen wurden. Die Umrechnung von Unix-Sekunden in Realzeit ist z. B. hier möglich, man muss aber vorher die letzten drei Stellen vom timestamp entfernen, da es Millisekunden sind.
Beispiel https://sessionserver.mojang.com/session/minecraft/profile/61699b2ed3274a910f1e0ea8c3f06bc6
Die Ausgabe erfolgt in einer Zeile ohne Leerzeichen und Zeilenumbrüche und wird nur hier strukturiert dargestellt:
 {
   "id":"61699b2ed3274a910f1e0ea8c3f06bc6",
   "name":"oyo123",
   "properties":
   [
     {
       "name":"textures",
       "value":"eyJ0aW1lc3RhbXA..."
     }
   ]
 }
Fehlermeldungen
  • Wenn es keinen Spieler mit der UUID gibt, wird keine Ausgabe geliefert (HTTP Status Code 204 = no content).

Geschichte[]

Geschichte
14. April 2014
  • Die Mojang API wurde veröffentlicht[2].

Einzelnachweise[]

Advertisement