Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ npm-debug.log
launcher.log
misc/
launcherbuildindex
StarMade/
StarMade/
/.idea/
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Download the Java jre archive(s) from here:
* win32: https://s3.amazonaws.com/sm-launcher/java/jre-7u80-windows-i586.tar.gz
* win64: https://s3.amazonaws.com/sm-launcher/java/jre-7u80-windows-x64.tar.gz

and manually extract the contents to `launcher/dep/java/(platform)`, e.g. `launcher/dep/java/win64`
and manually extract the contents to `dep/java/(platform)`, e.g. `dep/java/win64`

## Copyright / License

Expand Down
2 changes: 1 addition & 1 deletion gulpfile.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -639,7 +639,7 @@ gulp.task 'package-steam-appid', ['electron-packager'], ->
.pipe gulp.dest paths.dist.platform.linux.x64
.pipe gulp.dest paths.dist.platform.darwin.x64

gulp.task 'run', ['package'], ->
gulp.task 'run', ->
appDir = paths.dist.platform[process.platform][process.arch]
if process.platform == 'darwin'
app = path.join appDir, 'Electron'
Expand Down
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
"name": "starmade-launcher",
"productName": "StarMade Launcher",
"private": true,
"version": "2.1.3",
"version": "3.0.0",
"description": "Launcher for StarMade",
"main": "lib/browser/main.js",
"electronVersion": "1.0.0",
"greenworksVersion": "0.4.1",
"javaVersion": "7u80",
"javaVersion": "18.0.1.1",
"devDependencies": {
"coffeescript": "^1.9.2",
"electron-packager": "^5.0.0",
Expand Down Expand Up @@ -48,6 +48,7 @@
"librato-node": "^4.0.2",
"minimist": "^1.1.1",
"mkdirp": "^0.5.0",
"node": "^11.15.0",
"request": "^2.55.0",
"rimraf": "^2.4.0",
"sanitize-filename": "^1.6.0",
Expand Down
30 changes: 26 additions & 4 deletions src/controllers/launch.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ app.controller 'LaunchCtrl', ($scope, $rootScope, $timeout, accessToken) ->

# Load memory settings from storage, or set the defaults
loadMemorySettings = ->
_do_logging = false
_do_logging = true
if not $rootScope.alreadyExecuted 'Loading memory settings', 1000
$rootScope.log.event "Loading memory settings"
_do_logging = true
Expand Down Expand Up @@ -128,7 +128,7 @@ app.controller 'LaunchCtrl', ($scope, $rootScope, $timeout, accessToken) ->

# Load launcher settings from storage, or set the defaults

_do_logging = false
_do_logging = true
if not $rootScope.alreadyExecuted "Loading launcher options"
$rootScope.log.event "Loading launcher options"
_do_logging = true
Expand Down Expand Up @@ -476,6 +476,8 @@ app.controller 'LaunchCtrl', ($scope, $rootScope, $timeout, accessToken) ->

newPath = path.resolve(newPath)

javaJreDirectory = util.getJreDirectory javaVersion

if fileExists( path.join(newPath, "java") ) || # osx+linux
fileExists( path.join(newPath, "java.exe") ) # windows
$scope.launcherOptions.javaPathStatus = "-- Using custom Java install --"
Expand All @@ -499,8 +501,15 @@ app.controller 'LaunchCtrl', ($scope, $rootScope, $timeout, accessToken) ->
$rootScope.log.event "Launching game"
$scope.verifyJavaPath()
loadMemorySettings()

$rootScope.log.info " settings loaded"
customJavaPath = null
# Check if game version starts with 0.2
if $rootScope.buildVersion().startsWith("0.2") || $rootScope.buildVersion().startsWith("0.1")
$rootScope.javaVersion = "1.7.0_80"
javaVersion = "1.7.0_80"
else
$rootScope.javaVersion = "18.0.1.1"
javaVersion = "18.0.1.1"

# Use the custom java path if it's set and valid
if $rootScope.javaPath && not $scope.launcherOptions.invalidJavaPath
Expand Down Expand Up @@ -545,13 +554,26 @@ app.controller 'LaunchCtrl', ($scope, $rootScope, $timeout, accessToken) ->
args.push("-Xmn#{$scope.memory.earlyGen}M")
args.push("-Xms#{$scope.memory.initial}M")
args.push("-Xmx#{$scope.memory.max}M")
args.push('-illegal-access=permit')
if !$rootScope.buildVersion().startsWith("0.2") && !$rootScope.buildVersion().startsWith("0.1")
args.push('--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED')
args.push('--add-exports=java.base/sun.nio.ch=ALL-UNNAMED')
args.push('--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED')
args.push('--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED')
args.push('--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED')
args.push('--add-opens=java.base/sun.nio.ch=ALL-UNNAMED')
args.push('--add-opens=java.base/java.lang=ALL-UNNAMED')
args.push('--add-opens=java.base/java.lang.reflect=ALL-UNNAMED')
args.push('--add-opens=java.base/java.io=ALL-UNNAMED')
args.push('--add-opens=java.base/java.util=ALL-UNNAMED')

# Custom args
args.push arg for arg in $scope.launcherOptions.javaArgs.split(" ")
# Jar args
args.push('-jar')
args.push(starmadeJar)
args.push('-force') unless dedicatedServer
args.push('-server') if dedicatedServer
# args.push('-server') if dedicatedServer
args.push('-gui') if dedicatedServer
args.push("-port:#{$scope.serverPort}")
args.push("-auth #{accessToken.get()}") if accessToken.get()?
Expand Down
14 changes: 5 additions & 9 deletions src/util.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,8 @@ exports.parseBoolean = (str) ->
false

exports.getJreDirectory = (javaVersion, platform = process.platform) ->
javaVersionBits = javaVersion.split('u')
javaVersionNumber = "1.#{javaVersionBits[0]}.0"
javaUpdateNumber = javaVersionBits[1]

jreDirectory = "jre#{javaVersionNumber}_#{javaUpdateNumber}"
if platform == 'darwin'
jreDirectory += '.jre/Contents/Home'
else
jreDirectory
jreDirectory = "jre#{javaVersion}"
if platform == 'darwin'
jreDirectory += '.jre/Contents/Home'
else
jreDirectory