Was ist falsch an diesem Code (JAVA, Spigot, Minecraft)?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Hey,

Bukkit.getOnlinePlayers();

gibt dir eine Collection<Player> zurück, keinen Player.

Wenn du etwas für jeden Player der Collection ausführen möchtest, musst du über diese iterieren.

Mfg Jannick (L1nd)

Woher ich das weiß:eigene Erfahrung
HeyJxri 
Fragesteller
 14.06.2022, 16:24

Danke, ich denke ich verstehe es nun. Du hast mir echt sehr weiter geholfen :)

1

Bukkit.getOnlinePlayers() gibt eine Liste zurück, demnach musst du auch eine Liste erstellen, z.B. so:

ArrayList<Player> onlinePlayers = Bukkit.getOnlinePlayers();

Dann musst noch durch diese durchiterieren.

for (Player p : onlinePlayers()) {
    p.setGameMode(GameMode.ADVENTURE);
}

Alternativ kannst du auch direkt Bukkit.getOnlinePlayers() benutzen:

for (Player p : Bukkit.getOnlinePlayers()) {
    p.setGameMode(GameMode.ADVENTURE);
}
Woher ich das weiß:eigene Erfahrung
HeyJxri 
Fragesteller
 14.06.2022, 16:22

Danke, ich glaube ich verstehe es langsam. Du hast mir sehr geholfen :)

1

Hast du irgendwo oben namespace org.bukkit hingeschrieben ? Ansonsten heißt das

org.bukkit.Bukkit.getOnlinePlayers()

Alternativ:

org.bukkit.Bukkit.getServer().getOnlinePlayers()
HeyJxri 
Fragesteller
 14.06.2022, 16:14

Nein habe ich nicht. Aber es wird trotzdem noch rot unterstrichen.

0
HeyJxri 
Fragesteller
 14.06.2022, 16:17
@rikks

Habe ich, wird leider immer noch unterstrichen : /

0
rikks  14.06.2022, 16:28
@HeyJxri

Was genau zeigt denn der Compiler für Fehlermeldungen ?

0