Mise a jours initial
49
app/app.ejs
@ -1,7 +1,8 @@
|
||||
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" http-equiv="Content-Security-Policy" content="script-src 'self' 'sha256-In6B8teKZQll5heMl9bS7CESTbGvuAt3VVV86BUQBDk='"/>
|
||||
<title>Helios Launcher</title>
|
||||
<meta charset="utf-8" http-equiv="Content-Security-Policy" content="script-src 'self' 'sha256-In6B8teKZQll5heMl9bS7CESTbGvuAt3VVV86BUQBDk='" />
|
||||
<title>SkyGames Launcher</title>
|
||||
<script src="./assets/js/scripts/uicore.js"></script>
|
||||
<script src="./assets/js/scripts/uibinder.js"></script>
|
||||
<link type="text/css" rel="stylesheet" href="./assets/css/launcher.css">
|
||||
@ -13,6 +14,7 @@
|
||||
background-size: cover;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
|
||||
#main {
|
||||
display: none;
|
||||
height: calc(100% - 22px);
|
||||
@ -21,33 +23,36 @@
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
#main[overlay] {
|
||||
filter: blur(3px) contrast(0.9) brightness(1.0);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body bkid="<%=bkid%>">
|
||||
<%- include('frame') %>
|
||||
<div id="main">
|
||||
<%- include('welcome') %>
|
||||
<%- include('login') %>
|
||||
<%- include('settings') %>
|
||||
<%- include('landing') %>
|
||||
</div>
|
||||
<%- include('overlay') %>
|
||||
<div id="loadingContainer">
|
||||
<div id="loadingContent">
|
||||
<div id="loadSpinnerContainer">
|
||||
<img id="loadCenterImage" src="assets/images/LoadingSeal.png">
|
||||
<img id="loadSpinnerImage" class="rotating" src="assets/images/LoadingText.png">
|
||||
</div>
|
||||
<div id="main">
|
||||
<%- include('welcome') %>
|
||||
<%- include('login') %>
|
||||
<%- include('settings') %>
|
||||
<%- include('landing') %>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
// Load language
|
||||
for(let key of Object.keys(Lang.query('html'))){
|
||||
document.getElementById(key).innerHTML = Lang.query(`html.${key}`)
|
||||
}
|
||||
</script>
|
||||
<%- include('overlay') %>
|
||||
<div id="loadingContainer">
|
||||
<div id="loadingContent">
|
||||
<div id="loadSpinnerContainer">
|
||||
<img id="loadCenterImage" src="assets/images/LoadingSeal.png">
|
||||
<img id="loadSpinnerImage" class="rotating" src="assets/images/LoadingText.png">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
// Load language
|
||||
for (let key of Object.keys(Lang.query('html'))) {
|
||||
document.getElementById(key).innerHTML = Lang.query(`html.${key}`)
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
Before Width: | Height: | Size: 244 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 202 KiB |
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 12 KiB |
@ -1,12 +1,12 @@
|
||||
const fs = require('fs-extra')
|
||||
const os = require('os')
|
||||
const fs = require('fs-extra')
|
||||
const os = require('os')
|
||||
const path = require('path')
|
||||
|
||||
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)
|
||||
// TODO change
|
||||
const dataPath = path.join(sysRoot, '.helioslauncher')
|
||||
// TODO change
|
||||
const dataPath = path.join(sysRoot, '.SkyGameslauncher')
|
||||
|
||||
// Forked processes do not have access to electron, so we have this workaround.
|
||||
const launcherDir = process.env.CONFIG_DIRECT_PATH || require('electron').remote.app.getPath('userData')
|
||||
@ -16,7 +16,7 @@ const launcherDir = process.env.CONFIG_DIRECT_PATH || require('electron').remote
|
||||
*
|
||||
* @returns {string} The absolute path of the launcher directory.
|
||||
*/
|
||||
exports.getLauncherDirectory = function(){
|
||||
exports.getLauncherDirectory = function() {
|
||||
return launcherDir
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ exports.getLauncherDirectory = function(){
|
||||
*
|
||||
* @returns {string} The absolute path of the launcher's data directory.
|
||||
*/
|
||||
exports.getDataDirectory = function(def = false){
|
||||
exports.getDataDirectory = function(def = false) {
|
||||
return !def ? config.settings.launcher.dataDirectory : DEFAULT_CONFIG.settings.launcher.dataDirectory
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ exports.getDataDirectory = function(def = false){
|
||||
*
|
||||
* @param {string} dataDirectory The new data directory.
|
||||
*/
|
||||
exports.setDataDirectory = function(dataDirectory){
|
||||
exports.setDataDirectory = function(dataDirectory) {
|
||||
config.settings.launcher.dataDirectory = dataDirectory
|
||||
}
|
||||
|
||||
@ -43,23 +43,23 @@ const configPath = path.join(exports.getLauncherDirectory(), 'config.json')
|
||||
const configPathLEGACY = path.join(dataPath, 'config.json')
|
||||
const firstLaunch = !fs.existsSync(configPath) && !fs.existsSync(configPathLEGACY)
|
||||
|
||||
exports.getAbsoluteMinRAM = function(){
|
||||
exports.getAbsoluteMinRAM = function() {
|
||||
const mem = os.totalmem()
|
||||
return mem >= 6000000000 ? 3 : 2
|
||||
}
|
||||
|
||||
exports.getAbsoluteMaxRAM = function(){
|
||||
exports.getAbsoluteMaxRAM = function() {
|
||||
const mem = os.totalmem()
|
||||
const gT16 = mem-16000000000
|
||||
return Math.floor((mem-1000000000-(gT16 > 0 ? (Number.parseInt(gT16/8) + 16000000000/4) : mem/4))/1000000000)
|
||||
const gT16 = mem - 16000000000
|
||||
return Math.floor((mem - 1000000000 - (gT16 > 0 ? (Number.parseInt(gT16 / 8) + 16000000000 / 4) : mem / 4)) / 1000000000)
|
||||
}
|
||||
|
||||
function resolveMaxRAM(){
|
||||
function resolveMaxRAM() {
|
||||
const mem = os.totalmem()
|
||||
return mem >= 8000000000 ? '4G' : (mem >= 6000000000 ? '3G' : '2G')
|
||||
}
|
||||
|
||||
function resolveMinRAM(){
|
||||
function resolveMinRAM() {
|
||||
return resolveMaxRAM()
|
||||
}
|
||||
|
||||
@ -113,7 +113,7 @@ let config = null
|
||||
/**
|
||||
* Save the current configuration to a file.
|
||||
*/
|
||||
exports.save = function(){
|
||||
exports.save = function() {
|
||||
fs.writeFileSync(configPath, JSON.stringify(config, null, 4), 'UTF-8')
|
||||
}
|
||||
|
||||
@ -123,13 +123,13 @@ exports.save = function(){
|
||||
* be generated. Note that "resolved" values default to null and will
|
||||
* need to be externally assigned.
|
||||
*/
|
||||
exports.load = function(){
|
||||
exports.load = function() {
|
||||
let doLoad = true
|
||||
|
||||
if(!fs.existsSync(configPath)){
|
||||
if (!fs.existsSync(configPath)) {
|
||||
// Create all parent directories.
|
||||
fs.ensureDirSync(path.join(configPath, '..'))
|
||||
if(fs.existsSync(configPathLEGACY)){
|
||||
if (fs.existsSync(configPathLEGACY)) {
|
||||
fs.moveSync(configPathLEGACY, configPath)
|
||||
} else {
|
||||
doLoad = false
|
||||
@ -137,12 +137,12 @@ exports.load = function(){
|
||||
exports.save()
|
||||
}
|
||||
}
|
||||
if(doLoad){
|
||||
if (doLoad) {
|
||||
let doValidate = false
|
||||
try {
|
||||
config = JSON.parse(fs.readFileSync(configPath, 'UTF-8'))
|
||||
doValidate = true
|
||||
} catch (err){
|
||||
} catch (err) {
|
||||
logger.error(err)
|
||||
logger.log('Configuration file contains malformed JSON or is corrupt.')
|
||||
logger.log('Generating a new configuration file.')
|
||||
@ -150,7 +150,7 @@ exports.load = function(){
|
||||
config = DEFAULT_CONFIG
|
||||
exports.save()
|
||||
}
|
||||
if(doValidate){
|
||||
if (doValidate) {
|
||||
config = validateKeySet(DEFAULT_CONFIG, config)
|
||||
exports.save()
|
||||
}
|
||||
@ -161,7 +161,7 @@ exports.load = function(){
|
||||
/**
|
||||
* @returns {boolean} Whether or not the manager has been loaded.
|
||||
*/
|
||||
exports.isLoaded = function(){
|
||||
exports.isLoaded = function() {
|
||||
return config != null
|
||||
}
|
||||
|
||||
@ -173,16 +173,16 @@ exports.isLoaded = function(){
|
||||
* @param {Object} destObj The destination object.
|
||||
* @returns {Object} A validated destination object.
|
||||
*/
|
||||
function validateKeySet(srcObj, destObj){
|
||||
if(srcObj == null){
|
||||
function validateKeySet(srcObj, destObj) {
|
||||
if (srcObj == null) {
|
||||
srcObj = {}
|
||||
}
|
||||
const validationBlacklist = ['authenticationDatabase']
|
||||
const keys = Object.keys(srcObj)
|
||||
for(let i=0; i<keys.length; i++){
|
||||
if(typeof destObj[keys[i]] === 'undefined'){
|
||||
for (let i = 0; i < keys.length; i++) {
|
||||
if (typeof destObj[keys[i]] === 'undefined') {
|
||||
destObj[keys[i]] = srcObj[keys[i]]
|
||||
} else if(typeof srcObj[keys[i]] === 'object' && srcObj[keys[i]] != null && !(srcObj[keys[i]] instanceof Array) && validationBlacklist.indexOf(keys[i]) === -1){
|
||||
} else if (typeof srcObj[keys[i]] === 'object' && srcObj[keys[i]] != null && !(srcObj[keys[i]] instanceof Array) && validationBlacklist.indexOf(keys[i]) === -1) {
|
||||
destObj[keys[i]] = validateKeySet(srcObj[keys[i]], destObj[keys[i]])
|
||||
}
|
||||
}
|
||||
@ -195,7 +195,7 @@ function validateKeySet(srcObj, destObj){
|
||||
*
|
||||
* @returns {boolean} True if this is the first launch, otherwise false.
|
||||
*/
|
||||
exports.isFirstLaunch = function(){
|
||||
exports.isFirstLaunch = function() {
|
||||
return firstLaunch
|
||||
}
|
||||
|
||||
@ -205,7 +205,7 @@ exports.isFirstLaunch = function(){
|
||||
*
|
||||
* @returns {string} The name of the folder.
|
||||
*/
|
||||
exports.getTempNativeFolder = function(){
|
||||
exports.getTempNativeFolder = function() {
|
||||
return 'WCNatives'
|
||||
}
|
||||
|
||||
@ -217,7 +217,7 @@ exports.getTempNativeFolder = function(){
|
||||
*
|
||||
* @returns {Object} The news cache object.
|
||||
*/
|
||||
exports.getNewsCache = function(){
|
||||
exports.getNewsCache = function() {
|
||||
return config.newsCache
|
||||
}
|
||||
|
||||
@ -226,7 +226,7 @@ exports.getNewsCache = function(){
|
||||
*
|
||||
* @param {Object} newsCache The new news cache object.
|
||||
*/
|
||||
exports.setNewsCache = function(newsCache){
|
||||
exports.setNewsCache = function(newsCache) {
|
||||
config.newsCache = newsCache
|
||||
}
|
||||
|
||||
@ -235,7 +235,7 @@ exports.setNewsCache = function(newsCache){
|
||||
*
|
||||
* @param {boolean} dismissed Whether or not the news has been dismissed (checked).
|
||||
*/
|
||||
exports.setNewsCacheDismissed = function(dismissed){
|
||||
exports.setNewsCacheDismissed = function(dismissed) {
|
||||
config.newsCache.dismissed = dismissed
|
||||
}
|
||||
|
||||
@ -245,7 +245,7 @@ exports.setNewsCacheDismissed = function(dismissed){
|
||||
*
|
||||
* @returns {string} The launcher's common directory.
|
||||
*/
|
||||
exports.getCommonDirectory = function(){
|
||||
exports.getCommonDirectory = function() {
|
||||
return path.join(exports.getDataDirectory(), 'common')
|
||||
}
|
||||
|
||||
@ -255,7 +255,7 @@ exports.getCommonDirectory = function(){
|
||||
*
|
||||
* @returns {string} The launcher's instance directory.
|
||||
*/
|
||||
exports.getInstanceDirectory = function(){
|
||||
exports.getInstanceDirectory = function() {
|
||||
return path.join(exports.getDataDirectory(), 'instances')
|
||||
}
|
||||
|
||||
@ -265,7 +265,7 @@ exports.getInstanceDirectory = function(){
|
||||
*
|
||||
* @returns {string} The launcher's Client Token.
|
||||
*/
|
||||
exports.getClientToken = function(){
|
||||
exports.getClientToken = function() {
|
||||
return config.clientToken
|
||||
}
|
||||
|
||||
@ -274,7 +274,7 @@ exports.getClientToken = function(){
|
||||
*
|
||||
* @param {string} clientToken The launcher's new Client Token.
|
||||
*/
|
||||
exports.setClientToken = function(clientToken){
|
||||
exports.setClientToken = function(clientToken) {
|
||||
config.clientToken = clientToken
|
||||
}
|
||||
|
||||
@ -284,7 +284,7 @@ exports.setClientToken = function(clientToken){
|
||||
* @param {boolean} def Optional. If true, the default value will be returned.
|
||||
* @returns {string} The ID of the selected serverpack.
|
||||
*/
|
||||
exports.getSelectedServer = function(def = false){
|
||||
exports.getSelectedServer = function(def = false) {
|
||||
return !def ? config.selectedServer : DEFAULT_CONFIG.clientToken
|
||||
}
|
||||
|
||||
@ -293,7 +293,7 @@ exports.getSelectedServer = function(def = false){
|
||||
*
|
||||
* @param {string} serverID The ID of the new selected serverpack.
|
||||
*/
|
||||
exports.setSelectedServer = function(serverID){
|
||||
exports.setSelectedServer = function(serverID) {
|
||||
config.selectedServer = serverID
|
||||
}
|
||||
|
||||
@ -302,7 +302,7 @@ exports.setSelectedServer = function(serverID){
|
||||
*
|
||||
* @returns {Array.<Object>} An array of each stored authenticated account.
|
||||
*/
|
||||
exports.getAuthAccounts = function(){
|
||||
exports.getAuthAccounts = function() {
|
||||
return config.authenticationDatabase
|
||||
}
|
||||
|
||||
@ -313,7 +313,7 @@ exports.getAuthAccounts = function(){
|
||||
* @param {string} uuid The uuid of the authenticated account.
|
||||
* @returns {Object} The authenticated account with the given uuid.
|
||||
*/
|
||||
exports.getAuthAccount = function(uuid){
|
||||
exports.getAuthAccount = function(uuid) {
|
||||
return config.authenticationDatabase[uuid]
|
||||
}
|
||||
|
||||
@ -325,7 +325,7 @@ exports.getAuthAccount = function(uuid){
|
||||
*
|
||||
* @returns {Object} The authenticated account object created by this action.
|
||||
*/
|
||||
exports.updateAuthAccount = function(uuid, accessToken){
|
||||
exports.updateAuthAccount = function(uuid, accessToken) {
|
||||
config.authenticationDatabase[uuid].accessToken = accessToken
|
||||
return config.authenticationDatabase[uuid]
|
||||
}
|
||||
@ -340,7 +340,7 @@ exports.updateAuthAccount = function(uuid, accessToken){
|
||||
*
|
||||
* @returns {Object} The authenticated account object created by this action.
|
||||
*/
|
||||
exports.addAuthAccount = function(uuid, accessToken, username, displayName){
|
||||
exports.addAuthAccount = function(uuid, accessToken, username, displayName) {
|
||||
config.selectedAccount = uuid
|
||||
config.authenticationDatabase[uuid] = {
|
||||
accessToken,
|
||||
@ -360,12 +360,12 @@ exports.addAuthAccount = function(uuid, accessToken, username, displayName){
|
||||
*
|
||||
* @returns {boolean} True if the account was removed, false if it never existed.
|
||||
*/
|
||||
exports.removeAuthAccount = function(uuid){
|
||||
if(config.authenticationDatabase[uuid] != null){
|
||||
exports.removeAuthAccount = function(uuid) {
|
||||
if (config.authenticationDatabase[uuid] != null) {
|
||||
delete config.authenticationDatabase[uuid]
|
||||
if(config.selectedAccount === uuid){
|
||||
if (config.selectedAccount === uuid) {
|
||||
const keys = Object.keys(config.authenticationDatabase)
|
||||
if(keys.length > 0){
|
||||
if (keys.length > 0) {
|
||||
config.selectedAccount = keys[0]
|
||||
} else {
|
||||
config.selectedAccount = null
|
||||
@ -382,7 +382,7 @@ exports.removeAuthAccount = function(uuid){
|
||||
*
|
||||
* @returns {Object} The selected authenticated account.
|
||||
*/
|
||||
exports.getSelectedAccount = function(){
|
||||
exports.getSelectedAccount = function() {
|
||||
return config.authenticationDatabase[config.selectedAccount]
|
||||
}
|
||||
|
||||
@ -394,9 +394,9 @@ exports.getSelectedAccount = function(){
|
||||
*
|
||||
* @returns {Object} The selected authenticated account.
|
||||
*/
|
||||
exports.setSelectedAccount = function(uuid){
|
||||
exports.setSelectedAccount = function(uuid) {
|
||||
const authAcc = config.authenticationDatabase[uuid]
|
||||
if(authAcc != null) {
|
||||
if (authAcc != null) {
|
||||
config.selectedAccount = uuid
|
||||
}
|
||||
return authAcc
|
||||
@ -407,7 +407,7 @@ exports.setSelectedAccount = function(uuid){
|
||||
*
|
||||
* @returns {Array.<Object>} An array of each stored mod configuration.
|
||||
*/
|
||||
exports.getModConfigurations = function(){
|
||||
exports.getModConfigurations = function() {
|
||||
return config.modConfigurations
|
||||
}
|
||||
|
||||
@ -416,7 +416,7 @@ exports.getModConfigurations = function(){
|
||||
*
|
||||
* @param {Array.<Object>} configurations An array of mod configurations.
|
||||
*/
|
||||
exports.setModConfigurations = function(configurations){
|
||||
exports.setModConfigurations = function(configurations) {
|
||||
config.modConfigurations = configurations
|
||||
}
|
||||
|
||||
@ -426,10 +426,10 @@ exports.setModConfigurations = function(configurations){
|
||||
* @param {string} serverid The id of the server.
|
||||
* @returns {Object} The mod configuration for the given server.
|
||||
*/
|
||||
exports.getModConfiguration = function(serverid){
|
||||
exports.getModConfiguration = function(serverid) {
|
||||
const cfgs = config.modConfigurations
|
||||
for(let i=0; i<cfgs.length; i++){
|
||||
if(cfgs[i].id === serverid){
|
||||
for (let i = 0; i < cfgs.length; i++) {
|
||||
if (cfgs[i].id === serverid) {
|
||||
return cfgs[i]
|
||||
}
|
||||
}
|
||||
@ -442,10 +442,10 @@ exports.getModConfiguration = function(serverid){
|
||||
* @param {string} serverid The id of the server for the given mod configuration.
|
||||
* @param {Object} configuration The mod configuration for the given server.
|
||||
*/
|
||||
exports.setModConfiguration = function(serverid, configuration){
|
||||
exports.setModConfiguration = function(serverid, configuration) {
|
||||
const cfgs = config.modConfigurations
|
||||
for(let i=0; i<cfgs.length; i++){
|
||||
if(cfgs[i].id === serverid){
|
||||
for (let i = 0; i < cfgs.length; i++) {
|
||||
if (cfgs[i].id === serverid) {
|
||||
cfgs[i] = configuration
|
||||
return
|
||||
}
|
||||
@ -465,7 +465,7 @@ exports.setModConfiguration = function(serverid, configuration){
|
||||
* @param {boolean} def Optional. If true, the default value will be returned.
|
||||
* @returns {string} The minimum amount of memory for JVM initialization.
|
||||
*/
|
||||
exports.getMinRAM = function(def = false){
|
||||
exports.getMinRAM = function(def = false) {
|
||||
return !def ? config.settings.java.minRAM : DEFAULT_CONFIG.settings.java.minRAM
|
||||
}
|
||||
|
||||
@ -476,7 +476,7 @@ exports.getMinRAM = function(def = false){
|
||||
*
|
||||
* @param {string} minRAM The new minimum amount of memory for JVM initialization.
|
||||
*/
|
||||
exports.setMinRAM = function(minRAM){
|
||||
exports.setMinRAM = function(minRAM) {
|
||||
config.settings.java.minRAM = minRAM
|
||||
}
|
||||
|
||||
@ -488,7 +488,7 @@ exports.setMinRAM = function(minRAM){
|
||||
* @param {boolean} def Optional. If true, the default value will be returned.
|
||||
* @returns {string} The maximum amount of memory for JVM initialization.
|
||||
*/
|
||||
exports.getMaxRAM = function(def = false){
|
||||
exports.getMaxRAM = function(def = false) {
|
||||
return !def ? config.settings.java.maxRAM : resolveMaxRAM()
|
||||
}
|
||||
|
||||
@ -499,7 +499,7 @@ exports.getMaxRAM = function(def = false){
|
||||
*
|
||||
* @param {string} maxRAM The new maximum amount of memory for JVM initialization.
|
||||
*/
|
||||
exports.setMaxRAM = function(maxRAM){
|
||||
exports.setMaxRAM = function(maxRAM) {
|
||||
config.settings.java.maxRAM = maxRAM
|
||||
}
|
||||
|
||||
@ -510,7 +510,7 @@ exports.setMaxRAM = function(maxRAM){
|
||||
*
|
||||
* @returns {string} The path of the Java Executable.
|
||||
*/
|
||||
exports.getJavaExecutable = function(){
|
||||
exports.getJavaExecutable = function() {
|
||||
return config.settings.java.executable
|
||||
}
|
||||
|
||||
@ -519,7 +519,7 @@ exports.getJavaExecutable = function(){
|
||||
*
|
||||
* @param {string} executable The new path of the Java Executable.
|
||||
*/
|
||||
exports.setJavaExecutable = function(executable){
|
||||
exports.setJavaExecutable = function(executable) {
|
||||
config.settings.java.executable = executable
|
||||
}
|
||||
|
||||
@ -531,7 +531,7 @@ exports.setJavaExecutable = function(executable){
|
||||
* @param {boolean} def Optional. If true, the default value will be returned.
|
||||
* @returns {Array.<string>} An array of the additional arguments for JVM initialization.
|
||||
*/
|
||||
exports.getJVMOptions = function(def = false){
|
||||
exports.getJVMOptions = function(def = false) {
|
||||
return !def ? config.settings.java.jvmOptions : DEFAULT_CONFIG.settings.java.jvmOptions
|
||||
}
|
||||
|
||||
@ -543,7 +543,7 @@ exports.getJVMOptions = function(def = false){
|
||||
* @param {Array.<string>} jvmOptions An array of the new additional arguments for JVM
|
||||
* initialization.
|
||||
*/
|
||||
exports.setJVMOptions = function(jvmOptions){
|
||||
exports.setJVMOptions = function(jvmOptions) {
|
||||
config.settings.java.jvmOptions = jvmOptions
|
||||
}
|
||||
|
||||
@ -555,7 +555,7 @@ exports.setJVMOptions = function(jvmOptions){
|
||||
* @param {boolean} def Optional. If true, the default value will be returned.
|
||||
* @returns {number} The width of the game window.
|
||||
*/
|
||||
exports.getGameWidth = function(def = false){
|
||||
exports.getGameWidth = function(def = false) {
|
||||
return !def ? config.settings.game.resWidth : DEFAULT_CONFIG.settings.game.resWidth
|
||||
}
|
||||
|
||||
@ -564,7 +564,7 @@ exports.getGameWidth = function(def = false){
|
||||
*
|
||||
* @param {number} resWidth The new width of the game window.
|
||||
*/
|
||||
exports.setGameWidth = function(resWidth){
|
||||
exports.setGameWidth = function(resWidth) {
|
||||
config.settings.game.resWidth = Number.parseInt(resWidth)
|
||||
}
|
||||
|
||||
@ -574,7 +574,7 @@ exports.setGameWidth = function(resWidth){
|
||||
* @param {number} resWidth The width value to validate.
|
||||
* @returns {boolean} Whether or not the value is valid.
|
||||
*/
|
||||
exports.validateGameWidth = function(resWidth){
|
||||
exports.validateGameWidth = function(resWidth) {
|
||||
const nVal = Number.parseInt(resWidth)
|
||||
return Number.isInteger(nVal) && nVal >= 0
|
||||
}
|
||||
@ -585,7 +585,7 @@ exports.validateGameWidth = function(resWidth){
|
||||
* @param {boolean} def Optional. If true, the default value will be returned.
|
||||
* @returns {number} The height of the game window.
|
||||
*/
|
||||
exports.getGameHeight = function(def = false){
|
||||
exports.getGameHeight = function(def = false) {
|
||||
return !def ? config.settings.game.resHeight : DEFAULT_CONFIG.settings.game.resHeight
|
||||
}
|
||||
|
||||
@ -594,7 +594,7 @@ exports.getGameHeight = function(def = false){
|
||||
*
|
||||
* @param {number} resHeight The new height of the game window.
|
||||
*/
|
||||
exports.setGameHeight = function(resHeight){
|
||||
exports.setGameHeight = function(resHeight) {
|
||||
config.settings.game.resHeight = Number.parseInt(resHeight)
|
||||
}
|
||||
|
||||
@ -604,7 +604,7 @@ exports.setGameHeight = function(resHeight){
|
||||
* @param {number} resHeight The height value to validate.
|
||||
* @returns {boolean} Whether or not the value is valid.
|
||||
*/
|
||||
exports.validateGameHeight = function(resHeight){
|
||||
exports.validateGameHeight = function(resHeight) {
|
||||
const nVal = Number.parseInt(resHeight)
|
||||
return Number.isInteger(nVal) && nVal >= 0
|
||||
}
|
||||
@ -615,7 +615,7 @@ exports.validateGameHeight = function(resHeight){
|
||||
* @param {boolean} def Optional. If true, the default value will be returned.
|
||||
* @returns {boolean} Whether or not the game is set to launch in fullscreen mode.
|
||||
*/
|
||||
exports.getFullscreen = function(def = false){
|
||||
exports.getFullscreen = function(def = false) {
|
||||
return !def ? config.settings.game.fullscreen : DEFAULT_CONFIG.settings.game.fullscreen
|
||||
}
|
||||
|
||||
@ -624,7 +624,7 @@ exports.getFullscreen = function(def = false){
|
||||
*
|
||||
* @param {boolean} fullscreen Whether or not the game should launch in fullscreen mode.
|
||||
*/
|
||||
exports.setFullscreen = function(fullscreen){
|
||||
exports.setFullscreen = function(fullscreen) {
|
||||
config.settings.game.fullscreen = fullscreen
|
||||
}
|
||||
|
||||
@ -634,7 +634,7 @@ exports.setFullscreen = function(fullscreen){
|
||||
* @param {boolean} def Optional. If true, the default value will be returned.
|
||||
* @returns {boolean} Whether or not the game should auto connect to servers.
|
||||
*/
|
||||
exports.getAutoConnect = function(def = false){
|
||||
exports.getAutoConnect = function(def = false) {
|
||||
return !def ? config.settings.game.autoConnect : DEFAULT_CONFIG.settings.game.autoConnect
|
||||
}
|
||||
|
||||
@ -643,7 +643,7 @@ exports.getAutoConnect = function(def = false){
|
||||
*
|
||||
* @param {boolean} autoConnect Whether or not the game should auto connect to servers.
|
||||
*/
|
||||
exports.setAutoConnect = function(autoConnect){
|
||||
exports.setAutoConnect = function(autoConnect) {
|
||||
config.settings.game.autoConnect = autoConnect
|
||||
}
|
||||
|
||||
@ -653,7 +653,7 @@ exports.setAutoConnect = function(autoConnect){
|
||||
* @param {boolean} def Optional. If true, the default value will be returned.
|
||||
* @returns {boolean} Whether or not the game will launch as a detached process.
|
||||
*/
|
||||
exports.getLaunchDetached = function(def = false){
|
||||
exports.getLaunchDetached = function(def = false) {
|
||||
return !def ? config.settings.game.launchDetached : DEFAULT_CONFIG.settings.game.launchDetached
|
||||
}
|
||||
|
||||
@ -662,7 +662,7 @@ exports.getLaunchDetached = function(def = false){
|
||||
*
|
||||
* @param {boolean} launchDetached Whether or not the game should launch as a detached process.
|
||||
*/
|
||||
exports.setLaunchDetached = function(launchDetached){
|
||||
exports.setLaunchDetached = function(launchDetached) {
|
||||
config.settings.game.launchDetached = launchDetached
|
||||
}
|
||||
|
||||
@ -674,7 +674,7 @@ exports.setLaunchDetached = function(launchDetached){
|
||||
* @param {boolean} def Optional. If true, the default value will be returned.
|
||||
* @returns {boolean} Whether or not the launcher should download prerelease versions.
|
||||
*/
|
||||
exports.getAllowPrerelease = function(def = false){
|
||||
exports.getAllowPrerelease = function(def = false) {
|
||||
return !def ? config.settings.launcher.allowPrerelease : DEFAULT_CONFIG.settings.launcher.allowPrerelease
|
||||
}
|
||||
|
||||
@ -683,6 +683,6 @@ exports.getAllowPrerelease = function(def = false){
|
||||
*
|
||||
* @param {boolean} launchDetached Whether or not the launcher should download prerelease versions.
|
||||
*/
|
||||
exports.setAllowPrerelease = function(allowPrerelease){
|
||||
exports.setAllowPrerelease = function(allowPrerelease) {
|
||||
config.settings.launcher.allowPrerelease = allowPrerelease
|
||||
}
|
@ -10,24 +10,24 @@
|
||||
<button class="frameButtonDarwin fRb" id="frameButtonDarwin_restoredown" tabIndex="-1"></button>
|
||||
</div>
|
||||
</div>
|
||||
<% } else{ %>
|
||||
<div id="frameContentWin">
|
||||
<div id="frameTitleDock">
|
||||
<span id="frameTitleText">Helios Launcher</span>
|
||||
</div>
|
||||
<div id="frameButtonDockWin">
|
||||
<button class="frameButton fMb" id="frameButton_minimize" tabIndex="-1">
|
||||
<% } else{ %>
|
||||
<div id="frameContentWin">
|
||||
<div id="frameTitleDock">
|
||||
<span id="frameTitleText">SkyGames Launcher</span>
|
||||
</div>
|
||||
<div id="frameButtonDockWin">
|
||||
<button class="frameButton fMb" id="frameButton_minimize" tabIndex="-1">
|
||||
<svg name="TitleBarMinimize" width="10" height="10" viewBox="0 0 12 12"><rect stroke="#ffffff" fill="#ffffff" width="10" height="1" x="1" y="6"></rect></svg>
|
||||
</button>
|
||||
<button class="frameButton fRb" id="frameButton_restoredown" tabIndex="-1">
|
||||
<button class="frameButton fRb" id="frameButton_restoredown" tabIndex="-1">
|
||||
<svg name="TitleBarMaximize" width="10" height="10" viewBox="0 0 12 12"><rect width="9" height="9" x="1.5" y="1.5" fill="none" stroke="#ffffff" stroke-width="1.4px"></rect></svg>
|
||||
</button>
|
||||
<button class="frameButton fCb" id="frameButton_close" tabIndex="-1">
|
||||
<button class="frameButton fCb" id="frameButton_close" tabIndex="-1">
|
||||
<svg name="TitleBarClose" width="10" height="10" viewBox="0 0 12 12"><polygon stroke="#ffffff" fill="#ffffff" fill-rule="evenodd" points="11 1.576 6.583 6 11 10.424 10.424 11 6 6.583 1.576 11 1 10.424 5.417 6 1 1.576 1.576 1 6 5.417 10.424 1"></polygon></svg>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<div class="frameResizableVert frameDragPadder"></div>
|
||||
<% } %>
|
||||
<div class="frameResizableVert frameDragPadder"></div>
|
||||
</div>
|
||||
</div>
|
@ -4,14 +4,14 @@
|
||||
<div class="cloudBottom"></div>
|
||||
</div>-->
|
||||
<div id="welcomeContent">
|
||||
<img id="welcomeImageSeal" src="assets/images/SealCircle.png"/>
|
||||
<span id="welcomeHeader">WELCOME TO WESTEROSCRAFT</span>
|
||||
<span id="welcomeDescription">Our mission is to recreate the universe imagined by author George RR Martin in his fantasy series, A Song of Ice and Fire. Through the collaborative effort of thousands of community members, we have sought to create Westeros as accurately and precisely as possible within Minecraft. The world we are creating is yours to explore. Journey from Dorne to Castle Black, and if you aren’t afraid, beyond the Wall itself, but best not delay. As the words of House Stark ominously warn: Winter is Coming.</span>
|
||||
<img id="welcomeImageSeal" src="assets/images/SealCircle.png" />
|
||||
<span id="welcomeHeader">Bienvenue sur SkyGames Launcher</span>
|
||||
<span id="welcomeDescription">Serveur Minecraft Moddée</span>
|
||||
<br>
|
||||
<span id="welcomeDescCTA">You are just a few clicks away from Westeros.</span>
|
||||
<span id="welcomeDescCTA">Vous n'êtes qu'à quelques clics de SkyGames</span>
|
||||
<button id="welcomeButton">
|
||||
<div id="welcomeButtonContent">
|
||||
CONTINUE
|
||||
CONTINUER
|
||||
<svg id="welcomeSVG" viewBox="0 0 24.87 13.97">
|
||||
<defs>
|
||||
<style>.arrowLine{fill:none;stroke:#FFF;stroke-width:2px;transition: 0.25s ease;}</style>
|
||||
|
BIN
build/icon.png
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 12 KiB |
4
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "helioslauncher",
|
||||
"version": "1.8.0",
|
||||
"name": "skygameslauncher",
|
||||
"version": "1.1.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
100
package.json
@ -1,52 +1,52 @@
|
||||
{
|
||||
"name": "helioslauncher",
|
||||
"version": "1.8.0",
|
||||
"productName": "Helios Launcher",
|
||||
"description": "Modded Minecraft Launcher",
|
||||
"author": "Daniel Scalzi (https://github.com/dscalzi/)",
|
||||
"license": "UNLICENSED",
|
||||
"homepage": "https://github.com/dscalzi/HeliosLauncher",
|
||||
"bugs": {
|
||||
"url": "https://github.com/dscalzi/HeliosLauncher/issues"
|
||||
},
|
||||
"private": true,
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"start": "electron .",
|
||||
"cilinux": "node build.js WINDOWS && node build.js LINUX",
|
||||
"cidarwin": "node build.js MAC",
|
||||
"dist": "cross-env ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true node build.js",
|
||||
"dist:win": "npm run dist -- WINDOWS",
|
||||
"dist:mac": "npm run dist -- MAC",
|
||||
"dist:linux": "npm run dist -- LINUX",
|
||||
"lint": "eslint --config .eslintrc.json ."
|
||||
},
|
||||
"engines": {
|
||||
"node": "12.x.x"
|
||||
},
|
||||
"dependencies": {
|
||||
"adm-zip": "^0.4.16",
|
||||
"async": "^3.2.0",
|
||||
"discord-rpc": "^3.1.4",
|
||||
"ejs": "^3.1.5",
|
||||
"ejs-electron": "^2.1.1",
|
||||
"electron-updater": "^4.3.5",
|
||||
"fs-extra": "^9.0.1",
|
||||
"github-syntax-dark": "^0.5.0",
|
||||
"jquery": "^3.5.1",
|
||||
"request": "^2.88.2",
|
||||
"semver": "^7.3.2",
|
||||
"tar-fs": "^2.1.1",
|
||||
"winreg": "^1.2.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"cross-env": "^7.0.2",
|
||||
"electron": "^11.0.0",
|
||||
"electron-builder": "^22.9.1",
|
||||
"eslint": "^7.13.0"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/dscalzi/HeliosLauncher.git"
|
||||
}
|
||||
"name": "skygameslauncher",
|
||||
"version": "1.1.2",
|
||||
"productName": "SkyGames Launcher",
|
||||
"description": "SkyGames Launcher",
|
||||
"author": "FullGreen (https://github.com/dscalzi/)",
|
||||
"license": "UNLICENSED",
|
||||
"homepage": "https://github.com/FullGreenDev/SkyGamesLauncher",
|
||||
"bugs": {
|
||||
"url": "https://github.com/FullGreenDev/SkyGamesLauncher/issues"
|
||||
},
|
||||
"private": true,
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"start": "electron .",
|
||||
"cilinux": "node build.js WINDOWS && node build.js LINUX",
|
||||
"cidarwin": "node build.js MAC",
|
||||
"dist": "cross-env ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true node build.js",
|
||||
"dist:win": "npm run dist -- WINDOWS",
|
||||
"dist:mac": "npm run dist -- MAC",
|
||||
"dist:linux": "npm run dist -- LINUX",
|
||||
"lint": "eslint --config .eslintrc.json ."
|
||||
},
|
||||
"engines": {
|
||||
"node": "12.x.x"
|
||||
},
|
||||
"dependencies": {
|
||||
"adm-zip": "^0.4.16",
|
||||
"async": "^3.2.0",
|
||||
"discord-rpc": "^3.1.4",
|
||||
"ejs": "^3.1.5",
|
||||
"ejs-electron": "^2.1.1",
|
||||
"electron-updater": "^4.3.5",
|
||||
"fs-extra": "^9.0.1",
|
||||
"github-syntax-dark": "^0.5.0",
|
||||
"jquery": "^3.5.1",
|
||||
"request": "^2.88.2",
|
||||
"semver": "^7.3.2",
|
||||
"tar-fs": "^2.1.1",
|
||||
"winreg": "^1.2.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"cross-env": "^7.0.2",
|
||||
"electron": "^11.0.0",
|
||||
"electron-builder": "^22.9.1",
|
||||
"eslint": "^7.13.0"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/FullGreenDev/SkyGamesLauncher.git"
|
||||
}
|
||||
}
|
||||
|