• 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!

Scheduler funktioniert nicht, warum?

Kraetzy

Redstoneengineer
Registriert
16 Dezember 2017
Beiträge
41
Alter
22
Diamanten
250
Minecraft
MinesuchtBOT
Scheduler:

Code:
if(Sterne.S1.contains(t)) {
                               
                            t.teleport(loc);
                            p.sendMessage(Main.prefix + "§7Du hast " + t.getName() + " in die JVA eingeliefert.");
                            t.sendMessage(Main.prefix + "§7Du wurdest in die JVA eingeliefert.");
                            Handschellen.HL.remove(p);
                            p.getInventory().addItem(H);
                            Sterne.S1.remove(t);
                            GS.add(t);
                            Bukkit.getConsoleSender().getServer().dispatchCommand(Bukkit.getConsoleSender(), "effect " + t.getName() + " clear");
                           
                            Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
                               
                               
                                @Override
                                public void run() {
                                   
                                }   
                            }, 20*6000);
                           
                            GS.remove(t);
                            t.teleport(ps);
                            t.sendMessage(Main.prefix + "§7Du hast deine Gefängnisstrafe abgesessen.");
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Wie stelle ich mir das vor?

Muss
Code:
 GS.remove(t);
                            t.teleport(ps);
                            t.sendMessage(Main.prefix + "§7Du hast deine Gefängnisstrafe abgesessen.");
in den Scheduler?
Ich würde mir vor allem überlegen was passiert, wenn der Server zwischen dem Ablauf des Zählers runter gefahren wird oder der Spieler nicht mehr online ist.
 

Kraetzy

Redstoneengineer
Registriert
16 Dezember 2017
Beiträge
41
Alter
22
Diamanten
250
Minecraft
MinesuchtBOT
Scheduler nimmt den Code nicht an. (Scheduler endet mehr oder weniger nie)


Code:
Code:
if(Sterne.S1.contains(t)) {
                               
                            t.teleport(loc);
                            p.sendMessage(Main.prefix + "§7Du hast " + t.getName() + " in die JVA eingeliefert.");
                            t.sendMessage(Main.prefix + "§7Du wurdest in die JVA eingeliefert.");
                            Handschellen.HL.remove(p);
                            p.getInventory().addItem(H);
                            Sterne.S1.remove(t);
                            GS.add(t);
                            Bukkit.getConsoleSender().getServer().dispatchCommand(Bukkit.getConsoleSender(), "effect " + t.getName() + " clear");
                           
                            taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(Main.getPlugin(), new Runnable() {
                               
                                int count = 10;
                                @Override
                                public void run() {
                                    count --;
                                   
                                    if(count == 0) {
                                    GS.remove(t);
                                    t.teleport(ps);
                                    t.sendMessage(Main.prefix + "§7Du hast deine Gefängnisstrafe abgesessen.");
                                    Bukkit.getScheduler().cancelTask(taskID);
                                    }
                                }   
                            }, 0, 20);
 

Kraetzy

Redstoneengineer
Registriert
16 Dezember 2017
Beiträge
41
Alter
22
Diamanten
250
Minecraft
MinesuchtBOT
Ich habe es anders versucht, wieso klappt es nicht?

Code:
if(args.length == 1) {
                    Player t = Bukkit.getPlayer(args[0]);
                    Location plocation = t.getLocation();
                if(Handschellen.HL.contains(p)) {
                    if(t != null) {
                        if(p.getLocation().distance(plocation) <= blockDistance) {       
                            if(Sterne.S1.contains(t)) {
                               
                            t.teleport(loc);
                            p.sendMessage(Main.prefix + "§7Du hast " + t.getName() + " in die JVA eingeliefert.");
                            t.sendMessage(Main.prefix + "§7Du wurdest in die JVA eingeliefert.");
                            Handschellen.HL.remove(p);
                            p.getInventory().addItem(H);
                            Sterne.S1.remove(t);
                            GS.add(t);
                            Bukkit.getConsoleSender().getServer().dispatchCommand(Bukkit.getConsoleSender(), "effect " + t.getName() + " clear");
                           
                            Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
                               
                               
                                @Override
                                public void run() {
                                   
                                    GS.remove(t);
                                    t.teleport(ps);
                                    t.sendMessage(Main.prefix + "§7Du hast deine Gefängnisstrafe abgesessen.");
                                   
                                }   
                            }, 20*5);
                            return true;
 
Oben