Java "Timer" Yardımı gerekiyor!

MrPoteyto

Is the excellence? Ok..
En iyi cevaplar
0
Merhaba. Konuyu çok fazla uzatmayacağım, hemen soruma geçeceğim. Bu konumuzda kodlayacağım minecraft eklentisi için bir Timer gerekiyor ve Timer'i yeni öğrendiğim için pek fazla şey bilmemekteyim. Eğer aranızda bilenler varsa anlaşılır bir şekilde bana anlatabilir mi? Cevaplarınızı bekliyorum.

- (Sıkı bir java eğitim videosu izlemem gerekiyor :ciddi:)
 

CoffeeBeat

Zindev
En iyi cevaplar
0
Bukkit içinde Timer kullanman Bukkit'in işleyişini bozabilir(%90 bozar).

Bukkit'in zamanlama için kendine ait bir package'ı var.(Bukkit Scheduler ismi)
Basitçe anlatmak gerkirse BukkitScheduler adında bir obje var ve bu objeye erişerek zamanla alakalı işlemler yapıyorsun.

Örnek Kod:
Kod:
    //Bukkit.getScheduler().runTaskLater([Olayı başlatan eklenti], [olay], [bekleme süresi]);

                Bukkit.getScheduler().runTaskLater(Main.ekl,
                        () -> Bukkit.broadcastMessage("Bu mesaj 2 saniye önce planlanmıştı! Yaşasın"), 2 * 20);
                
                //Bukkit.getScheduler().runTaskTimer([Olayı başlatan eklenti], [olay], [başlamdan önce bekleme süresi],[tekrar süresi]);
                BukkitTask repeat = Bukkit.getScheduler().runTaskTimer(Main.ekl,
                        () -> Bukkit.broadcastMessage(
                                "Bu mesaj 2 saniye önce planlanmıştı ve şimdi her 5 saniyede bir iptal edilene kadar tekrarlanacak !"),
                        20 * 2, 20 * 5);
                
                // Sürekli tekrarlanan task'ı iptal etme.Plugin disable olurken
                // kullanırsın genelde
                repeat.cancel();

Kaynak:
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
 

MrPoteyto

Is the excellence? Ok..
En iyi cevaplar
0
Bukkit içinde Timer kullanman Bukkit'in işleyişini bozabilir(%90 bozar).

Bukkit'in zamanlama için kendine ait bir package'ı var.(Bukkit Scheduler ismi)
Basitçe anlatmak gerkirse BukkitScheduler adında bir obje var ve bu objeye erişerek zamanla alakalı işlemler yapıyorsun.

Örnek Kod:
Kod:
    //Bukkit.getScheduler().runTaskLater([Olayı başlatan eklenti], [olay], [bekleme süresi]);

                Bukkit.getScheduler().runTaskLater(Main.ekl,
                        () -> Bukkit.broadcastMessage("Bu mesaj 2 saniye önce planlanmıştı! Yaşasın"), 2 * 20);
               
                //Bukkit.getScheduler().runTaskTimer([Olayı başlatan eklenti], [olay], [başlamdan önce bekleme süresi],[tekrar süresi]);
                BukkitTask repeat = Bukkit.getScheduler().runTaskTimer(Main.ekl,
                        () -> Bukkit.broadcastMessage(
                                "Bu mesaj 2 saniye önce planlanmıştı ve şimdi her 5 saniyede bir iptal edilene kadar tekrarlanacak !"),
                        20 * 2, 20 * 5);
               
                // Sürekli tekrarlanan task'ı iptal etme.Plugin disable olurken
                // kullanırsın genelde
                repeat.cancel();

Kaynak:
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
Teşekkürler :)
 

GodofMilker

Nether Yerlisi
En iyi cevaplar
0
Bukkit içinde Timer kullanman Bukkit'in işleyişini bozabilir(%90 bozar).

Bukkit'in zamanlama için kendine ait bir package'ı var.(Bukkit Scheduler ismi)
Basitçe anlatmak gerkirse BukkitScheduler adında bir obje var ve bu objeye erişerek zamanla alakalı işlemler yapıyorsun.

Örnek Kod:
Kod:
    //Bukkit.getScheduler().runTaskLater([Olayı başlatan eklenti], [olay], [bekleme süresi]);

                Bukkit.getScheduler().runTaskLater(Main.ekl,
                        () -> Bukkit.broadcastMessage("Bu mesaj 2 saniye önce planlanmıştı! Yaşasın"), 2 * 20);
              
                //Bukkit.getScheduler().runTaskTimer([Olayı başlatan eklenti], [olay], [başlamdan önce bekleme süresi],[tekrar süresi]);
                BukkitTask repeat = Bukkit.getScheduler().runTaskTimer(Main.ekl,
                        () -> Bukkit.broadcastMessage(
                                "Bu mesaj 2 saniye önce planlanmıştı ve şimdi her 5 saniyede bir iptal edilene kadar tekrarlanacak !"),
                        20 * 2, 20 * 5);
              
                // Sürekli tekrarlanan task'ı iptal etme.Plugin disable olurken
                // kullanırsın genelde
                repeat.cancel();

Kaynak:
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
() -> (kod)
olan kısımlar aslında runnable yani*
new Runnable() {
public void run() {
kod
}
}

veya () -> {1 satırdan fazla kod} şeklinde de kullanılabiliyor
 

MrPoteyto

Is the excellence? Ok..
En iyi cevaplar
0
Bu arada ilk yazdığın kodda başlatan eklentiye this yazsak oluyormu ?
 
Üst