Plugin /back Befehl aber auch ne Frage zu event.player:getPosition(); in Java?

A new update is now available, introducing a lot of new content!
Latest hotfix: 0.7.5.2 (2024-09-10)
  • Hallo.


    Unter Lua hatten/haben wir die Möglichkeit die aktuelle Position des Spielers mit event.player:getPosition(); auszulesen.
    Nun gibt es aber nicht mehr getPosition() wie lautet es den nun?


    Ich habe nun vor ein kleines Script zu schreiben welches den Todespunkt in der Datenbank speichert damit der Spieler via /back zurück kommt um seine Leiche leer zu räumen.
    Habe soweit auch einiges fertig aber die MySQL Datenbank hält mich wieder auf, da diese nix speichert, aber das ist ein anderes Thema. :whistling:


    Kommt ein Spieler das erste mal auf den Server wird geprüft ob er schon mal da war, wenn nein dann wird ein Back Punkt erstellt anhand der getSpawnPosition() ist das ok?
    Das müsste doch der Spawn Punkt sein, wenn ich das richtig verstehe?


    Gerne könnt ihr ja mal über den unfertigen Code schauen, und bin für Tipps sehr dankbar.


    Grüßle TMN

  • Nun gibt es aber nicht mehr getPosition() wie lautet es den nun?

    Die Funktion gibt es weiterhin, einfach player.getPosition() aufrufen :) Hier findet sich generell eine Übersicht über alle Spielerfunktionen: Player


    Kommt ein Spieler das erste mal auf den Server wird geprüft ob er schon mal da war, wenn nein dann wird ein Back Punkt erstellt anhand der getSpawnPosition() ist das ok?

    Ja, also wenn du "getSpawnPosition()" auf das Eventobjekt aufrufst, dann erhälst du exakt die Position, an welcher der Spieler online kommt. Bedenke, dass PlayerSpawnEvent nur einmal aufgerufen wird, nämlich wenn der Spieler zum Server verbindet und gespawnt ist (nach seinem Ableben wird immer PlayerRespawnEvent aufgerufen, erst wenn der Spieler disconnected und wieder zum Server verbindet, wird das PlayerSpawnEvent aufgerufen - aber ich denke das entspricht auch der Intention hinter deinem Code?)

  • Ahh, bei mir ging es nicht da ich ja event.getPosition() versucht habe.
    Wie sieht es den nun aus, ich habe hier zwei Beispiele, kann ich beide so schreiben?

    Mir geht es um die Zeile 5, bzw. Zeile 8.






    Ja, wenn er stirbt habe ich ja seine Position durch getDeathPosition().
    Dann wird der Spieler halt durch den PlayerRespawnEvent zum Punkt gebracht und kann selbst entscheiden ob er /back benutzt oder nicht.

  • Das sieht gut aus, das kannst du so machen ;)


    Aber: Das Speichern in der Datenbank macht eigentlich nur Sinn, wenn die per Befehl "/back" gespeicherte Position auch nach dem Disconnect des Spielers verfügbar bleiben soll (also quasi dauerhafte Gültigkeit haben soll, selbst nach Serverrestart etc). Wenn es nur um eine temporäre Information geht, kannst du die Position bspw. auch einfach als Attribut des Spielers speichern (Attribute können für jeden Spieler festgelegt und anhand eines eindeutigen Strings beschrieben werden, dabei kann jedes erdenkliche Objekt als Attribut gespeichert werden - also eine Zahl, ein Vector3f, ein anderer Spieler, ein GUI Element, ein String usw). Hier ein Beispiel (wie gesagt, wenn du es weiterhin per Datenbank speichern möchtest, kannst du das hier eigentlich ignorieren^^):

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!