mirror of
https://git.sanhost.net/sanasol/hytale-f2p.git
synced 2026-02-26 06:41:47 -03:00
Custom Mod loading fix (#92)
* feat: Add Repair Game functionality including UserData backup and cache clearing * feat: Add In-App Logs Viewer and Logs Folder shortcut * feat: Add Open Logs feature * disable dev tools * Fix Settings UI * Implement custom mod loading, autoimport, auto repair * Fixed Custom Mod loading issues and merge issues * feat: Externalize sensitive API keys and Discord client ID into environment variables using dotenv. * feat(mods): add profile-based mod management and auto-repair
This commit is contained in:
@@ -162,13 +162,18 @@ async function getModsPath(customInstallPath = null) {
|
||||
|
||||
const modsPath = path.join(userDataPath, 'Mods');
|
||||
const disabledModsPath = path.join(userDataPath, 'DisabledMods');
|
||||
const profilesPath = path.join(userDataPath, 'Profiles');
|
||||
|
||||
if (!fs.existsSync(modsPath)) {
|
||||
// Ensure the Mods directory exists
|
||||
fs.mkdirSync(modsPath, { recursive: true });
|
||||
}
|
||||
if (!fs.existsSync(disabledModsPath)) {
|
||||
fs.mkdirSync(disabledModsPath, { recursive: true });
|
||||
}
|
||||
if (!fs.existsSync(profilesPath)) {
|
||||
fs.mkdirSync(profilesPath, { recursive: true });
|
||||
}
|
||||
|
||||
return modsPath;
|
||||
} catch (error) {
|
||||
@@ -177,6 +182,34 @@ async function getModsPath(customInstallPath = null) {
|
||||
}
|
||||
}
|
||||
|
||||
function getProfilesDir(customInstallPath = null) {
|
||||
try {
|
||||
// get UserData path
|
||||
let installPath = customInstallPath;
|
||||
if (!installPath) {
|
||||
const configFile = path.join(DEFAULT_APP_DIR, 'config.json');
|
||||
if (fs.existsSync(configFile)) {
|
||||
const config = JSON.parse(fs.readFileSync(configFile, 'utf8'));
|
||||
installPath = config.installPath || '';
|
||||
}
|
||||
}
|
||||
if (!installPath) installPath = getAppDir();
|
||||
|
||||
const gameLatest = path.join(installPath, 'release', 'package', 'game', 'latest');
|
||||
const userDataPath = findUserDataPath(gameLatest);
|
||||
const profilesDir = path.join(userDataPath, 'Profiles');
|
||||
|
||||
if (!fs.existsSync(profilesDir)) {
|
||||
fs.mkdirSync(profilesDir, { recursive: true });
|
||||
}
|
||||
|
||||
return profilesDir;
|
||||
} catch (err) {
|
||||
console.error('Error getting profiles dir:', err);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getAppDir,
|
||||
getResolvedAppDir,
|
||||
@@ -191,5 +224,6 @@ module.exports = {
|
||||
findClientPath,
|
||||
findUserDataPath,
|
||||
findUserDataRecursive,
|
||||
getModsPath
|
||||
getModsPath,
|
||||
getProfilesDir
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user