Das offizielle Minecraft Wiki twittert hier: Wiki-Twitter  –  Chatte im Wiki-Discord  – Noch keinen Server gefunden? Es gibt einen Wiki-Server

Mojang API

Aus Minecraft Wiki
Wechseln zu: Navigation, Suche

Die Mojang API ist eine von Mojang zur Verfügung gestellte Programmierschnittstelle (Application Programming Interface), ü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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

Eingabe Eine Liste von maximal 100 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[Bearbeiten]

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 einem Base64-verschlüsselten String. Nach der Entschlüsselung erhält man folgende Informationen:

        • timestamp:
          Aktivierungszeitpunkt der Textur in UNIX-Zeit (Sekunden seit dem 1. Januar 1970).

        • profileId:
          Die UUID des Spielers.

        • profileName:
          Der Spielername.

        • isPublic:
          true oder false.

        • textures:
          Eine Liste der Texturen des Spielers.

          • SKIN:
            Der Spielerskin.

            • url:
              Die URL des Spielerskins.

            • metadata:
              Optional. Metadaten zum Skin.

              • model:
                "slim", wenn das Spielermodell "Alex" ist. Beim Spielermodell "Steve" fehlen die Metadaten.

          • CAPE:
            Optional ein Spielerumhang.

            • url:
              Die URL des Spielerumhangs.
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[Bearbeiten]

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

Einzelnachweise[Bearbeiten]

Promotional Content