feat: add Fabric version update and improve launch params handling

This commit is contained in:
2025-07-07 02:24:36 +05:00
parent 1b496288de
commit 2eda1d7806
2 changed files with 30 additions and 33 deletions

View File

@ -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',

View File

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