UserTrack - UUID Probleme

  • Im Hintergrund passiert gerade sehr viel ... für alle Spieler die des englisch mächtig sind:
    https://forums.bukkit.org/thre…n-server-breakage.250915/


    Kurz:

    • Spieler können ihren Namen ändern
    • Spieler werden über eine UUID identifiziert (email geht aus Datenschutzgründen nicht)
    • diese Änderung kommt von Majong und beeinflusst ALLE Server (auch alte Versionen)


    Problem:

    • Alle Plugins identifizieren über den Namen
    • Solle ein Spieler den Namen ändern geht alles kapuut

      • im schlimmsten Fall wenn ein Mod den Namen von SuperMod zu MeinNeuenNamen ändert und wer Anders seinen Namen von NormaleUser zu SuperMod hat der Andere MOD-RECHTE
    • DAS UPDATE BEEINFLUSST AUCH ALTE SERVER
      • wenn wir nichts machen wird es auch kaputt gehen


    Intern UUID's zu nutzen ist ein Aufwand, aber geht ...
    Allerdings gibt es ein Problem:


    Spielerkommand mit Spielernamen sind unsicher, da man nicht mitbekommt wenn sich der Name ändert ...


    Man könnte zwar UUID's für Commands verwenden ... aber das ist nicht benutzerfreundlich, oder möchte einer von euch folgemdes eintippen
    (z.b. zum Geld überweisen)?

    Code
    /money pay 8302548d-2e8a-4af3-9d81-7451c6004b26 123


    ja UUID's sind lang xD


    Man will eigentlich:

    Code
    /money pay IDragonfire 123


    Zweiters ist möglich, kann aber ungesehende Folgen haben ...
    Sollte wie oben beschrieben ich meinen Namen ändern und ein andere Spieler mein Namen annehmen bekommt der Andere das Geld und
    der Kommandoausführende bekommt davon NICHTS mit.


    Mein Vorschlag:

    • Wir MÜSSEN den Benutzername, auch Änderungen protokollieren ...
    • Wir MÜSSEN Namensänderungen kommunizieren ...


    Dafür gibt es mehrere Lösungen, unterschiedlich schwer, wenn wir entdecken, dass wer seinen Namen geändert hat ...

    • kann er nicht mehr auf dem Server joinen und muss im Forum publizieren, dass er den Namen geändert hat (wir sind ein RPG-Server da ändert man nicht so häufig seinen Namen)
    • Muss jeder Spieler einzeln bestätigen, dass er die Namensänderung mitbekommen hat, er kann keine Commands ausführen mit Spielernamen, welche sich geändert hat und er nicht akzeptiert hat (sehr aufwendig!!)


    Alle haben natürlich immer Einblick in den Verlauf der UUID's ...


    Was offen ist:
    Was ist für die Nutzer am einfachsten, wenn sie mit Spielerkommandos arbeiten ...


    ###


    Darüber hinaus gibt es noch ein Entwicklerproblem.
    Sollte der Server im offline-Modus sein, so sind alle UUID's der Spieler unterschiedlich (aktuell md5-hash des Namens).
    Das führt zu weiteren Problemen ...

  • Das letzte ist ja kein Problem für uns. Unsere Server laufen nicht im Offline Modus, also keine MD5 Hashs :)


    Grundsätzlich würde ich sagen, dass man es im Forum kommunizieren muss, also Vorschlag 1.


    Oder:
    Wir machen in der Hinsicht gar nichts weil so wenige Commands für Spieler die Offline sind genutzt werden. Wenn ich /money pay IDragonfire eingebe, dann sollte ich entweder sicher sein, dass du noch so heißt, oder es machen wenn du online bist.

    Sie haben soeben einen legendären Keiler© Qualitätspost gelesen!


    (╯°□°)╯︵ ┻━┻!

  • Das letzte ist ja kein Problem für uns. Unsere Server laufen nicht im Offline Modus, also keine MD5 Hashs :)


    Grundsätzlich würde ich sagen, dass man es im Forum kommunizieren muss, also Vorschlag 1.


    Oder:
    Wir machen in der Hinsicht gar nichts weil so wenige Commands für Spieler die Offline sind genutzt werden. Wenn ich /money pay IDragonfire eingebe, dann sollte ich entweder sicher sein, dass du noch so heißt, oder es machen wenn du online bist.



    Stell dir vor ich bin offline mein Name geändert zu SecrettDragonfire und gleichzeitig ist IDragonfire online, aber wer anderes ...
    Der Spieler bekommt das nicht mit ...
    Klar könnte jetzt ich allen Bescheid geben und ich kann ja auch wen vergessen ...

  • Wow, als alter Betreiber kann ich verstehen wie umständlich das ist. wie schauts mit whitelist aus? ich mein jeder Spieler muss sich ja sowieso im Forum bewerben um vom Lobbyserver zum Hauptserver zu kommen. Wie arbeitet die whitelist denn nun überhaupt? Ich mein wer seinen Namen ändert käm doch bestimmt auch nicht mehr auf den Server oder oder speichert diese Liste nun die UUIDs?

  • @Darcion
    Wir arbeiten bei der Freischaltung aber über ein eigenes Plugin ohne Whitelist, dafür mit Permissions.
    Und inzwischen kann man auch ohne Bewerbung auf den Hauptserver. Bis Level 10 kann man erstmal spielen.

    Sie haben soeben einen legendären Keiler© Qualitätspost gelesen!


    (╯°□°)╯︵ ┻━┻!

  • Das wird ja richtig aufwendig. Dann bindet etwas RPG ein, eine Behörde. Wer eine Namensänderung begeht ohne die Behörde zu informieren und dabei erwischt wird bekommt ärger. Order schreibt ein kleines Plugin welches jeder User dort in der Behörde benutzen kann. Damit wird das ganze wie in eine Art Liste eingetragen und vielleicht Dort in einem Buch oder auf Schildern die registrierten Bürger gezeigt.

  • Und wie soll das ablaufen?
    Ich verstehe das nicht ...


    Vor allem wie hilft das den Leuten die die Commands ausführen?


    Wir appellieren an den Spieler seinen Namen so zu lassen oder ihn in der Behörde registrieren zu lassen, damit 100% fest steht wie der Name ist. Wenn also jemand den Command auf den falschen Namen macht, weil er sich nicht vorher schlau gemacht hat, hat er gelitten. Falls der Name geändert wurde und nicht gelistet ist, bekommt der andere ein Bußgeld.

  • oder man macht es folgendermaßen:


    alle Namen werden einmalig mit der UUID in einer Datenbank verbunden.


    Wenn nun ein Spieler seinen namen ändert, dann kommt sein alter name in eine tabelle welche eben die alten namen speichert.


    lediglich dieser spieler darf dann diesen alten namen wieder verwenden.


    sollte nun also ein anderer spieler seinen namen auf den namen des oben genannten spielers ändern wollen, so wird dies durch MC zwar vollzogen, jedoch bekommt der dann eine Meldung, welche Ihn darauf Hinweist, dass dieser Name auf unserem Server zu einem anderen Spieler gehört und dieser eben wieder im eigenen interess geändert werden sollte.


    überweisungen / commands, welche einen spielernamen beinhalten schauen dann durch die Datenbank, nd wählen sich die UUID, welche zum Namen passt...


    hoffe ich hab nix übersehen oder nen denkfehler....


  • moment! die bekommen einen Hinweis und haben vielleicht vor das zu Ihren Gunsten auszunutzen! Der Besitzer des alten Names und die Admins müssen dann aber eine Ingame-Notiz erhalten, damit diese das prüfen können und der Besitzer des alten Namen nicht in eine Falle läuft.

  • mal so als frage.. wie soll denn dieser Namenswechsel im allgemeinen laufen von mojang aus?
    wollen die ne funktion dafür ins game einbauen, wollen die das über die website laufen lassen? hab da bisher keine infos zu gefunden.



    "die bekommen einen Hinweis und haben vielleicht vor das zu Ihren Gunsten auszunutzen!"
    ne, der gedanke war, dass das Plugin serverseitig den Namen des Spielers beim wechsel wieder so anzeigt/verwendet, als wenn der Spieler den namen nicht gewechselt hätte.
    also, dass wieder der Ursprungsname angezeigt und verwendet wird.

  • Ich hatte mal ein Plugin aktiv das dir Namenswechsel zugelassen hatte und somit Chat und andere Funktionen die das Plugin auch unterstützten anwenden konnte. Wie gesagt, die die das unterstützten, da das Mangelware war, nahm ich es wieder runter.

  • Naja das was Wurzel geschrieben hat würde ich auch sagen.
    Also prüfen ob der Name und die UUID des Spielers mit der Datenbank übereinstimmen beim PlayerJoin.


    Ansonsten Login verweigern oder so.

    Sie haben soeben einen legendären Keiler© Qualitätspost gelesen!


    (╯°□°)╯︵ ┻━┻!

  • Jip,
    finde ich gut ...
    Ist leicht umzusetzen und wird dann so gelöst:

    • wenn Spieler das erste mal joint wird zum Name die UUID gespeichert
    • sollter der Spieler seinen Namen ändern wird geprüft über der Name bei uns bereits existiert
      • existiert -> kick (Verweis Forum?)
      • existiert nicht -> zum Namen wird die UUID gespeichert (der spieler besitzt dann zwei namen, aber eine UUID)


    Wenn so gewollt bitte Ticket mit Prio erstellen,


    DevNote:
    AsyncPlayerPreLoginEvent nutzen

Discord

Keiler -
dunkelbunter -
Avatar
Strasse36 -
dunkelbunter -
Chaosseppel -
dunkelbunter -
dunkelbunter -
Chaosseppel -
Flash2over -
Avatar
Chaosseppel antwortete dunkelbunter -
Avatar
dunkelbuntilicious -
dunkelbunter -
Avatar
Silthus -
Avatar
Silthus -
dunkelbunter -
Silthus -
Fritz_MAK -
Flash2over -
Keiler -
Avatar
Silthus -
dunkelbunter -
Keiler -
dunkelbunter -
Keiler -
Avatar
Silthus -
Fstx45 -
Avatar
Avatar
L4mpo antwortete Fstx45 -
Fstx45 -
Avatar
Silthus -
Keiler -
Avatar
Ryan_Stekken86 -
dunkelbunter -
Jomant -
Jomant -
Jomant -
Avatar
ryan_stekken86 -
Flash2over -
Avatar
z_engineer -
Avatar
z_engineer -
Flash2over -
Avatar
z_engineer -
Avatar
z_engineer -
Avatar
z_engineer -
Avatar
z_engineer -
Avatar
z_engineer -
Avatar
z_engineer -
Avatar
fstx45 -
Flash2over -
Avatar
fstx45 -
Flash2over -

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!