Sol Reklam
Sağ Reklam

Rehber Spigot|Bukkit Eklenti Kodlama Rehberi #1 (Kurulum, Plugin.yml Oluşturma , İlk Eklenti)

Sizce Devamı Gelsin Mi ?

  • Evet

  • Hayır


Sonuçlar yalnızca oylamadan sonra görülebilir.
Durum
Mesaj gönderimine kapalı.

Kalerda

Vatan Sevdalısı
Katılım
13 Ağustos 2015
Mesajlar
641
Elmaslar
589
Puanlar
15.030
Yer
Türkiye
bayram.png

Spigot|Bukkit Eklenti Kodlama Rehberi Bölüm(1)

İlk olarak bu tür bir rehbere başlama sebebimi açıklayayım.
Bu konuda yaklaşık 4-5 aydır yoğunlaştım ve bu süre zarfında kaynağa ihtiyacım oldu.
Fakat ne yazık ki yeterli kaynak bulamadım , bulduysam da anlatımlarda hep yabancı dil kullanılmıştı.
Bu seri boyunca sizlerle yorumlar aracılığıyla etkileşim içinde olup, rehberimi sürdüreceğim.
Eksikleri veya istediğiniz kısımları yorum olarak belirtmekten çekinmeyin.





Çalışma Ortamının Hazırlanması
-İlk olarak Java dilinde yazdığımız kodların makine diline çevrilmesi için bir derleyiciye ihtiyacımız var.
Sizlere 2 adet derleyici önereceğim ilk olarak Eclipse ikinci olarak ise IntelliJIDEA(ücretlidir) .
Benim tavsiyem başlangıç için eclipseden yana çünkü kendisi ücretsiz bir derleyicidir.


Eclipse Orjinal Sitesi

Kurulum oldukça basittir.Bunu yaptığınızı varsayarak derse devam ediyorum.
Şimdi ise Java ile eklenti veya herhangi bir yazılım oluşturmak istiyorsanız JDK yani Java Development Kit'e ihtiyacınız var.
Bunu da aşağıdan temin edip hızlı bir kurulumla işlemi tamamlayabilirsiniz.


JDK Orjinal Sitesi

Daha sonra ise bize eklenti yazmamız için bir kütüphane gerek.Peki nedir bu kütüphane kavramı?
Burada kullandığımız kütüphane kavramı hemen hemen gerçek hayatta kullandığımız kütüphane kavramı ile eşdeğer.
Nasıl ki gerçek hayatta bilgi edinmek için kütüphaneyi kullanırız.Eklenti yazarken de kütüphaneden oyunumuza(Minecraft) dair daha önceden yazılmış ve tanımlı olan bilgileri edineceğiz.
Bu kütüphane kurulurken ihtiyacınız olan platformu belirlemeniz gerekir. Spigot için yazmak istiyorsanız Spigot , Bukkit için yazmak istiyorsanız Bukkit kütüphanesini edinmelisiniz.Benim tavsiyem şu an aşırı rövanşta ve güncel olan spigottan yana bu yüzden Spigotu kullandığımızı varsayacağım.
Alttaki linkten istediğiniz sürümü indirebilirsiniz.
Sürümünüze dikkat edin çünkü yazdığınız eklentiler yalnızca o sürümde çalışabilir.


Spigot Kütüphanesi Edinme

Bu kütüphaneyi bir yerde saklayın ileride lazım olacak.


İlk Eklentiyi Yazmak

Üstteki tüm adımları yaptıysanız artık eklenti yazmaya geçebilirsiniz.
İlk olarak Eclipseyi açıp yeni bir proje oluşturmamız gerek.



Ders (1) - Yeni Proje Oluşturma.PNG







Ders (1) - Yeni Proje Oluşturma 2.PNG

Burdan sonra next diyerek kütüphanemizi projemize eklememiz gerekir.
Next deyip devam etmemiz ve alttaki adımları yapmamız gerek.


Ders (1) - Yeni Proje Oluşturma 3.PNG

Daha sonra ilk başta projemizi oluşturduğumuz gibi yani sol altta bulunan projemizdeki sekmeleri açıp src isimli bölüme sağ tıklayıp new deyip package kısmını seçmemiz gerek daha sonra alttaki gibi bir sayfa ile karşılaşacaksınız.
Ders (1) - Yeni Proje Oluşturma 4.PNG

Burada package'e yani pakete verdiğiniz isim çok önemli mutlaka me.kalerda gibi bir etiketi olması gerek bunu kendinize göre değiştirip me.biber de yapabilirsiniz.

Ders (1) - Yeni Proje Oluşturma 5.PNG


Daha sonra yine aynı şekilde ama bu sefer oluşturduğumuz package yani paketimize sağ tıklayarak yeni class oluşturuyoruz.
Ve karşımıza alttaki gibi bir pencere açılacak, bu pencere bizim kodlarımızı yazdığımız kısım.

Ders (1) - Yeni Proje Oluşturma 6.PNG



Şuna dikkat edin /* ve */ arasındaki yazılar asla çalışmaz size daha rahat anlatabilmek adına yazdım.Normalde bu şekilde yazarsanız o satırlardaki yazılar kod olarak algılanmaz.
Daha sonra eklentinin bize ait olduğunu belirtmek adına projemizde plugin.yml isimli bir dosya açıyoruz.
Ders (1) - Yeni Proje Oluşturma 7.PNG

Ders (1) - Yeni Proje Oluşturma 8.PNG

Ders (1) - Yeni Proje Oluşturma 9.PNG

Plugin.yml dosyamızda olmazsa olmaz 3 kural vardır.
1. Kesinlikle author: yazarismi olması gerekir.
2.Kesinlikle version: 1.0 şeklinde versiyon belirtmemiz gerekir.
3. Kesinlikle ana(main) sınıfımızın(class) yerini belirtmemiz gerekir.
Ana sınıfımızın yerini belirtmek için başta oluşturduğumuz paketimiz(package)'in ismi ve ana sınıfımızın ismine ihtiyacımız var.
Daha sonra ilk olarak paketimizin ismi ile ana sınıfımızın ismi arasına nokta(.) koyup ana sınıfımızın ismini yazıyoruz ve ana sınıfımızın yerini belirtmiş oluyoruz.



Son olarak artık eklentimizi export edip kullanıma hazır hale getirmemiz gerek.
Bunu ise şu şekilde yapıyoruz.


Ders (1) - Yeni Proje Oluşturma 10.PNG


Ders (1) - Yeni Proje Oluşturma 11.PNG


Ders (1) - Yeni Proje Oluşturma 12.PNG


En son ekranın sol tarafında şu şekilde bir düzenle karşılaşmamız gerekir.
Ders (1) - Yeni Proje Oluşturma 14.PNG



Eklentimizi sunucumuzun plugins klasörüne atıp çalıştıralım ve deneyelim.
Ders (1) - Yeni Proje Oluşturma 13.PNG



Tebrikler eğer buraya kadar hatasız bir şekilde geldiyseniz kendinizi tebrik edip kutlayabilirsiniz.
Çünkü ilk eklentinizi başarıyla yazdınız.
:8


Arkadaşlar lütfen anlamadığınız veya yapamadığınız kısımları altta belirtin gerekirse tekrar güncellerim konuyu ve yorumlar kısmından sizlere yardımcı olurum.Rehber hoşunuza gittiyse elmas vermeyi ihmal etmeyin.

İyi Forumlar Dilerim...
 
Son düzenleme:

xSchenaTR

Bir Kömür Göründü Kaptanım!
Katılım
17 Kasım 2018
Mesajlar
101
Elmaslar
36
Puanlar
0
Yer
İstanbul
Tebrikler, Güzel Bir Anlatım Olmuş. Yakında Javaya Başlayacağım. Bu Konudan Yararlanabileceğimi Umuyorum.


İyi Forumlar!​
 

Kalerda

Vatan Sevdalısı
Katılım
13 Ağustos 2015
Mesajlar
641
Elmaslar
589
Puanlar
15.030
Yer
Türkiye
Tebrikler, Güzel Bir Anlatım Olmuş. Yakında Javaya Başlayacağım. Bu Konudan Yararlanabileceğimi Umuyorum.



İyi Forumlar!

Güzel yorumunuz için teşekkür ederim.
Birilerine bir şey katıyorsam ne mutlu bana.
İyi Forumlar!​
 

xDespee

Creeper Evimi Patlattı

Discord:

despee.#0581

Katılım
10 Ağustos 2017
Mesajlar
419
Elmaslar
375
Puanlar
14.275
Yaş
23
Yer
Kayseri
Minecraft
xDespee
Yapma bunu bana lütfen lütfen lütfen beni Java öğrenmek zorunda bırakma lütfen. :D
 

shad

the temple of the king

Discord:

emrenos#5027

Katılım
25 Ekim 2014
Mesajlar
1.445
Elmaslar
1.442
Puanlar
17.290
Minecraft
emrearik
Tekrardan aramızda seni görmek güzel Kalerda :' ) Bu tür işlere başlayacak olan, yardıma ihtiyacı olan arkadaşlar için güzel bir konu olmuş. Eline sağlık <3
 

kingOf0

"~SimitSu"

Discord:

kingOf0!#4055

Katılım
14 Haziran 2016
Mesajlar
998
Elmaslar
746
Puanlar
15.070
Yer
getPlayer("SimitSu").getLocation()
Minecraft
SimitSu
resimlere biraz daha emek verip, anlatımını geliştirirsen güzel bir seri olabilir.
1543046720591.png
 

Kalerda

Vatan Sevdalısı
Katılım
13 Ağustos 2015
Mesajlar
641
Elmaslar
589
Puanlar
15.030
Yer
Türkiye

kingOf0

"~SimitSu"

Discord:

kingOf0!#4055

Katılım
14 Haziran 2016
Mesajlar
998
Elmaslar
746
Puanlar
15.070
Yer
getPlayer("SimitSu").getLocation()
Minecraft
SimitSu
Devamı olacak bölümlerde resimlere daha fazla özen gösteririm.
Peki neden devamının gelmesini istemedin? :D
kısaca, anlatım biçimini sevmedim. Sadece anlatıyorsun, öğretebilmen de lazım

Ve, kimsenin bu anlatım biçimiyle bir şeyler öğrenemsini istemem, ileride sıkıntı çekerler.

mesela,
Şuna dikkat edin /* ve */ arasındaki yazılar asla çalışmaz size daha rahat anlatabilmek adına yazdım.Normalde bu şekilde yazarsanız o satırlardaki yazılar kod olarak algılanmaz.
Daha sonra eklentinin bize ait olduğunu belirtmek adına projemizde plugin.yml isimli bir dosya açıyoruz.

bence bu kısım'da iyi anlatamamışsın.

Java dilinde // ile başlayan satırlar dikkate alınmaz.
eğer birkaç satırı /* */ içine alırsanız, içine aldığınız satırlar da dikkate alınmayacaktır.

Sunucunun, eklentiyi nasıl çalıştıracağını söylemek, yapımcısının adını ve pluginin açıklamasını yazmak için plugin.yml adında bir dosya oluşturmalıyız.
(kelimeleri sürekli aynı ağızdan ve bakış açısından yazmaya dikkat et)

şeklinde olması anlamaktan çok öğreteceği için ileride bazı şeyleri kendi düşünüp*, java'nın mantığını kavramasında yararlı olabilir, dolayısıyla temel önemli.

* Sadece bu 2 satırlık cümleleri kastetmiyorum, java'nın nasıl çalıştığını anladıktan sonra ingilizceniz iyiyse ve mantıklı düşünebiliyorsanız devamı gelir, anlamını taşımaktadır.

bunu nedenleriyle desteklenmiş ağır bir eleştiri olarak görmeni ve bu eleştiri doğrultusunda anlatımını geliştirmeni isterim.
 

patrick2dev

ölü.
Katılım
11 Aralık 2017
Mesajlar
815
Elmaslar
733
Puanlar
8.305
Güzel bir konu yeni başlayanlar için.
Başarılar dilerim ++
 

xSchenaTR

Bir Kömür Göründü Kaptanım!
Katılım
17 Kasım 2018
Mesajlar
101
Elmaslar
36
Puanlar
0
Yer
İstanbul
Reis birde plugin editlemeyi öğret ya :D Trading de bir slotu başka bir slota taşıyacam, Fakat JAVA Bilmiyom :D
 

MitchellFanGirl

Odunlara Vur Vur Vur!

Discord:

VS | Mee6#5413

Katılım
18 Ocak 2019
Mesajlar
25
Elmaslar
0
Puanlar
0
Yaş
24
Minecraft
Lord170
Kütüphaneyi indiremedim yardım eder misin discord adresim: VS | Mee6 #5413
 

Kalerda

Vatan Sevdalısı
Katılım
13 Ağustos 2015
Mesajlar
641
Elmaslar
589
Puanlar
15.030
Yer
Türkiye

Abdullah T.

Nötr
Yasaklandı

Discord:

Abdullah T.#0001

Katılım
19 Nisan 2018
Mesajlar
1.524
Elmaslar
1.083
Puanlar
5.650
Yer
Kocaeli/Gebze
Minecraft
JordJarv
Okeyde Devamı Gelsin
 

Nikto

.
Katılım
8 Kasım 2014
Mesajlar
3.051
Elmaslar
1.099
Puanlar
0
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı