p.getName()
Player playerOne = players.get(0);
playerOne.sendMessage()
Bukkit.getPlayerExact(String name);
Player p = (Player) players.get(0);
players.get(0).sendMessage("Blubb");
Wozu einen String ?
Weil das Speichern von Player Objekten falsch ist.
Du speicherst die nicht nur Referenz. Deswegen bleibt es auch im RAM. Wenn der Spieler den Server wieder betritt gibt es ein neues Player Objekt.Wieso? Nur weil es null ist wenn der Spieler den Server verlässt oder was?
Du speicherst die nicht nur Referenz. Deswegen bleibt es auch im RAM. Wenn der Spieler den Server wieder betritt gibt es ein neues Player Objekt.
String bla1 = "sergdi";
String bla2 = bla1;
log(bla1); //sergdi
log(bla2); //sergdi
String bla1 = "nix";
log(bla1); //nix
log(bla2); //nix
Sind dann auch alle Referenzen auf dieses Objekt weg? Nein, da dein Plugin noch mit einer Referenz auf das Objekt zeigt. Es wird also noch nicht vom Garbage Collector aufgesammelt. Du kannst natürlich WeakReferenzen verwenden. Bei diesen wird das Objekt trotzdem gelöscht.
EDIT: Beachte, dass es mehrere Referenzen geben kann, die auf das selbe Objekt zeigen. Erst wenn es nicht mehr möglich ist auf das Objekt zuzugreifen wird es vom Garbage Collector aufgesammelt (nach einer gewissen Zeit).