preloader.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. const {AssetGuard} = require('./assetguard.js')
  2. const ConfigManager = require('./configmanager.js')
  3. const {ipcRenderer} = require('electron')
  4. const os = require('os')
  5. const path = require('path')
  6. const rimraf = require('rimraf')
  7. console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Loading..')
  8. // Load ConfigManager
  9. ConfigManager.load()
  10. // Ensure Distribution is downloaded and cached.
  11. AssetGuard.retrieveDistributionData(ConfigManager.getLauncherDirectory(), false).then((data) => {
  12. console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Loaded distribution index.')
  13. // Resolve the selected server if its value has yet to be set.
  14. if(ConfigManager.getSelectedServer() == null){
  15. console.log('Determining default selected server..')
  16. ConfigManager.setSelectedServer(AssetGuard.resolveSelectedServer(ConfigManager.getLauncherDirectory()).id)
  17. ConfigManager.save()
  18. }
  19. ipcRenderer.send('distributionIndexDone', data)
  20. }).catch(err => {
  21. console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Failed to load distribution index.')
  22. console.err(err)
  23. })
  24. // Clean up temp dir incase previous launches ended unexpectedly.
  25. rimraf(path.join(os.tmpdir(), ConfigManager.getTempNativeFolder()), (err) => {
  26. if(err){
  27. console.warn('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Error while cleaning natives directory', err)
  28. } else {
  29. console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Cleaned natives directory.')
  30. }
  31. })