Plugin yazmaya giriş.

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Başka bir konudaki mesajımı, daha çok kişinin görmesi için konu olarak burada açıyorum.

Sorulan soru: Plugin üretirken hangi program kullanılır.

Konudaki cevabım:

Öncelikle Eclipse Java'yı indir. NetBeans de kullanabilirsin ama Eclipse Türkçe karakterlerde sorun çıkarmadığından tercihimdir.
Eclipse Keplerr: http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplerr

Sonrasında, eğer bir Bukkit plugini yazmak istiyorsan, Bukkit Library'sine ihtiyacın vardır. Library olarak Bukkit Dev sürümünün son versiyonunu kullanmanı öneririm.
Son sürüm library: http://dl.bukkit.org/latest-dev/bukkit.jar

Eclipse'i sıkıştırılmış dosyadan herhangi bir yere çıkartın. İçerisindeki Eclipse.exe dosyasını çalıştırın. Bir çalışma alanı klasörü seçtikten sonra program tamamen açılacak. Tutorial kısmını çarpı'ya basarak kapatın.

Şimdi; bir plugin yazmaya başlamak için yeni bir proje oluşturuyoruz. Bunun için File > New > Java Project seçiyorsunuz.

Bukkit Plugin Tutorial sayfasındaki resmi:


Projenizi oluşturup, ismini de verdikten sonra soldaki panele (Package Explorer) pluginin klasörü oluşacaktır. İçerisinde bulunan src klasörü, sizin java kodlarınızın ve plugin.yml dosyanızın bulunması gereken klasördür.

Ardından, Pluginimize Bukkit Library'sini gösteriyoruz. Bunun için soldaki panelde bulunan plugin klasörüne sağ tıklıyoruz ve Properties'i seçiyoruz.
Ardından Libraries sekmesine gelip, Add External JARs... butonuna basıyoruz vehttp://dl.bukkit.org/latest-dev/bukkit.jar adresinden indirmiş olduğumuz son sürüm library'i seçiyoruz. Şimdi plugin yazmaya hazırız.

Öncelikle, ilk plugininizi yazmakta zorlanabilirsiniz. Hiç java bilginizin olmadığını varsayıyorum. Normal şartlarda paket ve sınıflar oluşturmanız gerekiyor.
Ancak Bukkit adminlerinden Dinnerbone'un yapmış olduğu Pluginator denen bir uygulaması var. Ben şimdilik bunun üzerinden gitmek istiyorum.

Pluginator linki: http://dinnerbone.com/minecraft/tools/pluginator/

Şimdi, bu sayfadaki ilk kutuya pluginimizin ismini yazıyoruz.
2. kutuya ise pluginin versiyonunu yazıyoruz. Genellikle ilk versiyon 1.0 olur.
3. kutuya plugin yazarının ismi yazılır.
4. sıradaki checkbox ise pluginin veritabanı kullanıp kullanmadığını sorar.
5. sıradaki selectbox ise pluginin ne zaman devreye gireceğini sorar.
Üstteki seçenek server başladığında, alttaki de dünyalar yüklendikten sonra.
6. sıradaki de paketimizin ismini soruyor. Bunun her pluginde farklı olması, çakışmayı engellemesi için vardır. me.isim.pluginismi olabilir. yeter ki benzersiz olsun.
7. sıradaki ise ana sınıfın ismidir. Yani ilk java dosyasının adını sorar. Bu ilk ana sınıf plugin.yml'de doğru şekilde gösterilmelidir.
8. kısım ise pluginin açıklamasıdır. Türkçe karakter kullanmayın.

Bu formu doldurduktan sonra Generate butonuna basarak plugini oluşturun. Size kaynak kodları sıkıştırılmış paket dosya halinde verecektir. Bunu bilgisayarınızda bir yere indirin.

Şimdi Eclipse'e dönüyoruz...
Package Explorer'da plugin klasörümüzün içerisinde bulunan src klasörüne sağ tıklayıp, import seçeneğini seçiyoruz. Archive File seçerek ileri diyoruz. Ardından indirdiğimiz paket dosyayı seçip import ediyoruz.
Pluginimiz aslında şu haliyle hazırdır...
Ana sınıfta istediğimiz kodları düzenliyoruz, bu kodları açıklamak sonraki aşamalarda olur ancak, ben sadece bir giriş yapmak istedim. Plugini şu anki hali ile export edip kullanabilirsiniz.
Bunun için Package Explorer'da bulunan plugin klasörüne sağ tıklayp Export seçiyoruz. Jar File seçip plugin ismini de verdikten sonra export ediyoruz. Kaydedileceği yeri seçiyoruz. Kaydettikten sonra sunucunun plugins klasörüne atıp denemesini yapabiliyoruz.
Çalıştığını anlamak için konsol kaydına bakabilirsiniz. "Pluginİsmi is enabled." yazar. Dinnerbone'un pluginatorunun hazırladığı şablon plugin, oyuna girince oyuncuya mesaj göndermesini sağlar. Bu mesaj ana sınıfta yazar (Pluginİsmi.java dosyasının içinde) oradan bunu değiştirebilirsiniz.

Şimdilik bu kadar...
 


pwithgame

Sudan Çıkmış
Mesajlar
9
En iyi cevaplar
0
Beğeniler
6
Puanları
0
Devamını kısa zamanda bekliyoruz. Yazmasam da okuyorum dersleri. :)
 

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Yazıyı beğenmene sevindim. Ancak ben yoğun iş tempomdan ötürü ders veremeyeceğim malesef (Şu an iş yerinden yazıyorum o derece yoğunum yani). Ancak sorulan sorulara destek olabilirim. Duyguğum kadarıyla forum geliştiricilerinden biri 1 hafta kadar sonra ders vermeye başlayacakmış. Onu takip ederiz hep birlikte.
 

Ranork

Lapis Toplayıcısı
Emektar Üye
Mesajlar
984
En iyi cevaplar
0
Beğeniler
672
Puanları
1,490
Ruh hali
Güzel anlatım olmuş, bu pluginatoru bilmiyordum cidden çok işe yarar bir şey gibi gibi. He birde video çeksen olmazmı be :)
Ellerine sağlık...
 

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Güzel anlatım olmuş, bu pluginatoru bilmiyordum cidden çok işe yarar bir şey gibi gibi. He birde video çeksen olmazmı be :)
Ellerine sağlık...
Şu sıralar pek boş vaktim yok iş güç yüzünden. Hele ki Pazartesi bakanlıktan müfettiş geliyormuş, yani bugün Cumartesi olmasına rağmen yarım saat sonra işe gidecem.
Ama bir gün birlikte bir video çekebiliriz belki.
 

Ranork

Lapis Toplayıcısı
Emektar Üye
Mesajlar
984
En iyi cevaplar
0
Beğeniler
672
Puanları
1,490
Ruh hali
Şu sıralar pek boş vaktim yok iş güç yüzünden. Hele ki Pazartesi bakanlıktan müfettiş geliyormuş, yani bugün Cumartesi olmasına rağmen yarım saat sonra işe gidecem.
Ama bir gün birlikte bir video çekebiliriz belki.
Abi senin iş konusu açıldıkça aklıma ölüler geliyor ya, Allah kolaylık versin
 

P4RS

Elmas Madencisi
Mesajlar
834
En iyi cevaplar
0
Beğeniler
696
Puanları
0
İrfan Süpersin :)
 

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Abi senin iş konusu açıldıkça aklıma ölüler geliyor ya, Allah kolaylık versin

Valla gerçekten zor bir iş. Mahkemelerde çalışıyorken ölü falan görmüyorduk, ama savcılıkta ayda 1 hafta nöbet tutuyorum, hemen her gün de bir ölü oluyor ve otopsisine gitmek zorunda kalıyorum. Gerçi bu artık basit bir iş gibi geliyor, genel itibariyle zor bir iş. Özel hayat denen bir şey yok. Benim geceleri kaça kadar online olduğumu sen bilirsin... E akşam 9'a kadar zaten çalışmak zorunda kalıyorum çoğu zaman, mecburen kendime de zaman ayırmak zorundayım, akşam da biraz fazla kalıp, sabah işe geç kalınca da azar işitiyoruz. Sırf bu yüzden tutanak bile yedim yani :D[DOUBLEPOST=1380365513,1380365478][/DOUBLEPOST]

O senin süperliğin Ahmet... Ben bu oyuna başladığımda ilkin senin plugin paketini kullandığımı asla unutmam :)
 

#Furki.TR

Elmas Madencisi
Mesajlar
704
En iyi cevaplar
0
Beğeniler
306
Puanları
0
Ben Plugin Yazmaya Başladım Acemi Olarak İlk Önce Hayvanlarla İlgili Bir Şey Yapiyorum
 

Crowley07

Nether Yerlisi
Site Yöneticisi
Site Danışmanı
R. Sorumlusu
Mesajlar
2,092
En iyi cevaplar
0
Beğeniler
1,695
Puanları
4,920
yararlı bi konu
 

al1mert

Obsidyen Madencisi
Mesajlar
1,292
En iyi cevaplar
0
Beğeniler
479
Puanları
0
Okul var şimdi :'( Yazında tembellik edip hiç uğraşmamıştım pluginler hakkında.Artık ancak (Java) videolarını filan izlerim arada sırada.
Edit: İmla.[DOUBLEPOST=1380456366,1380386479][/DOUBLEPOST]librariese java build path dan giriliyor onu yazmayı unutmuşsun bu arada :)
 

Üst