From fc88e54a2e88c87bcfd5e7dbd6866764faa3e503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Linnea=20Gr=C3=A4f?= Date: Tue, 12 Nov 2024 21:38:31 +0100 Subject: [PATCH] feat: Add descriptions for config options --- .../java/MCConfigEditorIntegration.kt | 51 +- .../moulconfig/java/ProcessedCategoryFirm.kt | 2 +- .../java/ProcessedEditableOptionFirm.kt | 2 +- src/compat/yacl/java/YaclIntegration.kt | 2 + .../devenv/EarlyInstantiateTranslations.java | 19 + .../devenv/WarnOnMissingTranslations.java | 38 ++ src/main/kotlin/Firmament.kt | 1 + .../features/debug/DeveloperFeatures.kt | 86 +-- src/main/kotlin/gui/config/ManagedConfig.kt | 1 + src/main/kotlin/gui/config/ManagedOption.kt | 83 +-- src/main/kotlin/util/MC.kt | 12 +- .../firmament/textures/socials/discord.png | Bin 0 -> 10386 bytes .../assets/firmament/textures/socials/git.png | Bin 0 -> 79519 bytes .../firmament/textures/socials/modrinth.png | Bin 0 -> 4521 bytes src/main/resources/fabric.mod.json | 3 +- translations/en_us.json | 499 +++++++++++------- 16 files changed, 511 insertions(+), 288 deletions(-) create mode 100644 src/main/java/moe/nea/firmament/mixins/devenv/EarlyInstantiateTranslations.java create mode 100644 src/main/java/moe/nea/firmament/mixins/devenv/WarnOnMissingTranslations.java create mode 100644 src/main/resources/assets/firmament/textures/socials/discord.png create mode 100644 src/main/resources/assets/firmament/textures/socials/git.png create mode 100644 src/main/resources/assets/firmament/textures/socials/modrinth.png diff --git a/src/compat/moulconfig/java/MCConfigEditorIntegration.kt b/src/compat/moulconfig/java/MCConfigEditorIntegration.kt index 7686beb..f1e7a98 100644 --- a/src/compat/moulconfig/java/MCConfigEditorIntegration.kt +++ b/src/compat/moulconfig/java/MCConfigEditorIntegration.kt @@ -2,7 +2,10 @@ package moe.nea.firmament.compat.moulconfig import com.google.auto.service.AutoService import io.github.notenoughupdates.moulconfig.Config +import io.github.notenoughupdates.moulconfig.DescriptionRendereringBehaviour +import io.github.notenoughupdates.moulconfig.Social import io.github.notenoughupdates.moulconfig.common.IMinecraft +import io.github.notenoughupdates.moulconfig.common.MyResourceLocation import io.github.notenoughupdates.moulconfig.gui.GuiComponent import io.github.notenoughupdates.moulconfig.gui.GuiElementWrapper import io.github.notenoughupdates.moulconfig.gui.GuiOptionEditor @@ -22,10 +25,14 @@ import io.github.notenoughupdates.moulconfig.observer.GetSetter import io.github.notenoughupdates.moulconfig.processor.ProcessedCategory import io.github.notenoughupdates.moulconfig.processor.ProcessedOption import java.lang.reflect.Type +import java.net.URI import kotlin.time.Duration import kotlin.time.Duration.Companion.seconds import kotlin.time.DurationUnit import net.minecraft.client.gui.screen.Screen +import net.minecraft.util.Identifier +import net.minecraft.util.Util +import moe.nea.firmament.Firmament import moe.nea.firmament.gui.config.BooleanHandler import moe.nea.firmament.gui.config.ClickHandler import moe.nea.firmament.gui.config.DurationHandler @@ -37,6 +44,7 @@ import moe.nea.firmament.gui.config.KeyBindingHandler import moe.nea.firmament.gui.config.ManagedConfig import moe.nea.firmament.gui.config.ManagedOption import moe.nea.firmament.gui.config.StringHandler +import moe.nea.firmament.gui.toMoulConfig import moe.nea.firmament.keybindings.SavedKeyBinding import moe.nea.firmament.util.ErrorUtil import moe.nea.firmament.util.FirmFormatters @@ -287,6 +295,47 @@ class MCConfigEditorIntegration : FirmamentConfigScreenProvider { override fun shouldAutoFocusSearchbar(): Boolean { return true } + + override fun getTitle(): String { + return "Firmament" + } + + @Deprecated("Deprecated in java") + override fun executeRunnable(runnableId: Int) { + if (runnableId >= 0) + ErrorUtil.softError("Executed runnable $runnableId") + } + + override fun getDescriptionBehaviour(option: ProcessedOption?): DescriptionRendereringBehaviour { + return DescriptionRendereringBehaviour.EXPAND_PANEL + } + + fun mkSocial(name: String, identifier: Identifier, link: String) = object : Social() { + override fun onClick() { + Util.getOperatingSystem().open(URI(link)) + } + + override fun getTooltip(): List { + return listOf(name) + } + + override fun getIcon(): MyResourceLocation { + return identifier.toMoulConfig() + } + } + + private val socials = listOf( + mkSocial("Discord", Firmament.identifier("textures/socials/discord.png"), + Firmament.modContainer.metadata.contact.get("discord").get()), + mkSocial("Source Code", Firmament.identifier("textures/socials/git.png"), + Firmament.modContainer.metadata.contact.get("sources").get()), + mkSocial("Modrinth", Firmament.identifier("textures/socials/modrinth.png"), + Firmament.modContainer.metadata.contact.get("modrinth").get()), + ) + + override fun getSocials(): List { + return socials + } } val categories = ManagedConfig.Category.entries.map { val options = mutableListOf() @@ -295,7 +344,7 @@ class MCConfigEditorIntegration : FirmamentConfigScreenProvider { val categoryAccordionId = nextAccordionId++ options.add(object : ProcessedOptionFirm(-1, configObject) { override fun getDebugDeclarationLocation(): String { - return "FirmamentConfig:$config.name" + return "FirmamentConfig:${config.name}" } override fun getName(): String { diff --git a/src/compat/moulconfig/java/ProcessedCategoryFirm.kt b/src/compat/moulconfig/java/ProcessedCategoryFirm.kt index 19e1112..5313441 100644 --- a/src/compat/moulconfig/java/ProcessedCategoryFirm.kt +++ b/src/compat/moulconfig/java/ProcessedCategoryFirm.kt @@ -26,7 +26,7 @@ class ProcessedCategoryFirm( } override fun getDescription(): String { - return "Missing description" // TODO: add description + return category.description.string } override fun getIdentifier(): String { diff --git a/src/compat/moulconfig/java/ProcessedEditableOptionFirm.kt b/src/compat/moulconfig/java/ProcessedEditableOptionFirm.kt index c42ad3f..2bc5cd4 100644 --- a/src/compat/moulconfig/java/ProcessedEditableOptionFirm.kt +++ b/src/compat/moulconfig/java/ProcessedEditableOptionFirm.kt @@ -18,7 +18,7 @@ abstract class ProcessedEditableOptionFirm( } override fun getDescription(): String { - return "Missing description" // TODO: add description + return managedOption.labelDescription.string } override fun explicitNotifyChange() { diff --git a/src/compat/yacl/java/YaclIntegration.kt b/src/compat/yacl/java/YaclIntegration.kt index 239d3a0..9aec501 100644 --- a/src/compat/yacl/java/YaclIntegration.kt +++ b/src/compat/yacl/java/YaclIntegration.kt @@ -6,6 +6,7 @@ import dev.isxander.yacl3.api.ButtonOption import dev.isxander.yacl3.api.ConfigCategory import dev.isxander.yacl3.api.LabelOption import dev.isxander.yacl3.api.Option +import dev.isxander.yacl3.api.OptionDescription import dev.isxander.yacl3.api.OptionGroup import dev.isxander.yacl3.api.YetAnotherConfigLib import dev.isxander.yacl3.api.controller.ControllerBuilder @@ -69,6 +70,7 @@ class YaclIntegration : FirmamentConfigScreenProvider { fun createDefaultBinding(function: (Option) -> ControllerBuilder): Option.Builder { return Option.createBuilder() .name(managedOption.labelText) + .description(OptionDescription.of(managedOption.labelDescription)) .binding(binding as Binding) .controller { function(it) } } diff --git a/src/main/java/moe/nea/firmament/mixins/devenv/EarlyInstantiateTranslations.java b/src/main/java/moe/nea/firmament/mixins/devenv/EarlyInstantiateTranslations.java new file mode 100644 index 0000000..ef8c9eb --- /dev/null +++ b/src/main/java/moe/nea/firmament/mixins/devenv/EarlyInstantiateTranslations.java @@ -0,0 +1,19 @@ +package moe.nea.firmament.mixins.devenv; + +import net.minecraft.text.TranslatableTextContent; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(TranslatableTextContent.class) +public abstract class EarlyInstantiateTranslations { + @Shadow + protected abstract void updateTranslations(); + + @Inject(method = "", at = @At("TAIL")) + private void onInit(String key, String fallback, Object[] args, CallbackInfo ci) { + updateTranslations(); + } +} diff --git a/src/main/java/moe/nea/firmament/mixins/devenv/WarnOnMissingTranslations.java b/src/main/java/moe/nea/firmament/mixins/devenv/WarnOnMissingTranslations.java new file mode 100644 index 0000000..33840c1 --- /dev/null +++ b/src/main/java/moe/nea/firmament/mixins/devenv/WarnOnMissingTranslations.java @@ -0,0 +1,38 @@ +package moe.nea.firmament.mixins.devenv; + +import moe.nea.firmament.features.debug.DeveloperFeatures; +import moe.nea.firmament.util.MC; +import net.minecraft.client.resource.language.TranslationStorage; +import net.minecraft.text.Text; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import java.util.Set; +import java.util.TreeSet; + +@Mixin(TranslationStorage.class) +public abstract class WarnOnMissingTranslations { + @Shadow + public abstract boolean hasTranslation(String key); + + @Unique + private final Set missingTranslations = new TreeSet<>(); + + @Inject(method = "get", at = @At("HEAD")) + private void onGetTranslationKey(String key, String fallback, CallbackInfoReturnable cir) { + warnForMissingTranslation(key); + } + + @Unique + private void warnForMissingTranslation(String key) { + if (!key.contains("firmament")) return; + if (hasTranslation(key)) return; + if (!missingTranslations.add(key)) return; + MC.INSTANCE.sendChat(Text.literal("Missing firmament translation: " + key)); + DeveloperFeatures.hookMissingTranslations(missingTranslations); + } +} diff --git a/src/main/kotlin/Firmament.kt b/src/main/kotlin/Firmament.kt index e0541f1..9f15bff 100644 --- a/src/main/kotlin/Firmament.kt +++ b/src/main/kotlin/Firmament.kt @@ -49,6 +49,7 @@ import moe.nea.firmament.util.SBData import moe.nea.firmament.util.data.IDataHolder object Firmament { + val modContainer by lazy { FabricLoader.getInstance().getModContainer(MOD_ID).get() } const val MOD_ID = "firmament" val DEBUG = System.getProperty("firmament.debug") == "true" diff --git a/src/main/kotlin/features/debug/DeveloperFeatures.kt b/src/main/kotlin/features/debug/DeveloperFeatures.kt index d4b118b..8f0c25c 100644 --- a/src/main/kotlin/features/debug/DeveloperFeatures.kt +++ b/src/main/kotlin/features/debug/DeveloperFeatures.kt @@ -1,12 +1,16 @@ package moe.nea.firmament.features.debug +import java.io.File import java.nio.file.Path import java.util.concurrent.CompletableFuture +import kotlinx.serialization.json.encodeToStream import kotlin.io.path.absolute import kotlin.io.path.exists import net.minecraft.client.MinecraftClient import net.minecraft.text.Text import moe.nea.firmament.Firmament +import moe.nea.firmament.annotations.Subscribe +import moe.nea.firmament.events.TickEvent import moe.nea.firmament.features.FirmamentFeature import moe.nea.firmament.gui.config.ManagedConfig import moe.nea.firmament.util.MC @@ -14,41 +18,57 @@ import moe.nea.firmament.util.TimeMark import moe.nea.firmament.util.iterate object DeveloperFeatures : FirmamentFeature { - override val identifier: String - get() = "developer" - override val config: TConfig - get() = TConfig - override val defaultEnabled: Boolean - get() = Firmament.DEBUG + override val identifier: String + get() = "developer" + override val config: TConfig + get() = TConfig + override val defaultEnabled: Boolean + get() = Firmament.DEBUG - val gradleDir = - Path.of(".").absolute() - .iterate { it.parent } - .find { it.resolve("settings.gradle.kts").exists() } + val gradleDir = + Path.of(".").absolute() + .iterate { it.parent } + .find { it.resolve("settings.gradle.kts").exists() } - object TConfig : ManagedConfig("developer", Category.DEV) { - val autoRebuildResources by toggle("auto-rebuild") { false } - } + object TConfig : ManagedConfig("developer", Category.DEV) { + val autoRebuildResources by toggle("auto-rebuild") { false } + } - @JvmStatic - fun hookOnBeforeResourceReload(client: MinecraftClient): CompletableFuture { - val reloadFuture = if (TConfig.autoRebuildResources && isEnabled && gradleDir != null) { - val builder = ProcessBuilder("./gradlew", ":processResources") - builder.directory(gradleDir.toFile()) - builder.inheritIO() - val process = builder.start() - MC.sendChat(Text.translatable("firmament.dev.resourcerebuild.start")) - val startTime = TimeMark.now() - process.toHandle().onExit().thenApply { - MC.sendChat(Text.stringifiedTranslatable( - "firmament.dev.resourcerebuild.done", - startTime.passedTime())) - Unit - } - } else { - CompletableFuture.completedFuture(Unit) - } - return reloadFuture.thenCompose { client.reloadResources() } - } + var missingTranslations: Set? = null + + @JvmStatic + fun hookMissingTranslations(missingTranslations: Set) { + this.missingTranslations = missingTranslations + } + + @Subscribe + fun dumpMissingTranslations(tickEvent: TickEvent) { + val toDump = missingTranslations ?: return + missingTranslations = null + File("missing_translations.json").outputStream().use { + Firmament.json.encodeToStream(toDump.associateWith { "Mis" + "sing translation" }, it) + } + } + + @JvmStatic + fun hookOnBeforeResourceReload(client: MinecraftClient): CompletableFuture { + val reloadFuture = if (TConfig.autoRebuildResources && isEnabled && gradleDir != null) { + val builder = ProcessBuilder("./gradlew", ":processResources") + builder.directory(gradleDir.toFile()) + builder.inheritIO() + val process = builder.start() + MC.sendChat(Text.translatable("firmament.dev.resourcerebuild.start")) + val startTime = TimeMark.now() + process.toHandle().onExit().thenApply { + MC.sendChat(Text.stringifiedTranslatable( + "firmament.dev.resourcerebuild.done", + startTime.passedTime())) + Unit + } + } else { + CompletableFuture.completedFuture(Unit) + } + return reloadFuture.thenCompose { client.reloadResources() } + } } diff --git a/src/main/kotlin/gui/config/ManagedConfig.kt b/src/main/kotlin/gui/config/ManagedConfig.kt index c8b6ce8..8222a46 100644 --- a/src/main/kotlin/gui/config/ManagedConfig.kt +++ b/src/main/kotlin/gui/config/ManagedConfig.kt @@ -44,6 +44,7 @@ abstract class ManagedConfig( ; val labelText: Text = Text.translatable("firmament.config.category.${name.lowercase()}") + val description: Text = Text.translatable("firmament.config.category.${name.lowercase()}.description") val configs: MutableList = mutableListOf() } diff --git a/src/main/kotlin/gui/config/ManagedOption.kt b/src/main/kotlin/gui/config/ManagedOption.kt index 4a8d773..d1aba83 100644 --- a/src/main/kotlin/gui/config/ManagedOption.kt +++ b/src/main/kotlin/gui/config/ManagedOption.kt @@ -1,5 +1,3 @@ - - package moe.nea.firmament.gui.config import io.github.notenoughupdates.moulconfig.observer.GetSetter @@ -9,54 +7,57 @@ import kotlin.properties.ReadWriteProperty import kotlin.reflect.KProperty import net.minecraft.text.Text import moe.nea.firmament.Firmament +import moe.nea.firmament.util.ErrorUtil class ManagedOption( - val element: ManagedConfig, - val propertyName: String, - val default: () -> T, - val handler: ManagedConfig.OptionHandler + val element: ManagedConfig, + val propertyName: String, + val default: () -> T, + val handler: ManagedConfig.OptionHandler ) : ReadWriteProperty, GetSetter { - override fun set(newValue: T) { - this.value = newValue - } + override fun set(newValue: T) { + this.value = newValue + } - override fun get(): T { - return this.value - } + override fun get(): T { + return this.value + } - val rawLabelText = "firmament.config.${element.name}.${propertyName}" - val labelText = Text.translatable(rawLabelText) + val rawLabelText = "firmament.config.${element.name}.${propertyName}" + val labelText: Text = Text.translatable(rawLabelText) + val descriptionTranslationKey = "firmament.config.${element.name}.${propertyName}.description" + val labelDescription: Text = Text.translatable(descriptionTranslationKey) - lateinit var value: T + lateinit var value: T - override fun setValue(thisRef: Any?, property: KProperty<*>, value: T) { - this.value = value - } + override fun setValue(thisRef: Any?, property: KProperty<*>, value: T) { + this.value = value + } - override fun getValue(thisRef: Any?, property: KProperty<*>): T { - return value - } + override fun getValue(thisRef: Any?, property: KProperty<*>): T { + return value + } - fun load(root: JsonElement) { - if (root is JsonObject && root.containsKey(propertyName)) { - try { - value = handler.fromJson(root[propertyName]!!) - return - } catch (e: Exception) { - Firmament.logger.error( - "Exception during loading of config file ${element.name}. This will reset this config.", - e - ) - } - } - value = default() - } + fun load(root: JsonElement) { + if (root is JsonObject && root.containsKey(propertyName)) { + try { + value = handler.fromJson(root[propertyName]!!) + return + } catch (e: Exception) { + ErrorUtil.softError( + "Exception during loading of config file ${element.name}. This will reset this config.", + e + ) + } + } + value = default() + } - fun toJson(): JsonElement? { - return handler.toJson(value) - } + fun toJson(): JsonElement? { + return handler.toJson(value) + } - fun appendToGui(guiapp: GuiAppender) { - handler.emitGuiElements(this, guiapp) - } + fun appendToGui(guiapp: GuiAppender) { + handler.emitGuiElements(this, guiapp) + } } diff --git a/src/main/kotlin/util/MC.kt b/src/main/kotlin/util/MC.kt index 1b7739f..cbcd8ae 100644 --- a/src/main/kotlin/util/MC.kt +++ b/src/main/kotlin/util/MC.kt @@ -3,6 +3,7 @@ package moe.nea.firmament.util import io.github.moulberry.repo.data.Coordinate import java.util.concurrent.ConcurrentLinkedQueue import net.minecraft.client.MinecraftClient +import net.minecraft.client.gui.hud.InGameHud import net.minecraft.client.gui.screen.Screen import net.minecraft.client.gui.screen.ingame.HandledScreen import net.minecraft.client.network.ClientPlayerEntity @@ -28,9 +29,10 @@ object MC { init { TickEvent.subscribe("MC:push") { - while (true) { - inGameHud.chatHud.addMessage(messageQueue.poll() ?: break) - } + if (inGameHud.chatHud != null && world != null) + while (true) { + inGameHud.chatHud.addMessage(messageQueue.poll() ?: break) + } while (true) { (nextTickTodos.poll() ?: break).invoke() } @@ -41,7 +43,7 @@ object MC { } fun sendChat(text: Text) { - if (instance.isOnThread) + if (instance.isOnThread && inGameHud.chatHud != null && world != null) inGameHud.chatHud.addMessage(text) else messageQueue.add(text) @@ -86,7 +88,7 @@ object MC { inline val interactionManager get() = instance.interactionManager inline val textureManager get() = instance.textureManager inline val options get() = instance.options - inline val inGameHud get() = instance.inGameHud + inline val inGameHud: InGameHud get() = instance.inGameHud inline val font get() = instance.textRenderer inline val soundManager get() = instance.soundManager inline val player: ClientPlayerEntity? get() = instance.player diff --git a/src/main/resources/assets/firmament/textures/socials/discord.png b/src/main/resources/assets/firmament/textures/socials/discord.png new file mode 100644 index 0000000000000000000000000000000000000000..e9dc50d7feed9b4e50265cdf12a52a8e3f0b2b59 GIT binary patch literal 10386 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 pJEDEVN3uV1;JzL55R7~;d?82dqB~}Sz(q literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/firmament/textures/socials/git.png b/src/main/resources/assets/firmament/textures/socials/git.png new file mode 100644 index 0000000000000000000000000000000000000000..d7ab359ea7c7cea8049c117f0bcc47a5664959cf GIT binary patch literal 79519 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Ν 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/firmament/textures/socials/modrinth.png b/src/main/resources/assets/firmament/textures/socials/modrinth.png new file mode 100644 index 0000000000000000000000000000000000000000..bfc94035dd89b9e0da7fd317268405a425e13091 GIT binary patch literal 4521 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