mirror of
https://gitea.shironeko-all.duckdns.org/shironeko/Hytale-F2P-2.git
synced 2026-02-26 02:31:46 -03:00
pre-release & release game version [to check]
This commit is contained in:
146
main.js
146
main.js
@@ -2,8 +2,8 @@ const path = require('path');
|
||||
require('dotenv').config({ path: path.join(__dirname, '.env') });
|
||||
const { app, BrowserWindow, ipcMain, dialog, shell } = require('electron');
|
||||
const fs = require('fs');
|
||||
const { launchGame, launchGameWithVersionCheck, installGame, saveUsername, loadUsername, saveChatUsername, loadChatUsername, saveChatColor, loadChatColor, saveJavaPath, loadJavaPath, saveInstallPath, loadInstallPath, saveDiscordRPC, loadDiscordRPC, saveLanguage, loadLanguage, saveCloseLauncherOnStart, loadCloseLauncherOnStart, isGameInstalled, uninstallGame, repairGame, getHytaleNews, handleFirstLaunchCheck, proposeGameUpdate, markAsLaunched } = require('./backend/launcher');
|
||||
|
||||
const { launchGame, launchGameWithVersionCheck, installGame, saveUsername, loadUsername, saveChatUsername, loadChatUsername, saveChatColor, loadChatColor, saveJavaPath, loadJavaPath, saveInstallPath, loadInstallPath, saveDiscordRPC, loadDiscordRPC, saveLanguage, loadLanguage, saveCloseLauncherOnStart, loadCloseLauncherOnStart, isGameInstalled, uninstallGame, repairGame, getHytaleNews, handleFirstLaunchCheck, proposeGameUpdate, markAsLaunched } = require('./backend/launcher');
|
||||
|
||||
const UpdateManager = require('./backend/updateManager');
|
||||
const logger = require('./backend/logger');
|
||||
const profileManager = require('./backend/managers/profileManager');
|
||||
@@ -187,21 +187,21 @@ function createWindow() {
|
||||
if (input.key === 'F12') {
|
||||
event.preventDefault();
|
||||
}
|
||||
if (input.key === 'F5') {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
// Close application shortcuts
|
||||
const isMac = process.platform === 'darwin';
|
||||
const quitShortcut = (isMac && input.meta && input.key.toLowerCase() === 'q') ||
|
||||
(!isMac && input.control && input.key.toLowerCase() === 'q') ||
|
||||
(!isMac && input.alt && input.key === 'F4');
|
||||
|
||||
if (quitShortcut) {
|
||||
app.quit();
|
||||
}
|
||||
});
|
||||
|
||||
if (input.key === 'F5') {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
// Close application shortcuts
|
||||
const isMac = process.platform === 'darwin';
|
||||
const quitShortcut = (isMac && input.meta && input.key.toLowerCase() === 'q') ||
|
||||
(!isMac && input.control && input.key.toLowerCase() === 'q') ||
|
||||
(!isMac && input.alt && input.key === 'F4');
|
||||
|
||||
if (quitShortcut) {
|
||||
app.quit();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
mainWindow.webContents.on('context-menu', (e) => {
|
||||
@@ -345,14 +345,14 @@ app.on('before-quit', () => {
|
||||
cleanupDiscordRPC();
|
||||
});
|
||||
|
||||
app.on('window-all-closed', () => {
|
||||
console.log('=== LAUNCHER CLOSING ===');
|
||||
|
||||
cleanupDiscordRPC();
|
||||
|
||||
app.quit();
|
||||
});
|
||||
|
||||
app.on('window-all-closed', () => {
|
||||
console.log('=== LAUNCHER CLOSING ===');
|
||||
|
||||
cleanupDiscordRPC();
|
||||
|
||||
app.quit();
|
||||
});
|
||||
|
||||
|
||||
ipcMain.handle('launch-game', async (event, playerName, javaPath, installPath, gpuPreference) => {
|
||||
try {
|
||||
@@ -369,20 +369,20 @@ ipcMain.handle('launch-game', async (event, playerName, javaPath, installPath, g
|
||||
}
|
||||
};
|
||||
|
||||
const result = await launchGameWithVersionCheck(playerName, progressCallback, javaPath, installPath, gpuPreference);
|
||||
|
||||
if (result.success && result.launched) {
|
||||
const closeOnStart = loadCloseLauncherOnStart();
|
||||
if (closeOnStart) {
|
||||
console.log('Close Launcher on start enabled, quitting application...');
|
||||
setTimeout(() => {
|
||||
app.quit();
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
const result = await launchGameWithVersionCheck(playerName, progressCallback, javaPath, installPath, gpuPreference);
|
||||
|
||||
if (result.success && result.launched) {
|
||||
const closeOnStart = loadCloseLauncherOnStart();
|
||||
if (closeOnStart) {
|
||||
console.log('Close Launcher on start enabled, quitting application...');
|
||||
setTimeout(() => {
|
||||
app.quit();
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
} catch (error) {
|
||||
console.error('Launch error:', error);
|
||||
const errorMessage = error.message || error.toString();
|
||||
@@ -397,8 +397,10 @@ ipcMain.handle('launch-game', async (event, playerName, javaPath, installPath, g
|
||||
}
|
||||
});
|
||||
|
||||
ipcMain.handle('install-game', async (event, playerName, javaPath, installPath) => {
|
||||
ipcMain.handle('install-game', async (event, playerName, javaPath, installPath, branch) => {
|
||||
try {
|
||||
console.log(`[IPC] install-game called with branch: ${branch || 'default'}`);
|
||||
|
||||
// Signal installation start
|
||||
if (mainWindow && !mainWindow.isDestroyed()) {
|
||||
mainWindow.webContents.send('installation-start');
|
||||
@@ -417,7 +419,7 @@ ipcMain.handle('install-game', async (event, playerName, javaPath, installPath)
|
||||
}
|
||||
};
|
||||
|
||||
const result = await installGame(playerName, progressCallback, javaPath, installPath);
|
||||
const result = await installGame(playerName, progressCallback, javaPath, installPath, branch);
|
||||
|
||||
// Signal installation end
|
||||
if (mainWindow && !mainWindow.isDestroyed()) {
|
||||
@@ -497,21 +499,21 @@ ipcMain.handle('save-language', (event, language) => {
|
||||
return { success: true };
|
||||
});
|
||||
|
||||
ipcMain.handle('load-language', () => {
|
||||
return loadLanguage();
|
||||
});
|
||||
|
||||
ipcMain.handle('save-close-launcher', (event, enabled) => {
|
||||
saveCloseLauncherOnStart(enabled);
|
||||
return { success: true };
|
||||
});
|
||||
|
||||
ipcMain.handle('load-close-launcher', () => {
|
||||
return loadCloseLauncherOnStart();
|
||||
});
|
||||
|
||||
ipcMain.handle('select-install-path', async () => {
|
||||
|
||||
ipcMain.handle('load-language', () => {
|
||||
return loadLanguage();
|
||||
});
|
||||
|
||||
ipcMain.handle('save-close-launcher', (event, enabled) => {
|
||||
saveCloseLauncherOnStart(enabled);
|
||||
return { success: true };
|
||||
});
|
||||
|
||||
ipcMain.handle('load-close-launcher', () => {
|
||||
return loadCloseLauncherOnStart();
|
||||
});
|
||||
|
||||
ipcMain.handle('select-install-path', async () => {
|
||||
|
||||
const result = await dialog.showOpenDialog(mainWindow, {
|
||||
properties: ['openDirectory'],
|
||||
title: 'Select Installation Folder'
|
||||
@@ -836,10 +838,10 @@ ipcMain.handle('open-download-page', async () => {
|
||||
try {
|
||||
await shell.openExternal(updateManager.getDownloadUrl());
|
||||
|
||||
setTimeout(() => {
|
||||
app.quit();
|
||||
}, 1000);
|
||||
|
||||
setTimeout(() => {
|
||||
app.quit();
|
||||
}, 1000);
|
||||
|
||||
|
||||
return { success: true };
|
||||
} catch (error) {
|
||||
@@ -881,10 +883,26 @@ ipcMain.handle('get-detected-gpu', () => {
|
||||
return global.detectedGpu;
|
||||
});
|
||||
|
||||
ipcMain.handle('window-close', () => {
|
||||
app.quit();
|
||||
});
|
||||
|
||||
ipcMain.handle('save-version-branch', (event, branch) => {
|
||||
const { saveVersionBranch } = require('./backend/launcher');
|
||||
saveVersionBranch(branch);
|
||||
return { success: true };
|
||||
});
|
||||
|
||||
ipcMain.handle('load-version-branch', () => {
|
||||
const { loadVersionBranch } = require('./backend/launcher');
|
||||
return loadVersionBranch();
|
||||
});
|
||||
|
||||
ipcMain.handle('load-version-client', () => {
|
||||
const { loadVersionClient } = require('./backend/launcher');
|
||||
return loadVersionClient();
|
||||
});
|
||||
|
||||
ipcMain.handle('window-close', () => {
|
||||
app.quit();
|
||||
});
|
||||
|
||||
|
||||
ipcMain.handle('window-minimize', () => {
|
||||
if (mainWindow && !mainWindow.isDestroyed()) {
|
||||
|
||||
Reference in New Issue
Block a user