- Eşleştirmeler, Minecraft'ın karartılmış kodunu okunabilir isimlere çeviren isim tablolarıdır.
- Mojang, sınıf, alan ve yöntem adlarını karıştırır ve bunlar her sürümde değişir.
- Bahsedeceğiniz üç tanesi MCP, Yarn ve Mojang eşleştirmeleri (Mojmap)'tır.
- Bir eşleştirme, çalışma zamanında değil, derleme zamanında uygulanır, bu nedenle oyunculara gönderilmez.
Minecraft haritaları, oyunun karmaşıklaştırılmış kodunu okunabilir isimlere çeviren isim tablolarıdır. Mojang, Minecraft'ı a.a.a gibi karıştırılmış sınıf ve alan adlarıyla gönderir, bu nedenle mod ve istemci geliştiricileri MCP, Yarn veya Mojang haritaları gibi bir haritalama seti uygulayarak okuyup bağlantı kurabilecekleri isimleri elde ederler.
Opal Nerede Çalışır
Opal, bir Fabric mod'udur, bu nedenle arka planda modern mapping'lere karşı derlenir ve bunun yerine temiz bir GraalVM JavaScript betik oluşturma API'si sunar. Betiklerinizi kendiniz mapping'lere dokunmadan okunabilir isimlere karşı yazarsınız. Betik oluşturma kılavuzunu inceleyin.
Neden Eşleştirmeler Vardır
Mojang, Minecraft'ı piyasaya sürmeden önce karartır. Dağıtılan jar dosyası, dosyayı küçültmek ve kodu okumayı zorlaştırmak için sınıfları, metotları ve alanları kısa, anlamsız dizelere yeniden adlandırır. Bu karıştırma, oyunun içine girip düzenlemeye başlamanızı engeller.
Bir eşleştirme, bu durumu tersine çeviren sözlüktür. Her karartılmış adı okunabilir bir adıyla eşleştirir, böylece field_70181_x gibi bir alan motionY olur. Bir eşleştirme uygulandığında, bir geliştirici normal görünümlü bir kod tabanı görür ve buna mod yazabilir.
İşte burada önemli olan bir nokta var. Karartılmış adlar her Minecraft sürümünde değişir, bu nedenle aynı alan bir sürümde a olabilir ve bir sonraki sürümde bk olabilir. Eşleştirmeler bu değişimi emer, bu nedenle mod araç zincirinin temelini oluştururlar.
Duyacağınız Üç Tanesi
MCP (Mod Coder Pack), 1.14'ten önceki modlamayı mümkün kılan topluluk eşlemesidir. İki katmanlı bir şema kullanır: Searge projesi, field_70181_x gibi kararlı ancak çirkin ara adlar üretir ve MCP bunları motionY gibi dost canlısı adlarla sarar. Çoğu eski 1.8.9 bağımsız istemci, MCP eşlenmiş kaynak ağacına karşı derlenir ve yansımalarını MCP ve Searge adlarına göre anahtalar.
Yarn, FabricMC tarafından Fabric ekosistemi için geliştirilen, açık kaynaklı bir eşlemedir. Topluluk tarafından yönetilir, özgür lisanslıdır ve yeni bir Minecraft sürümü çıktığında hızla güncellenir; bu da Fabric modlarının yeni sürümlere hızlıca ulaşmasının nedenlerinden biridir.
Mojang eşlemeleri, genellikle Mojmap olarak anılır, Mojang'ın kendi birinci taraf eşlemesidir ve 1.14.4'ten beri her resmi sürümle birlikte yayınlanmıştır. Doğrudan Mojang'dan geldikleri için, adlar geliştiricilerin şeyleri aslında nasıl adlandırdığıyla eşleşir. Etkili bir şekilde, 1.21 veya sonraki sürümleri hedefleyen yeni istemciler için MCP ve Searge'ın yerini almıştır.
Karşılaştırma
| MCP | Yarn | Mojang eşlemeleri | |
|---|---|---|---|
| Geliştirici | Topluluk (Searge + MCP) | FabricMC | Mojang |
| Dönem | 1.14 öncesi (1.7-1.12) | 1.14+ | 1.14.4+ |
| Kaynak | Topluluk tarafından türetilmiş | Topluluk tarafından türetilmiş | Resmi |
| Kullanıldığı yerler | Eski istemciler, eski modlama | Fabric | Fabric, Forge |
| Durum | Mojang eşlemeleri tarafından kullanımdan kaldırıldı | Aktif | Aktif varsayılan |
Eşlemeler bir mod araç zincirine nasıl uyum sağlar
Bir eşleme, çalışma zamanında değil, derleme zamanında uygulanır. Derleme aracı, karartılmış oyunu alır, eşlemeyi onun üzerinde çalıştırır ve kod yazmak için okunabilir bir sürüm sunar. Bitmiş modunuz daha sonra, oyuncunun oyununun aslında kullandığı karartılmış adlarla uyumlu olacak şekilde tekrar eşlenir.
Farklı yükleyiciler bunu farklı şekillerde ele alır. Fabric, projeye bağlı olarak Yarn veya bir Mojang haritalama tabanına göre derlenir. Forge, tarihsel olarak bu işi böler, okuduğunuz kaynak için bir haritalama ve çalıştırılan için başka bir haritalama kullanırdı. Mojang haritalamalarının lisansı, derleme zamanında kullanıma izin verecek kadar esnektir, bu nedenle modern araç zincirleri buna dayanır.
SSS
Hayır. Bir eşleme sadece geliştirici için şeylerin adını değiştirir. Derlenmiş mod, karartılmış oyuna uyacak şekilde yeniden eşlenir, bu yüzden kodlarken gördüğünüz adlar oyunculara gönderilmez.
Geçmişte MCP ilk olarak ortaya çıktı ve topluluğu Minecraft 1.14'ten önceki sürümlerinde destekledi. Yarn, Fabric ile birlikte açık bir alternatif olarak büyüdü ve Mojang haritalamaları, Mojang'ın 1.14.4 sürümünde resmi isimleri yayınlamaya başlamasıyla birlikte geldi.
Modern Minecraft için, Mojang mapping'leri veya Yarn standart seçimlerdir. MCP ise, eski araç zincirinin hala kullanıldığı 1.8.9 dönemine ait eski çalışmalar için geçerlidir.
Hayır. Bir haritalama bir isim tablosudur; Fabric gibi bir mod yükleyicisi ise, modları oyuna yükleyen çalışma zamanıdır. Birlikte çalışırlar ancak farklı sorunları çözerler.