Ein Minecraft-Benutzername besteht aus 1–16 Zeichen genau dreier Arten, und eine UUID hat zwei Schreibweisen
Buchstaben, Ziffern, Unterstrich. Keine Bindestriche, keine Punkte, keine Leerzeichen. Und eine UUID wird mit oder ohne Bindestriche akzeptiert — weshalb die eine Abfrage fehlschlägt und die identische funktioniert.
Eine Skin nachzuschlagen bedeutet, etwas von jemandem Eingetipptes in etwas umzuwandeln, das Mojang erkennt, und dafür gibt es nur zwei Möglichkeiten. Beide haben präzise Regeln, und die UUID-Variante hat eine Macke, die viele „nicht gefunden"-Meldungen verursacht.
Die Benutzernamen-Regel
^[A-Za-z0-9_]{1,16}$
Drei Zeichenklassen und sonst nichts: Buchstaben, Ziffern, Unterstrich. Länge 1 bis 16.
Was das ausschließt, ist der nützliche Teil:
- keine Bindestriche — das mit Abstand Häufigste, was Leute versuchen
- keine Punkte, keine Leerzeichen, kein
@ - nichts über 16 Zeichen, und nichts Leeres
Ein Anzeigename von einem Server, ein Discord-Handle oder eine E-Mail-Adresse lässt sich also nicht auflösen, obwohl sie wie Namen aussehen. Wenn eine Abfrage fehlschlägt und der Text einen Bindestrich enthält, ist das fast immer der Grund — und ein Bindestrich ist genau das Zeichen, das Leute zum anderen Format greifen lässt.
Die UUID-Regel, und warum sie zwei Schreibweisen hat
^[0-9a-fA-F]{8}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{4}-?[0-9a-fA-F]{12}$
Beachte jedes -?: jeder Bindestrich ist optional. Beide hier sind dasselbe Konto und beide werden akzeptiert:
069a79f4-44e9-4726-a5be-fca90e38aaf5 dashed
069a79f444e94726a5befca90e38aaf5 undashed
32 Hexadezimalziffern, gruppiert als 8-4-4-4-12. Auch die Groß- und Kleinschreibung spielt keine Rolle — A-F und a-f passen beide.
Das ist wichtig, weil die beiden Formen aus verschiedenen Quellen stammen. Ein usercache.json, die Konfiguration eines Plugins und Mojangs eigene API sind sich nicht einig, welche sie ausgeben — und ein /data get auf einem Spieler gibt gar keine aus, sondern ein Array aus vier Ganzzahlen ([I; …]) — also wirst du beiden begegnen, und ein Tool, das nur eine davon akzeptiert, wirkt die Hälfte der Zeit kaputt.
Das -? gilt pro Trennzeichen statt alles-oder-nichts, also besteht auch eine teilweise mit Bindestrichen versehene Zeichenkette. Das ist großzügiger als streng korrekt, und das mit Absicht: eine Einfügung abzulehnen, weil jemand einen Bindestrich verloren hat, hilft niemandem.
Warum Name und UUID nicht austauschbar sind
Ein Benutzername kann geändert und wiederverwendet werden; eine UUID nicht. Eine Benutzernamen-Abfrage beantwortet also „wer diesen Namen gerade jetzt hat", und eine UUID-Abfrage beantwortet „dieses spezifische Konto, egal wie es heute heißt".
Für alles, was du speicherst — eine Whitelist, ein Scoreboard, ein Datenpaket, einen Kopf — ist die UUID diejenige, die korrekt bleibt. Der Benutzername ist derjenige, der sich bequem tippen lässt.
Vier Animationen, und sie sind Posen über die Zeit
Der Betrachter bietet Idle, Walk, Run und Fly. Das sind Animationen statt statischer Posen, was für die Beurteilung eines Skins wichtig ist: eine Textur, die im Stand gut aussieht, kann falsch wirken, sobald die Arme schwingen, weil die Seiten des Arms — die Flächen, die man in einer flachen Vorschau nie sieht — ins Blickfeld kommen.
Das ist das Argument dafür, einen Skin überhaupt in Bewegung vorzuführen, statt nur eine Vorder- und eine Rückseite zu rendern.