• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Methode wird so oft wiederholt, wie Spieler auf dem Server sind.

TheSotek

Minecrafter
Registriert
12 April 2020
Beiträge
6
Diamanten
300
Hi!

Ich möchte folgendes tun: Ich will, dass eine Zahl im BossBar-Titel hochzählt und die BossBar dann an alle Spieler gesendet wird.

Mein Problem: Je nachdem wie viele Spieler auf dem Server sind, so oft wird diese Methode "wiederholt".
Die Zahl geht quasi nicht 1 höher, sondern je nach dem wie viele Spieler auf dem Server sind, 2, 3, 4 ,5 usw. mal.
Also wenn 1 Spieler auf dem Server ist, ist alles gut, dann geht die Zahl auch nur 1 höher. Sind dann aber 2 Spieler auf dem Server, so geht die Zahl eben auch 2 nach oben.

Hier noch der Code der Methode:
(Ich will btw. ein "Durstlevel" machen, es soll ca. so aufgebaut sein, wie das Hungersystem, nur eben für Durst)
Java:
 public void sendBossBar(Player p) {
                    if (!(p.getWorld().getName().equals("world_nether"))) {
                        durstBar.setTitle("Durstlevel: " + durstlvl + " §8| §fKein Multiplikator");
                        durstBar.setColor(BarColor.GREEN);
                        durstBar.setProgress(durstlvl / 100);
                        durstBar.addPlayer(p);

                        durstlvl ++;
                    } else {
                        durstBar.setTitle("Durstlevel: " + durstlvl + " §8| §c2x Multiplikator");
                        durstBar.setColor(BarColor.RED);
                        durstBar.setProgress(durstlvl / 100);
                        durstBar.addPlayer(p);

                        }

                        durstlvl ++;
                        durstlvl ++;
                    }


                }

Und dann hier noch, wo die BossBar für alle Spieler ausgegeben wird:

Java:
 durstID = Bukkit.getScheduler().scheduleSyncRepeatingTask(ChallengeSystem.getPlugin(), new Runnable() {
                @Override
                public void run() {
                    Bukkit.getOnlinePlayers().forEach(p -> sendBossBar(p));
                }
            }, 0, 20*3);

Ich hoffe, ihr könnt mir helfen :)
 

TheSotek

Minecrafter
Registriert
12 April 2020
Beiträge
6
Diamanten
300
Danke für die schnelle Antwort.

Nun kommt bei mir jetzt irgendwie folgende Fehlermeldung:

at java.util.Collections$UnmodifiableCollection.forEach(Unknown Source) ~[?:1.8.0_51]
at de.thesotek.durst.Durst.sendBossBar(Durst.java:54) ~[?:?]


Außerdem ist das durstlvl permanent bei 0

Ich hab mein forEach hinter "durstBar.addPlayer(p); gesetzt.
 
Oben