🔄 Kompatibilitas Versi & Siklus Dukungan
Halaman ini mencantumkan matriks kompatibilitas versi, aturan kompatibilitas masa depan, dan dependensi Agrarian Reform.
📌 Pernyataan Sumber Kode Repositori: Dokumentasi ini mencerminkan kondisi kode sumber terbaru di repositori, yang mungkin mencakup perubahan yang belum dirilis resmi di CurseForge atau Modrinth.
📊 Matriks Kompatibilitas Versi Minecraft
| Versi Minecraft | Build Mod | Status | Target Java | Fabric Loader | Batasan Dependensi |
|---|---|---|---|---|---|
| Minecraft 26.3 | 2.2.18+26.3 | Lini Utama Aktif (Snapshot 6+) | Java 25 | >=0.16.9 | "minecraft": ">=26.3-" |
| Minecraft 26.2 | 2.2.18+26.2 | Lini Utama Aktif (Stabil) | Java 25 | >=0.16.9 | "minecraft": ">=26.2-" |
| Minecraft 26.1.2 | 1.2.7+R-26.1.2 | Arsip / Usang | Java 25 | >=0.15.0 | "minecraft": ">=26.1.2" |
🛡️ Prinsip 1 Jar 1 Version & Batasan Terbuka
Agrarian Reform secara ketat mematuhi kebijakan 1 Jar 1 Version dan mandat kompatibilitas maju:
- Build Khusus: Setiap file JAR dikompilasi, diuji, dan diarsipkan khusus untuk rilis Minecraft yang ditargetkan (
agrarian-reform-2.2.18+26.2.jardanagrarian-reform-2.2.18+26.3.jar). - Batasan Terbuka: Dalam
fabric.mod.json, ketergantungan Minecraft ditentukan dengan batas terbuka:jsondan untuk 26.3:"minecraft": ">=26.2-"jsonIni mencegah penguncian Fabric Loader saat bermain di versi patch minor."minecraft": ">=26.3-" - Wildcard Dependensi: Dependensi seperti
dasik-librarymenggunakan wildcard ("*") untuk menghindari crash palsu saat pustaka diperbarui.
🔄 Arsitektur Modern & Codec SavedData
- Penamaan Rilis Tahunan (Annual Drop): Minecraft beralih ke format
Year.Drop.Patch. Versi 26.2 dan 26.3 merupakan rilis drop aktif saat ini. - Era Tanpa Obfuskasi: Kode 26.x beroperasi penuh pada pemetaan resmi Mojang. Istilah lama Yarn telah sepenuhnya dihapus.
- Modernisasi SavedData: Penyimpanan persisten dunia menggunakan catatan Mojang
SavedDataTypedengan Codec eksplisit:
java
public static final SavedDataType<ContinuumData> TYPE = new SavedDataType<>(
Identifier.fromNamespaceAndPath("agrarian_reform", "continuum"),
ContinuumData::create,
Codec.unboundedMap(Codec.STRING, Codec.LONG).xmap(
map -> {
ContinuumData data = new ContinuumData();
map.forEach((k, v) -> data.timestamps.put(Long.parseLong(k), v));
return data;
},
data -> {
Map<String, Long> map = new HashMap<>();
data.timestamps.forEach((k, v) -> map.put(k.toString(), v));
return map;
}
),
DataFixTypes.SAVED_DATA_MAP_DATA
);Lihat juga: Panduan Minecraft 26.2 & 26.3 dan Integrasi API & Pengaya.
