mirror of
https://github.com/dscalzi/HeliosLauncher.git
synced 2024-12-22 11:42:14 -08:00
Wrap calls to console.log through LoggerUtil (prefixes).
This commit is contained in:
parent
37606dc8d2
commit
0346597afe
@ -10,7 +10,10 @@
|
||||
*/
|
||||
// Requirements
|
||||
const ConfigManager = require('./configmanager')
|
||||
const LoggerUtil = require('./loggerutil')
|
||||
const Mojang = require('./mojang')
|
||||
const logger = LoggerUtil('%c[AuthManager]', 'color: #a02d2a; font-weight: bold')
|
||||
const loggerSuccess = LoggerUtil('%c[AuthManager]', 'color: #209b07; font-weight: bold')
|
||||
|
||||
// Functions
|
||||
|
||||
@ -69,18 +72,20 @@ exports.validateSelected = async function(){
|
||||
if(!isValid){
|
||||
try {
|
||||
const session = await Mojang.refresh(current.accessToken, ConfigManager.getClientToken())
|
||||
console.log('ses', session)
|
||||
ConfigManager.updateAuthAccount(current.uuid, session.accessToken)
|
||||
ConfigManager.save()
|
||||
} catch(err) {
|
||||
console.debug('Error while validating selected profile:', err)
|
||||
logger.debug('Error while validating selected profile:', err)
|
||||
if(err && err.error === 'ForbiddenOperationException'){
|
||||
// What do we do?
|
||||
}
|
||||
logger.log('Account access token is invalid.')
|
||||
return false
|
||||
}
|
||||
loggerSuccess.log('Account access token validated.')
|
||||
return true
|
||||
} else {
|
||||
loggerSuccess.log('Account access token validated.')
|
||||
return true
|
||||
}
|
||||
}
|
@ -1,9 +1,11 @@
|
||||
const fs = require('fs')
|
||||
const fs = require('fs')
|
||||
const mkpath = require('mkdirp')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
const uuidV4 = require('uuid/v4')
|
||||
|
||||
const logger = require('./loggerutil')('%c[ConfigManager]', 'color: #a02d2a; font-weight: bold')
|
||||
|
||||
const sysRoot = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + '/Library/Application Support' : process.env.HOME)
|
||||
const dataPath = path.join(sysRoot, '.westeroscraft')
|
||||
|
||||
@ -106,9 +108,9 @@ exports.load = function(){
|
||||
config = JSON.parse(fs.readFileSync(filePath, 'UTF-8'))
|
||||
doValidate = true
|
||||
} catch (err){
|
||||
console.error(err)
|
||||
console.log('%c[ConfigManager]', 'color: #a02d2a; font-weight: bold', 'Configuration file contains malformed JSON or is corrupt.')
|
||||
console.log('%c[ConfigManager]', 'color: #a02d2a; font-weight: bold', 'Generating a new configuration file.')
|
||||
logger.error(err)
|
||||
logger.log('Configuration file contains malformed JSON or is corrupt.')
|
||||
logger.log('Generating a new configuration file.')
|
||||
mkpath.sync(path.join(filePath, '..'))
|
||||
config = DEFAULT_CONFIG
|
||||
exports.save()
|
||||
@ -118,7 +120,7 @@ exports.load = function(){
|
||||
exports.save()
|
||||
}
|
||||
}
|
||||
console.log('%c[ConfigManager]', 'color: #a02d2a; font-weight: bold', 'Successfully Loaded')
|
||||
logger.log('Successfully Loaded')
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,4 +1,6 @@
|
||||
// Work in progress
|
||||
const logger = require('./loggerutil')('%c[DiscordWrapper]', 'color: #7289da; font-weight: bold')
|
||||
|
||||
const {Client} = require('discord-rpc')
|
||||
|
||||
let client
|
||||
@ -19,15 +21,15 @@ exports.initRPC = function(genSettings, servSettings, initialDetails = 'Waiting
|
||||
}
|
||||
|
||||
client.on('ready', () => {
|
||||
console.log('%c[Discord Wrapper]', 'color: #a02d2a; font-weight: bold', 'Discord RPC Connected')
|
||||
logger.log('Discord RPC Connected')
|
||||
client.setActivity(activity)
|
||||
})
|
||||
|
||||
client.login({clientId: genSettings.clientId}).catch(error => {
|
||||
if(error.message.includes('ENOENT')) {
|
||||
console.log('%c[Discord Wrapper]', 'color: #a02d2a; font-weight: bold', 'Unable to initialize Discord Rich Presence, no client detected.')
|
||||
logger.log('Unable to initialize Discord Rich Presence, no client detected.')
|
||||
} else {
|
||||
console.log('%c[Discord Wrapper]', 'color: #a02d2a; font-weight: bold', 'Unable to initialize Discord Rich Presence: ' + error.message, error)
|
||||
logger.log('Unable to initialize Discord Rich Presence: ' + error.message, error)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ const path = require('path')
|
||||
const request = require('request')
|
||||
|
||||
const ConfigManager = require('./configmanager')
|
||||
const logger = require('./loggerutil')('%c[DistroManager]', 'color: #a02d2a; font-weight: bold')
|
||||
|
||||
/**
|
||||
* Represents the download information
|
||||
@ -168,7 +169,7 @@ class Module {
|
||||
|
||||
} catch (err) {
|
||||
// Improper identifier
|
||||
console.error('Improper ID for module', this.identifier, err)
|
||||
logger.error('Improper ID for module', this.identifier, err)
|
||||
}
|
||||
}
|
||||
|
||||
@ -567,10 +568,10 @@ exports.pullLocal = function(){
|
||||
|
||||
exports.setDevMode = function(value){
|
||||
if(value){
|
||||
console.log('%c[DistroManager]', 'color: #a02d2a; font-weight: bold', 'Developer mode enabled.')
|
||||
console.log('%c[DistroManager]', 'color: #a02d2a; font-weight: bold', 'If you don\'t know what that means, revert immediately.')
|
||||
logger.log('Developer mode enabled.')
|
||||
logger.log('If you don\'t know what that means, revert immediately.')
|
||||
} else {
|
||||
console.log('%c[DistroManager]', 'color: #a02d2a; font-weight: bold', 'Developer mode disabled.')
|
||||
logger.log('Developer mode disabled.')
|
||||
}
|
||||
DEV_MODE = value
|
||||
}
|
||||
@ -585,10 +586,3 @@ exports.isDevMode = function(){
|
||||
exports.getDistribution = function(){
|
||||
return data
|
||||
}
|
||||
|
||||
/*async function debug(){
|
||||
const d = await exports.pullRemote()
|
||||
console.log(d)
|
||||
}
|
||||
debug()*/
|
||||
//console.log(DistroIndex.fromJSON(JSON.parse(require('fs').readFileSync('../distribution.json', 'utf-8'))))
|
28
app/assets/js/loggerutil.js
Normal file
28
app/assets/js/loggerutil.js
Normal file
@ -0,0 +1,28 @@
|
||||
class LoggerUtil {
|
||||
|
||||
constructor(prefix, style){
|
||||
this.prefix = prefix
|
||||
this.style = style
|
||||
}
|
||||
|
||||
log(){
|
||||
console.log.apply(null, [this.prefix, this.style, ...arguments])
|
||||
}
|
||||
|
||||
info(){
|
||||
console.info.apply(null, [this.prefix, this.style, ...arguments])
|
||||
}
|
||||
|
||||
debug(){
|
||||
console.debug.apply(null, [this.prefix, this.style, ...arguments])
|
||||
}
|
||||
|
||||
error(){
|
||||
console.error.apply(null, [this.prefix, this.style, ...arguments])
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = function (prefix, style){
|
||||
return new LoggerUtil(prefix, style)
|
||||
}
|
@ -7,6 +7,7 @@
|
||||
*/
|
||||
// Requirements
|
||||
const request = require('request')
|
||||
const logger = require('./loggerutil')('%c[Mojang]', 'color: #a02d2a; font-weight: bold')
|
||||
|
||||
// Constants
|
||||
const minecraftAgent = {
|
||||
@ -95,8 +96,8 @@ exports.status = function(){
|
||||
function(error, response, body){
|
||||
|
||||
if(error || response.statusCode !== 200){
|
||||
console.warn('Unable to retrieve Mojang status.')
|
||||
console.debug('Error while retrieving Mojang statuses:', error)
|
||||
logger.warn('Unable to retrieve Mojang status.')
|
||||
logger.debug('Error while retrieving Mojang statuses:', error)
|
||||
//reject(error || response.statusCode)
|
||||
for(let i=0; i<statuses.length; i++){
|
||||
statuses[i].status = 'grey'
|
||||
@ -145,7 +146,7 @@ exports.authenticate = function(username, password, clientToken, requestUser = t
|
||||
},
|
||||
function(error, response, body){
|
||||
if(error){
|
||||
console.error('Error during authentication.', error)
|
||||
logger.error('Error during authentication.', error)
|
||||
reject(error)
|
||||
} else {
|
||||
if(response.statusCode === 200){
|
||||
@ -179,7 +180,7 @@ exports.validate = function(accessToken, clientToken){
|
||||
},
|
||||
function(error, response, body){
|
||||
if(error){
|
||||
console.error('Error during validation.', error)
|
||||
logger.error('Error during validation.', error)
|
||||
reject(error)
|
||||
} else {
|
||||
if(response.statusCode === 403){
|
||||
@ -214,7 +215,7 @@ exports.invalidate = function(accessToken, clientToken){
|
||||
},
|
||||
function(error, response, body){
|
||||
if(error){
|
||||
console.error('Error during invalidation.', error)
|
||||
logger.error('Error during invalidation.', error)
|
||||
reject(error)
|
||||
} else {
|
||||
if(response.statusCode === 204){
|
||||
@ -251,7 +252,7 @@ exports.refresh = function(accessToken, clientToken, requestUser = true){
|
||||
},
|
||||
function(error, response, body){
|
||||
if(error){
|
||||
console.error('Error during refresh.', error)
|
||||
logger.error('Error during refresh.', error)
|
||||
reject(error)
|
||||
} else {
|
||||
if(response.statusCode === 200){
|
||||
|
@ -1,12 +1,13 @@
|
||||
const {ipcRenderer} = require('electron')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
const rimraf = require('rimraf')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
const rimraf = require('rimraf')
|
||||
|
||||
const ConfigManager = require('./configmanager')
|
||||
const DistroManager = require('./distromanager')
|
||||
const logger = require('./loggerutil')('%c[Preloader]', 'color: #a02d2a; font-weight: bold')
|
||||
|
||||
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Loading..')
|
||||
logger.log('Loading..')
|
||||
|
||||
// Load ConfigManager
|
||||
ConfigManager.load()
|
||||
@ -16,7 +17,7 @@ function onDistroLoad(data){
|
||||
|
||||
// Resolve the selected server if its value has yet to be set.
|
||||
if(ConfigManager.getSelectedServer() == null || data.getServer(ConfigManager.getSelectedServer()) == null){
|
||||
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Determining default selected server..')
|
||||
logger.log('Determining default selected server..')
|
||||
ConfigManager.setSelectedServer(data.getMainServer().getID())
|
||||
ConfigManager.save()
|
||||
}
|
||||
@ -26,27 +27,27 @@ function onDistroLoad(data){
|
||||
|
||||
// Ensure Distribution is downloaded and cached.
|
||||
DistroManager.pullRemote().then((data) => {
|
||||
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Loaded distribution index.')
|
||||
logger.log('Loaded distribution index.')
|
||||
|
||||
onDistroLoad(data)
|
||||
|
||||
}).catch((err) => {
|
||||
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Failed to load distribution index.')
|
||||
console.error(err)
|
||||
logger.log('Failed to load distribution index.')
|
||||
logger.error(err)
|
||||
|
||||
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Attempting to load an older version of the distribution index.')
|
||||
logger.log('Attempting to load an older version of the distribution index.')
|
||||
// Try getting a local copy, better than nothing.
|
||||
DistroManager.pullLocal().then((data) => {
|
||||
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Successfully loaded an older version of the distribution index.')
|
||||
logger.log('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)
|
||||
logger.log('Failed to load an older version of the distribution index.')
|
||||
logger.log('Application cannot run.')
|
||||
logger.error(err)
|
||||
|
||||
onDistroLoad(null)
|
||||
|
||||
@ -57,8 +58,8 @@ DistroManager.pullRemote().then((data) => {
|
||||
// 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)
|
||||
logger.warn('Error while cleaning natives directory', err)
|
||||
} else {
|
||||
console.log('%c[Preloader]', 'color: #a02d2a; font-weight: bold', 'Cleaned natives directory.')
|
||||
logger.log('Cleaned natives directory.')
|
||||
}
|
||||
})
|
@ -8,9 +8,12 @@ const path = require('path')
|
||||
const rimraf = require('rimraf')
|
||||
const {URL} = require('url')
|
||||
|
||||
const { Library } = require('./assetguard')
|
||||
const { Library } = require('./assetguard')
|
||||
const ConfigManager = require('./configmanager')
|
||||
const DistroManager = require('./distromanager')
|
||||
const LoggerUtil = require('./loggerutil')
|
||||
|
||||
const logger = LoggerUtil('%c[ProcessBuilder]', 'color: #003996; font-weight: bold')
|
||||
|
||||
class ProcessBuilder {
|
||||
|
||||
@ -37,7 +40,7 @@ class ProcessBuilder {
|
||||
const tempNativePath = path.join(os.tmpdir(), ConfigManager.getTempNativeFolder(), crypto.pseudoRandomBytes(16).toString('hex'))
|
||||
process.throwDeprecation = true
|
||||
this.setupLiteLoader()
|
||||
console.log('%c[ProcessBuilder]', 'color: #003996; font-weight: bold', 'Using liteloader:', this.usingLiteLoader)
|
||||
logger.log('Using liteloader:', this.usingLiteLoader)
|
||||
const modObj = this.resolveModConfiguration(ConfigManager.getModConfiguration(this.server.getID()).mods, this.server.getModules())
|
||||
this.constructModList('forge', modObj.fMods, true)
|
||||
if(this.usingLiteLoader){
|
||||
@ -46,7 +49,7 @@ class ProcessBuilder {
|
||||
const uberModArr = modObj.fMods.concat(modObj.lMods)
|
||||
const args = this.constructJVMArguments(uberModArr, tempNativePath)
|
||||
|
||||
console.log(args)
|
||||
logger.log('Launch Arguments:', args)
|
||||
|
||||
const child = child_process.spawn(ConfigManager.getJavaExecutable(), args, {
|
||||
cwd: this.gameDir,
|
||||
@ -60,19 +63,22 @@ class ProcessBuilder {
|
||||
child.stdout.setEncoding('utf8')
|
||||
child.stderr.setEncoding('utf8')
|
||||
|
||||
const loggerMCstdout = LoggerUtil('%c[Minecraft]', 'color: #36b030; font-weight: bold')
|
||||
const loggerMCstderr = LoggerUtil('%c[Minecraft]', 'color: #b03030; font-weight: bold')
|
||||
|
||||
child.stdout.on('data', (data) => {
|
||||
console.log('%c[Minecraft]', 'color: #36b030; font-weight: bold', data)
|
||||
loggerMCstdout.log(data)
|
||||
})
|
||||
child.stderr.on('data', (data) => {
|
||||
console.log('%c[Minecraft]', 'color: #b03030; font-weight: bold', data)
|
||||
loggerMCstderr.log(data)
|
||||
})
|
||||
child.on('close', (code, signal) => {
|
||||
console.log('%c[ProcessBuilder]', 'color: #003996; font-weight: bold', 'Exited with code', code)
|
||||
logger.log('Exited with code', code)
|
||||
rimraf(tempNativePath, (err) => {
|
||||
if(err){
|
||||
console.warn('%c[ProcessBuilder]', 'color: #003996; font-weight: bold', 'Error while deleting temp dir', err)
|
||||
logger.warn('Error while deleting temp dir', err)
|
||||
} else {
|
||||
console.log('%c[ProcessBuilder]', 'color: #003996; font-weight: bold', 'Temp dir deleted successfully.')
|
||||
logger.log('Temp dir deleted successfully.')
|
||||
}
|
||||
})
|
||||
})
|
||||
@ -401,7 +407,7 @@ class ProcessBuilder {
|
||||
if(!shouldExclude){
|
||||
fs.writeFile(path.join(tempNativePath, fileName), zipEntries[i].getData(), (err) => {
|
||||
if(err){
|
||||
console.error('Error while extracting native library:', err)
|
||||
logger.error('Error while extracting native library:', err)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -21,6 +21,8 @@ const launch_details_text = document.getElementById('launch_details_text')
|
||||
const server_selection_button = document.getElementById('server_selection_button')
|
||||
const user_text = document.getElementById('user_text')
|
||||
|
||||
const loggerLanding = LoggerUtil('%c[Landing]', 'color: #000668; font-weight: bold')
|
||||
|
||||
/* Launch Progress Wrapper Functions */
|
||||
|
||||
/**
|
||||
@ -83,7 +85,7 @@ function setLaunchEnabled(val){
|
||||
|
||||
// Bind launch button
|
||||
document.getElementById('launch_button').addEventListener('click', function(e){
|
||||
console.log('Launching game..')
|
||||
loggerLanding.log('Launching game..')
|
||||
const jExe = ConfigManager.getJavaExecutable()
|
||||
if(jExe == null){
|
||||
asyncSystemScan()
|
||||
@ -94,7 +96,7 @@ document.getElementById('launch_button').addEventListener('click', function(e){
|
||||
setLaunchPercentage(0, 100)
|
||||
|
||||
AssetGuard._validateJavaBinary(jExe).then((v) => {
|
||||
console.log(v)
|
||||
loggerLanding.log('Java version meta', v)
|
||||
if(v.valid){
|
||||
dlAsync()
|
||||
} else {
|
||||
@ -152,7 +154,7 @@ server_selection_button.onclick = (e) => {
|
||||
|
||||
// Update Mojang Status Color
|
||||
const refreshMojangStatuses = async function(){
|
||||
console.log('Refreshing Mojang Statuses..')
|
||||
loggerLanding.log('Refreshing Mojang Statuses..')
|
||||
|
||||
let status = 'grey'
|
||||
let tooltipEssentialHTML = ''
|
||||
@ -200,8 +202,8 @@ const refreshMojangStatuses = async function(){
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
console.warn('Unable to refresh Mojang service status.')
|
||||
console.debug(err)
|
||||
loggerLanding.warn('Unable to refresh Mojang service status.')
|
||||
loggerLanding.debug(err)
|
||||
}
|
||||
|
||||
document.getElementById('mojangStatusEssentialContainer').innerHTML = tooltipEssentialHTML
|
||||
@ -210,7 +212,7 @@ const refreshMojangStatuses = async function(){
|
||||
}
|
||||
|
||||
const refreshServerStatus = async function(fade = false){
|
||||
console.log('Refreshing Server Status')
|
||||
loggerLanding.log('Refreshing Server Status')
|
||||
const serv = DistroManager.getDistribution().getServer(ConfigManager.getSelectedServer())
|
||||
|
||||
let pLabel = 'SERVER'
|
||||
@ -225,8 +227,8 @@ const refreshServerStatus = async function(fade = false){
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
console.warn('Unable to refresh server status, assuming offline.')
|
||||
console.debug(err)
|
||||
loggerLanding.warn('Unable to refresh server status, assuming offline.')
|
||||
loggerLanding.debug(err)
|
||||
}
|
||||
if(fade){
|
||||
$('#server_status_wrapper').fadeOut(250, () => {
|
||||
@ -261,6 +263,8 @@ function asyncSystemScan(launchAfter = true){
|
||||
toggleLaunchArea(true)
|
||||
setLaunchPercentage(0, 100)
|
||||
|
||||
const loggerSysAEx = LoggerUtil('%c[SysAEx]', 'color: #353232; font-weight: bold')
|
||||
|
||||
// Fork a process to run validations.
|
||||
sysAEx = cp.fork(path.join(__dirname, 'assets', 'js', 'assetexec.js'), [
|
||||
ConfigManager.getCommonDirectory(),
|
||||
@ -269,12 +273,14 @@ function asyncSystemScan(launchAfter = true){
|
||||
stdio: 'pipe'
|
||||
})
|
||||
// Stdout
|
||||
sysAEx.stdio[1].setEncoding('utf8')
|
||||
sysAEx.stdio[1].on('data', (data) => {
|
||||
console.log('%c[SysAEx]', 'color: #353232; font-weight: bold', data.toString('utf-8'))
|
||||
loggerSysAEx.log(data)
|
||||
})
|
||||
// Stderr
|
||||
sysAEx.stdio[2].setEncoding('utf8')
|
||||
sysAEx.stdio[2].on('data', (data) => {
|
||||
console.log('%c[SysAEx]', 'color: #353232; font-weight: bold', data.toString('utf-8'))
|
||||
loggerSysAEx.log(data)
|
||||
})
|
||||
|
||||
sysAEx.on('message', (m) => {
|
||||
@ -442,8 +448,7 @@ function dlAsync(login = true){
|
||||
|
||||
if(login) {
|
||||
if(ConfigManager.getSelectedAccount() == null){
|
||||
console.error('login first.')
|
||||
//in devtools AuthManager.addAccount(username, pass)
|
||||
loggerLanding.error('You must be logged into an account.')
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -452,6 +457,9 @@ function dlAsync(login = true){
|
||||
toggleLaunchArea(true)
|
||||
setLaunchPercentage(0, 100)
|
||||
|
||||
const loggerAEx = LoggerUtil('%c[AEx]', 'color: #353232; font-weight: bold')
|
||||
const loggerLaunchSuite = LoggerUtil('%c[LaunchSuite]', 'color: #000668; font-weight: bold')
|
||||
|
||||
// Start AssetExec to run validations and downloads in a forked process.
|
||||
aEx = cp.fork(path.join(__dirname, 'assets', 'js', 'assetexec.js'), [
|
||||
ConfigManager.getCommonDirectory(),
|
||||
@ -460,12 +468,14 @@ function dlAsync(login = true){
|
||||
stdio: 'pipe'
|
||||
})
|
||||
// Stdout
|
||||
aEx.stdio[1].setEncoding('utf8')
|
||||
aEx.stdio[1].on('data', (data) => {
|
||||
console.log('%c[AEx]', 'color: #353232; font-weight: bold', data.toString('utf-8'))
|
||||
loggerAEx.log(data)
|
||||
})
|
||||
// Stderr
|
||||
aEx.stdio[2].setEncoding('utf8')
|
||||
aEx.stdio[2].on('data', (data) => {
|
||||
console.log('%c[AEx]', 'color: #353232; font-weight: bold', data.toString('utf-8'))
|
||||
loggerAEx.log(data)
|
||||
})
|
||||
|
||||
// Establish communications between the AssetExec and current process.
|
||||
@ -475,27 +485,27 @@ function dlAsync(login = true){
|
||||
switch(m.data){
|
||||
case 'distribution':
|
||||
setLaunchPercentage(20, 100)
|
||||
console.log('Validated distibution index.')
|
||||
loggerLaunchSuite.log('Validated distibution index.')
|
||||
setLaunchDetails('Loading version information..')
|
||||
break
|
||||
case 'version':
|
||||
setLaunchPercentage(40, 100)
|
||||
console.log('Version data loaded.')
|
||||
loggerLaunchSuite.log('Version data loaded.')
|
||||
setLaunchDetails('Validating asset integrity..')
|
||||
break
|
||||
case 'assets':
|
||||
setLaunchPercentage(60, 100)
|
||||
console.log('Asset Validation Complete')
|
||||
loggerLaunchSuite.log('Asset Validation Complete')
|
||||
setLaunchDetails('Validating library integrity..')
|
||||
break
|
||||
case 'libraries':
|
||||
setLaunchPercentage(80, 100)
|
||||
console.log('Library validation complete.')
|
||||
loggerLaunchSuite.log('Library validation complete.')
|
||||
setLaunchDetails('Validating miscellaneous file integrity..')
|
||||
break
|
||||
case 'files':
|
||||
setLaunchPercentage(100, 100)
|
||||
console.log('File validation complete.')
|
||||
loggerLaunchSuite.log('File validation complete.')
|
||||
setLaunchDetails('Downloading files..')
|
||||
break
|
||||
}
|
||||
@ -544,7 +554,7 @@ function dlAsync(login = true){
|
||||
} else if(m.context === 'error'){
|
||||
switch(m.data){
|
||||
case 'download':
|
||||
console.error(m.error)
|
||||
loggerLaunchSuite.error('Error while downloading:', m.error)
|
||||
|
||||
if(m.error.code === 'ENOENT'){
|
||||
setOverlayContent(
|
||||
@ -574,7 +584,7 @@ function dlAsync(login = true){
|
||||
|
||||
// If these properties are not defined it's likely an error.
|
||||
if(m.result.forgeData == null || m.result.versionData == null){
|
||||
console.error(m.result)
|
||||
loggerLaunchSuite.error('Error during validation:', m.result)
|
||||
}
|
||||
|
||||
forgeData = m.result.forgeData
|
||||
@ -582,7 +592,7 @@ function dlAsync(login = true){
|
||||
|
||||
if(login) {
|
||||
const authUser = ConfigManager.getSelectedAccount()
|
||||
console.log('authu', authUser)
|
||||
loggerLaunchSuite.log(`Sending selected account (${authUser.displayName}) to ProcessBuilder.`)
|
||||
let pb = new ProcessBuilder(serv, versionData, forgeData, authUser)
|
||||
setLaunchDetails('Launching game..')
|
||||
|
||||
@ -615,7 +625,7 @@ function dlAsync(login = true){
|
||||
const gameErrorListener = function(data){
|
||||
data = data.trim()
|
||||
if(data.indexOf('Could not find or load main class net.minecraft.launchwrapper.Launch') > -1){
|
||||
console.error('Game launch failed, LaunchWrapper was not downloaded properly.')
|
||||
loggerLaunchSuite.error('Game launch failed, LaunchWrapper was not downloaded properly.')
|
||||
setOverlayContent(
|
||||
'Error During Launch',
|
||||
'The main file, LaunchWrapper, failed to download properly. As a result, the game cannot launch.<br><br>To fix this issue, temporarily turn off your antivirus software and launch the game again.<br><br>If you have time, please <a href="https://github.com/WesterosCraftCode/ElectronLauncher/issues">submit an issue</a> and let us know what antivirus software you use. We\'ll contact them and try to straighten things out.',
|
||||
@ -643,7 +653,7 @@ function dlAsync(login = true){
|
||||
DiscordWrapper.initRPC(distro.discord, serv.discord)
|
||||
hasRPC = true
|
||||
proc.on('close', (code, signal) => {
|
||||
console.log('Shutting down Discord Rich Presence..')
|
||||
loggerLaunchSuite.log('Shutting down Discord Rich Presence..')
|
||||
DiscordWrapper.shutdownRPC()
|
||||
hasRPC = false
|
||||
proc = null
|
||||
@ -652,7 +662,7 @@ function dlAsync(login = true){
|
||||
|
||||
} catch(err) {
|
||||
|
||||
console.error('Error during launch', err)
|
||||
loggerLaunchSuite.error('Error during launch', err)
|
||||
setOverlayContent(
|
||||
'Error During Launch',
|
||||
'Please check the console for more details.',
|
||||
@ -681,13 +691,13 @@ function dlAsync(login = true){
|
||||
serv = data.getServer(ConfigManager.getSelectedServer())
|
||||
aEx.send({task: 'execute', function: 'validateEverything', argsArr: [ConfigManager.getSelectedServer(), DistroManager.isDevMode()]})
|
||||
}, (err) => {
|
||||
console.log(err)
|
||||
loggerLaunchSuite.log('Error while fetching a fresh copy of the distribution index.', err)
|
||||
refreshDistributionIndex(false, (data) => {
|
||||
onDistroRefresh(data)
|
||||
serv = data.getServer(ConfigManager.getSelectedServer())
|
||||
aEx.send({task: 'execute', function: 'validateEverything', argsArr: [ConfigManager.getSelectedServer(), DistroManager.isDevMode()]})
|
||||
}, (err) => {
|
||||
console.error('Unable to refresh distribution index.', err)
|
||||
loggerLaunchSuite.error('Unable to refresh distribution index.', err)
|
||||
if(DistroManager.getDistribution() == null){
|
||||
setOverlayContent(
|
||||
'Fatal Error',
|
||||
|
@ -21,6 +21,8 @@ const loginForm = document.getElementById('loginForm')
|
||||
// Control variables.
|
||||
let lu = false, lp = false
|
||||
|
||||
const loggerLogin = LoggerUtil('%c[Login]', 'color: #000668; font-weight: bold')
|
||||
|
||||
|
||||
/**
|
||||
* Show a login error.
|
||||
@ -256,7 +258,6 @@ loginButton.addEventListener('click', () => {
|
||||
loginButton.innerHTML = loginButton.innerHTML.replace('LOGGING IN', 'SUCCESS')
|
||||
$('.circle-loader').toggleClass('load-complete')
|
||||
$('.checkmark').toggle()
|
||||
//console.log(value)
|
||||
setTimeout(() => {
|
||||
switchView(VIEWS.login, loginViewOnSuccess, 500, 500, () => {
|
||||
// Temporary workaround
|
||||
@ -284,7 +285,7 @@ loginButton.addEventListener('click', () => {
|
||||
toggleOverlay(false)
|
||||
})
|
||||
toggleOverlay(true)
|
||||
console.log(err)
|
||||
loggerLogin.log('Error while logging in.', err)
|
||||
})
|
||||
|
||||
})
|
@ -57,7 +57,7 @@ function getCurrentView(){
|
||||
function showMainUI(data){
|
||||
|
||||
if(!isDev){
|
||||
console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Initializing..')
|
||||
loggerAutoUpdater.log('Initializing..')
|
||||
ipcRenderer.send('autoUpdateAction', 'initAutoUpdater', ConfigManager.getAllowPrerelease())
|
||||
}
|
||||
|
||||
@ -73,13 +73,7 @@ function showMainUI(data){
|
||||
// If this is enabled in a development environment we'll get ratelimited.
|
||||
// The relaunch frequency is usually far too high.
|
||||
if(!isDev && isLoggedIn){
|
||||
validateSelectedAccount().then((v) => {
|
||||
if(v){
|
||||
console.log('%c[AuthManager]', 'color: #209b07; font-weight: bold', 'Account access token validated.')
|
||||
} else {
|
||||
console.log('%c[AuthManager]', 'color: #a02d2a; font-weight: bold', 'Account access token is invalid.')
|
||||
}
|
||||
})
|
||||
validateSelectedAccount()
|
||||
}
|
||||
|
||||
if(ConfigManager.isFirstLaunch()){
|
||||
|
@ -8,6 +8,11 @@
|
||||
const $ = require('jquery')
|
||||
const {ipcRenderer, remote, shell, webFrame} = require('electron')
|
||||
const isDev = require('electron-is-dev')
|
||||
const LoggerUtil = require('./assets/js/loggerutil')
|
||||
|
||||
const loggerUICore = LoggerUtil('%c[UICore]', 'color: #000668; font-weight: bold')
|
||||
const loggerAutoUpdater = LoggerUtil('%c[AutoUpdater]', 'color: #000668; font-weight: bold')
|
||||
const loggerAutoUpdaterSuccess = LoggerUtil('%c[AutoUpdater]', 'color: #209b07; font-weight: bold')
|
||||
|
||||
// Disable eval function.
|
||||
// eslint-disable-next-line
|
||||
@ -33,15 +38,15 @@ if(!isDev){
|
||||
ipcRenderer.on('autoUpdateNotification', (event, arg, info) => {
|
||||
switch(arg){
|
||||
case 'checking-for-update':
|
||||
console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Checking for update..')
|
||||
loggerAutoUpdater.log('Checking for update..')
|
||||
settingsUpdateButtonStatus('Checking for Updates..', true)
|
||||
break
|
||||
case 'update-available':
|
||||
console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'New update available', info.version)
|
||||
loggerAutoUpdaterSuccess.log('New update available', info.version)
|
||||
populateSettingsUpdateInformation(info)
|
||||
break
|
||||
case 'update-downloaded':
|
||||
console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Update ' + info.version + ' ready to be installed.')
|
||||
loggerAutoUpdaterSuccess.log('Update ' + info.version + ' ready to be installed.')
|
||||
settingsUpdateButtonStatus('Install Now', false, () => {
|
||||
if(!isDev){
|
||||
ipcRenderer.send('autoUpdateAction', 'installUpdateNow')
|
||||
@ -50,7 +55,7 @@ if(!isDev){
|
||||
showUpdateUI(info)
|
||||
break
|
||||
case 'update-not-available':
|
||||
console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'No new update found.')
|
||||
loggerAutoUpdater.log('No new update found.')
|
||||
settingsUpdateButtonStatus('Check for Updates')
|
||||
break
|
||||
case 'ready':
|
||||
@ -62,17 +67,17 @@ if(!isDev){
|
||||
case 'realerror':
|
||||
if(info != null && info.code != null){
|
||||
if(info.code === 'ERR_UPDATER_INVALID_RELEASE_FEED'){
|
||||
console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'No suitable releases found.')
|
||||
loggerAutoUpdater.log('No suitable releases found.')
|
||||
} else if(info.code === 'ERR_XML_MISSED_ELEMENT'){
|
||||
console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'No releases found.')
|
||||
loggerAutoUpdater.log('No releases found.')
|
||||
} else {
|
||||
console.error('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Error during update check..', info)
|
||||
console.debug('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Error Code:', info.code)
|
||||
loggerAutoUpdater.error('Error during update check..', info)
|
||||
loggerAutoUpdater.debug('Error Code:', info.code)
|
||||
}
|
||||
}
|
||||
break
|
||||
default:
|
||||
console.log('%c[AutoUpdater]', 'color: #a02d2a; font-weight: bold', 'Unknown argument', arg)
|
||||
loggerAutoUpdater.log('Unknown argument', arg)
|
||||
break
|
||||
}
|
||||
})
|
||||
@ -115,12 +120,12 @@ function showUpdateUI(info){
|
||||
|
||||
/* jQuery Example
|
||||
$(function(){
|
||||
console.log('UICore Initialized');
|
||||
loggerUICore.log('UICore Initialized');
|
||||
})*/
|
||||
|
||||
document.addEventListener('readystatechange', function () {
|
||||
if (document.readyState === 'interactive'){
|
||||
console.log('UICore Initializing..')
|
||||
loggerUICore.log('UICore Initializing..')
|
||||
|
||||
// Bind close button.
|
||||
Array.from(document.getElementsByClassName('fCb')).map((val) => {
|
||||
@ -183,7 +188,6 @@ document.addEventListener('readystatechange', function () {
|
||||
*/
|
||||
$(document).on('click', 'a[href^="http"]', function(event) {
|
||||
event.preventDefault()
|
||||
//console.log(os.homedir())
|
||||
shell.openExternal(this.href)
|
||||
})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user