From 1588f135e646ea2d7f888834ab768bb53809d461 Mon Sep 17 00:00:00 2001 From: Bixilon Date: Wed, 28 Jul 2021 23:19:24 +0200 Subject: [PATCH] eros: show message if no account selected --- .../gui/eros/main/MainErosController.kt | 10 ++++++-- .../gui/eros/main/play/ServerTypes.kt | 4 ++-- .../gui/eros/util/JavaFXAccountUtil.kt | 23 +++++++++++++++++++ .../minosoft/gui/eros/util/JavaFXUtil.kt | 7 ++++++ .../assets/minosoft/language/en_us.lang | 3 +++ 5 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXAccountUtil.kt diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/main/MainErosController.kt b/src/main/java/de/bixilon/minosoft/gui/eros/main/MainErosController.kt index 5c52418f0..d27c99702 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/main/MainErosController.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/main/MainErosController.kt @@ -20,7 +20,9 @@ import de.bixilon.minosoft.data.accounts.Account import de.bixilon.minosoft.gui.eros.controller.JavaFXWindowController import de.bixilon.minosoft.gui.eros.main.play.PlayMainController import de.bixilon.minosoft.gui.eros.modding.invoker.JavaFXEventInvoker +import de.bixilon.minosoft.gui.eros.util.JavaFXAccountUtil.avatar import de.bixilon.minosoft.gui.eros.util.JavaFXUtil +import de.bixilon.minosoft.gui.eros.util.JavaFXUtil.ctext import de.bixilon.minosoft.modding.event.events.account.AccountSelectEvent import de.bixilon.minosoft.modding.event.master.GlobalEventMaster import de.bixilon.minosoft.util.GitInfo @@ -87,8 +89,8 @@ class MainErosController : JavaFXWindowController() { GlobalEventMaster.registerEvent(JavaFXEventInvoker.of { - accountImageFX.image = JavaFXUtil.MINOSOFT_LOGO // ToDo - accountNameFX.text = it.account?.username + accountImageFX.image = it.account?.avatar + accountNameFX.ctext = it.account?.username ?: NO_ACCOUNT_SELECTED }) } @@ -117,4 +119,8 @@ class MainErosController : JavaFXWindowController() { onSuccess(account) } } + + companion object { + private val NO_ACCOUNT_SELECTED = "minosoft:main.account.no_account_selected".asResourceLocation() + } } 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 d650f5c78..3bb31516c 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 @@ -25,7 +25,7 @@ import org.kordamp.ikonli.fontawesome5.FontAwesomeSolid enum class ServerTypes( val icon: Ikon, - private val countGetter: () -> Int, + private val countSupplier: () -> Int, ) : Translatable { CUSTOM(FontAwesomeSolid.SERVER, { Minosoft.config.config.server.entries.size }), LAN(FontAwesomeSolid.NETWORK_WIRED, { LANServerListener.SERVERS.size }), @@ -34,7 +34,7 @@ enum class ServerTypes( override val translationKey: ResourceLocation = "minosoft:server_type.${name.lowercase()}".asResourceLocation() val count: Int - get() = countGetter() + get() = countSupplier() companion object : ValuesEnum { override val VALUES: Array = values() diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXAccountUtil.kt b/src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXAccountUtil.kt new file mode 100644 index 000000000..be0ec4167 --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXAccountUtil.kt @@ -0,0 +1,23 @@ +/* + * Minosoft + * Copyright (C) 2021 Moritz Zwerger + * + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program. If not, see . + * + * This software is not affiliated with Mojang AB, the original developer of Minecraft. + */ + +package de.bixilon.minosoft.gui.eros.util + +import de.bixilon.minosoft.data.accounts.Account +import javafx.scene.image.Image + +object JavaFXAccountUtil { + + val Account.avatar: Image? + get() = null // ToDo +} diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXUtil.kt b/src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXUtil.kt index 45f3f31bf..cde78b6e7 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXUtil.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/util/JavaFXUtil.kt @@ -27,6 +27,7 @@ import javafx.scene.control.Labeled import javafx.scene.control.TextField import javafx.scene.image.Image import javafx.scene.layout.Pane +import javafx.scene.text.Text import javafx.scene.text.TextFlow import javafx.stage.Modality import javafx.stage.Stage @@ -85,4 +86,10 @@ object JavaFXUtil { set(value) { this.text = Minosoft.LANGUAGE_MANAGER.translate(value).message } + + var Text.ctext: Any? + get() = this.text + set(value) { + this.text = Minosoft.LANGUAGE_MANAGER.translate(value).message + } } diff --git a/src/main/resources/assets/minosoft/language/en_us.lang b/src/main/resources/assets/minosoft/language/en_us.lang index 2b28ddd99..634634ddb 100644 --- a/src/main/resources/assets/minosoft/language/en_us.lang +++ b/src/main/resources/assets/minosoft/language/en_us.lang @@ -54,3 +54,6 @@ minosoft:update_server.edit.update_button=Save server minosoft:server_list.refresh.header=Refresh minosoft:server_list.refresh.text1=Get the latest minosoft:server_list.refresh.text2=information + + +minosoft:main.account.no_account_selected=No account selected