Plugin Yazanlar İçin Yararlı Bir Bilgi

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
Merhaba arkadaşlar,
Plugin yazanların çoğu bilir, scheduler denilen bir olay var, bunu saniye beklemek için kullanıyoruz.
Normalde bunu:
Kod:
        Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable(){
            @Override
            public void run(){
                //olaylar
            }
        },20*10);
Şeklinde kullanırız fakat bunu çöpe atın! Onun yerine bunu kullanabillirsiniz:
Kod:
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
                          // olaylar
Bu kod daha pratikdir ve daha kısadır.
1000 yazarsanız 1 saniye bekler.
Umarım yararlı bir bilgi vermişimdir :)
iyi günler, iyi forumlar. :)
NOT: Altdaki yöntem kullandığınız plugini kaç saniye yazdıysanız o kadar saniye kullanamamanıza sebep olur.​
 


Son düzenleme:

Admicos

Nether Yerlisi
Mesajlar
2,362
En iyi cevaplar
1
Beğeniler
1,580
Puanları
4,890
Ruh hali
Eğer başka bir thread kullanmıyorsak Thread.sleep(1000); bir saniye boyunca sunucudaki her şeyi durdurur ve bir saniyelik laga sebep olur. Bence üstteki daha iyi ama emin değilim.
 

Dantero

Elmas Madencisi
Mesajlar
881
En iyi cevaplar
0
Beğeniler
514
Puanları
1,310
Ruh hali
Eğer başka bir thread kullanmıyorsak Thread.sleep(1000); bir saniye boyunca sunucudaki her şeyi durdurur ve bir saniyelik laga sebep olur. Bence üstteki daha iyi ama emin değilim.
Hayır kesinlikle sunucuda lag falan yapmıyor denedim. Sadece oraya kaç saniye yazdıysanız o kadar plugini kullanamıyorsunuz. Bana sorarsanız hangisi diye üstteki derim ama bazı yerlerde altdaki lazım oluyor :)
 

Krumb069

Nether Yerlisi
Mesajlar
2,151
En iyi cevaplar
1
Beğeniler
506
Puanları
1,250
skriptteki wait olayı bunu mu kullanıyor
 

Cissoid

Yeni Üye
Mesajlar
0
En iyi cevaplar
0
Beğeniler
1
Puanları
0
Yanlış bilgilendirme, ilk olarak büyük bir hata olan kısımdan başlayalım. CraftBukkit'te zaten Thread kütüphanesini kullanamazsınız engellidir, eğer kullanılsaydı sunucu girdiğiniz süre boyunca işlem yapmazdı ki günümüz sürümlerinde bunu yapmanız mümkün değil. hiçbir Bukkit eklentisi bu yöntemi kullanmaz zararlıdır ve bunun için alternatif olarak bir kaç yol eklenmiştir bunlardan sadece bir tanesi BukkitScheduler sınıfıdır. Fakat bilmeniz gerek ki tekrarlıyorum; alttaki yöntem kesinlikle yanlıştır ve sunucunun içine eder, bilmediğiniz konular hakkında paylaşım yapmaktan lütfen kaçının.Aşağıdaki adreste 2 adet yöntem belirtilmiştir birisi BukkitScheduler sınıfı iledir (Tavsiye edilen de budur) öbürü ise algoritma ile bu işin çözülmüş halidir ki daha fazla RAM tüketmesi kaçınılmazdır. Bu arada aşağıdaki adreste de bu yöntemin ne kadar güvensiz ve kalitesiz olduğunu belirten bir konu da mevcuttur.

Hayır kesinlikle sunucuda lag falan yapmıyor denedim. Sadece oraya kaç saniye yazdıysanız o kadar plugini kullanamıyorsunuz. Bana sorarsanız hangisi diye üstteki derim ama bazı yerlerde altdaki lazım oluyor :)
Bu şey sunucuyu durdurur, eklentiyi değil.

skriptteki wait olayı bunu mu kullanıyor
Bir kere bunu sınıfsal şekilde kullanmak zaten zordur ki BukkitScheduler ile Skript'e entegre edilmesi daha kolaydır bundan ötürü Skript hayır, bunu kullanmıyor aşağıda paylaşacağım adresten projeyi inceleyebilirsiniz ve bilgi sahibi olabilirsiniz,

İyi forumlar.
Kod:
https://bukkit.org/threads/waiting-x-time-before-executing-command.109629/
https://bukkit.org/threads/delays-thread-sleep-isnt-working.68627/
https://github.com/Njol/Skript/blob/23fa87ffb32e4d18014ad7ec63d1acc30e00ad69/src/main/java/ch/njol/skript/effects/Delay.java
 
Son düzenleme:

Dpelqpleq

2 + 2 = 5
Mesajlar
1,037
En iyi cevaplar
0
Beğeniler
1,201
Puanları
0
Yanlış bilgilendirme, ilk olarak büyük bir hata olan kısımdan başlayalım. CraftBukkit'te zaten Thread kütüphanesini kullanamazsınız engellidir, eğer kullanılsaydı sunucu girdiğiniz süre boyunca işlem yapmazdı ki günümüz sürümlerinde bunu yapmanız mümkün değil. hiçbir Bukkit eklentisi bu yöntemi kullanmaz zararlıdır ve bunun için alternatif olarak bir kaç yol eklenmiştir bunlardan sadece bir tanesi BukkitScheduler sınıfıdır. Fakat bilmeniz gerek ki tekrarlıyorum; alttaki yöntem kesinlikle yanlıştır ve sunucunun içine eder, bilmediğiniz konular hakkında paylaşım yapmaktan lütfen kaçının.Aşağıdaki adreste 2 adet yöntem belirtilmiştir birisi BukkitScheduler sınıfı iledir (Tavsiye edilen de budur) öbürü ise algoritma ile bu işin çözülmüş halidir ki daha fazla RAM tüketmesi kaçınılmazdır. Bu arada aşağıdaki adreste de bu yöntemin ne kadar güvensiz ve kalitesiz olduğunu belirten bir konu da mevcuttur.


Bu şey sunucuyu durdurur, eklentiyi değil.


Bir kere bunu sınıfsal şekilde kullanmak zaten zordur ki BukkitScheduler ile Skript'e entegre edilmesi daha kolaydır bundan ötürü Skript hayır, bunu kullanmıyor aşağıda paylaşacağım adresten projeyi inceleyebilirsiniz ve bilgi sahibi olabilirsiniz,

İyi forumlar.
Kod:
https://bukkit.org/threads/waiting-x-time-before-executing-command.109629/
https://bukkit.org/threads/delays-thread-sleep-isnt-working.68627/
https://github.com/Njol/Skript/blob/23fa87ffb32e4d18014ad7ec63d1acc30e00ad69/src/main/java/ch/njol/skript/effects/Delay.java
Arkadas haklı. Konuyu ilk gördüğümde de dedim ne gerek var diye iykide denememisim. Biz üsengec insanlarız yapmayın böyle. Sonra geri cevir falan urasıyoruz enerjimiz hızlı bitiyor.
 

KaanGunlu

Işık Taşı Madencisi
Mesajlar
3,239
En iyi cevaplar
0
Beğeniler
4,843
Puanları
6,840
ikisi aynı şey değil.
farklı işlemler için bunlar.
 

Üst