aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/xyz/brysonsteck/serverfordummies/PrimaryController.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin/xyz/brysonsteck/serverfordummies/PrimaryController.kt')
-rw-r--r--app/src/main/kotlin/xyz/brysonsteck/serverfordummies/PrimaryController.kt71
1 files changed, 47 insertions, 24 deletions
diff --git a/app/src/main/kotlin/xyz/brysonsteck/serverfordummies/PrimaryController.kt b/app/src/main/kotlin/xyz/brysonsteck/serverfordummies/PrimaryController.kt
index 48b6326..c9c2153 100644
--- a/app/src/main/kotlin/xyz/brysonsteck/serverfordummies/PrimaryController.kt
+++ b/app/src/main/kotlin/xyz/brysonsteck/serverfordummies/PrimaryController.kt
@@ -49,6 +49,7 @@ import javafx.event.EventHandler
import org.rauschig.jarchivelib.*
import Download
+import xyz.brysonsteck.serverfordummies.server.Server
class PrimaryController {
@FXML
@@ -112,6 +113,7 @@ class PrimaryController {
@FXML
lateinit private var defaultsButton: Button
+ lateinit private var server: Server
private var building = false
private var directory = ""
private var asyncResult = false
@@ -160,6 +162,7 @@ class PrimaryController {
val result = dirChooser.showDialog(null)
if (result != null) {
currentDirectoryLabel.text = result.absolutePath
+ server = Server()
val res = loadServerDir(result.absolutePath)
if (res) {
parentPane.isDisable = false
@@ -246,7 +249,7 @@ class PrimaryController {
"BuildTools" to directory + "ServerForDummies" + File.separator + "Spigot" + File.separator
)
val spigotBuilt = File(destinations["BuildTools"]).exists()
- val javaExtracted = File(destinations["Java 20"]).exists()
+ val javaExtracted = File(destinations["Java 20"] + "jdk-20.0.1").exists()
destinations.forEach {
File(it.value).mkdir()
}
@@ -329,10 +332,16 @@ class PrimaryController {
worldSettingsPane.isDisable = false
directoryPane.isDisable = false
parentPane.isDisable = false
- startButton.isDisable = false
defaultsButton.isDisable = false
buildButton.text = "Build Server"
- statusBar.text = if (building) {"Ready."} else {"Server build cancelled."}
+ statusBar.text = if (building) {
+ findServerJar()
+ buildButton.text = "Rebuild Server"
+ startButton.isDisable = false
+ "Ready."
+ } else {
+ "Server build cancelled."
+ }
building = false;
}
}
@@ -445,7 +454,6 @@ class PrimaryController {
private fun loadServerDir(dir: String): Boolean {
directory = dir
- var hasServer = false
if (!File(directory).isDirectory) {
return false;
}
@@ -454,31 +462,14 @@ class PrimaryController {
directory += File.separatorChar
val hasDummy = File(directory + "ServerForDummies").isDirectory
-
- // major version
- for (i in 25 downTo 8) {
- // patch number
- for (j in 15 downTo 0) {
- var spigotFile: String = ""
- if (j == 0)
- spigotFile += "spigot-1.$i.jar"
- else
- spigotFile += "spigot-1.$i.$j.jar";
-
- hasServer = File(directory + spigotFile).isFile || File(directory + "server.jar").isFile
- if (hasServer)
- break;
- }
- if (hasServer)
- break;
- }
-
val hasProperties = File(directory + File.separator + "server.properties").isFile
+ val hasServer = findServerJar()
if (hasDummy && hasServer) {
// server complete, just read jproperties
statusBar.text = "Server found!"
startButton.isDisable = false
+ buildButton.text = "Rebuild Server"
} else if (hasDummy && !hasServer && hasProperties) {
// just needs to be built
startButton.isDisable = true
@@ -494,11 +485,43 @@ class PrimaryController {
} else {
// assume clean directory
val result = createDialog("info", "There is no server in this directory.\nCreate one?", "Yes", "No", true)
- File(directory + "ServerForDummies").mkdir()
+ if (result) {
+ File(directory + "ServerForDummies").mkdir()
+ startButton.isDisable = true
+ buildButton.text = "Build Server"
+ }
statusBar.text = "Ready."
return result
}
return true;
}
+
+ private fun findServerJar(): Boolean {
+ // search for spigot jar
+ // major version
+ for (i in 25 downTo 8) {
+ // patch number
+ for (j in 15 downTo 0) {
+ var spigotFile: String = ""
+ if (j == 0)
+ spigotFile += "spigot-1.$i.jar"
+ else
+ spigotFile += "spigot-1.$i.$j.jar";
+
+ if (File(directory + spigotFile).isFile) {
+ server.jar = directory + spigotFile
+ return true
+ }
+ }
+ }
+
+ // try vanilla server if no spigot server
+ if (File(directory + "server.jar").isFile) {
+ server.jar = directory + "server.jar"
+ return true
+ }
+
+ return false
+ }
} \ No newline at end of file