mirror of
https://git.sanhost.net/sanasol/hytale-f2p.git
synced 2026-02-28 07:41:47 -03:00
v2.4.5: Add multi-instance setting for mod developers
Allow running multiple game clients simultaneously via a new "Allow multiple game instances" toggle in Settings. When enabled, skips the Electron single-instance lock and the pre-launch process kill, so existing game instances stay alive. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@ let browseJavaBtn;
|
||||
let settingsPlayerName;
|
||||
let discordRPCCheck;
|
||||
let closeLauncherCheck;
|
||||
let allowMultiInstanceCheck;
|
||||
let launcherHwAccelCheck;
|
||||
let gpuPreferenceRadios;
|
||||
let gameBranchRadios;
|
||||
@@ -171,6 +172,7 @@ function setupSettingsElements() {
|
||||
settingsPlayerName = document.getElementById('settingsPlayerName');
|
||||
discordRPCCheck = document.getElementById('discordRPCCheck');
|
||||
closeLauncherCheck = document.getElementById('closeLauncherCheck');
|
||||
allowMultiInstanceCheck = document.getElementById('allowMultiInstanceCheck');
|
||||
launcherHwAccelCheck = document.getElementById('launcherHwAccelCheck');
|
||||
gpuPreferenceRadios = document.querySelectorAll('input[name="gpuPreference"]');
|
||||
gameBranchRadios = document.querySelectorAll('input[name="gameBranch"]');
|
||||
@@ -218,6 +220,10 @@ function setupSettingsElements() {
|
||||
closeLauncherCheck.addEventListener('change', saveCloseLauncher);
|
||||
}
|
||||
|
||||
if (allowMultiInstanceCheck) {
|
||||
allowMultiInstanceCheck.addEventListener('change', saveAllowMultiInstance);
|
||||
}
|
||||
|
||||
if (launcherHwAccelCheck) {
|
||||
launcherHwAccelCheck.addEventListener('change', saveLauncherHwAccel);
|
||||
}
|
||||
@@ -415,6 +421,30 @@ async function loadCloseLauncher() {
|
||||
}
|
||||
}
|
||||
|
||||
async function saveAllowMultiInstance() {
|
||||
try {
|
||||
if (window.electronAPI && window.electronAPI.saveAllowMultiInstance && allowMultiInstanceCheck) {
|
||||
const enabled = allowMultiInstanceCheck.checked;
|
||||
await window.electronAPI.saveAllowMultiInstance(enabled);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error saving multi-instance setting:', error);
|
||||
}
|
||||
}
|
||||
|
||||
async function loadAllowMultiInstance() {
|
||||
try {
|
||||
if (window.electronAPI && window.electronAPI.loadAllowMultiInstance) {
|
||||
const enabled = await window.electronAPI.loadAllowMultiInstance();
|
||||
if (allowMultiInstanceCheck) {
|
||||
allowMultiInstanceCheck.checked = enabled;
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error loading multi-instance setting:', error);
|
||||
}
|
||||
}
|
||||
|
||||
async function saveLauncherHwAccel() {
|
||||
try {
|
||||
if (window.electronAPI && window.electronAPI.saveLauncherHardwareAcceleration && launcherHwAccelCheck) {
|
||||
@@ -587,6 +617,7 @@ async function loadAllSettings() {
|
||||
await loadCurrentUuid();
|
||||
await loadDiscordRPC();
|
||||
await loadCloseLauncher();
|
||||
await loadAllowMultiInstance();
|
||||
await loadLauncherHwAccel();
|
||||
await loadGpuPreference();
|
||||
await loadVersionBranch();
|
||||
|
||||
Reference in New Issue
Block a user