mirror of
https://github.com/dscalzi/HeliosLauncher.git
synced 2024-10-31 19:36:39 -07:00
a67dac23cf
Fixed incorrect function name for local distro index loading. Fixed mojang tooltip not showing statuses when offline. Added timeout of 2500ms to news loading, remote distro index retrieval, and mojang status loading. Updates async to fix lodash vulnerability.
63 lines
2.5 KiB
JavaScript
63 lines
2.5 KiB
JavaScript
const {AssetGuard} = require('./assetguard.js')
|
|
const ConfigManager = require('./configmanager.js')
|
|
const {ipcRenderer} = require('electron')
|
|
const os = require('os')
|
|
const path = require('path')
|
|
const rimraf = require('rimraf')
|
|
|
|
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Loading..')
|
|
|
|
// Load ConfigManager
|
|
ConfigManager.load()
|
|
|
|
function onDistroLoad(data){
|
|
if(data != null){
|
|
|
|
// Resolve the selected server if its value has yet to be set.
|
|
if(ConfigManager.getSelectedServer() == null || AssetGuard.getServerById(ConfigManager.getSelectedServer()) == null){
|
|
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Determining default selected server..')
|
|
ConfigManager.setSelectedServer(AssetGuard.resolveSelectedServer().id)
|
|
ConfigManager.save()
|
|
}
|
|
}
|
|
ipcRenderer.send('distributionIndexDone', data)
|
|
}
|
|
|
|
// Ensure Distribution is downloaded and cached.
|
|
AssetGuard.refreshDistributionDataRemote(ConfigManager.getLauncherDirectory()).then((data) => {
|
|
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Loaded distribution index.')
|
|
|
|
onDistroLoad(data)
|
|
|
|
}).catch((err) => {
|
|
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Failed to load distribution index.')
|
|
console.error(err)
|
|
|
|
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Attempting to load an older version of the distribution index.')
|
|
// Try getting a local copy, better than nothing.
|
|
AssetGuard.refreshDistributionDataLocal(ConfigManager.getLauncherDirectory()).then((data) => {
|
|
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Successfully loaded an older version of the distribution index.')
|
|
|
|
onDistroLoad(data)
|
|
|
|
|
|
}).catch((err) => {
|
|
|
|
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Failed to load an older version of the distribution index.')
|
|
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Application cannot run.')
|
|
console.error(err)
|
|
|
|
onDistroLoad(null)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
// Clean up temp dir incase previous launches ended unexpectedly.
|
|
rimraf(path.join(os.tmpdir(), ConfigManager.getTempNativeFolder()), (err) => {
|
|
if(err){
|
|
console.warn('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Error while cleaning natives directory', err)
|
|
} else {
|
|
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Cleaned natives directory.')
|
|
}
|
|
}) |