Removing deprecated files.
Launchprocess.js has been deprecated for over a year, pending removal once liteloader support was added. The user modlist idea was scrapped a while ago. User mods can be stored inside of the mods folder for each server instance.
This commit is contained in:
parent
aa0e1a20ca
commit
932443fcb8
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"repositoryRoot": "/modstore",
|
|
||||||
"modRef": [
|
|
||||||
"my.custom:mod:1.11.2",
|
|
||||||
"another.custom:mod:1.11.2"
|
|
||||||
],
|
|
||||||
"parentList": "/mods/WesterosCraft-1.11.2.json"
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"repositoryRoot": "C:\\Users\\Asus\\Desktop\\LauncherElectron\\mcfiles\\modstore",
|
|
||||||
"modRef": [
|
|
||||||
"com.westeroscraft:westerosblocks:3.0.0-beta-71",
|
|
||||||
"mezz:jei:1.11.2-4.3.5.277",
|
|
||||||
"net.optifine:optifine:1.11.2_HD_U_B9",
|
|
||||||
"chatbubbles:chatbubbles:1.0.1_for_1.11.2"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,222 +0,0 @@
|
|||||||
/**
|
|
||||||
* File is officially deprecated in favor of processbuilder.js,
|
|
||||||
* will be removed once the new module is 100% complete and this
|
|
||||||
* is no longer needed for reference.
|
|
||||||
*/
|
|
||||||
const mojang = require('mojang')
|
|
||||||
const uuidV4 = require('uuid/v4')
|
|
||||||
const path = require('path')
|
|
||||||
const child_process = require('child_process')
|
|
||||||
const ag = require('./assetguard.js')
|
|
||||||
const AdmZip = require('adm-zip')
|
|
||||||
const fs = require('fs')
|
|
||||||
const mkpath = require('mkdirp');
|
|
||||||
|
|
||||||
function launchMinecraft(versionData, forgeData, basePath){
|
|
||||||
const authPromise = mojang.auth('email', 'pass', uuidV4(), {
|
|
||||||
name: 'Minecraft',
|
|
||||||
version: 1
|
|
||||||
})
|
|
||||||
authPromise.then(function(data){
|
|
||||||
console.log(data)
|
|
||||||
const args = finalizeArgumentsForge(versionData, forgeData, data, basePath)
|
|
||||||
//BRUTEFORCE for testing
|
|
||||||
//args.push('-mods modstore\\chatbubbles\\chatbubbles\\1.0.1_for_1.11.2\\mod_chatBubbles-1.0.1_for_1.11.2.litemod,modstore\\com\\westeroscraft\\westerosblocks\\3.0.0-beta-71\\westerosblocks-3.0.0-beta-71.jar,modstore\\mezz\\jei\\1.11.2-4.3.5.277\\jei-1.11.2-4.3.5.277.jar,modstore\\net\\optifine\\optifine\\1.11.2_HD_U_B9\\optifine-1.11.2_HD_U_B9.jar')
|
|
||||||
//args.push('--modListFile absolute:C:\\Users\\Asus\\Desktop\\LauncherElectron\\app\\assets\\WesterosCraft-1.11.2.json')
|
|
||||||
//TODO make this dynamic
|
|
||||||
const child = child_process.spawn('C:\\Program Files\\Java\\jdk1.8.0_152\\bin\\javaw.exe', args)
|
|
||||||
child.stdout.on('data', (data) => {
|
|
||||||
console.log('Minecraft:', data.toString('utf8'))
|
|
||||||
})
|
|
||||||
child.stderr.on('data', (data) => {
|
|
||||||
console.log('Minecraft:', data.toString('utf8'))
|
|
||||||
})
|
|
||||||
child.on('close', (code, signal) => {
|
|
||||||
console.log('Exited with code', code)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
function finalizeArgumentsForge(versionData, forgeData, authData, basePath){
|
|
||||||
const mcArgs = forgeData['minecraftArguments']
|
|
||||||
const gameProfile = authData['selectedProfile']
|
|
||||||
const regex = new RegExp('\\${*(.*)}')
|
|
||||||
const argArr = mcArgs.split(' ')
|
|
||||||
const staticArgs = ['-Xmx4G',
|
|
||||||
'-XX:+UseConcMarkSweepGC',
|
|
||||||
'-XX:+CMSIncrementalMode',
|
|
||||||
'-XX:-UseAdaptiveSizePolicy',
|
|
||||||
'-Xmn128M',
|
|
||||||
'-Djava.library.path=' + path.join(basePath, 'natives'),
|
|
||||||
'-cp',
|
|
||||||
classpathArg(versionData, basePath).concat(forgeClasspathArg(forgeData, basePath)).join(';'),
|
|
||||||
forgeData.mainClass]
|
|
||||||
for(let i=0; i<argArr.length; i++){
|
|
||||||
if(regex.test(argArr[i])){
|
|
||||||
const identifier = argArr[i].match(regex)[1]
|
|
||||||
let newVal = argArr[i]
|
|
||||||
switch(identifier){
|
|
||||||
case 'auth_player_name':
|
|
||||||
newVal = gameProfile['name']
|
|
||||||
break
|
|
||||||
case 'version_name':
|
|
||||||
//newVal = versionData['id']
|
|
||||||
newVal = 'WesterosCraft-1.11.2'
|
|
||||||
break
|
|
||||||
case 'game_directory':
|
|
||||||
newVal = basePath
|
|
||||||
break
|
|
||||||
case 'assets_root':
|
|
||||||
newVal = path.join(basePath, 'assets')
|
|
||||||
break
|
|
||||||
case 'assets_index_name':
|
|
||||||
newVal = versionData['assets']
|
|
||||||
break
|
|
||||||
case 'auth_uuid':
|
|
||||||
newVal = gameProfile['id']
|
|
||||||
break
|
|
||||||
case 'auth_access_token':
|
|
||||||
newVal = authData['accessToken']
|
|
||||||
break
|
|
||||||
case 'user_type':
|
|
||||||
newVal = 'MOJANG'
|
|
||||||
break
|
|
||||||
case 'version_type':
|
|
||||||
newVal = versionData['type']
|
|
||||||
break
|
|
||||||
}
|
|
||||||
argArr[i] = newVal
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return staticArgs.concat(argArr)
|
|
||||||
}
|
|
||||||
|
|
||||||
function finalizeArguments(versionData, authData, basePath){
|
|
||||||
const mcArgs = versionData['minecraftArguments']
|
|
||||||
const gameProfile = authData['selectedProfile']
|
|
||||||
const regex = new RegExp('\\${*(.*)}')
|
|
||||||
const argArr = mcArgs.split(' ')
|
|
||||||
const staticArgs = ['-Xmx1G',
|
|
||||||
'-XX:+UseConcMarkSweepGC',
|
|
||||||
'-XX:+CMSIncrementalMode',
|
|
||||||
'-XX:-UseAdaptiveSizePolicy',
|
|
||||||
'-Xmn128M',
|
|
||||||
'-Djava.library.path=' + path.join(basePath, 'natives'),
|
|
||||||
'-cp',
|
|
||||||
classpathArg(versionData, basePath).join(';'),
|
|
||||||
versionData.mainClass]
|
|
||||||
for(let i=0; i<argArr.length; i++){
|
|
||||||
if(regex.test(argArr[i])){
|
|
||||||
const identifier = argArr[i].match(regex)[1]
|
|
||||||
let newVal = argArr[i]
|
|
||||||
switch(identifier){
|
|
||||||
case 'auth_player_name':
|
|
||||||
newVal = gameProfile['name']
|
|
||||||
break
|
|
||||||
case 'version_name':
|
|
||||||
newVal = versionData['id']
|
|
||||||
break
|
|
||||||
case 'game_directory':
|
|
||||||
newVal = basePath
|
|
||||||
break
|
|
||||||
case 'assets_root':
|
|
||||||
newVal = path.join(basePath, 'assets')
|
|
||||||
break
|
|
||||||
case 'assets_index_name':
|
|
||||||
newVal = versionData['assets']
|
|
||||||
break
|
|
||||||
case 'auth_uuid':
|
|
||||||
newVal = gameProfile['id']
|
|
||||||
break
|
|
||||||
case 'auth_access_token':
|
|
||||||
newVal = authData['accessToken']
|
|
||||||
break
|
|
||||||
case 'user_type':
|
|
||||||
newVal = 'MOJANG'
|
|
||||||
break
|
|
||||||
case 'version_type':
|
|
||||||
newVal = versionData['type']
|
|
||||||
break
|
|
||||||
}
|
|
||||||
argArr[i] = newVal
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return staticArgs.concat(argArr)
|
|
||||||
}
|
|
||||||
|
|
||||||
function forgeClasspathArg(forgeData, basePath){
|
|
||||||
const libArr = forgeData['libraries']
|
|
||||||
const libPath = path.join(basePath, 'libraries')
|
|
||||||
const cpArgs = []
|
|
||||||
for(let i=0; i<libArr.length; i++){
|
|
||||||
const lib = libArr[i]
|
|
||||||
const to = path.join(libPath, ag._resolvePath(lib.name, '.jar'))
|
|
||||||
cpArgs.push(to)
|
|
||||||
}
|
|
||||||
return cpArgs
|
|
||||||
}
|
|
||||||
|
|
||||||
function classpathArg(versionData, basePath){
|
|
||||||
const libArr = versionData['libraries']
|
|
||||||
const libPath = path.join(basePath, 'libraries')
|
|
||||||
const nativePath = path.join(basePath, 'natives')
|
|
||||||
const version = versionData['id']
|
|
||||||
const cpArgs = [path.join(basePath, 'versions', version, version + '.jar')]
|
|
||||||
libArr.forEach(function(lib){
|
|
||||||
if(ag.Library.validateRules(lib['rules'])){
|
|
||||||
if(lib['natives'] == null){
|
|
||||||
const dlInfo = lib['downloads']
|
|
||||||
const artifact = dlInfo['artifact']
|
|
||||||
const to = path.join(libPath, artifact['path'])
|
|
||||||
cpArgs.push(to)
|
|
||||||
} else {
|
|
||||||
//Now we need to extract natives.
|
|
||||||
const natives = lib['natives']
|
|
||||||
const extractInst = lib['extract']
|
|
||||||
const exclusionArr = extractInst['exclude']
|
|
||||||
const opSys = ag.Library.mojangFriendlyOS()
|
|
||||||
const indexId = natives[opSys]
|
|
||||||
const dlInfo = lib['downloads']
|
|
||||||
const classifiers = dlInfo['classifiers']
|
|
||||||
const artifact = classifiers[indexId]
|
|
||||||
|
|
||||||
const to = path.join(libPath, artifact['path'])
|
|
||||||
|
|
||||||
let zip = new AdmZip(to)
|
|
||||||
let zipEntries = zip.getEntries()
|
|
||||||
|
|
||||||
for(let i=0; i<zipEntries.length; i++){
|
|
||||||
const fileName = zipEntries[i].entryName
|
|
||||||
|
|
||||||
let shouldExclude = false
|
|
||||||
|
|
||||||
exclusionArr.forEach(function(exclusion){
|
|
||||||
if(exclusion.indexOf(fileName) > -1){
|
|
||||||
shouldExclude = true
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
if(!shouldExclude){
|
|
||||||
mkpath.sync(path.join(nativePath, fileName, '..'))
|
|
||||||
fs.writeFile(path.join(nativePath, fileName), zipEntries[i].getData())
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
cpArgs.push(to)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
//BRUTEFORCE LIB INJECTION
|
|
||||||
//FOR TESTING ONLY
|
|
||||||
cpArgs.push(path.join(libPath, 'com', 'mumfrey', 'liteloader', '1.11.2-SNAPSHOT', 'liteloader-1.11.2-SNAPSHOT.jar'))
|
|
||||||
|
|
||||||
return cpArgs
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
launchMinecraft
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user