Spigot: Wie kann ich Online-Spieler für Spieler aus der ArrayList ausblenden?

2 Antworten

Von Experte JanMarcel01 bestätigt

So wie du es schilderst, funktioniert hidePlayer in diesem Handler auf jeden Fall, sofern du die Methode über eine Instanz aufrufst, die nicht in deiner ArrayList steht.

Player somePlayer = // get certain player ...
somePlayer.hidePlayer(event.getPlayer());

Das Erste, was mir in diesem Zusammenhang auffällt (ich habe in der API einmal nachgeschlagen): Du verwendest eine veraltete Methode. Aktuell angedacht wäre diese Überladung.

Als Nächstes würde ich prüfen, ob der Schleifenrumpf überhaupt jemals betreten wird. Vielleicht ist die Liste zu diesem Zeitpunkt noch leer. Das kannst du via Debugger oder Logging herausfinden.

Nebenbei bemerkt könnte der Code gekürzt und die ArrayList ruhig mit einen passenden Namen versehen werden:

Player newPlayer = event.getPlayer();

for (Player builder : builders) {
  builder.hidePlayer(newPlayer);
}

So am Rand wäre für mich ebenso die Frage, ob man den Fall, dass ein neuer Spieler ebenso schon auf der Liste steht, berücksichtigen muss.

Lucas287 
Fragesteller
 01.05.2022, 14:23

Hallo, erstmals danke für die ausführliche Antwort,

falls ein neuer Spieler joint kann er zu diesem Zeitpunkt noch nicht auf der Liste stehen, weil Ich es so gemacht habe, dass wenn man quitet,

der Spieler von der Liste heruntergenommen wird und man muss um auf die Liste zu kommen einen Befehl ausführen.

Mfg.

0

Naja solltest Mal paper benutzen das klappt dann besser. Da kannste auch als 1. Parameter die instancr des Plugins nutzen und 2tens lern wie ne for each schleife Funktioniert

Woher ich das weiß:Studium / Ausbildung – info studium
Lucas287 
Fragesteller
 01.05.2022, 13:59

Ich weiss wie eine ForEach schleife funtkioniert nur dass was ich da im code habe habe ich von einem anderen Forum klappt aber auch nicht

0