UUIDs Falsch

Dieses Thema im Forum "Technischer Support" wurde erstellt von BuildingDave, 8. Juli 2015.

  1. BuildingDave
    Offline

    BuildingDave

    Registriert seit:
    5. Juli 2012
    Beiträge:
    321
    Hallo an alle.

    Werde mich bei der Person, die das Problem löst gerne erkenntlich zeigen...

    Stand:
    22 Minecraft-Server sind über 1 BungeeCord miteinander verbunden.
    IP-forward ist true
    Bungee ist überall auf true
    Wir nutzen die aktuellste Spigot 1.8.7 und die neuste Version von BungeeCord
    Das Problem besteht allerdings schon etwas länger - hat also vermutlich nichts mit den Versionen zu tun.


    Folgendes Problem:
    Die User werden NICHT IMMER mit den richtigen UUIDs angezeigt.

    Wenn ein User seit Restart des Servers offline ist, wird nur seine Offline-UUID angezeigt.
    Wenn er online kommt, wird seine Online-UUID angezeigt, aber NUR auf den Servern, auf denen er schon online war.
    Wenn er offline geht wird die Online-UUID auf den Servern angezeigt, auf denen er war bis diese restarten.
    In den lokalen Spielerdateien werden NUR die Online-UUIDs angezeigt.
    Die UUID wird über PEX abgerufen - PEX läuft über eine Datenbank und ist bereits 2,5 Jahre im Einsatz.
    Wenn man jemandem per /msg von einem Server schreibt auf dem er noch nicht war wird er als GAST angezeigt, da seine Offline-UUID genutzt wird.

    EDIT:

    Zum besseren Verständnis für SpiritWalker und andere die diesen Umstand nicht verstehen:
    Es gibt User. User sind Minecraft spielende Personen die meinen Server besuchen um dort Ihre Zeit zu verbringen. User können den Minecraftserver joinen und sind dann online - wenn Sie keine Lust mehr haben verlassen Sie den Server und sind dann offline. Das zur Definition User, online und offline.
    Jetzt habe ich Server a1, b2, c3 und d4. Der User joint auf a1 und ist damit auf a1 und im Bungee online. Er wechselt auf b2, Ist dann auf a1 offline, war heute dort aber schon einmal online. Wenn ich JETZT die UUID des Spielers abfrage wird auf a1 und b2 die "richtige" UUID des User angezeigt. Auf Server c3 und d4 wird nach wie vor die "fasche", also die offline UUID angezeigt. Sobald die Server und der Proxy (Bungee) restartet wurden wird der User auf allen Servern mit der offline UUID angezeigt. Ich hoffe mit dieser Beschreibung Licht ins Dunkel gebracht zu haben.

    Sollten noch Fragen aufkommen editiere ich die Antwort hier hinzu.

    Danke an alle die sich den Kopf zerbrechen.
    Ich persönlich vermute den Fehler bei PEX in einer der neueren Versionen, finde ihn jedoch nicht.
    EDIT: Bei Pex liegt der Fehler eher nicht, denn man kann teilweise die Spieler nicht in eine Whitelist eintragen wenn sie noch nicht online waren!

    Gruß
    Dave
     
    #1
  2. Inkemann
    Offline

    Inkemann

    Registriert seit:
    3. Mai 2015
    Beiträge:
    341
    Ort:
    Aachen
    Minecraft:
    Inkemann
    Was meinst du mit Offline- und Online-UUID? Der Witz an einer UUID ist ja, dass sie universell einzigartig ist, demnach sollte es nicht zwei Stück pro Spieler geben.
     
    #2
  3. JTK222
    Offline

    JTK222

    Registriert seit:
    5. September 2013
    Beiträge:
    663
    Ort:
    Planet Erde
    Minecraft:
    JTK222
    Doch gibt es eine Online UUID für nicht Cracked server und eine Offline UUID für Cracked.
    Der unterschied ist das auf Offline servern immer mit der Offline UUID gearbeitet wird.
    Bungee cord senden die Online UUID vom Hauptserver jedoch auch zu den anderen Servern eines Netzwerks Wodurch auch Skins geladen werden können usw.
     
    #3
  4. ShareLock
    Offline

    ShareLock

    Registriert seit:
    2. November 2011
    Beiträge:
    70
    Inwiefern werden diese falsch angezeigt? Wer greift darauf denn zu? Sollte Spigot die falsche UUID 'berechnen' könnte es sich um einen falschen Zugriff handeln und daher ein Fehler in Spigot / Bungeecord sein.

    @JTK222 Das ist falsch. Es gibt nur eine UUID und diese ist die UUID, welche nur von Servern im Online-Modus verwendet werden kann. 'UUID's von Offline Servern sind eine eindeutige Identifizierung aufgrund des Spielernamens [Diese werden von Bukkit generiert] und dienen lediglich als Ersatz für die eigentliche UUID. Der Skin kann deswegen schon allein nicht geladen werden, da die UUID unwarscheinlich auf einen legal erworbenen Account verweist.
     
    #4
  5. Inkemann
    Offline

    Inkemann

    Registriert seit:
    3. Mai 2015
    Beiträge:
    341
    Ort:
    Aachen
    Minecraft:
    Inkemann
    Danke für die genaueren Ausführungen @ShareLock, jetzt verstehe ich auch was gemeint ist.
     
    #5
  6. JTK222
    Offline

    JTK222

    Registriert seit:
    5. September 2013
    Beiträge:
    663
    Ort:
    Planet Erde
    Minecraft:
    JTK222
    Was ist jetzt falsch an meiner Aussage? Bungee Cord kann die Online UUID an andere Server im Netzwerk senden weil die meisten großen Server MYSQL nutzen und die daten mit online UUID gespeichert wird.....
    Und Mojang hat es so geregelt dass eine Offline UUID (fast) nicht mit einer online UUID übereinstimmen kann.
    Das Feature wurde von Mojang eingebaut nicht von Bukkit.
     
    #6
  7. Inkemann
    Offline

    Inkemann

    Registriert seit:
    3. Mai 2015
    Beiträge:
    341
    Ort:
    Aachen
    Minecraft:
    Inkemann
    Das stimmt so überhaupt gar nicht. Die Offline UUID ist ja nur ein Konzept um die API mit irgendetwas füttern zu können. In der Theorie können sie deswegen auch übereinstimmen.
     
    #7
  8. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Eine UUID muss nicht zufällig sein. Es wäre durchaus möglich beispielsweise das erste Bit zur Unterscheidung von Online/Offline zu verwenden um Kollisionen für immer zu vermeiden. Das aber nur am Rande. Die UUID im Offlinemode wird mittels md5 und ein bisschen Byteschieben realisiert: https://www.spigotmc.org/threads/offline-mode-uuid-vs-php.19624/#post-208143 Ob das absichtlich getan wird um kollisionen zu vermeiden weiß ich trozdem nicht. Wenn jemand langeweile hat kann er sichd as gerne mal ansehen. Für den eigentlichen Thread ist es aber ohnehin scheißegal und Offtopic.

    Die Frage ist wesshalb der Server dieses Verhalten zeigt. Leider kann ich deiner Problembeschreibung nicht mal folgen. Du scheinst eine Kombination von Offline und Onlinemode zu verwenden. Ich habe keine Ahnung was da auf Protokollebene passiert, damit das Funktioniert. Was ich auch nicht verstehe ist, wie es überhaupt sein kann, dass ein User einmal "Offline" und dann "Online" ist. Was ist für dich ein User? Eine Person? Ein Nickname? Wieso sollte ein Onlineuser plötzlich offline spielen?

    Soweit ich das verstehe funktionieren diese Systeme so: User verbindet sich und sendet Nickname. Server prüft ob der Nickname einem Minecraftnutzer gehört. Ist der Nickname bei Mojang bekannt wird ein Onlinemode Handshake durchgeführt, andernfalls ein Offlinehandshake und der Nutzer wird danach zum Login mittels Passwort aufgefordert. Mit dem UUID Quatsch wird sich da aber vielleicht auch was geändert haben, keine Ahnung.
     
    #8
    ShareLock gefällt das.
  9. ShareLock
    Offline

    ShareLock

    Registriert seit:
    2. November 2011
    Beiträge:
    70
    RETARD ALERT
    Man braucht also MySQL für Bungeecord? Ja sicher.

    Das ist nonsense. Es geht darum, dass diese eindeutig sind. Spielername -> UUID. Das dies natürlich nicht auf den aktuellen Spieler dann zeigen kann ist klar. Schließlich wäre es dann weiterhin nicht möglich sich umzubenennen.

    Davon mal abgsehen, dass Mojang laut offiziellen aussagen im Besitz von Bukkit ist, ist das eine Haarspalterei. Die entscheidendere und Themen-relevante aussage bezieht sich auf die eigentliche Implementierung von (Craft-)Bukkit, nicht vanilla.

    Wenn wir dann mal wieder zum Thema zurück kommen könnten...
     
    #9
    [Dev] iTzSasukeHDxLP gefällt das.
  10. BuildingDave
    Offline

    BuildingDave

    Registriert seit:
    5. Juli 2012
    Beiträge:
    321
    Um den Umstand für SpiritWalker und andere etwas besser Verständlich zu machen habe ich den Beitrag Editiert. Sollten noch weitere Fragen kommen Editiere ich erneut. Bin gespannt wer noch eine Idee hat.
     
    #10
  11. AgentLV
    Offline

    AgentLV

    Registriert seit:
    29. November 2013
    Beiträge:
    7
    Minecraft:
    AgentLV
    Was ich extrem merkwürdig finde, ist dass die UUIDs sich nach einem reboot ändern. Ändern die sich auch im Welten Ordner oder nur in PEX?
     
    #11
  12. BuildingDave
    Offline

    BuildingDave

    Registriert seit:
    5. Juli 2012
    Beiträge:
    321
    In der Pex Datenbank stehen die richtigen drin und in den Weltenordner auch - immer die richtige UUID. Ich versteh den Mist ja selbst nicht was da passiert ^^ Es ist jetzt aber seit 4 Monaten so und ich finde einfach selbst keine Lösung. Deshalb ja auch der Hilfegesuch...
     
    #12
  13. Inkemann
    Offline

    Inkemann

    Registriert seit:
    3. Mai 2015
    Beiträge:
    341
    Ort:
    Aachen
    Minecraft:
    Inkemann
    Wenn in der Datenbank die richtigen UUIDs stehen, wo ist dann das Problem? Hat PEX Probleme aus der Datenbank zu lesen?
     
    #13
  14. Malfrador
    Offline

    Malfrador

    Registriert seit:
    16. Juni 2013
    Beiträge:
    404
    Minecraft:
    Malfrador
    Tritt das Problem nur bei /msg auf? Oder auch an anderen Stellen? Pex scheint ja zu funktionieren, da die DB ja laut deiner Aussage korrekt funktioniert. Wenn es nur bei msgs auftritt: Welches Plugin nutzt du für diese? Und wie genau meinst du "als Gast angezeigt"? Wird der User mit dem Rang " Gast" angezeigt oder eher "Gast -> me" als Platzhalter für unbekannter User?
     
    #14
  15. BuildingDave
    Offline

    BuildingDave

    Registriert seit:
    5. Juli 2012
    Beiträge:
    321
    Inkemann - kein Fehler in der Konsole.
    Als Chatplugin nutzen wir aktuell noch SimpleChat. Allerdings liegt es nicht nur am Chat-Plugin. Auch wenn ich mit Worldguard Regionen abrufe gibt es damit Probleme. Und wenn ich mit Pex /pex user NAME mache steht dort dann auch die falsche UUID - aber in der Datenbank ist die richtige hinterlegt.
     
    #15
  16. montbit
    Offline

    montbit

    Registriert seit:
    4. Februar 2013
    Beiträge:
    188
    Minecraft:
    montbit
    Hiho,
    Sind folgende Parameter so eingestellt?
    BungeCord: config.yml - onlinemode = true | Zentraler Ort für Premium Einstellung
    Alle vernetzte Server:
    - server.properties : onlinemode = false | Bungee hat den Spieler ja schon geprüft
    - spigot.yml : bungeecord = true | Dies verhindert das direkte joinen auf den Server, hat aber auch Auswirkungen auf on/offline UUID

    Sind überall die Parameter richtig gesetzt? Ich bekomme mit /pex user [name] überall und jederzeit die Online-UUID.
     
    #16
  17. BuildingDave
    Offline

    BuildingDave

    Registriert seit:
    5. Juli 2012
    Beiträge:
    321
    Ja, alles so eingestellt
     
    #17
  18. AgentLV
    Offline

    AgentLV

    Registriert seit:
    29. November 2013
    Beiträge:
    7
    Minecraft:
    AgentLV
    Sicher das du auf allen Servern bei PEX auf die richtigen Tabellen verweist? Welche Tabellen werden gemeinsam genutzt bei PEX?
     
    #18
  19. BuildingDave
    Offline

    BuildingDave

    Registriert seit:
    5. Juli 2012
    Beiträge:
    321
    Ich nutze PEX seit 2,5 Jahren - ja ich bin mir sicher, dass es richtig eingestellt ist. Alle greifen auf die gleiche Datenbank zu.
     
    #19
  20. AgentLV
    Offline

    AgentLV

    Registriert seit:
    29. November 2013
    Beiträge:
    7
    Minecraft:
    AgentLV
    Kann ja immer mal passieren, dass mann eine Einstellung geändert hat oder jemand anders eventuell.
    Wie ich es verstanden habe liest PEX nur die UUID falsch aus, jedoch steht die richtig in der DB oder?
     
    #20