Skip to content

📚 DasikLibrary API 통합

매개변수세부 명세
필수 선행 라이브러리net.dasik.social:dasik-library
버전 제약 조건dasik-library: >=1.7.0 (권장: 1.7.4)
격리 헬퍼 클래스net.instantgratification.collapsiblegamerules.util.DasikMetadataHelper
사용 API 메서드DynamicGameRuleManager.getGeneratedTranslations()
시작 시 검증CollapsibleGameRulesFabric.onInitialize()에서 필수 검증

📖 개요

Collapsible Game Rules는 DasikLibrary와 유기적으로 연동되어, 모던 모드 생태계에서 동적으로 생성된 게임 규칙의 카테고리 메타데이터와 번역을 실시간으로 가져옵니다.


🔒 클래스로딩 격리 패턴

선행 라이브러리가 없는 환경에서 클래스 로딩 충돌(NoClassDefFoundError)이 발생하는 것을 방지하기 위해, DasikMetadataHelper를 통한 지연 로딩(Lazy Loading) 구조를 채택했습니다.

┌─────────────────────────────────────────────────────────────────────────────┐
│                      CLASSLOADING ISOLATION PATTERN                         │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│   AbstractGameRulesScreenRuleListMixin                                      │
│        │                                                                    │
│        ▼ (FabricLoader.isModLoaded("dasik-library") 확인)                   │
│   ┌─────────────────────────────────────────────────────────────────────┐   │
│   │ if (FabricLoader.getInstance().isModLoaded("dasik-library")) {      │   │
│   │     categoryKey = DasikMetadataHelper.getCategoryTranslation(...);  │   │
│   │ }                                                                   │   │
│   └─────────────────────────────────────────────────────────────────────┘   │
│        │                                                                    │
│        ▼ (라이브러리 로드가 확인되었을 때만 안전하게 호출)                  │
│   DasikMetadataHelper ──> net.dasik.social.api.gamerule.DynamicGameRuleManager│
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

🛡️ 모드 시작 시 필수 선행 모드 검증

java
public class CollapsibleGameRulesFabric implements ModInitializer {
    public static final String MOD_ID = "collapsible-game-rules";
    public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);

    @Override
    public void onInitialize() {
        ModVersionGuard.checkClass("Collapsible Game Rules", "net.minecraft.world.level.gamerules.GameRules");
        LOGGER.info("Initializing Collapsible Game Rules [Core Align 2.1]");

        // 필수 모드 로드 검사
        if (!FabricLoader.getInstance().isModLoaded("dasik-library")) {
            throw new RuntimeException("Collapsible Game Rules requires DasikLibrary to function. Please install it.");
        }
    }
}

🔗 관련 문서

Official documentation & web portal for Dasik Igaijinn mods.