Spigot|Bukkit Eklenti Kodlama Rehberi(bölüm 4)
Önceki rehber ItemStack ifadesini öğrenmiştik. Ve bir event ile kullanıp, kömür kırınca kömür kırma olayını iptal edip 2 kömürü oyuncu envanterine eklemesine sağlamıştık.
Bu derste eklentilerin %90'ında kullanılan, oyuncu ile sunucunun etkileşime geçmesini sağlayan komutların nasıl oluşturulduğunu öğreneceğiz.
Komutlar Nedir, Ne İşe Yarar? Önceki rehber ItemStack ifadesini öğrenmiştik. Ve bir event ile kullanıp, kömür kırınca kömür kırma olayını iptal edip 2 kömürü oyuncu envanterine eklemesine sağlamıştık.
Bu derste eklentilerin %90'ında kullanılan, oyuncu ile sunucunun etkileşime geçmesini sağlayan komutların nasıl oluşturulduğunu öğreneceğiz.
Komutun dilimizdeki kullanımıyla yazacağımız eklentilerdeki kullanımı aynıdır.
Nasıl ki dilimizde komut vermek , "herhangi bir davranış için buyrukta bulunmak" anlamına geliyorsa; eklentilerde de aynı anlama gelir. Komut ile oyuncu, herhangi bir olayı aktifleştirebilir veya denetleyebilir veya durdurabilir, bunlar yazılan eklentiyle çoğaltılabilir.
Komut Nasıl Oluşturulur?
Komut oluşturmak için öncelikle komutumuzun metodunun bulunacağı sınıfı ana sınıfımızda belirtmemiz gerekir.
Peki nasıl ana sınıfta bunu belirtiriz ?
Kod:
public void onEnable() {
getCommand("Komut İsmi").setExecutor(new commandChanger());
// getCommand ile komutumuz neyse onu belirttik.
// daha sonra belirttiğimiz bu komutun hangi sınıfta bulunduğunu belirttik.
// eğer ki komutunuz ana sınıfınızda bulunuyorsa setExecutor(this) şeklinde yazmanız yeterlidir.
// this yazıldığında bulunduğu sınıfı işaret eder.(Temel Java bilgisidir ama yine de vereyim :)
}
Evet artık komutumuzu ve nerede olduğunu belirttiğimize göre komutumuzun metodunun nasıl olması gerektiğini ve neyin nasıl çalıştığını inceleyebiliriz.
Java:
@Override
public boolean onCommand(CommandSender gönderen, Command komut, String etiket, String[] argümanlar) {
//"CommandSender gönderen" ifadesi ile komutu gönderenin kim olduğunu gönderen değişkenine atadık.
//"Command komut" ifadesi ile komutumuzu komut isimli değişkene atadık.
//"String etiket" ifadesi ile normalde /komut şeklinde olan komutumuzun '/' işareti olmadan yani yalnızca etiket olarak aldığı değeri etiket isimli değişkenimize atadık.
//"String[] argümanlar" ifadesi ile komutumuzdan sonra gelebilecek olan ifadeleri argümanlar değişkenine atadık.
//Örneğin: /sandık aç
// yukardaki aç ifadesi esas komutumuzdan sonra gelen bir argümandır.Ve bunu bir diziye atadık.
Player o = (Player ) gönderen;
// Yukardaki satırda komutu gönderen kişiyi oyuncu olarak belirledik.
if(komut.getName().equalsIgnoreCase("komut")){
//Komutumuz eğer ki "komut" ise alttaki ifadeleri çalıştır.
o.sendMessage(ChatColor.DARK_GREEN + "Tebrikler Komutunuz Başarıyla Çalıştı!");
// Oyuncuya mesaj yolladık
}
return false;
// Bu ifade temel Java bilgisidir fakat yine de açıklayayım:
// metotlarda değer döndürme işlemi return ile sağlanır.
// dikkat ederseniz komut metodumuzda değer olarak boolean döndürmesi belirtilmiş.
// bu da plugin.yml de yazacağımız komutların hangisi için değer döndüreceğini belirtir.
// false olursa komutu belirtmeniz gerekir
// fakat true olursa plugin.ymlde belirttiğiniz tüm komutlar için geçerli olur.
}
Şimdi ise en önemli kısım olan, plugin.yml dosyasında komutumuzu belirtmemiz gerekir.
Burayı yapmazsanız komut çalışmaz!
Kod:
name:
author:
main:
version:
commands:
komut:
description: Bilgi kısmı
usage: /komut
İlk derslerde plugin.yml nasıl oluşturulur öğrenmiştik.
Şimdi ise komutumuzu nasıl plugin.yml dosyasına işleriz onu öğrenelim:
Yukarıdaki kod bölümünde yazdığım şekliyle
commands: altına yazılan kelime sizi komutunuzun ismi olmalı.
daha sonra komutunuzun isminin altına yazdığınız şeyler ise yani " description: ve usage: ",
description: Komutun bilgi metnini buraya yazabilirsiniz. Kısaca /help yazınca çıkan metin.
usage: Eğer ki komut yanlış yazılmışsa , komutun nasıl kullanacağını gösterir.
Oyun İçi Görüntü
Konuyu beğendiyseniz lütfen elmas vermeyi unutmayın.
Öneri ve fikirlerinizi yorumlarda belirtebilirsiniz.
Eklenti yazmak adına tüm sorularınızı ve sorunlarınızı yorumlarda belirtebilirsiniz.
İyi Forumlar..
Konuyu beğendiyseniz lütfen elmas vermeyi unutmayın.
Öneri ve fikirlerinizi yorumlarda belirtebilirsiniz.
Eklenti yazmak adına tüm sorularınızı ve sorunlarınızı yorumlarda belirtebilirsiniz.
İyi Forumlar..
Ekler
Son düzenleme: