From 2eda1d78065f502b62fd2f3cba8a9b63c514a6eb Mon Sep 17 00:00:00 2001 From: DIKER0K Date: Mon, 7 Jul 2025 02:24:36 +0500 Subject: [PATCH] feat: add Fabric version update and improve launch params handling --- src/main/minecraft-launcher.ts | 14 +++------ src/renderer/pages/LaunchPage.tsx | 49 ++++++++++++++++--------------- 2 files changed, 30 insertions(+), 33 deletions(-) diff --git a/src/main/minecraft-launcher.ts b/src/main/minecraft-launcher.ts index db2d2a3..df02f67 100644 --- a/src/main/minecraft-launcher.ts +++ b/src/main/minecraft-launcher.ts @@ -414,10 +414,6 @@ export function initMinecraftHandlers() { // Удаляем временную директорию fs.rmSync(tempDir, { recursive: true }); - // После распаковки архива и перед запуском - const versionsContents = fs.readdirSync(versionsDir); - console.log('Доступные версии:', versionsContents); - return { success: true, updated: true, version: latestVersion, packName }; } catch (error) { console.error('Error in download-and-extract:', error); @@ -434,6 +430,7 @@ export function initMinecraftHandlers() { username, memory = 2048, baseVersion = '1.21.4', + fabricVersion = 'fabric0.16.14', packName = 'Comfort', // Название основной сборки versionToLaunchOverride = '', // Возможность переопределить версию для запуска serverIp = 'popa-popa.ru', @@ -454,8 +451,8 @@ export function initMinecraftHandlers() { let versionToLaunch = versionToLaunchOverride; if (!versionToLaunch) { - if (versionsContents.includes(`${baseVersion}-fabric0.16.14`)) { - versionToLaunch = `${baseVersion}-fabric0.16.14`; + if (versionsContents.includes(`${baseVersion}-${fabricVersion}`)) { + versionToLaunch = `${baseVersion}-${fabricVersion}`; } else if (versionsContents.includes(packName)) { versionToLaunch = packName; } else { @@ -556,9 +553,6 @@ export function initMinecraftHandlers() { message: 'Получение списка версий Fabric...', }); - const fabricVersions = await getFabricLoaders(); - const fabricVersion = fabricVersions[0]; // Последняя версия - if (fabricVersion) { event.sender.send('installation-status', { step: 'fabric-install', @@ -578,7 +572,7 @@ export function initMinecraftHandlers() { // 3. Подготовка версии и установка зависимостей try { // Используем идентификатор Fabric-версии - const fabricVersionId = `${baseVersion}-fabric0.16.14`; + const fabricVersionId = `${baseVersion}-${fabricVersion}`; event.sender.send('installation-status', { step: 'version-parse', diff --git a/src/renderer/pages/LaunchPage.tsx b/src/renderer/pages/LaunchPage.tsx index e7820c2..19a528a 100644 --- a/src/renderer/pages/LaunchPage.tsx +++ b/src/renderer/pages/LaunchPage.tsx @@ -21,7 +21,19 @@ declare global { } } -const LaunchPage = () => { +const launchOptions = { + downloadUrl: + 'https://github.com/DIKER0K/Comfort/releases/latest/download/Comfort.zip', + apiReleaseUrl: 'https://api.github.com/repos/DIKER0K/Comfort/releases/latest', + versionFileName: 'comfort_version.txt', + packName: 'Comfort', + memory: 4096, + baseVersion: '1.21.4', + serverIp: 'popa-popa.ru', + fabricVersion: 'fabric0.16.14', +}; + +const LaunchPage = (launchOptions: any) => { const navigate = useNavigate(); const [isDownloading, setIsDownloading] = useState(false); const [downloadProgress, setDownloadProgress] = useState(0); @@ -90,15 +102,12 @@ const LaunchPage = () => { localStorage.getItem('launcher_config') || '{}', ); - // Опции для скачивания и запуска сборки + // Опции для скачивания сборки const packOptions = { - downloadUrl: - 'https://github.com/DIKER0K/Comfort/releases/latest/download/Comfort.zip', - apiReleaseUrl: - 'https://api.github.com/repos/DIKER0K/Comfort/releases/latest', - versionFileName: 'comfort_version.txt', - packName: 'Comfort', - serverIp: 'popa-popa.ru', + downloadUrl: launchOptions.downloadUrl, + apiReleaseUrl: launchOptions.apiReleaseUrl, + versionFileName: launchOptions.versionFileName, + packName: launchOptions.packName, }; // Передаем опции для скачивания @@ -124,19 +133,20 @@ const LaunchPage = () => { } // Опции для запуска - const launchOptions = { + const options = { accessToken: savedConfig.accessToken, uuid: savedConfig.uuid, username: savedConfig.username, - memory: savedConfig.memory || 4096, - baseVersion: '1.21.4', - packName: packOptions.packName, - serverIp: packOptions.serverIp, + memory: launchOptions.memory, + baseVersion: launchOptions.baseVersion, + packName: launchOptions.packName, + serverIp: launchOptions.serverIp, + fabricVersion: launchOptions.fabricVersion, }; const launchResult = await window.electron.ipcRenderer.invoke( 'launch-minecraft', - launchOptions, + options, ); if (needsSecondAttempt) { @@ -149,14 +159,7 @@ const LaunchPage = () => { const secondAttempt = await window.electron.ipcRenderer.invoke( 'launch-minecraft', - { - accessToken: savedConfig.accessToken, - uuid: savedConfig.uuid, - username: savedConfig.username, - memory: savedConfig.memory || 4096, - serverIp: packOptions.serverIp, - packName: packOptions.packName, - }, + options, ); showNotification('Minecraft успешно запущен!', 'success');