- Katılım
- 14 Haziran 2016
- Mesajlar
- 998
- Elmaslar
- 746
- Puanlar
- 15.070
- Minecraft
- SimitSu
Merhaba Mc-Tr üyeleri ben kingOf0!, Bu konumda sizlere Bukkit Coding adlı serimin ikinci bölümü olan, ItemStack nasıl oluşturul(ur)up & nasıl kullanıl(ır)acağından bahsedeceğim.
Dikkat! Bu dersi daha iyi anlayabilmeniz için Bukkit Coding | Başlangıç dersini okuyup kavramanız gerekmektedir, lütfen önce Bukkit Coding | Başlangıç konusuna gidiniz.
Plugin Hakkında
Bu pluginimizde, sohbete yazınca, oyuncunun elindeki item hakkında bilgi vermesini sağlayacağız
Register Events
"Sohbete yazıldığında" bunu kontrol etmek için "AsyncPlayerChatEvent" eventine ihtiyacımız var fakat, herhangi bir eventi kontrol ederken "registerEvents" yapmamız gerekiyor bunun için:
onEnable adlı method'umuzu oluşturuyoruz
oluşturduğumuz bu method'un içine
yazarak kodumuzda bir event kullanacağımızı belirtiyoruzBukkit.getPluginManager().registerEvents(this, this);
AsyncPlayerChatEvent
sohbetKontrol adında bi method oluşturuyoruz , parantez açıyorıuz ve içine (EventAdı Event'eUlaşmakİçinKullanılacakKarakter) yazıyoruz.
Bu durumda
yazıyoruz, bu method'umuzun içine isevoid sohbetKontrol(AsyncPlayerChatEvent e)
Player p = e.getPlayer();
yazıyoruz.
türkçeleştirirsek:
Player p = e.getPlayer();
Player türünde p adında bir değer oluştur, bunu Eventteki oyuncuya eşitle.
method'umuzun hemen önüne @EventHandler eklemeyi ve herşeyi import etmeyi unutmayın!
Mesaj kontrolü
kontrol & eğer anlamına gelen if'i kullanacağız
if'in basit bir kullanım'ı
if (Parametre) {
//Parametre doğruysa çalışacak kod
}
" Eğer mesajı ise " diyeceğiz, Bunun için
Java:if (e.getMessage().equals("[i]")) { }
diyoruz
Türkçeleştirirsek:
if ( e.getMessage().equals("") ) { }
Eğer Mesaj 'ye eşitse
.Equals("") Nedir ?
.Equas(Parametre-String)
( e.getMessage() )
Equals ingilizcede Eşit anlamına gelir, eğer parametre yerine yazılan string türündeki değer bi önünde bulunan string türündeki değere eşitse, if'imizi TRUE(Doğru) olarak ayarlar.
bu durumda
e.getMessage(), 'ye eşitse anlamına geliyor
İtem hakkında bilgi toplama & topladığı bilgiyi oyuncuya gönderme
bu kısımda oyuncunun elindeki item'in türünün ne olduğunu öğrenip bu tür'ü oyuncuya mesaj olarak göndereceğiz.
Java:
if (e.getMessage().equals("")) {
ItemStack is = p.getItemInHand();
p.sendMessage("İtem'in türü → " + is.getType() );
}
Türkçeleştirirsek:
ItemStack is = p.getItemInHand();ItemStack türünde, adı is olan bir değer oluştur ve bu değeri, Oyuncunun elindeki item'e eşitle.
Ve
Hatırlarsanız P'ye eventteki oyuncu demiştik, şimdi p'yi kullanacağız.
p.sendMessage("İtem'in türü " + is.getType() );
Oyuncu'ya Şunu mesaj olarak yolla: "İtem'intürü " + is.getType().
is.getType() ne oluyor ?
is, tukarıda belirttiğimiz ItemStack türündeki değer, obje.
getType()' Nedir ?
getType(), Bir ItemStack'in tipini verir.
Mesela Elmas kılıcın tipi => DIAMOND_SWORD'dur.
SendMessage Nedir ?
.sendMessage(Parametre-String)
sendmessage, bir entity'ye (Canlı bir entity olmalı, Oyuncu gibi.) içine yazdığınız string türündeki değerleri gönderir.
eğer içine "Sa" yazarsak, oyuncuya Sa diye mesaj gidecektir
bunun gibi, (tabiki MANIDAR yazmayacak :D merak etmeyin)
eğer
Text prefix = "&6&lMANDIR NW ▬";
Text türünde adı prefix olan bi değer oluştur ve bu değeri "&6&lMANDIR NW ▬"'a eşitle. ve
p.sendmessage(prefix + " SA");
dersek oyun içinden
"&6&lMANDIR NW ▬ SA" diye mesaj gönderecektir.
Eğer
p.sendmessage(prefix + " " + prefix + "SA"); dersek
oyun içinden "&6&lMANDIR NW ▬ &6&lMANDIR NW ▬ SA"
diye mesaj göndericektir.
Not: + koyduktan sonra " " kullanarak bir boşluk bırakmış olursunuz.
Diğer Bilgiler & son
Resimde olduğu gibi is.getXXXXYYYZZZ kod'unu kullanarak'oyuncunun elindeki item'in XXXXYYYZZZ'sine ulaşabilirsiniz, ve bu ulaştığınız değeri oyuncuya yollayabilirsiniz,
Kalanı sizin hayal gücünüze kalmış!
Not: Renk kodları Javada & ile değil § ile başlar (değiştirilmediği sürece)
Buraya kadar okuduğunuz için teşekkürler
Kendi sunucumda kullandığım koddur, @kingOf0 'a aittir.
hastebin
hastebin
Buraya kadar okuduğunuz için teşekkürler
Gönderi otomatik olarak birleştirildi:
Spoiler kutularında sorun var, ben düzelttikçe bozuluyorlar. yapabileceğim bişiy yok 4 kere düzenleyip düzelttim. @smt287 @Hai birde siz düzeltmeyi denermisiniz ?
Son düzenleme: