mirror of
https://gitea.shironeko-all.duckdns.org/shironeko/Hytale-F2P-2.git
synced 2026-02-26 02:31:46 -03:00
* fix: comprehensive UUID/username persistence bug fixes Major fixes for UUID/skin reset issues that caused players to lose cosmetics: Core fixes: - Username rename now preserves UUID (atomic rename, not new identity) - Atomic config writes with backup/recovery system - Case-insensitive UUID lookup with case-preserving storage - Pre-launch validation blocks play if no username configured - Removed saveUsername calls from launch/install flows UUID Modal fixes: - Fixed isCurrent badge showing on wrong user - Added switch identity button to change between saved usernames - Fixed custom UUID input using unsaved DOM username - UUID list now refreshes when player name changes - Enabled copy/paste in custom UUID input field UI/UX improvements: - Added translation keys for switch username functionality - CSS user-select fix for UUID input fields - Allowed Ctrl+V/C/X/A shortcuts in Electron Files: config.js, gameLauncher.js, gameManager.js, playerManager.js, launcher.js, settings.js, main.js, preload.js, style.css, en.json See UUID_BUGS_FIX_PLAN.md for detailed bug list (18 bugs, 16 fixed) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat(i18n): add switch username translations to all locales Added translation keys for username switching functionality: - notifications.noUsername - notifications.switchUsernameSuccess - notifications.switchUsernameFailed - notifications.playerNameTooLong - confirm.switchUsernameTitle - confirm.switchUsernameMessage - confirm.switchUsernameButton Languages updated: de-DE, es-ES, fr-FR, id-ID, pl-PL, pt-BR, ru-RU, sv-SE, tr-TR Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: move UUID_BUGS_FIX_PLAN.md to docs folder * docs: update UUID_BUGS_FIX_PLAN with complete fix details --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
203 lines
3.9 KiB
JavaScript
203 lines
3.9 KiB
JavaScript
// Main launcher module - orchestrates all launcher functionality
|
|
// This file serves as the main entry point and re-exports all necessary functions
|
|
|
|
// Core modules
|
|
const {
|
|
saveUsername,
|
|
loadUsername,
|
|
loadUsernameWithDefault,
|
|
hasUsername,
|
|
saveJavaPath,
|
|
loadJavaPath,
|
|
saveInstallPath,
|
|
loadInstallPath,
|
|
saveDiscordRPC,
|
|
loadDiscordRPC,
|
|
saveLanguage,
|
|
loadLanguage,
|
|
saveCloseLauncherOnStart,
|
|
loadCloseLauncherOnStart,
|
|
|
|
saveLauncherHardwareAcceleration,
|
|
loadLauncherHardwareAcceleration,
|
|
|
|
loadConfig,
|
|
saveConfig,
|
|
|
|
saveModsToConfig,
|
|
loadModsFromConfig,
|
|
getUuidForUser,
|
|
isFirstLaunch,
|
|
markAsLaunched,
|
|
checkLaunchReady,
|
|
// UUID Management
|
|
getCurrentUuid,
|
|
getAllUuidMappings,
|
|
getAllUuidMappingsArray,
|
|
setUuidForUser,
|
|
generateNewUuid,
|
|
deleteUuidForUser,
|
|
resetCurrentUserUuid,
|
|
// GPU Preference
|
|
saveGpuPreference,
|
|
loadGpuPreference,
|
|
// Version Management
|
|
saveVersionClient,
|
|
loadVersionClient,
|
|
saveVersionBranch,
|
|
loadVersionBranch
|
|
} = require('./core/config');
|
|
|
|
const { getResolvedAppDir, getModsPath } = require('./core/paths');
|
|
|
|
// Managers
|
|
const {
|
|
isGameInstalled,
|
|
installGame,
|
|
uninstallGame,
|
|
updateGameFiles,
|
|
checkExistingGameInstallation,
|
|
repairGame
|
|
} = require('./managers/gameManager');
|
|
|
|
const {
|
|
launchGame,
|
|
launchGameWithVersionCheck
|
|
} = require('./managers/gameLauncher');
|
|
|
|
const { getJavaDetection } = require('./managers/javaManager');
|
|
|
|
const {
|
|
downloadAndReplaceHomePageUI,
|
|
findHomePageUIPath,
|
|
downloadAndReplaceLogo,
|
|
findLogoPath
|
|
} = require('./managers/uiFileManager');
|
|
|
|
const {
|
|
loadInstalledMods,
|
|
downloadMod,
|
|
uninstallMod,
|
|
toggleMod
|
|
} = require('./managers/modManager');
|
|
|
|
// Services
|
|
const {
|
|
getLatestClientVersion
|
|
} = require('./services/versionManager');
|
|
|
|
const { getHytaleNews } = require('./services/newsManager');
|
|
|
|
const { getOrCreatePlayerId } = require('./services/playerManager');
|
|
|
|
const {
|
|
proposeGameUpdate,
|
|
handleFirstLaunchCheck
|
|
} = require('./services/firstLaunch');
|
|
|
|
// Utils
|
|
const { detectGpu } = require('./utils/platformUtils');
|
|
|
|
// Re-export all functions to maintain backward compatibility
|
|
module.exports = {
|
|
// Game launch functions
|
|
launchGame,
|
|
launchGameWithVersionCheck,
|
|
|
|
// Game installation functions
|
|
installGame,
|
|
isGameInstalled,
|
|
uninstallGame,
|
|
updateGameFiles,
|
|
repairGame,
|
|
|
|
// User configuration functions
|
|
saveUsername,
|
|
loadUsername,
|
|
loadUsernameWithDefault,
|
|
hasUsername,
|
|
getUuidForUser,
|
|
checkLaunchReady,
|
|
|
|
// Java configuration functions
|
|
saveJavaPath,
|
|
loadJavaPath,
|
|
getJavaDetection,
|
|
|
|
// Installation path functions
|
|
saveInstallPath,
|
|
loadInstallPath,
|
|
|
|
// Discord RPC functions
|
|
saveDiscordRPC,
|
|
loadDiscordRPC,
|
|
|
|
// Language functions
|
|
saveLanguage,
|
|
loadLanguage,
|
|
|
|
// Close Launcher functions
|
|
saveCloseLauncherOnStart,
|
|
loadCloseLauncherOnStart,
|
|
|
|
// Hardware Acceleration functions
|
|
saveLauncherHardwareAcceleration,
|
|
loadLauncherHardwareAcceleration,
|
|
|
|
// Config functions
|
|
loadConfig,
|
|
saveConfig,
|
|
|
|
// GPU Preference functions
|
|
saveGpuPreference,
|
|
loadGpuPreference,
|
|
detectGpu,
|
|
|
|
// Version functions
|
|
getLatestClientVersion,
|
|
saveVersionClient,
|
|
loadVersionClient,
|
|
saveVersionBranch,
|
|
loadVersionBranch,
|
|
|
|
// News functions
|
|
getHytaleNews,
|
|
|
|
// Player ID functions
|
|
getOrCreatePlayerId,
|
|
|
|
// UUID Management functions
|
|
getCurrentUuid,
|
|
getAllUuidMappings,
|
|
getAllUuidMappingsArray,
|
|
setUuidForUser,
|
|
generateNewUuid,
|
|
deleteUuidForUser,
|
|
resetCurrentUserUuid,
|
|
|
|
// Mod management functions
|
|
getModsPath,
|
|
loadInstalledMods,
|
|
downloadMod,
|
|
uninstallMod,
|
|
toggleMod,
|
|
saveModsToConfig,
|
|
loadModsFromConfig,
|
|
|
|
// UI file management functions
|
|
downloadAndReplaceHomePageUI,
|
|
findHomePageUIPath,
|
|
downloadAndReplaceLogo,
|
|
findLogoPath,
|
|
|
|
// First launch functions
|
|
isFirstLaunch,
|
|
markAsLaunched,
|
|
checkExistingGameInstallation,
|
|
proposeGameUpdate,
|
|
handleFirstLaunchCheck,
|
|
|
|
// Path functions
|
|
getResolvedAppDir
|
|
};
|