Spigot|Bukkit Eklenti Kodlama Rehberi(bölüm 3)
Önceki bölümlerden 1. bölümde eklenti kodlamak için gerekli ortamın hazırlanması ve ilk eklentinin çalıştırılmasını göstermiştim. 2. bölümde ise eventler ne işe yarar, kütüphane nedir gibi kavramlar üzerinde durduk.Bu bölümde ise eventleri kullanarak ,yeni bir bilgi olan ItemStack değerini kullanarak ve oyuncudan veri alarak bir eklenti yazacağız.Derslerde bu şekilde pratik üzerinden gitmeyi daha doğru buluyorum.
Bu Rehberde Kullanılacak Event Tipi Ve Ne İşe Yaradığı:Önceki bölümlerden 1. bölümde eklenti kodlamak için gerekli ortamın hazırlanması ve ilk eklentinin çalıştırılmasını göstermiştim. 2. bölümde ise eventler ne işe yarar, kütüphane nedir gibi kavramlar üzerinde durduk.Bu bölümde ise eventleri kullanarak ,yeni bir bilgi olan ItemStack değerini kullanarak ve oyuncudan veri alarak bir eklenti yazacağız.Derslerde bu şekilde pratik üzerinden gitmeyi daha doğru buluyorum.
BlockBreakEvent - - -> Oyuncunun tüm blok kırma olaylarını dinler.
ItemStack nedir, nasıl kullanılır?
ItemStack ,minecraftta bulunan bir objenin, kaç tane olduğu ve hangi çeşitte olduğu gibi verilerle birlikte kullanılabilmesine imkan tanıyan bir ifadedir. Hangi çeşitten kastım şudur ki; misal glass_pane isimli obje kullanılırken direk glass_pane şeklinde tanımlanır. Fakat oyunun bize sağladığı renk özelliklerini bu şekilde veremeyiz. İşte bu noktada (byte) veri tipi işimize yarıyor.Peki bu (byte) veri tipini nasıl kullanırız? Cevabı aslında çok basit, minecraft eşya kodlarında örneğin; 355:5 gibi iki noktadan sonraki ifade varsa bu ifade o eşyanın (byte) değeridir.
Şimdi kodlar üzerinden ItemStack ifadesinin kullanımını göstereyim:
Java:
ItemStack eşyaismi = new ItemStack(Material.IRON_ORE);
//Burada yalnızca eşyamızın türünü belirttik.Bu kullanımda otomatik olarak eşya sayısı 1'e eşitlenir.
ItemStack eşyaismi = new ItemStack(Material.IRON_ORE,26);
//Bu kullanımda ise eşyamızın türünü belirttiği gibi ek olarak sayısını da belirtir.
ItemStack eşyaismi = new ItemStack(Material.WOOL, 26, (byte) 6);
//Bu kullanımda da eşyamızın türü ve sayısı belirtildi fakat bu sefer byte değerimiz var.
//Eşyamıza dikkat edecek olursak, eşyamız yündür ve pembe renkli yündür.
//İşte byte veri tipi bu tür renk gibi eşya ayrımlarında kullanılıyor.
Eklentimizin nasıl kodlandığını ve ne anlama geldiğini açıklayacak olursam, eklentimiz ilk önce oyuncunun blok kırma verilerini tek tek dinleyecek.Daha sonra eğer ki kömür madenine rastlarsa oyuncuya "Kömür madenini kırdınız!" mesajını yollayacak. Daha sonra oyuncunun blok kırma olayını iptal edecek. Daha sonra ise ItemStack ile tanımladığımız eşyayı oyuncunun envanterine ekleyecek.
Java:
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onBlockBreak(BlockBreakEvent e) {
Player oyuncu = e.getPlayer();
Block kırılanblok = e.getBlock();
if(kırılanblok.getType().equals(Material.COAL_ORE)) {
oyuncu.sendMessage(ChatColor.RED + "Kömür madeni kırdınız!");
e.setCancelled(true);
ItemStack kömür = new ItemStack(Material.COAL_ORE, 2);
oyuncu.getInventory().addItem(kömür);
}
}
Derslerimiz artık bundan sonra pratik üzerine devam edecektir.
Lütfen rehber serimi beğendiyseniz elmas vermeyi unutmayın.
Yorumlarda eklenmesini istediğiniz veya yapamadığınız kısımları sorabilirsiniz, tüm forum üyeleri olarak yardımcı oluruz.
İyi Forumlar Dilerim...
Son düzenleme: