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() { } }