From e018aec8dbdae84642fe45d08fc233ec128c9f39 Mon Sep 17 00:00:00 2001 From: DIKER0K Date: Sun, 20 Jul 2025 20:15:09 +0500 Subject: [PATCH] debug minecraft-launcher.ts --- src/main/minecraft-launcher.ts | 50 ++++++++++++++++++++++---- src/renderer/components/SkinViewer.tsx | 1 + 2 files changed, 45 insertions(+), 6 deletions(-) diff --git a/src/main/minecraft-launcher.ts b/src/main/minecraft-launcher.ts index d154052..2689dc9 100644 --- a/src/main/minecraft-launcher.ts +++ b/src/main/minecraft-launcher.ts @@ -522,6 +522,8 @@ export function initMinecraftHandlers() { message: 'Поиск Java...', }); + console.log('Поиск Java...'); + let javaPath; try { javaPath = await findJava(); @@ -543,11 +545,15 @@ export function initMinecraftHandlers() { message: 'Получение списка версий Minecraft...', }); + console.log('Получение списка версий Minecraft...'); + const versionList = await getVersionList(); const minecraftVersion = versionList.versions.find( (v) => v.id === baseVersion, ); + console.log('minecraftVersion:', minecraftVersion); + if (minecraftVersion) { // Устанавливаем базовую версию Minecraft event.sender.send('installation-status', { @@ -555,11 +561,15 @@ export function initMinecraftHandlers() { message: `Установка Minecraft ${baseVersion}...`, }); + console.log('Установка Minecraft...'); + try { const installMcTask = installTask(minecraftVersion, minecraftDir, { skipRevalidate: true, }); + console.log('installMcTask:', installMcTask); + await installMcTask.startAndWait({ onStart(task) { event.sender.send('installation-status', { @@ -580,6 +590,7 @@ export function initMinecraftHandlers() { }); }, onFailed(task, error) { + console.log('onFailed:', task, error); console.warn( `Ошибка при установке ${task.path}, продолжаем:`, error, @@ -597,7 +608,7 @@ export function initMinecraftHandlers() { }, }); } catch (error) { - console.warn('Ошибка при установке Minecraft, продолжаем:', error); + console.log('Ошибка при установке Minecraft, продолжаем:', error); } // 2. Устанавливаем Fabric @@ -618,6 +629,12 @@ export function initMinecraftHandlers() { message: `Установка Fabric ${fabricVersion}...`, }); + console.log('installFabric:', { + minecraftVersion: baseVersion, + fabricVersion: fabricVersion, + minecraftDir: minecraftDir, + }); + await installFabric({ minecraftVersion: baseVersion, version: fabricVersion, // Используйте напрямую, без .version @@ -625,7 +642,7 @@ export function initMinecraftHandlers() { }); } } catch (error) { - console.warn('Ошибка при установке Fabric, продолжаем:', error); + console.log('Ошибка при установке Fabric, продолжаем:', error); } // 3. Подготовка версии и установка зависимостей @@ -633,11 +650,18 @@ export function initMinecraftHandlers() { // Используем идентификатор Fabric-версии const fabricVersionId = `${baseVersion}-fabric${fabricVersion}`; + console.log('version-parse:', fabricVersionId); + event.sender.send('installation-status', { step: 'version-parse', message: 'Подготовка версии...', }); + console.log('version-parse:', { + minecraftDir: minecraftDir, + fabricVersionId: fabricVersionId, + }); + resolvedVersion = await Version.parse( minecraftDir, fabricVersionId, @@ -678,6 +702,7 @@ export function initMinecraftHandlers() { }); }, onFailed(task, error) { + console.log('onFailed:', task, error); console.warn( `Ошибка при установке ${task.path}, продолжаем:`, error, @@ -695,32 +720,38 @@ export function initMinecraftHandlers() { }, }); } catch (error) { - console.warn( + console.log( 'Ошибка при загрузке ресурсов, продолжаем запуск:', error, ); } } catch (error) { - console.warn('Ошибка при подготовке версии, продолжаем:', error); + console.log('Ошибка при подготовке версии, продолжаем:', error); } } } catch (error) { - console.warn('Произошла ошибка при подготовке Minecraft:', error); + console.log('Произошла ошибка при подготовке Minecraft:', error); } // Загрузка и проверка authlib-injector const authlibPath = await ensureAuthlibInjectorExists(appPath); + console.log('authlibPath:', authlibPath); + event.sender.send('installation-status', { step: 'authlib-injector', message: 'authlib-injector готов', }); // Запускаем Minecraft с authlib-injector для Ely.by + console.log('Запуск игры...'); + event.sender.send('installation-status', { step: 'launch', message: 'Запуск игры...', }); + console.log('Запуск игры...'); + // При запуске используем переданные параметры const packDir = path.join(versionsDir, packName); @@ -732,13 +763,14 @@ export function initMinecraftHandlers() { serverConfig.port = serverPort; } + console.log('packDir:', packDir); + const proc = await launch({ gamePath: packDir, resourcePath: minecraftDir, javaPath, version: versionToLaunch, launcherName: 'popa-popa', - server: serverConfig, // Используем созданный объект конфигурации extraJVMArgs: [ '-Dlog4j2.formatMsgNoLookups=true', `-javaagent:${authlibPath}=${API_BASE_URL}`, @@ -749,6 +781,10 @@ export function initMinecraftHandlers() { '-Dauthlibinjector.mojangAntiFeatures=disabled', '-Dcom.mojang.authlib.disableSecureProfileEndpoints=true', ], + extraMCArgs: [ + '--quickPlayMultiplayer', + `${serverIp}:${serverPort || 25565}`, + ], // Используем данные аутентификации Yggdrasil accessToken, gameProfile: { @@ -765,6 +801,8 @@ export function initMinecraftHandlers() { console.error(`Minecraft stderr: ${data}`); }); + console.log('Запуск игры...'); + return { success: true, pid: proc.pid }; } catch (error) { console.error('Ошибка при запуске Minecraft:', error); diff --git a/src/renderer/components/SkinViewer.tsx b/src/renderer/components/SkinViewer.tsx index faeba91..e73bbed 100644 --- a/src/renderer/components/SkinViewer.tsx +++ b/src/renderer/components/SkinViewer.tsx @@ -34,6 +34,7 @@ export default function SkinViewer({ width, height, skin: skinUrl || undefined, + model: 'auto-detect', cape: capeUrl || undefined, });