Yardım Bir GirisMesajı Plugini Yaptım Ancak Hata Alıyorum Acil Destek !!!

EzRaiL_

Sudan Çıkmış
Mesajlar
6
En iyi cevaplar
0
Beğeniler
0
Puanları
10
Merhabalar Ben Eclipse Programı Üzerinden GirişMesajı Plugini Yaptım.Eclipse'de Hata Vermiyordu.Ancak Sunucuma Atınca Bir Hata Verdi.
Eventler: md_5 paste
Main: md_5 paste
Hata: md_5 paste

Yardım Eden Herkese Şimdiden Teşekkür Ederim.
 


LifeMCServer

Nether Yerlisi
Mesajlar
2,410
En iyi cevaplar
98
Beğeniler
2,461
Puanları
10,250
Ruh hali
o.sendMessage(plugin.c.getString("Sa").replace("%oyuncu%", oi));

Bu satırda ya o, ya plugin, ya plugin.c, ya da getString'in sonucu (configde Sa değeri yok ise) null. Java 14+ da -XX:+CodeDetailsInExceptionMessages ile yürütürsen spigotu, NullPointerException hatalarında neyin null olduğunu söyler. Eski Java sürümlerde böyle bir şey yok maalesef, sadece hatanın oluştuğu satırı söylüyor, o satırda da null olabilecek çok şey olunca durumlar karışıyor.

Attığın kodlara göre getString dışında null olabilecek bir şey görmedim, yani config.yml'de Sa olduğundan emin ol, veya default değer ekle (örn. getString("Sa") yerine, getString("Sa", "Hoşgeldin, %oyuncu%") gibi)

Bunun dışında tabii ki Java 14+ kullanmanı öneririm. NullPointerException'larda çok yardımcı oluyor. Eklentini Java 8 ile compile etmeye devam edebilirsin; Java 8'de de çalışacaktır. Sadece test sunucunu Java 15'e geçirmen yeterli.
 

EzRaiL_

Sudan Çıkmış
Mesajlar
6
En iyi cevaplar
0
Beğeniler
0
Puanları
10
o.sendMessage(plugin.c.getString("Sa").replace("%oyuncu%", oi));

Bu satırda ya o, ya plugin, ya plugin.c, ya da getString'in sonucu (configde Sa değeri yok ise) null. Java 14+ da -XX:+CodeDetailsInExceptionMessages ile yürütürsen spigotu, NullPointerException hatalarında neyin null olduğunu söyler. Eski Java sürümlerde böyle bir şey yok maalesef, sadece hatanın oluştuğu satırı söylüyor, o satırda da null olabilecek çok şey olunca durumlar karışıyor.

Attığın kodlara göre getString dışında null olabilecek bir şey görmedim, yani config.yml'de Sa olduğundan emin ol, veya default değer ekle (örn. getString("Sa") yerine, getString("Sa", "Hoşgeldin, %oyuncu%") gibi)

Bunun dışında tabii ki Java 14+ kullanmanı öneririm. NullPointerException'larda çok yardımcı oluyor. Eklentini Java 8 ile compile etmeye devam edebilirsin; Java 8'de de çalışacaktır. Sadece test sunucunu Java 15'e geçirmen yeterli.
Evet Dediğin gibi deneyeceğim birazdaha kolay bir dille tekrar anlata bilirmisin :)

Teşekkürler Tekrardan {Düzenleme: Evet Dediğin Gibi Yaptım,Config İle Değiştiremiyorum Ama Ona Nasıl Bir Çözüm Bulacağım.Yani Sadece ^getString("Sa", "Hoşgeldin, %oyuncu%")^ burası gibi oluyor ben config ile değiştirmek istiyorum sana zahmet bir bilgin varsa yardım edebilirmisin?}
 
Son düzenleme:

LifeMCServer

Nether Yerlisi
Mesajlar
2,410
En iyi cevaplar
98
Beğeniler
2,461
Puanları
10,250
Ruh hali
Evet Dediğin gibi deneyeceğim birazdaha kolay bir dille tekrar anlata bilirmisin :)

Teşekkürler Tekrardan {Düzenleme: Evet Dediğin Gibi Yaptım,Config İle Değiştiremiyorum Ama Ona Nasıl Bir Çözüm Bulacağım.Yani Sadece ^getString("Sa", "Hoşgeldin, %oyuncu%")^ burası gibi oluyor ben config ile değiştirmek istiyorum sana zahmet bir bilgin varsa yardım edebilirmisin?}

plugins/Eklentiİsmi/config.yml de Sa: Hoşgeldin, %oyuncu% gibi bir kısım var değil mi?
 

LifeMCServer

Nether Yerlisi
Mesajlar
2,410
En iyi cevaplar
98
Beğeniler
2,461
Puanları
10,250
Ruh hali
Evet sen ' Sa %oyuncu% ' diye yaptım ancak yine olmadı.Hoşgeldin, %oyuncu% diyor hep.

config.yml'nin tam olarak aşağıdaki gibi olduğuna emin olun

Kod:
Sa: Configten merhaba, %oyuncu% giriş yaptı

Yine olmaz ise Sa: dan sonra, mesajın başına ve sonuna " işaretleri koymayı deneyin. Örnek:

Kod:
Sa: "Configten merhaba, %oyuncu% giriş yaptı"

Hala olmuyor ise, saveDefaultConfig(); kısmından sonra reloadConfig(); eklemeyi deneyin. Hala olmuyorsa uygun vaktimde IntelliJ IDEA'dan çalışan bir örnek oluşturup tüm proje dosyalarını zipleyip atabilirim.
 

EzRaiL_

Sudan Çıkmış
Mesajlar
6
En iyi cevaplar
0
Beğeniler
0
Puanları
10
config.yml'nin tam olarak aşağıdaki gibi olduğuna emin olun

Kod:
Sa: Configten merhaba, %oyuncu% giriş yaptı

Yine olmaz ise Sa: dan sonra, mesajın başına ve sonuna " işaretleri koymayı deneyin. Örnek:

Kod:
Sa: "Configten merhaba, %oyuncu% giriş yaptı"

Hala olmuyor ise, saveDefaultConfig(); kısmından sonra reloadConfig(); eklemeyi deneyin. Hala olmuyorsa uygun vaktimde IntelliJ IDEA'dan çalışan bir örnek oluşturup tüm proje dosyalarını zipleyip atabilirim.
Teşekkürler Kral Oldu Allah'a Şükür <3 Teşekkürler.Bide Renk Nasıl Ekleyeceğim Configde?"&aSunucuya Hoşgeldin &e%oyuncu% şeklinde yapıyorum olmuyor" [Düzenleme: Tamam Reis Onuda Yaptım Çok Teşekkürler.]
 
Son düzenleme:

LifeMCServer

Nether Yerlisi
Mesajlar
2,410
En iyi cevaplar
98
Beğeniler
2,461
Puanları
10,250
Ruh hali
Teşekkürler Kral Oldu Allah'a Şükür <3 Teşekkürler.Bide Renk Nasıl Ekleyeceğim Configde?"&aSunucuya Hoşgeldin &e%oyuncu% şeklinde yapıyorum olmuyor" [Düzenleme: Tamam Reis Onuda Yaptım Çok Teşekkürler.]

Kendin çözmene sevindim. Kodlamada geliştikçe her problemine kendisi çözüm bulmayı öğreniyor insan. Bu süreçte StackOverflow, W3Schools, MDN, JetBrains Academy gibi siteler işine yarayabilir. YouTube sadece ilk başta, sonrasında hiç değil.

Konuya dönecek olursak, çözmüşsün fakat Google'dan gelebilecek veya başka aynı sorunu yaşayan arkadaşlar varsa, referans olması için çözümü söyleyeyim.

& normal şartlarda hem Minecraft'da hem de Bukkit'de bir renk kodu değildir. O aslında sadece § karakteri klavyede direk yazılamadığından, and (ve) anlamına gelen & karakteri ile referans edilen bir işaret MC'de, ve bunu sadece eklentiler ve bazı modlar yapıyor, MC'nin kendisinde yok.

Bu sorunu çözmek için § kullanabilir veya & kullanıp, replace koduna aşağıdakileri ekleyebilirsiniz.

Önceki:

o.sendMessage(plugin.c.getString("Sa").replace("%oyuncu%", oi));

Sonraki (importları atın):

o.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.c.getString("Sa").replace("%oyuncu%", oi)));
 

EzRaiL_

Sudan Çıkmış
Mesajlar
6
En iyi cevaplar
0
Beğeniler
0
Puanları
10
Kendin çözmene sevindim. Kodlamada geliştikçe her problemine kendisi çözüm bulmayı öğreniyor insan. Bu süreçte StackOverflow, W3Schools, MDN, JetBrains Academy gibi siteler işine yarayabilir. YouTube sadece ilk başta, sonrasında hiç değil.

Konuya dönecek olursak, çözmüşsün fakat Google'dan gelebilecek veya başka aynı sorunu yaşayan arkadaşlar varsa, referans olması için çözümü söyleyeyim.

& normal şartlarda hem Minecraft'da hem de Bukkit'de bir renk kodu değildir. O aslında sadece § karakteri klavyede direk yazılamadığından, and (ve) anlamına gelen & karakteri ile referans edilen bir işaret MC'de, ve bunu sadece eklentiler ve bazı modlar yapıyor, MC'nin kendisinde yok.

Bu sorunu çözmek için § kullanabilir veya & kullanıp, replace koduna aşağıdakileri ekleyebilirsiniz.

Önceki:

o.sendMessage(plugin.c.getString("Sa").replace("%oyuncu%", oi));

Sonraki (importları atın):

o.sendMessage(ChatColor.translateAlternateColorCodes('&', plugin.c.getString("Sa").replace("%oyuncu%", oi)));
Tamam reis son olarak seni çok meşgul ettiğim için özür dilerim.Bunu Çıkış a da uyarlamak istiyorum aynı şekil kopyala yapıştır yaptım configdede Çıkış diye oluşturdum eclipse de hata vermedi oyundada hata vermedi ancak olmuyor buyur kod: Untitled - Pastebin bunada yardım edersen çok sevinirim
 

LifeMCServer

Nether Yerlisi
Mesajlar
2,410
En iyi cevaplar
98
Beğeniler
2,461
Puanları
10,250
Ruh hali
Tamam reis son olarak seni çok meşgul ettiğim için özür dilerim.Bunu Çıkış a da uyarlamak istiyorum aynı şekil kopyala yapıştır yaptım configdede Çıkış diye oluşturdum eclipse de hata vermedi oyundada hata vermedi ancak olmuyor buyur kod: Untitled - Pastebin bunada yardım edersen çok sevinirim

Muhtemelen @EventHandler eklemeyi unutmuşsunuz, tüm classların kodlarını atarsanız yardımcı olabilirim.
 

Üst