From 5bd0c9b7c2365f51966ff5c35af4489c5caef76f Mon Sep 17 00:00:00 2001 From: Bixilon Date: Wed, 28 Jul 2021 21:54:45 +0200 Subject: [PATCH] eros: server type: server count --- .../dialogs/SimpleErosConfirmationDialog.kt | 8 +++---- .../gui/eros/dialogs/UpdateServerDialog.kt | 22 +++++++++---------- .../gui/eros/main/play/PlayMainController.kt | 2 +- .../gui/eros/main/play/ServerTypes.kt | 13 ++++++++--- .../server/type/ServerTypeCardController.kt | 8 +++---- 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/dialogs/SimpleErosConfirmationDialog.kt b/src/main/java/de/bixilon/minosoft/gui/eros/dialogs/SimpleErosConfirmationDialog.kt index 584d2ff89..24784a77f 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/dialogs/SimpleErosConfirmationDialog.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/dialogs/SimpleErosConfirmationDialog.kt @@ -34,10 +34,10 @@ class SimpleErosConfirmationDialog( val onCancel: () -> Unit = {}, val onConfirm: () -> Unit, ) : JavaFXWindowController() { - @FXML lateinit var headerFX: TextFlow - @FXML lateinit var descriptionFX: TextFlow - @FXML lateinit var cancelButtonFX: Button - @FXML lateinit var confirmButtonFX: Button + @FXML private lateinit var headerFX: TextFlow + @FXML private lateinit var descriptionFX: TextFlow + @FXML private lateinit var cancelButtonFX: Button + @FXML private lateinit var confirmButtonFX: Button fun show() { Platform.runLater { diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/dialogs/UpdateServerDialog.kt b/src/main/java/de/bixilon/minosoft/gui/eros/dialogs/UpdateServerDialog.kt index 6ca72524e..bc3b66936 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/dialogs/UpdateServerDialog.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/dialogs/UpdateServerDialog.kt @@ -41,29 +41,29 @@ class UpdateServerDialog( val onCancel: () -> Unit = {}, val onUpdate: (name: String, address: String, forcedVersion: Version?) -> Unit, ) : JavaFXWindowController() { - @FXML lateinit var descriptionFX: TextFlow + @FXML private lateinit var descriptionFX: TextFlow - @FXML lateinit var serverNameLabelFX: TextFlow + @FXML private lateinit var serverNameLabelFX: TextFlow - @FXML lateinit var serverNameFX: TextField + @FXML private lateinit var serverNameFX: TextField - @FXML lateinit var serverAddressLabelFX: TextFlow + @FXML private lateinit var serverAddressLabelFX: TextFlow - @FXML lateinit var serverAddressFX: TextField + @FXML private lateinit var serverAddressFX: TextField - @FXML lateinit var forcedVersionLabelFX: TextFlow + @FXML private lateinit var forcedVersionLabelFX: TextFlow - @FXML lateinit var forcedVersionFX: ComboBox + @FXML private lateinit var forcedVersionFX: ComboBox - @FXML lateinit var showReleasesFX: CheckBox + @FXML private lateinit var showReleasesFX: CheckBox - @FXML lateinit var showSnapshotsFX: CheckBox + @FXML private lateinit var showSnapshotsFX: CheckBox - @FXML lateinit var updateServerButtonFX: Button + @FXML private lateinit var updateServerButtonFX: Button - @FXML lateinit var cancelButtonFX: Button + @FXML private lateinit var cancelButtonFX: Button fun show() { diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/PlayMainController.kt b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/PlayMainController.kt index 7222e2716..f232fedbb 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/PlayMainController.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/PlayMainController.kt @@ -58,7 +58,7 @@ class PlayMainController : EmbeddedJavaFXController() { if (this::currentController.isInitialized) { currentController.terminate() } - currentController = when (new) { + currentController = when (new!!) { ServerTypes.CUSTOM -> JavaFXUtil.loadEmbeddedController(ServerListController.LAYOUT).apply { servers = Minosoft.config.config.server.entries.values refreshList() diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/ServerTypes.kt b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/ServerTypes.kt index d637599d2..d650f5c78 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/ServerTypes.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/ServerTypes.kt @@ -13,21 +13,28 @@ package de.bixilon.minosoft.gui.eros.main.play +import de.bixilon.minosoft.Minosoft import de.bixilon.minosoft.data.registries.ResourceLocation import de.bixilon.minosoft.data.registries.registries.registry.Translatable +import de.bixilon.minosoft.protocol.protocol.LANServerListener import de.bixilon.minosoft.util.KUtil import de.bixilon.minosoft.util.KUtil.asResourceLocation import de.bixilon.minosoft.util.enum.ValuesEnum import org.kordamp.ikonli.Ikon import org.kordamp.ikonli.fontawesome5.FontAwesomeSolid -enum class ServerTypes(val icon: Ikon) : Translatable { - CUSTOM(FontAwesomeSolid.SERVER), - LAN(FontAwesomeSolid.NETWORK_WIRED), +enum class ServerTypes( + val icon: Ikon, + private val countGetter: () -> Int, +) : Translatable { + CUSTOM(FontAwesomeSolid.SERVER, { Minosoft.config.config.server.entries.size }), + LAN(FontAwesomeSolid.NETWORK_WIRED, { LANServerListener.SERVERS.size }), ; override val translationKey: ResourceLocation = "minosoft:server_type.${name.lowercase()}".asResourceLocation() + val count: Int + get() = countGetter() companion object : ValuesEnum { override val VALUES: Array = values() diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/type/ServerTypeCardController.kt b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/type/ServerTypeCardController.kt index 66506c2a7..1446c6ddf 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/type/ServerTypeCardController.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/main/play/server/type/ServerTypeCardController.kt @@ -24,11 +24,11 @@ import javafx.scene.text.TextFlow import org.kordamp.ikonli.javafx.FontIcon class ServerTypeCardController : AbstractCard() { - @FXML lateinit var iconFX: FontIcon + @FXML private lateinit var iconFX: FontIcon - @FXML lateinit var headerFX: TextFlow + @FXML private lateinit var headerFX: TextFlow - @FXML lateinit var textFX: TextFlow + @FXML private lateinit var textFX: TextFlow override fun updateItem(item: ServerTypes?, empty: Boolean) { super.updateItem(item, empty) @@ -40,7 +40,7 @@ class ServerTypeCardController : AbstractCard() { iconFX.iconCode = item.icon headerFX.text = Minosoft.LANGUAGE_MANAGER.translate(item) - textFX.text = "? servers" + textFX.text = "${item.count} servers" // ToDo: Update on the fly }