1. Merhaba Ziyaretçi foruma kayıt olarak hediye kodu alabilirsin!
  2. Merhaba Ziyaretçi ! IP: play.LifeMCServer.com SkyBlock Sürüm: 1.7.X-1.8.X Senide aramızda görmek isteriz.
    Duyuruyu Kapat

Ders Plugin Yazma Rehberi #1 | Başlangıç

'Plugin Ders' forumunda roaach tarafından 22 Ocak 2019 tarihinde açılan konu

  1. roaach

    roaach Vip Üye
    Vip Üye

    Katılım:
    15 Temmuz 2018
    Mesaj:
    582
    Beğenilmeler:
    530
    GDQYpZ.png
    Plugin Yazma Rehberi
    GDQYpZ.png

    Herkese merhaba bu konumda sizlere nasıl basit bir minecraft eklentisi yaparsınız onu göstereceğim.
    İlk olarak kurulumları yapıp başlayacağız.
    Java IDE'si (IDE bizim programlama dilleri ile uygulama geliştirmemizi kolaylaştıran
    uygulamalara / aplikasyonlara verilen ad.) olarak sektörde 3 tane lider program vardır.
    En popüleri ve en çok kullanılanı Eclipse'dir.
    Biz bugün Eclipse kullanacağız.
    Eclipse programını Linkleri görebilmek için sitemize kayıt olmalısın. sitesinden indirebilirsiniz.

    Programa girdikten sonra sol üst kısımdan File > New > Java Project diyoruz.
    O kısımdan proje adımızı girip Next (İleri) diyoruz.
    Ardından yukarıdan Libraries 'i seçiyoruz.
    Add External Jars diyoruz. Bu kısımda açılan eclipse'nin libraries klasöründen eklentinizin minecrafta uymasını sağlamak için bir dosya seçmeniz gerekir. Bu dosyayı Linkleri görebilmek için sitemize kayıt olmalısın. indirebilirsiniz. İndirdikten sonra o açılan kısımdaki konuma atın ve seçip onaylayın. Ardından Finish diyin.

    Ardından bir paket dosyası oluşturmanız gerekmekte bunun için açtığınız dosyanın alt kısımlarındaki "src" kısmına sağ tıklayıp New > Package diyin.
    Açılan kısma package isminizi girmeniz gerek. Bu kısmı me.<takma isminiz> şeklinde yapabilirsiniz örneğin me.roaach .

    Şimdi ise class dosyası oluşturmamız gerekli. Bunun için oluşturduğumuz package dosyasına sağ tıklayıp New > Class diyin. Ardından açın. Açılan dosya da ilk yapmamız gereken final eklemek. İlk başlarda gereksiz gibi görünse de final kullanmak her zaman daha iyidir performans açısından vesaire uygulamanın daha hızlı çalışmasını sağlar.
    Kod (Text):
    1. package me.lumturi;
    2.  
    3. public final class lumpl {
    4.  
    5. }

    Ardından bukkite bu classın bir eklentiyi temsil ettiğini bildirmemiz gerek. Bu yüzden extends JavaPlugin ve implements Listener yazacağız.
    Kod (Text):
    1. package me.lumturi;
    2.  
    3. public final class lumpl extends JavaPlugin implements Listener {
    4.  
    5. }

    Bunları yaptıktan sonra CTRL + SHIFT + O ve CTRL + S yapıyoruz
    böylece hatalar çözülüyor.
    Kod (Text):
    1. package me.lumturi;
    2.  
    3. import org.bukkit.event.Listener;
    4. import org.bukkit.plugin.java.JavaPlugin;
    5.  
    6. public final class lumpl extends JavaPlugin implements Listener {
    7.  
    8. }
    9.  

    Şimdi bir plugin.yml dosyası eklememiz gerekli. Projeye sağ tıklayıp New > File diyoruz.
    Açılan kısımdan isime plugin.yml diyoruz ve Finish diyoruz.
    Ardından dosya oluşturulduktan sonra sistem editörü ile açılıyor. Burada bazı doldurmamız gereken şeyler var.
    Örneğin:
    Kod (Text):
    1. name: Deneme Pl //eklentimizin adını yazıyoruz
    2. main: me.lumturi.lumpl  //eklentimizin ana class adını yazıyoruz
    3. version: 0.1 //eklenti sürümünü yazıyoruz
    4. description: Test plugin for Bukkit //açıklamasını yazıyoruz.
    5. author: Lumturi //yapımcısını yazıyoruz.

    Bunları kendinize göre doldurun.

    Şimdi ilk olarak eklenti açıldığında konsolumuza bir mesaj göndermesini sağlayalım.
    Bunun için ilk olarak onEnable ve onDisable 'yi öğrenmemiz gerekli.
    onEnable eklenti yüklenirken yapılacaklar , onDisable eklenti devre dışı olurken yapılacaklar.
    şimdi eklenti yüklenirken ve devre dışı olurken konsola mesaj yazdıralım.
    Kod (Text):
    1. package me.lumturi;
    2.  
    3. import org.bukkit.event.Listener;
    4. import org.bukkit.plugin.java.JavaPlugin;
    5.  
    6. public class lumpl extends JavaPlugin implements Listener {
    7.  
    8.     @Override
    9.     public void onEnable() { //eklenti açılırken
    10.         getLogger().info("Plugin Aktif!");  //bilgi mesajı verdik
    11.         getLogger().severe("Hata Mesajı!"); //hata mesajı verdik
    12.         getLogger().warning("Uyarı Mesajı!"); //uyarı mesajı verdik
    13.     }
    14.  
    15.     @Override
    16.     public void onDisable() {  //eklenti kapanırken
    17.         getLogger().info("Plugin Devre Dışı!");  //bilgi mesajı verdik
    18.     }
    19.  
    20. }
    Burada .info bu bir bilgi mesajı gönderir , .servere bu bir hata mesajı gönderir , .warning bu bir uyarı mesajı gönderir . Bu kodda onEnable yani eklenti yüklenirken bir bilgi mesajı bir hata mesajı ve bir uyarı mesajı gönderdik . Birde onDisable yani eklenti devre dışı olurken bir bilgi komudu gönderdik.

    Şimdi eklentimiz için basit bir komut oluşturalım.​
    Kod (Text):
    1. package me.lumturi;
    2.  
    3. import org.bukkit.command.Command;
    4. import org.bukkit.command.CommandSender;
    5. import org.bukkit.event.Listener;
    6. import org.bukkit.plugin.java.JavaPlugin;
    7.  
    8. import net.md_5.bungee.api.ChatColor;
    9.  
    10. public class lumpl extends JavaPlugin implements Listener {
    11.  
    12.     @Override
    13.     public boolean onCommand(final CommandSender sender, final Command command, final String label,
    14.             final String[] args) {
    15.         if ("test".equalsIgnoreCase(command.getName())) { //oyuncu test komutunu girdiğinde
    16.             sender.sendMessage(ChatColor.GREEN + "Selam, " + sender.getName() + "!"); //oyuncuya yeşil renkte bu mesaj iletilir.
    17.         }
    18.         return true;
    19.     }
    20.  
    21. }
    Bu komutta Oyuncu test komutunu girdiğinde oyuncuya yeşil renkte "Selam, <oyuncu ismi>" mesajı gidecektir.
    Bu mesajı kendinize göre özelleştirebilirsiniz.

    Ayrıca bir komut yaptıktan sonra o komutu plugin.yml ye eklemeniz gerekir.​
    Kod (Text):
    1. command:
    2.     test:
    plugin.yml ye bunu yazmanız yeterli olucaktır. Buna ekstra olarak komutun açıklamasını vb. girebilirsiniz.

    Ayrıca komuta permission (yetki) de ekliyebilirsiniz.
    Bunun için
    "if (sender.hasPermission("test.lumturi")) {}" kullanacağız . Burada "test.lumturi" yetkisi ve op olanlar hariç kişiler kodu kullanamayacaktır. Bunu koda şöyle ekliyebiliriz.​
    Kod (Text):
    1. package me.lumturi;
    2.  
    3. import org.bukkit.command.Command;
    4. import org.bukkit.command.CommandSender;
    5. import org.bukkit.event.Listener;
    6. import org.bukkit.plugin.java.JavaPlugin;
    7.  
    8. import net.md_5.bungee.api.ChatColor;
    9.  
    10. public class lumpl extends JavaPlugin implements Listener {
    11.  
    12.     @Override
    13.     public boolean onCommand(final CommandSender sender, final Command command, final String label,
    14.             final String[] args) {
    15.         if ("test".equalsIgnoreCase(command.getName())) {
    16.             if (sender.hasPermission("test.lumturi")) { //test.lumturi yetkisi olanlar ve oplar dışında kullanılmaz.
    17.                 sender.sendMessage(ChatColor.GREEN + "Selam, " + sender.getName() + "!");
    18.             }
    19.             return true;
    20.         }
    21.         return false;
    22.     }
    23.  
    24. }
    25.  
    Kodda hata çıkarsa yine CTRL + SHIFT + O ve CTRL + S yapabilirsiniz.

    Sadece bu bilgilerle kalmak yerine internet üzerinden değişik şeyler öğrenebilirsiniz.
    Kendinizi geliştirerek ilerde çok güzel pluginler tasarlayabilirsiniz , bol şans.
    :blob-dilçıkarmışgözkırpmış:
     
    Cnty_Emo, mbboyun, ToprakM ve 1 kişi daha bunu beğendi.
  2. Cnty_Emo

    Cnty_Emo Sponsor Üye
    Sponsor Üye Emekli

    Katılım:
    6 Haziran 2018
    Mesaj:
    889
    Beğenilmeler:
    1.037
    Eline sağlık.
     
  3. roaach

    roaach Vip Üye
    Vip Üye

    Katılım:
    15 Temmuz 2018
    Mesaj:
    582
    Beğenilmeler:
    530
    Teşekkürler :)
     
  4. mbboyun

    mbboyun Süper Üye
    Süper Üye Yardımcı Moderatör Sponsor Üye

    Katılım:
    20 Nisan 2018
    Mesaj:
    1.470
    Beğenilmeler:
    1.973
    Eline sağlık.
     
  5. roaach

    roaach Vip Üye
    Vip Üye

    Katılım:
    15 Temmuz 2018
    Mesaj:
    582
    Beğenilmeler:
    530
    Teşekkürler.
     
  6. AssassinDaan

    AssassinDaan You Shall Not Pass
    Forum Baş Yöneticisi

    Katılım:
    31 Ekim 2017
    Mesaj:
    2.837
    Beğenilmeler:
    3.538
    2 Saatte iyi bir konu çıkarmışsın. :gandalf:
     
  7. roaach

    roaach Vip Üye
    Vip Üye

    Katılım:
    15 Temmuz 2018
    Mesaj:
    582
    Beğenilmeler:
    530
    2 Saatten fazla galiba :)

    Teşekkürler :blob-dans:
     
  8. bombacan

    bombacan Beni Patlatamazsın Genç
    Sponsor Üye Vip Üye

    Katılım:
    26 Ocak 2018
    Mesaj:
    407
    Beğenilmeler:
    219
    herşey güzel ancak en iyisi eclipse değil mağlesefki
    ama yinede emek vermişsin başarılar. Bu arada seni pluginer olarak görmek isterim
     
  9. roaach

    roaach Vip Üye
    Vip Üye

    Katılım:
    15 Temmuz 2018
    Mesaj:
    582
    Beğenilmeler:
    530
    Teşekkürler.
    :)
     
  10. bombacan

    bombacan Beni Patlatamazsın Genç
    Sponsor Üye Vip Üye

    Katılım:
    26 Ocak 2018
    Mesaj:
    407
    Beğenilmeler:
    219
    1.5 yıl sonra yazmak ne kadar acı verici olsada final yazdığını şimdi farkediyorum
    final tagını hiçbr yerde değiştirememek için kullanırıs
    final int = 30;
    dersek burda eğer bir methodun içine
    int += 10;
    dersek java bize final tagına sahip bir veriableye ulaşmaya çalıştın ya final tagını kaldır ya da biraz önce yazdığın
    İnt +=10 kodunu sil der
     
    AssassinDaan ve ToprakM bunu beğendi.

Bu Sayfayı Paylaş

Bu Konuya Bakan Kullanıcılar (Kullanıcı: 0, Ziyaretçi: 0)