Minecraft'ı Sıfırdan Yeniden Yazan Plugin: ItemsAdder Rehberi
ItemsAdder Custom Items Resource Pack 1.20+
Uzun süre standart Minecraft içerikleriyle yetinip "acaba bunun ötesine geçebilir miyim?" diye düşündüm.
Neredeyse tüm bilinen item pluginlerini denedim; kimisi çok kısıtlı, kimisi çok karmaşık geldi.
Sonunda bir arkadaşın önerisiyle ItemsAdder'ı kurdum. İlk günden beri kafamdaki "bu olmaz" listesinin birer birer çizildiğini gördüm. Bu yazıda yaşadıklarımı, öğrendiklerimi ve deneme yanılmayla bulduğum püf noktaları aktarmaya çalışacağım.
Neden ItemsAdder Diğerlerinden Farklı?
Çoğu item plugin ya sadece texture değiştirir ya da komut bazlı birkaç efekt ekler. ItemsAdder ise doğrudan oyun motoruna el atar gibi çalışıyor. Kendi namespace sistemi, resource pack entegrasyonu, ses, animasyon, özel blok ve hatta özel mob desteğiyle neredeyse bir modun yapabileceği şeyleri plugin katmanında yapabiliyor.Kendi font ve HUD sistemi var, yani oyunun sağlık barını bile yeniden çizebiliyorsunuz. Bunu bir plugin ile yapabilmek ilk gördüğümde gözlerime inanamamıştım.
🧱 Namespace Sistemi Neden Bu Kadar Önemli?
ItemsAdder ile çalışmaya başladığımda en çok kafamı karıştıran şey namespace kavramıydı. Kısaca şöyle açıklayayım: her item, ses veya blok bir "isim alanına" bağlı.
Örneğin;myrpg:blood_sword dediğinde myrpg senin namespace'in, blood_sword ise item kimliği oluyor. Bu yapı birden fazla plugin ya da içerik paketi aynı sunucuda çalışırken çakışmaları tamamen engelliyor.
Bunu anlayana kadar neden bazı itemler birbirinin üzerine yazıyordu diye saatlerce uğraştım. Namespace'leri doğru ayırdıktan sonra her şey yerli yerine oturdu. Sunucunda birden fazla içerik paketi kullanacaksan bu konuya ciddi zaman ayırmanı öneririm; sonradan düzeltmek gerçekten baş ağrıtıyor.
🎨 Resource Pack Entegrasyonu Nasıl İşliyor?
ItemsAdder'ın belki de en güçlü yanı, resource pack'i elle uğraşmak zorunda kalmadan otomatik olarak yönetmesi. textures klasörüne png dosyasını attın, config'de tanımını yaptın, /iazip çalıştırdın; plugin gerisini hallediyor. Model JSON'ları, custom model data değerleri, font tanımları... hepsini arka planda kendisi üretiyor.
---
Daha önce elle resource pack hazırlamaya çalışanlar bilir, bu işlem ne kadar yorucu olabiliyor.
---
Özellikle custom model data çakışmaları can sıkıcı bir problem. ItemsAdder bu değerleri otomatik atayıp bir kenara not ettiği için sen sadece içeriğe odaklanıyorsun.
---
Texture çözünürlüğü konusunda dikkatli ol; 16x16 veya 32x32 dışında boyutlar kullanacaksan pack formatını buna göre ayarlamalısın, aksi hâlde bazı itemler oyunda deforme
görünüyor.
---
Kendi resource pack'in zaten varsa ItemsAdder'ı ona merge edebilirsin. Bunun için config'deki merge-other-pack ayarına bakman yeterli. İki paketi elle birleştirmek zorunda kalmıyorsun.
🔧 Hata Ayıklama ve Yaygın Sorunlar
⚙️ Kurulum Adımları
ProtocolLib ve LoneLibs bağımlılıkları olmadan plugin başlamaz. Önceden sunucuya atmayı unutma.
ProtocolLib'i sunucuna kur
LoneLibs'i plugins klasörüne ekle
ItemsAdder.jar dosyasını da plugins klasörüne at
Sunucuyu başlat,
/plugins/ItemsAdder/klasörü otomatik oluşurconfig.ymliçinden resource pack host ayarını yapArdından /iazip komutunu çalıştır
Pack yüklenince /iareload ile her şeyi aktif et
config.yml'de self-host: true seçeneğini açarsan resource pack'i ayrı bir sunucuya yükleme derdin ortadan kalkar. Küçük sunucular için hayat kurtarıcı.
🗂️ En Çok Kullanılan ItemsAdder Kategorileri
Özel Silahlar Çok popülerKılıç, balta, yay gibi vanilya itemlerin üzerine yeni texturelar ve özel isimler eklenir. Lore, glow efekti, özel ses gibi ek özellikler de dahil edilebilir. RPG sunucularında standart haline geldi.
---
Dekoratif BloklarMinecraft'ta bulunmayan sandalye, raf, kanal kapağı gibi itemler mushroom block yöntemiyle oluşturulur. Build sunucularında bina içi detay için vazgeçilmez.
---
HUD ve GUI ÖğeleriEkranın köşesine sabit bir can, mana veya stamina çubuğu eklenebilir. Bu özellik ItemsAdder'ı diğer item pluginlerinden en çok ayıran şey.
---
Özel YiyeceklerCanlanma, hız, zehir gibi efektler veren kendi besin ikonlarınızı yapabilirsiniz. Survival ve SkyBlock sunucularında ekonomik çeşitlilik için kullanılıyor.
---
Özel ArmorlarTrim sistemi veya doğrudan texture override ile tamamen farklı görünen zırhlar. Özellikle donör paketlerinde oyuncuya "ben farklıyım" hissi vermek için ideal.
---
Ses PaketleriItemsAdder kendi ses namespace'ini sunucuya yükler. Adım sesi, vuruş sesi, ambient ses gibi her şeyi değiştirebilirsin. Horrorcraft veya medieval sunucularda atmosfer kurmak için güçlü bir araç.



💻 Örnek Konfigürasyon Kodları
Basit bir kılıç tanımı
items:
custom_sword:
display_name: "&cKan Kılıcı"
permission: myplugin.items.custom_sword
resource:
material: DIAMOND_SWORD
generate: true
textures:
- item/custom_sword.png
durability:
max_custom_durability: 1024
events:
interact:
right:
add_potion_effect:
type: SPEED
duration: 60
amplifier: 1Özel blok tanımı (dekoratif)
items:
wood_shelf:
display_name: "&7Ahşap Raf"
resource:
material: PAPER
generate: true
textures:
- item/wood_shelf.png
specific_properties:
block:
placed_model:
type: REAL_NOTE
break_particles_material: OAK_PLANKSHUD tanımı (mana çubuğu)
huds:
mana_bar:
enabled: true
show:
auto_hide: false
in_action_bar: false
direction: LEFT
value:
player_stat_name: mana
min: 0
max: 100
images:
background: mana_bar_empty
cursor:
image: mana_bar_full
with_fix: true🔧 Hata Ayıklama ve Yaygın Sorunlar
Kurulum sonrası en sık karşılaştığım sorun resource pack'in oyuncuya yüklenmemesiydi. Bunun birkaç nedeni olabiliyor: sunucu portunu yanlış ayarlamak, güvenlik duvarının resource pack host portunu bloke etmesi ya da config'deki URL'nin hatalı yazılmış olması. Ben genellikle self-host yerine bir CDN üzerinden sunmayı tercih ediyorum; daha stabil çalışıyor.
Bir diğer yaygın problem ise /iareload sonrasında bazı itemlerin kaybolmuş gibi görünmesi. Bu çoğunlukla önbellekten kaynaklanıyor. Sunucuyu tamamen yeniden başlatmak çözüyor. Ayrıca config dosyalarında YAML girintilerine dikkat etmek şart; tek bir yanlış boşluk tüm dosyayı geçersiz kılıyor ve hata mesajı her zaman tam olarak nereye baktığını söylemiyor.
ItemsAdder güncellemelerinde config formatı bazen değişiyor. Eklentiyi güncellemeden önce tüm plugins/ItemsAdder klasörünü yedekle. Bunu atlayan birini gördüm, saatlerce uğraştı.
🌐 Topluluk Paketleri ve Hazır İçerikler
Sıfırdan başlamak zorunda değilsin. ItemsAdder etrafında oldukça aktif bir topluluk oluşmuş durumda. Spigot ve Polymart üzerinde hem ücretsiz hem ücretli onlarca hazır içerik paketi bulunuyor.
---
Fantastik RPG setlerinden modern şehir dekorlarına, pixelart tarzı itemlerden gerçekçi silah paketlerine kadar geniş bir yelpaze var.
---
Bu paketleri kendi sunucuna entegre etmek de oldukça kolay;
zip dosyasını plugins/ItemsAdder/contents/ klasörüne çıkarıyorsun, bir /iareload sonrasında her şey hazır. Namespace'ler düzgün ayrılmışsa mevcut içeriklerinle çakışma yaşamıyorsun.
---
Ücretli paket almadan önce ücretsiz birini deneyip sistemi kavramanı öneririm; hem öğrenme açısından hem de para harcamadan önce ne istediğini netleştirmen açısından mantıklı.
---
Bir arkadaşım "bu kadar şeyi elle yapmak zorunda kalsaydık haftalar sürerdi" demişti. Hazır paketlerle sunucuyu birkaç günde tamamen dönüştürmek mümkün.
📈 Performans Üzerine Notlar
"Bu kadar özel içerik sunucuyu yavaşlatmaz mı?" sorusu sık soruluyor.
---
Kısa cevap: hayır, çünkü ItemsAdder'ın büyük kısmı client tarafında çalışıyor. Resource pack oyuncunun bilgisayarına yükleniyor, sunucu sadece hangi item olduğunu takip ediyor. Sunucu tarafındaki yük esas olarak etkinliklere bağlı scriptlerden kaynaklanıyor.
---
Çok sayıda events tanımı içeren, her tıklamada bir şeyler tetikleyen itemlerin sayısını makul tutmak önemli. Ben genellikle aktif efekt gerektiren itemlerde işlem başına ne kadar tick harcandığını Spark profiler ile kontrol ediyorum.
---
Yüzlerce özel item tanımlı olsa bile bunların büyük çoğunluğu statik texture değişikliği olduğundan sunucuya neredeyse sıfır ek yük bindiriyor.
⌨️ Temel Komutlar
/iagive <oyuncu> <namespace:item> — Oyuncuya özel item verir
/iazip — Resource pack'i yeniden
/iareload — Tüm config dosyalarını yeniden yükler
/iainfo <namespace:item> — Item hakkında bilgi gösterir
/iadrop <namespace:item> <x> <y> <z> — Dünyaya item düşürür
/ialist — Yüklü tüm özel itemleri listeler
Son Olarak
ItemsAdder öğrenme eğrisi biraz dik, ama bir kez kavradıktan sonra sunucuna bambaşka bir kimlik katıyor.
Ben başlangıçta sadece birkaç özel kılıç ekleyeyim diye kurmuştum; şu an sunucumun bütün itemleri, HUD'u ve ses paketi ItemsAdder üzerinden yönetiliyor.
Detaylı wiki için resmi dokümanlara ve Spigot sayfasına bakmanızı öneririm.
Sorularınız varsa yorumlarda yazın, elimden geldiğince yanıtlarım. 🔧


