Skip to content

GameRule Klien & Pembantu GUI

Kelas UtilitasLingkunganPeran
ClientGameRuleHelperKlien / Server TerintegrasiMembaca GameRule server terintegrasi dari thread klien
ConfigHelperCommon (Klien/Server)Pemuatan, penyimpanan, dan pertukaran berkas atomik JSON
GuiHelperKlienBantuan pembangunan layar antarmuka ModMenu dan Cloth Config

🖥️ Pencegahan Crash pada Dedicated Server

Guna mencegah error pemuatan kelas (ClassLoader) saat berjalan di Dedicated Server, seluruh antarmuka GUI menerapkan pemisahan lingkungan tunda (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT).

ascii
                      DynamicGameRuleManager.getInt(level, ruleKey)

                    ┌───────────────────┴───────────────────┐
                    ▼                                       ▼
          [ level instanceof ServerLevel ]       [ Client Environment ]
                    │                                       │
                    ▼                                       ▼
            Direct Level Lookup                   ClientGameRuleHelper
                                             (Queries Integrated Server)

📄 Pertukaran Atomik JSON pada ConfigHelper

ConfigHelper mengamankan data konfigurasi agar tidak rusak jika game tertutup mendadak:

  1. Menulis data ke berkas sementara config.json.tmp.
  2. Memvalidasi sintaks JSON dan ukuran berkas.
  3. Membuat cadangan otomatis di config.json.bak.
  4. Mengganti berkas secara atomik config.json.tmp -> config.json via Files.move(..., StandardCopyOption.ATOMIC_MOVE).

🔗 Halaman Terkait

Official documentation & web portal for Dasik Igaijinn mods.