diff --git a/locales/installer-rp/ko-kr.json b/locales/installer-rp/ko-kr.json index 17f9ad9..8043447 100644 --- a/locales/installer-rp/ko-kr.json +++ b/locales/installer-rp/ko-kr.json @@ -86,6 +86,7 @@ "ffmpegExtracting": "ffmpeg zip 압축 해제 중…", "ffmpegReady": "ffmpeg.exe 준비 완료: {{path}}", "baseExtract": "베이스 리소스팩 압축 해제: {{name}}", + "baseShaderOverrideWarn": "경고: 베이스 리소스팩에 vanilla 셰이더 오버라이드(assets/minecraft/shaders/{{path}}) 가 포함됨. mcVersion {{mc}} 와 호환되지 않으면 셰이더 컴파일이 실패할 수 있습니다.", "packFormatMatched": "pack_format = {{format}} (mcVersion {{matched}})", "packFormatFallback": "pack_format = {{format}} (mcVersion \"{{version}}\" 매칭 실패, 최신 폴백)", "soundsMerged": "기존 sounds.json 병합 ({{count}}개 항목)", diff --git a/src/installer-rp/pack.ts b/src/installer-rp/pack.ts index aeb3ebd..cf45908 100644 --- a/src/installer-rp/pack.ts +++ b/src/installer-rp/pack.ts @@ -50,6 +50,20 @@ export async function buildResourcepackZip(opts: BuildResourcepackOptions): Prom if (opts.baseZipPath) { opts.log?.(t('log.baseExtract', { name: path.basename(opts.baseZipPath) })) await extract(opts.baseZipPath, { dir: root }) + // vanilla 셰이더 오버라이드(assets/minecraft/shaders/) 가 있으면 경고만 띄운다. + // 자동 제거는 사용자의 의도된 룩을 해칠 수 있어 하지 않는다. + const vanillaShaderDir = path.join(root, 'assets', 'minecraft', 'shaders') + try { + const stat = await fs.stat(vanillaShaderDir) + if (stat.isDirectory()) { + const entries = await fs.readdir(vanillaShaderDir) + if (entries.length > 0) { + opts.log?.(t('log.baseShaderOverrideWarn', { path: entries.join(', '), mc: opts.mcVersion })) + } + } + } catch { + // 없으면 정상. 무시. + } } const soundsDir = path.join(root, 'assets', NAMESPACE, 'sounds')