You are not logged in.

  • Login

[Bukkit-Plugin] PlayerRespawnEvent bw

Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

ab-19

User / Kunde

  • "ab-19" started this thread

Posts: 17

  • Send private message

1

Sunday, March 29th 2015, 9:42pm

PlayerRespawnEvent bw

Wieso funktioniert bei meinem RespawnEvent (http://www.hastebin.com/awetimoyav.avrasm) nicht die Teleportierung die zwei Nachrichten zuvor werden ausgeführt ? :O :(

th3t0myb0y

User / Kunde

  • "th3t0myb0y" is male

Posts: 214

Location: Nordrhein-Westfalen

Occupation: Schüler

  • Send private message

2

Monday, March 30th 2015, 12:58am

loc ist null.

Zudem ist es recht sinnlos, den Spielernamen in eine ArrayList zu packen, nimm lieber das Player-Objekt.
"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."
~Linus Torvalds

Gebauer_01

User / Kunde

Posts: 2,304

  • Send private message

3

Monday, March 30th 2015, 2:51am

Zudem ist es recht sinnlos, den Spielernamen in eine ArrayList zu packen, nimm lieber das Player-Objekt.


Warum? Wenn er die Daten nicht speichert kann er das schon so machen. Ansonsten sollte er lieber die UUID statt dem Namen nehmen.

MfG Gebauer_01

LostBattle

User / Kunde

Posts: 388

  • Send private message

4

Monday, March 30th 2015, 9:51am

loc ist null.

Zudem ist es recht sinnlos, den Spielernamen in eine ArrayList zu packen, nimm lieber das Player-Objekt.

Das Player Objekt kann sich zudem bei manchen Sachen verändern..

Howaner

User / Kunde

Posts: 763

Thanks: 15

  • Send private message

5

Monday, March 30th 2015, 10:53am

loc ist null.

Zudem ist es recht sinnlos, den Spielernamen in eine ArrayList zu packen, nimm lieber das Player-Objekt.

Das Player Objekt kann sich zudem bei manchen Sachen verändern..

Blödsinn. Das wäre richtig schlimm.

Das Spielerobjekt sollte aber beim leaven vom Spieler aus dem Ram gelöscht werden. Wenn jetzt ein Plugin das Objekt nicht aus einer Liste oder so löscht, entstehen Ram Leaks.

Also solang man den Spieler beim PlayerQuitEvent aus allen Listen löscht, gibt es keine Probleme.

Ich speichere auch immer das Spielerobjekt.
Ist einfach sauberer

Gebauer_01

User / Kunde

Posts: 2,304

  • Send private message

6

Monday, March 30th 2015, 1:12pm

Ich speichere auch immer das Spielerobjekt.
Ist einfach sauberer


Warum ist es "sauberer" das ganze Spieler Objekt statt der UUID zu speichern?

MfG Gebauer_01

Fabsi23

User / Kunde

  • "Fabsi23" is male

Posts: 809

  • Send private message

7

Monday, March 30th 2015, 1:22pm

Wenn der Spieler stirbt ist es doch auch ein anderes Player Objekt soweit ich mal gelesen habe. Da ArrayLists nur temporär sind, speichere ich auch nur Namen.
"Ich bewundere deine Gelassenheit!"
"Das ist Desinteresse."

Rincewind34

User / Kunde

Posts: 112

  • Send private message

8

Monday, March 30th 2015, 5:01pm

@th3t0myb0y kann es nicht sein, weil er da eine Abfrage eingebaut hat
@Howaner ich kann nicht ganz nachvollziehen, wieso das sauberer sein soll. Natürlich ist es Bequemer, aber du verwendest wissentlich viel mehr Speicher, da immer entweder der Name oder die UUID reicht.
@ab-19 ich denke, das das an der Verzögerung liegt. Wenn du die unbedingt brauchst, empfehle ich player.teleport(loc) zu nutzen.

Stuppsman

User / Kunde

Posts: 2,766

Thanks: 25

  • Send private message

9

Tuesday, March 31st 2015, 1:42am

Der Speicherverbrauch erhöht sich dadurch nicht, wurd hier im Forum mal vehement und fundiert behauptet.. es werden Verweise gespeichert, nicht die Objekte nochmal.. Macht also keinen Unterschied, ob nur der Name, die UUID oder das ganze Playerobjekt durchgereicht werden, in ArrayLists gepackt oder sonstwie "doppelt gespeichert werden". Zmdst, wenn stimmt, was ich gelesen hab.
Das Playerobjekt wird aber bei jedem Login neu erstellt, muss also, wie schon gesagt, auf jeden Fall im PlayerQuitEvent (und PlayerKickEvent!) aus den Listen gelöscht werden.

Aber zum eigentlichen Problem: Ich denk, das Event is einfach schon längst gelaufen, wenn du dann endlich irgendwann (3Sekunden später) die Location setzt.. ich würd da auch mal den Teleport ausprobieren.. wenn der auch nicht klappt, setz die Location mal ausserhalb des Schedulers und lass nur den kompletten Rest 3 Sekunden später ablaufen.
Nein, ich hab kein Skype.. bei Interesse an einer privaten Unterrichtsstunde, wende dich bitte direkt an mein Team! 8)

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net