debug minecraft-launcher.ts

This commit is contained in:
2025-07-20 20:15:09 +05:00
parent fa115e0a6c
commit e018aec8db
2 changed files with 45 additions and 6 deletions

View File

@ -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);

View File

@ -34,6 +34,7 @@ export default function SkinViewer({
width,
height,
skin: skinUrl || undefined,
model: 'auto-detect',
cape: capeUrl || undefined,
});