From 7db4d246d920586edcc485d514d9651dcc370d67 Mon Sep 17 00:00:00 2001 From: Bryson Steck Date: Tue, 9 May 2023 16:31:47 -0600 Subject: logic seems fine? --- .gitignore | 1 + .../main/xyz/brysonsteck/serverfordummies/App.kt | 30 --- .../main/xyz/brysonsteck/serverfordummies/Main.kt | 5 - .../serverfordummies/PrimaryController.kt | 124 ---------- .../brysonsteck/serverfordummies/downloadFile.kt | 37 --- .../xyz/brysonsteck/serverfordummies/primary.fxml | 253 --------------------- .../xyz/brysonsteck/serverfordummies/AppTest.kt | 14 -- app/build.gradle | 11 +- .../kotlin/xyz/brysonsteck/serverfordummies/App.kt | 2 +- .../xyz/brysonsteck/serverfordummies/Download.kt | 119 ++++++++++ .../serverfordummies/PrimaryController.kt | 95 ++++++++ .../brysonsteck/serverfordummies/downloadFile.kt | 37 --- .../brysonsteck/serverfordummies/server/Server.kt | 7 + .../xyz/brysonsteck/serverfordummies/dialog.fxml | 24 ++ .../brysonsteck/serverfordummies/icons/info.png | Bin 0 -> 5289 bytes .../brysonsteck/serverfordummies/icons/warning.png | Bin 0 -> 5131 bytes .../xyz/brysonsteck/serverfordummies/primary.fxml | 6 +- 17 files changed, 254 insertions(+), 511 deletions(-) delete mode 100644 app/bin/main/xyz/brysonsteck/serverfordummies/App.kt delete mode 100644 app/bin/main/xyz/brysonsteck/serverfordummies/Main.kt delete mode 100644 app/bin/main/xyz/brysonsteck/serverfordummies/PrimaryController.kt delete mode 100644 app/bin/main/xyz/brysonsteck/serverfordummies/downloadFile.kt delete mode 100644 app/bin/main/xyz/brysonsteck/serverfordummies/primary.fxml delete mode 100644 app/bin/test/xyz/brysonsteck/serverfordummies/AppTest.kt create mode 100644 app/src/main/kotlin/xyz/brysonsteck/serverfordummies/Download.kt delete mode 100644 app/src/main/kotlin/xyz/brysonsteck/serverfordummies/downloadFile.kt create mode 100644 app/src/main/kotlin/xyz/brysonsteck/serverfordummies/server/Server.kt create mode 100644 app/src/main/resources/xyz/brysonsteck/serverfordummies/dialog.fxml create mode 100644 app/src/main/resources/xyz/brysonsteck/serverfordummies/icons/info.png create mode 100644 app/src/main/resources/xyz/brysonsteck/serverfordummies/icons/warning.png diff --git a/.gitignore b/.gitignore index a0672f7..56cc083 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ # Ignore Gradle build output directory build +bin # Ignore VSCode settings .vscode diff --git a/app/bin/main/xyz/brysonsteck/serverfordummies/App.kt b/app/bin/main/xyz/brysonsteck/serverfordummies/App.kt deleted file mode 100644 index 0547a8f..0000000 --- a/app/bin/main/xyz/brysonsteck/serverfordummies/App.kt +++ /dev/null @@ -1,30 +0,0 @@ -/* - * This Kotlin source file was generated by the Gradle 'init' task. - */ -package xyz.brysonsteck.serverfordummies - -import javafx.application.Application; -import javafx.fxml.FXMLLoader; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.stage.Stage; - -class App : Application() { - - override fun start(stage: Stage) { - var scene = Scene(loadFXML("primary"), 1500.0, 900.0) - stage.title = "Server For Dummies" - stage.scene = scene - stage.show() - } - - private fun loadFXML(fxml: String) : Parent { - val fxmlLoader = FXMLLoader(this.javaClass.getResource(fxml + ".fxml")) - return fxmlLoader.load() - } - - public fun run() { - launch() - } - -} diff --git a/app/bin/main/xyz/brysonsteck/serverfordummies/Main.kt b/app/bin/main/xyz/brysonsteck/serverfordummies/Main.kt deleted file mode 100644 index 604825f..0000000 --- a/app/bin/main/xyz/brysonsteck/serverfordummies/Main.kt +++ /dev/null @@ -1,5 +0,0 @@ -package xyz.brysonsteck.serverfordummies - -fun main() { - App().run() -} \ No newline at end of file diff --git a/app/bin/main/xyz/brysonsteck/serverfordummies/PrimaryController.kt b/app/bin/main/xyz/brysonsteck/serverfordummies/PrimaryController.kt deleted file mode 100644 index 6e05579..0000000 --- a/app/bin/main/xyz/brysonsteck/serverfordummies/PrimaryController.kt +++ /dev/null @@ -1,124 +0,0 @@ -package xyz.brysonsteck.serverfordummies - -import java.io.File -import java.io.IOException -import java.awt.Checkbox -import java.util.Properties - -import javafx.beans.value.ChangeListener -import javafx.beans.value.ObservableValue -import javafx.beans.property.BooleanProperty -import javafx.collections.FXCollections -import javafx.fxml.FXML -import javafx.geometry.Insets -import javafx.scene.control.Button -import javafx.scene.control.ChoiceBox -import javafx.scene.control.Label -import javafx.scene.control.TextField -import javafx.scene.control.Spinner -import javafx.scene.control.TitledPane -import javafx.scene.control.ButtonBar -import javafx.scene.control.CheckBox -import javafx.scene.layout.Border -import javafx.scene.layout.BorderStroke -import javafx.scene.layout.GridPane -import javafx.scene.layout.Pane -import javafx.scene.layout.HBox -import javafx.scene.text.TextAlignment -import javafx.scene.Scene -import javafx.scene.input.MouseEvent -import javafx.stage.FileChooser -import javafx.stage.FileChooser.ExtensionFilter -import javafx.stage.DirectoryChooser -import javafx.event.EventHandler - -class PrimaryController { - @FXML - lateinit private var currentDirectoryLabel: Label - @FXML - lateinit private var worldNameField: TextField - @FXML - lateinit private var seedField: TextField - @FXML - lateinit private var portSpinner: Spinner - @FXML - lateinit private var difficultyBox: ChoiceBox - @FXML - lateinit private var gamemodeBox: ChoiceBox - @FXML - lateinit private var worldTypeBox: ChoiceBox - @FXML - lateinit private var worldSettingsPane: HBox - @FXML - lateinit private var parentPane: Pane - @FXML - lateinit private var buttonBar: ButtonBar - @FXML - lateinit private var flightCheckbox: CheckBox - @FXML - lateinit private var netherCheckbox: CheckBox - @FXML - lateinit private var structuresCheckbox: CheckBox - @FXML - lateinit private var pvpCheckbox: CheckBox - @FXML - lateinit private var whitelistCheckbox: CheckBox - @FXML - lateinit private var cmdBlocksCheckbox: CheckBox - @FXML - lateinit private var playerCountCheckbox: CheckBox - @FXML - lateinit private var maxPlayersSpinner: Spinner - @FXML - lateinit private var maxSizeSpinner: Spinner - @FXML - lateinit private var memorySpinner: Spinner - @FXML - lateinit private var spawnSpinner: Spinner - @FXML - lateinit private var simulationSpinner: Spinner - @FXML - lateinit private var renderSpinner: Spinner - @FXML - lateinit private var maxTickSpinner: Spinner - @FXML - lateinit private var progressBar: ProgressBar - - @FXML - private fun onDirectoryButtonClick() { - val dirChooser = DirectoryChooser() - dirChooser.title = "Open a server directory" - dirChooser.initialDirectory = File(System.getProperty("user.home")) - val result = dirChooser.showDialog(null) - if (result != null) { - currentDirectoryLabel.text = result.absolutePath - parentPane.isDisable = false - worldSettingsPane.isDisable = false - buttonBar.isDisable = false - } - } - - @FXML - private fun onWorldNameChange() { - - } - - @FXML - private fun onSeedChange() { - - } - - @FXML - private fun onPortChange() { - - } - - @FXML - private fun onCheckboxClick() { - } - - @FXML - private fun onSpinnerChange() { - - } -} \ No newline at end of file diff --git a/app/bin/main/xyz/brysonsteck/serverfordummies/downloadFile.kt b/app/bin/main/xyz/brysonsteck/serverfordummies/downloadFile.kt deleted file mode 100644 index bbaeab5..0000000 --- a/app/bin/main/xyz/brysonsteck/serverfordummies/downloadFile.kt +++ /dev/null @@ -1,37 +0,0 @@ -import java.net.http.HttpClient -import kotlinx.coroutines.flow - -sealed class DownloadStatus { - - object Success : DownloadStatus() - - data class Error(val message: String) : DownloadStatus() - - data class Progress(val progress: Int): DownloadStatus() - -} - -// function from https://gist.githubusercontent.com/SG-K/63e379efcc3d1cd3ce4fb56ee0e29c42/raw/cd9a4a016401b7c54ec01303415b5871ffa26066/downloadFile.kt -suspend fun HttpClient.downloadFile(file: File, url: String): Flow { - return flow { - val response = call { - url(url) - method = HttpMethod.Get - }.response - val byteArray = ByteArray(response.contentLength()!!.toInt()) - var offset = 0 - do { - val currentRead = response.content.readAvailable(byteArray, offset, byteArray.size) - offset += currentRead - val progress = (offset * 100f / byteArray.size).roundToInt() - emit(DownloadStatus.Progress(progress)) - } while (currentRead > 0) - response.close() - if (response.status.isSuccess()) { - file.writeBytes(byteArray) - emit(DownloadStatus.Success) - } else { - emit(DownloadStatus.Error("File not downloaded")) - } - } -} \ No newline at end of file diff --git a/app/bin/main/xyz/brysonsteck/serverfordummies/primary.fxml b/app/bin/main/xyz/brysonsteck/serverfordummies/primary.fxml deleted file mode 100644 index 85b7370..0000000 --- a/app/bin/main/xyz/brysonsteck/serverfordummies/primary.fxml +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -