diff --git a/src/main/java/de/bixilon/minosoft/data/text/TextComponent.kt b/src/main/java/de/bixilon/minosoft/data/text/TextComponent.kt index d948d63ef..35f001350 100644 --- a/src/main/java/de/bixilon/minosoft/data/text/TextComponent.kt +++ b/src/main/java/de/bixilon/minosoft/data/text/TextComponent.kt @@ -59,12 +59,14 @@ open class TextComponent( formatting.add(PreChatFormattingCodes.ITALIC); return this } - fun clickEvent(clickEvent: ClickEvent?) { + fun clickEvent(clickEvent: ClickEvent?): TextComponent { this.clickEvent = clickEvent + return this } - fun hoverEvent(hoverEvent: HoverEvent?) { + fun hoverEvent(hoverEvent: HoverEvent?): TextComponent { this.hoverEvent = hoverEvent + return this } fun color(color: RGBColor): TextComponent { @@ -154,15 +156,19 @@ open class TextComponent( obfuscatedTimeline.play() text.styleClass.add("obfuscated") } + PreChatFormattingCodes.BOLD -> { text.style += "-fx-font-weight: bold;" } + PreChatFormattingCodes.STRIKETHROUGH -> { text.style += "-fx-strikethrough: true;" } + PreChatFormattingCodes.UNDERLINED -> { text.style += "-fx-underline: true;" } + PreChatFormattingCodes.ITALIC -> { text.style += "-fx-font-weight: italic;" } diff --git a/src/main/java/de/bixilon/minosoft/gui/eros/main/mods/ModsController.kt b/src/main/java/de/bixilon/minosoft/gui/eros/main/mods/ModsController.kt index 06fba06c8..e6b5a6ce5 100644 --- a/src/main/java/de/bixilon/minosoft/gui/eros/main/mods/ModsController.kt +++ b/src/main/java/de/bixilon/minosoft/gui/eros/main/mods/ModsController.kt @@ -61,7 +61,7 @@ class ModsController : EmbeddedJavaFXController() { TranslatableComponents.GENERAL_EMPTY to { " " }, minosoft("mod.source") to { it.source }, - minosoft("mod.phase") to { it.phase.name.lowercase() }, + minosoft("mod.phase") to { it.phase }, TranslatableComponents.GENERAL_EMPTY to { " " }, diff --git a/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/ArchiveSource.kt b/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/ArchiveSource.kt index 8f4e506f4..d3d3106d2 100644 --- a/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/ArchiveSource.kt +++ b/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/ArchiveSource.kt @@ -15,6 +15,10 @@ package de.bixilon.minosoft.modding.loader.mod.source import de.bixilon.minosoft.assets.file.ZipAssetsManager import de.bixilon.minosoft.assets.util.FileUtil.readJson +import de.bixilon.minosoft.data.text.BaseComponent +import de.bixilon.minosoft.data.text.TextComponent +import de.bixilon.minosoft.data.text.events.click.OpenFileClickEvent +import de.bixilon.minosoft.data.text.formatting.TextFormattable import de.bixilon.minosoft.modding.loader.LoaderUtil import de.bixilon.minosoft.modding.loader.LoaderUtil.load import de.bixilon.minosoft.modding.loader.mod.MinosoftMod @@ -25,7 +29,7 @@ import java.util.jar.JarInputStream class ArchiveSource( val jar: File, -) : ModSource { +) : ModSource, TextFormattable { override fun process(mod: MinosoftMod) { val stream = JarInputStream(FileInputStream(jar)) @@ -52,4 +56,8 @@ class ArchiveSource( override fun toString(): String { return "jar:$jar" } + + override fun toText(): Any { + return BaseComponent("jar:", TextComponent(jar.path).clickEvent(OpenFileClickEvent(jar))) + } } diff --git a/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/DirectorySource.kt b/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/DirectorySource.kt index a042fdb74..d3cfe6a47 100644 --- a/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/DirectorySource.kt +++ b/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/DirectorySource.kt @@ -16,6 +16,10 @@ package de.bixilon.minosoft.modding.loader.mod.source import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.minosoft.assets.directory.DirectoryAssetsManager import de.bixilon.minosoft.assets.util.FileUtil.readJson +import de.bixilon.minosoft.data.text.BaseComponent +import de.bixilon.minosoft.data.text.TextComponent +import de.bixilon.minosoft.data.text.events.click.OpenFileClickEvent +import de.bixilon.minosoft.data.text.formatting.TextFormattable import de.bixilon.minosoft.modding.loader.LoaderUtil import de.bixilon.minosoft.modding.loader.LoaderUtil.load import de.bixilon.minosoft.modding.loader.mod.MinosoftMod @@ -24,7 +28,7 @@ import java.io.FileInputStream class DirectorySource( val directory: File, -) : ModSource { +) : ModSource, TextFormattable { override fun process(mod: MinosoftMod) { val files = directory.listFiles()!! @@ -49,6 +53,10 @@ class DirectorySource( return "directory:$directory" } + override fun toText(): Any { + return BaseComponent("directory:", TextComponent(directory.path).clickEvent(OpenFileClickEvent(directory))) + } + companion object { fun scanClasses(mod: MinosoftMod, baseDirectory: File, currentDirectory: File) { diff --git a/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/SplitDirectorySource.kt b/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/SplitDirectorySource.kt index 976f3b7aa..faef2432b 100644 --- a/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/SplitDirectorySource.kt +++ b/src/main/java/de/bixilon/minosoft/modding/loader/mod/source/SplitDirectorySource.kt @@ -16,6 +16,10 @@ package de.bixilon.minosoft.modding.loader.mod.source import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.minosoft.assets.directory.DirectoryAssetsManager import de.bixilon.minosoft.assets.util.FileUtil.readJson +import de.bixilon.minosoft.data.text.BaseComponent +import de.bixilon.minosoft.data.text.TextComponent +import de.bixilon.minosoft.data.text.events.click.OpenFileClickEvent +import de.bixilon.minosoft.data.text.formatting.TextFormattable import de.bixilon.minosoft.modding.loader.LoaderUtil import de.bixilon.minosoft.modding.loader.mod.MinosoftMod import java.io.File @@ -24,7 +28,7 @@ import java.io.FileInputStream class SplitDirectorySource( val classes: File, val resources: File, -) : ModSource { +) : ModSource, TextFormattable { override fun process(mod: MinosoftMod) { processResources(mod) @@ -36,7 +40,11 @@ class SplitDirectorySource( } override fun toString(): String { - return "directory:$classes|$resources" + return "directory:$classes | $resources" + } + + override fun toText(): Any { + return BaseComponent("directory:", TextComponent(classes.path).clickEvent(OpenFileClickEvent(classes)), " | ", TextComponent(resources.path).clickEvent(OpenFileClickEvent(resources))) } private fun processResources(mod: MinosoftMod) {