UniLib: Geliştiriciler için kütüphane modu ve Minecraft'ta modpack uyumluluğuna genel bakış
CDAGaming_ tarafından geliştirilen UniLib kütüphane modunun ayrıntılı teknik incelemesi: platformlar arası kayıt, arayüz render'ı ve…
CDAGaming_ tarafından geliştirilen UniLib kütüphane modunun ayrıntılı teknik incelemesi: platformlar arası kayıt, arayüz render'ı ve bağımlılıklar.
Bağımlılıklar:
Loader: Fabric / Forge / NeoForge / Quilt / Rift / Risugami's Modloader
Minecraft sürümü: 1.0 – 26.1.2
Minecraft modlarının çoklu platform geliştirmesi, yazarları kodlarını farklı oyun sürümlerine ve loader'lara uyarlamaya zorlar. UniLib kütüphanesi, oyun motoruyla etkileşimi basitleştiren tek bir araç seti ve birleşik bir API sunarak bu sorunu çözer. Uyumluluk görevini üstlenerek, bağımlı modların kodu yeniden yazmaya gerek kalmadan 50'den fazla Minecraft sürümünde çalışmasını sağlar. Bunun sayesinde oyuncular kararlı modpack'ler elde ederken geliştiriciler hem eski hem de yeni oyun sürümlerinin bakımını yaparken zamandan tasarruf eder.
Kütüphanenin amacı ve temel özellikleri
Minecraft motorunda yeni blok, eşya, varlık (entity) ve blok varlıklarını kaydetme süreci Fabric ve Forge loader'ları arasında önemli ölçüde farklılık gösterir ve ayrıca sürümden sürüme sürekli değişir. UniLib, geliştiricilere nesneleri kaydetmek için birleşik bir yöntem sunar. Mod yazarı her loader için ayrı sınıflar yazmak yerine, mevcut ortama otomatik olarak uyum sağlayan UniLib'in standart fonksiyonlarını kullanır. Bu, oyun başlatılırken oluşabilecek çökmeleri önler ve kodun taşınmasını kolaylaştırır.
Platformlar arası arayüz render'ı
Menü ekranlarının, düğmelerin ve diğer grafiksel arayüz öğelerinin render edilmesi, oyunun dahili kütüphanelerindeki değişiklikler nedeniyle Minecraft güncellemelerinde sıklıkla bozulur. UniLib, pencere ve düğme çizmek için hem çok eski oyun sürümlerinde hem de 1.20 ve 1.21 gibi modern sürümlerde aynı şekilde çalışan yerleşik bir araç seti içerir. Bu, diğer modların herhangi bir sistemde aynı görünümü ve işlevselliği koruyarak karmaşık arayüz özelleştirmeleri oluşturmasına olanak tanır.
Yerelleştirme ve güncelleme sistemi
Minecraft'ın çeviri sistemindeki değişiklikler, eşya isimlerinin veya alt yazıların farklı dillerde doğru şekilde görüntülenmemesine sıklıkla neden olur. UniLib bu sorunu, vanilla koddaki değişikliklerden bağımsız olarak doğru çeviri dosyalarını bulan kendi yerelleştirme yardımcı sınıfları aracılığıyla çözer. Ayrıca kütüphane, bağımlı modların yeni sürümleri yayınlandığında oyuncuyu ana menüde otomatik olarak bilgilendiren bir güncelleme kontrol aracı içerir.
Bağımlı modlar ve pratik önemi
UniLib'in zorunlu olarak gerekli olduğu en bilinen mod CraftPresence'tır. Bu mod, oyuncunun durumunu Discord Rich Presence'a entegre ederek mevcut boyut, biyom, can ve oynanış süresi hakkında bilgi aktarır. CraftPresence, kendi ayarlar menüsünü çizmek için UniLib'in grafik araçlarını kullanır ve ayrıca eski Minecraft istemcilerinde kararlı şekilde çalışabilmek için sürümler arası uyumluluk sistemine dayanır.
Bir başka örnek ise değerli eşyaların yanlışlıkla düşürülmesi durumunda uyarı gösteren DropConfirm modudur. UniLib kurulu değilse, bu modları içeren bir oyun başlatılamaz ve bir başlatma hatası verir.
Sonuç
Her loader ve her oyun güncellemesi için ayrı sürümler geliştirmeye kıyasla, UniLib yardımcı modların mantığını ve grafik arayüzünü tek bir evrensel dosyada birleştirmeye olanak tanır. Kütüphanenin en önemli sınırlaması, yalnızca oyunun istemci tarafını hedeflemesi ve bu nedenle sunucu taraflı uzantıları desteklememesidir. Bu mod, modpack'lerinde Discord Rich Presence entegrasyonu veya eşyaların yanlışlıkla düşürülmesine karşı koruma kullanan oyuncular için uygundur.
Kurulum
Tipik bir kurulum yaklaşık 5 dakika sürer. Akış aynıdır; yalnızca loader ve uygun build değişir.
- 1Install a mod loader (Forge, Fabric or NeoForge) that matches your Minecraft version.
- 2Download the mod file (.jar) built for that same version.
- 3Place the .jar into your .minecraft/mods folder.
- 4Launch Minecraft with the modded profile and check the mod loads in-game.











