• 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 Scheduler gibt Probleme.

Shoqrii

Redstoneengineer
Registriert
16 Juni 2018
Beiträge
46
Diamanten
301
Minecraft
Shoqrii
Grüß Gott, Freunde der Sonne.

Ich habe einen Scheduler programmiert, er soll alle 5 Sekunden eine CFG File -1 Rechnen.
Allerdings rechnet er diese nur beim Serverjoin -1.
Wo liegt der Fehler?

Java:
    @EventHandler
    public void onJoin1(PlayerJoinEvent e) {
        Player p = e.getPlayer();
       
        Integer Hu = Config.cfg.getInt(p.getUniqueId() + ".hunger");
       
        Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {
       
            int count = 5;
            @Override
            public void run() {
           
                count--;
               
                p.sendMessage("Debug 1");
               
                if(count == 0) {
                    if(!(Config.cfg.getInt(p.getUniqueId() + ".hunger") < 0)) {
                       
                    int FinalHu = Hu - 1;  
                       
                    Config.cfg.set(p.getUniqueId() + ".hunger", FinalHu);
                    Main.getPlugin().saveConfig();
                   
                    count = 5;
                   
                    p.sendMessage("§7Hunger: " + Hu);
                   
                   
                    }
                }
               
               
            }  
           
        }, 0, 20);
       
    }

Java:
(PlayerJoinEvent)

if(Config.cfg.getString(p.getUniqueId() + ".hunger") == null) {
            Config.cfg.set(p.getUniqueId() + ".hunger", 100);
            Main.getPlugin().saveConfig();
            
        }

MfG, Luca D.
 
Zuletzt bearbeitet:
Registriert
10 Dezember 2017
Beiträge
161
Alter
26
Diamanten
322
Minecraft
DerFrZocker

Shoqrii

Redstoneengineer
Registriert
16 Juni 2018
Beiträge
46
Diamanten
301
Minecraft
Shoqrii
Ich empfehle dir Bukkits Scheduler nochmal genauer anzuschauen. (https://hub.spigotmc.org/javadocs/spigot/org/bukkit/scheduler/BukkitScheduler.html) speziel was diese beide werte ( ) am ende des schedulers für eine Funktion haben.

Des weiteren würde ich mir immer die Frage stellen: "Muss das ganze sync laufen oder kann es auch async laufen?"
Der Wert kann aber nicht für den Fehler verantwortlich sein, das nichts geändert wird.

Wenn ich einen scheduleAsyncRepeatingTask erstellen möchte wird alles makiert.
 
Registriert
10 Dezember 2017
Beiträge
161
Alter
26
Diamanten
322
Minecraft
DerFrZocker
Wenn ich einen scheduleAsyncRepeatingTask erstellen möchte wird alles makiert.

https://hub.spigotmc.org/javadocs/s...rg.bukkit.scheduler.BukkitRunnable-long-long-
schau dir mal diese Methode an.

Wenn du weist für was die Werte sind warum nutzt dann nicht einfach "100" anstatt "20"? und sparst dir das selber Zählen.

Und dann würde ich mir mal deine "Hu" variable anschauen. Du machst da genau den gleichen fehler wie bei deinem "msg" String von Gestern.

Ich würde dir empfehlen noch mal die Grundlagen durch zu gehen.
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Du setzt einen Wert in einer bestimmten Config-Datei:
Config.cfg.set(p.getUniqueId() + ".hunger", FinalHu);

Hier speicherst du möglicherweise eine andere Config-Datei:
Main.getPlugin().saveConfig();

Der Wert von "Hu" wird ganz oben einmalig gelesen, bei jedem Durchlauf ist es also der selbe Wert:
int FinalHu = Hu - 1;
 
Oben