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

Wie macht man einen message delay?

BalkanTrupp

Minecrafter
Registriert
12 März 2017
Beiträge
2
Alter
23
Diamanten
300
Liebe Community,

ich habe ein Problem. Ich versuche zwischen meinen messages einen Delay reinzuhauen, funktioniert einfach nicht..

Javascript:
package at.fraxly.main;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;

public class Join extends JavaPlugin implements Listener{
 
    @Override
    public void onEnable(){
        this.getServer().getPluginManager().registerEvents(this, this);
     
    } 
 
    @EventHandler
    public void onJoin(PlayerJoinEvent e){
        Player p = e.getPlayer();
     
        e.setJoinMessage("");
     
        if (p.hasPlayedBefore()) return;
 
        getServer().broadcastMessage("§6[§fBalkan-Leben§6] §aDer Spieler §6" + p.getName() + "§aist neu auf dem Server!");
     
        p.sendMessage("§6[§fBalkan-Leben§6] §aHerzlich Wilkommen auf diesem Server §6" + p.getName() + "§a!");
        Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
        public void run() {
                p.sendMessage("§6[§fBalkan-Leben§6] §aDies ist ein Minecraft Leben Server, der am §6 23.03.2018 §agegründet wurde!");
         
                }
                }, 5);
     
        Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
        public void run() {
                p.sendMessage("§6[§fBalkan-Leben§6] §aDer Bürgermeister ist §6Fraxly§a!");
         
                }
                }, 5);
     
        Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
        public void run() {
                p.sendMessage("§6[§fBalkan-Leben§6] §aViel Spaß auf dem Server§6" + p.getName() + "§a!");
         
                }
                }, 5);
     
        return;
 
    }
}

Wäre jedem dankbar!

Lg

//Dean: Logs, Code & Configs bitte entweder als Code einfügen oder als Dateianhang, bzw.auf pastebin.com hochladen! Danke!
 
Zuletzt bearbeitet von einem Moderator:

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Die Tasks registrierst du alle zu dem Zeitpunkt, wenn der Spieler den Server betritt. Nach 5 Ticks (also nach 0,25 Sekunden) werden die Nachrichten dann alle auf einmal verschickt. Überlege dir einfach nach wieviel Sekunden die jeweilige Nachricht versendet werden soll, multipliziere diese Zahl mit 20 und trage sie als Verzögerung für die jeweilige Nachricht ein.
 

BalkanTrupp

Minecrafter
Registriert
12 März 2017
Beiträge
2
Alter
23
Diamanten
300
Die Tasks registrierst du alle zu dem Zeitpunkt, wenn der Spieler den Server betritt. Nach 5 Ticks (also nach 0,25 Sekunden) werden die Nachrichten dann alle auf einmal verschickt. Überlege dir einfach nach wieviel Sekunden die jeweilige Nachricht versendet werden soll, multipliziere diese Zahl mit 20 und trage sie als Verzögerung für die jeweilige Nachricht ein.

Ich habe bei jedem statt 5 Ticks, 100 Ticks (5 Sek,) eingetragen.

Nach 5 Sekunden erscheint dann alles...
 

ausgebildet

Redstoneengineer
Registriert
30 Juni 2017
Beiträge
41
Alter
27
Diamanten
300
Minecraft
ausgebildet
Ich frage mich , was daran so schwer ist den Code in einem richtigen Format einzufügen sodass ihn jeder ohne Schwierigkeiten lesen kann. Nichts gegen dich. Allgemein.

Zu deinem Code , ich frage mich wieso du nicht einfach #runTaskLater(); benutzt. Ist für mich einfacher und übersichtlicher.
Hier ein Beispiel. Sollte so funktionieren.

Code:
new BukkitRunnable() {
           
            @Override
            public void run() {
               
                // Deine erste Naricht
               
                new BukkitRunnable() {
                   
                    @Override
                    public void run() {
                       
                        // Deine zweite Naricht
                       
                        new BukkitRunnable() {
                           
                            @Override
                            public void run() {
                               
                                // Deine dritte Naricht
                               
                            }
                        }.runTaskLater(plugin, 15L);
                       
                    }
                }.runTaskLater(plugin, 10L);
               
            }
        }.runTaskLater(plugin, 5L);
       
    }

Grüße

PS: Ich rate dir nicht alles in eine Klasse zu schreiben. Sonst verlierst du nach der Zeit den Überblick , falls du das programmieren weiterführen solltest.
 
Oben