Son kullanma tarihi geçmiş, bayatlamış bir tarayıcı kullanıyorsanız. Mercedes kullanmak yerine tosbaya binmek gibi... Websiteleri düzgün görüntüleyemiyorsanız eh, bi zahmet tarayıcınızı güncelleyiniz. Modern Web standartlarını karşılayan bir tarayıcı alternatifine göz atın.
Merhabalar,
arkadaşlar. Bu konuda sizlere son pluginim olan Virtual Shop yani Sanal Market pluginimi tanıtacağım.
Aslında daha önce bir konu açarak da tanıtmıştım.
Neden VirtualShop ?
Config ile uğraşmaya son!
Tamamiyle türkçe!
Hazır config!
Özel name, lore ve enchant değerli eşyalar koyma
Kategoriler menüsüne dekorasyonlar ekleyebilme
İstediğiniz türde marketi design edebilme
Gibi özelliklerden dolayı VirtualShop sizin için en iyi shop plugini olacaktır!
Ayrıca bu plugini kullandığınızda türk bir yapımcıya destek vermiş olacaksınız ;)
Merhabalar,
arkadaşlar. Bu konuda sizlere son pluginim olan Virtual Shop yani Sanal Market pluginimi tanıtacağım.
Aslında daha önce bir konu açarak da tanıtmıştım.
Neden VirtualShop ?
Config ile uğraşmaya son!
Tamamiyle türkçe!
Hazır config!
Özel name, lore ve enchant değerli eşyalar koyma
Kategoriler menüsüne dekorasyonlar ekleyebilme
İstediğiniz türde marketi design edebilme
Gibi özelliklerden dolayı VirtualShop sizin için en iyi shop plugini olacaktır!
Ayrıca bu plugini kullandığınızda türk bir yapımcıya destek vermiş olacaksınız ;)
merhaba öncelikle eline sağlık her ne kadar java kodlama açısından başarısız bir kodlama olarak görsemde ortaya güzel bir şey çıkartmışsınız. kodlarınızı open source olarak paylaşırsanız daha sağlıklı bir inceleme yapabilirim, ancak şimdilik decompile yönetemi ile eleştirimi yapıcam.
paket isimleri "vs" diyip bitirilmez, genel java kuralları gereği kendi domaininizi, yoksa basit bir şekilde "me.pikod.visualshop" ya da "me.pikod.vs" şeklinde yapmanız daha doğru olur.
class isimleri küçük harfle başlamaz, ve camel case yapılmaz.
sender.hasPermission("op") bu şekilde bir kontrol yanlıştır, eklentiye has kendi permissionlarınızı plugin.yml'den yaratıp onları kullanmanız daha sağlıklı olucaktır.
public class chatEvent {
public Player player;
public chatInterface listener;
public int id;
public chatEvent(final Player player, final chatInterface listener) {
this.player = player;
this.listener = listener;
ActionHandler.chatListenerList.add(this);
}
public void setListener(final chatInterface listener) {
this.listener = listener;
}
}
eğer böyle bir class açmak istiyorsan ve ihtiyacın varsa(böyle bir class'a ihityacın olmamalı) en azından class'ı final ve parameterelerini final + null olmıycak şekilde ayarlaman gerekir, aksi taktirde unuttuğun her hangi bir kod satırında hata çıkma olasılığını her yazdığın kodda arttırmış olursun, ve böyle bir class OOP ye aykırı olduğu için bu tarz şeyler yerine daha nesnel düşünerek eklentinin tasarımını ona göre ayarlaman gerekir.
constructor'da "set"(this.x = x; ) kodları haricince başka kod çalıştırmaman gerekir, bu obje yapısına aykırı bir durumdur, objelerin constructor'larını birer method gibi kullanmamalısın. guiAddItem gibi classlardan bahsediyorum.
oldukça fazla static method ve field kullanmışsın, bunları nesnel olarak refactor etmen daha sağlıklı olur.
neden eklentide 2 adet `extends JavaPlugin` yaptığın bi class var, bu yanlış bir kullanım bukkit açısından. sorunlara neden olabilir.
hiç bir şeye yaramayan bir Events class'ı mevcut içinde yanlızca listenerları tutan bir şey var bunun burda olması yerine main classta olması daha mantıklı, classları bu şekilde kullanman çok yanlış java açısından.
video'ya gelirsek, biraz acemi bir video olduğundan dolayı eklentiyi senin yazmış olmana rağmen eklentiye hakim olmadığını fark ettim, yeni bir video ile sadece gerekli şeyleri anlatıp daha açıklayıcı ve akıcı bir anlatımla video'yu çekmen daha iyi olur.
eklentide gördüğüm ve düzeltmende yarar bulduğum hatalar/sorunlar/yanlışlar bu kadar. ilerde open source yaparsan daha sağlıklı bir eleştiri yapabilirim ancak şimdilik bu kadar yazmam yeterli diye düşünüyorum.
merhaba öncelikle eline sağlık her ne kadar java kodlama açısından başarısız bir kodlama olarak görsemde ortaya güzel bir şey çıkartmışsınız. kodlarınızı open source olarak paylaşırsanız daha sağlıklı bir inceleme yapabilirim, ancak şimdilik decompile yönetemi ile eleştirimi yapıcam.
paket isimleri "vs" diyip bitirilmez, genel java kuralları gereği kendi domaininizi, yoksa basit bir şekilde "me.pikod.visualshop" ya da "me.pikod.vs" şeklinde yapmanız daha doğru olur.
class isimleri küçük harfle başlamaz, ve camel case yapılmaz.
sender.hasPermission("op") bu şekilde bir kontrol yanlıştır, eklentiye has kendi permissionlarınızı plugin.yml'den yaratıp onları kullanmanız daha sağlıklı olucaktır.
public class chatEvent {
public Player player;
public chatInterface listener;
public int id;
public chatEvent(final Player player, final chatInterface listener) {
this.player = player;
this.listener = listener;
ActionHandler.chatListenerList.add(this);
}
public void setListener(final chatInterface listener) {
this.listener = listener;
}
}
eğer böyle bir class açmak istiyorsan ve ihtiyacın varsa(böyle bir class'a ihityacın olmamalı) en azından class'ı final ve parameterelerini final + null olmıycak şekilde ayarlaman gerekir, aksi taktirde unuttuğun her hangi bir kod satırında hata çıkma olasılığını her yazdığın kodda arttırmış olursun, ve böyle bir class OOP ye aykırı olduğu için bu tarz şeyler yerine daha nesnel düşünerek eklentinin tasarımını ona göre ayarlaman gerekir.
constructor'da "set"(this.x = x; ) kodları haricince başka kod çalıştırmaman gerekir, bu obje yapısına aykırı bir durumdur, objelerin constructor'larını birer method gibi kullanmamalısın. guiAddItem gibi classlardan bahsediyorum.
oldukça fazla static method ve field kullanmışsın, bunları nesnel olarak refactor etmen daha sağlıklı olur.
neden eklentide 2 adet `extends JavaPlugin` yaptığın bi class var, bu yanlış bir kullanım bukkit açısından. sorunlara neden olabilir.
hiç bir şeye yaramayan bir Events class'ı mevcut içinde yanlızca listenerları tutan bir şey var bunun burda olması yerine main classta olması daha mantıklı, classları bu şekilde kullanman çok yanlış java açısından.
video'ya gelirsek, biraz acemi bir video olduğundan dolayı eklentiyi senin yazmış olmana rağmen eklentiye hakim olmadığını fark ettim, yeni bir video ile sadece gerekli şeyleri anlatıp daha açıklayıcı ve akıcı bir anlatımla video'yu çekmen daha iyi olur.
eklentide gördüğüm ve düzeltmende yarar bulduğum hatalar/sorunlar/yanlışlar bu kadar. ilerde open source yaparsan daha sağlıklı bir eleştiri yapabilirim ancak şimdilik bu kadar yazmam yeterli diye düşünüyorum.
Yorumun için teşekkür ederim. İlk bu konuyu inceleyen arkadaşların pluginin yapılım aşamasında yaptığım hataların kullanımda en ufak hataya sebep olmayacağını belirtmek isterim.
Plugini yapmaya acemiyken başladım, bıraktım sonra tekrar başlayıp 2 hafta gibi bir sürede bitirdim.
Diğer arkadaşların kalitede sıkıntı olduğunu düşünmemesi için anlattığınız unsurların plugin kullanımında hiçbir hataya yol açmayacağını belirtmek isterim.
Ayrıca GUI için kendi classlarımı kullanmamın sağlıklı olmayacağını söylemişsiniz, aslında yazdığım gui class'ı sadece kolaylık olması için ufak tefek özellikler ekliyor. O kadar az özellik için bir lib indirmeye gerek yok diye düşündüm.
Bahsettiğiniz unsurları hallettikten sonra plugini güncelleyip paylaşacağım...
Bu arada bilmenizi isterim ki Java dilini tamamen "deneme yanılma" yöntemiyle öğrendim. Javanın öğrendiğim ilk OOP dil olduğunu da belirtmek isterim :)
Java ve C++ öğrenene kadar PHP Javascript Html CSS ile siteler yapıyordum.