Java "Timer" Yardımı gerekiyor!

MrPoteyto

Is the excellence? Ok..
Mesajlar
226
En iyi cevaplar
0
Beğeniler
80
Puanları
180
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
Mesajlar
501
En iyi cevaplar
0
Beğeniler
958
Puanları
1,320
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:
Scheduler Programming
 

MrPoteyto

Is the excellence? Ok..
Mesajlar
226
En iyi cevaplar
0
Beğeniler
80
Puanları
180
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:
Scheduler Programming
Teşekkürler :)
 

GodofMilker

Nether Yerlisi
Mesajlar
2,196
En iyi cevaplar
0
Beğeniler
2,562
Puanları
6,790
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:
Scheduler Programming
() -> (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..
Mesajlar
226
En iyi cevaplar
0
Beğeniler
80
Puanları
180
Bu arada ilk yazdığın kodda başlatan eklentiye this yazsak oluyormu ?
 

Üst