mod sources: TextFormattable

This commit is contained in:
Bixilon 2022-11-01 14:08:04 +01:00
parent d9f0404ef6
commit 56f13fbd59
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
5 changed files with 37 additions and 7 deletions

View File

@ -59,12 +59,14 @@ open class TextComponent(
formatting.add(PreChatFormattingCodes.ITALIC); return this formatting.add(PreChatFormattingCodes.ITALIC); return this
} }
fun clickEvent(clickEvent: ClickEvent?) { fun clickEvent(clickEvent: ClickEvent?): TextComponent {
this.clickEvent = clickEvent this.clickEvent = clickEvent
return this
} }
fun hoverEvent(hoverEvent: HoverEvent?) { fun hoverEvent(hoverEvent: HoverEvent?): TextComponent {
this.hoverEvent = hoverEvent this.hoverEvent = hoverEvent
return this
} }
fun color(color: RGBColor): TextComponent { fun color(color: RGBColor): TextComponent {
@ -154,15 +156,19 @@ open class TextComponent(
obfuscatedTimeline.play() obfuscatedTimeline.play()
text.styleClass.add("obfuscated") text.styleClass.add("obfuscated")
} }
PreChatFormattingCodes.BOLD -> { PreChatFormattingCodes.BOLD -> {
text.style += "-fx-font-weight: bold;" text.style += "-fx-font-weight: bold;"
} }
PreChatFormattingCodes.STRIKETHROUGH -> { PreChatFormattingCodes.STRIKETHROUGH -> {
text.style += "-fx-strikethrough: true;" text.style += "-fx-strikethrough: true;"
} }
PreChatFormattingCodes.UNDERLINED -> { PreChatFormattingCodes.UNDERLINED -> {
text.style += "-fx-underline: true;" text.style += "-fx-underline: true;"
} }
PreChatFormattingCodes.ITALIC -> { PreChatFormattingCodes.ITALIC -> {
text.style += "-fx-font-weight: italic;" text.style += "-fx-font-weight: italic;"
} }

View File

@ -61,7 +61,7 @@ class ModsController : EmbeddedJavaFXController<Pane>() {
TranslatableComponents.GENERAL_EMPTY to { " " }, TranslatableComponents.GENERAL_EMPTY to { " " },
minosoft("mod.source") to { it.source }, minosoft("mod.source") to { it.source },
minosoft("mod.phase") to { it.phase.name.lowercase() }, minosoft("mod.phase") to { it.phase },
TranslatableComponents.GENERAL_EMPTY to { " " }, TranslatableComponents.GENERAL_EMPTY to { " " },

View File

@ -15,6 +15,10 @@ package de.bixilon.minosoft.modding.loader.mod.source
import de.bixilon.minosoft.assets.file.ZipAssetsManager import de.bixilon.minosoft.assets.file.ZipAssetsManager
import de.bixilon.minosoft.assets.util.FileUtil.readJson 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
import de.bixilon.minosoft.modding.loader.LoaderUtil.load import de.bixilon.minosoft.modding.loader.LoaderUtil.load
import de.bixilon.minosoft.modding.loader.mod.MinosoftMod import de.bixilon.minosoft.modding.loader.mod.MinosoftMod
@ -25,7 +29,7 @@ import java.util.jar.JarInputStream
class ArchiveSource( class ArchiveSource(
val jar: File, val jar: File,
) : ModSource { ) : ModSource, TextFormattable {
override fun process(mod: MinosoftMod) { override fun process(mod: MinosoftMod) {
val stream = JarInputStream(FileInputStream(jar)) val stream = JarInputStream(FileInputStream(jar))
@ -52,4 +56,8 @@ class ArchiveSource(
override fun toString(): String { override fun toString(): String {
return "jar:$jar" return "jar:$jar"
} }
override fun toText(): Any {
return BaseComponent("jar:", TextComponent(jar.path).clickEvent(OpenFileClickEvent(jar)))
}
} }

View File

@ -16,6 +16,10 @@ package de.bixilon.minosoft.modding.loader.mod.source
import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.kutil.latch.CountUpAndDownLatch
import de.bixilon.minosoft.assets.directory.DirectoryAssetsManager import de.bixilon.minosoft.assets.directory.DirectoryAssetsManager
import de.bixilon.minosoft.assets.util.FileUtil.readJson 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
import de.bixilon.minosoft.modding.loader.LoaderUtil.load import de.bixilon.minosoft.modding.loader.LoaderUtil.load
import de.bixilon.minosoft.modding.loader.mod.MinosoftMod import de.bixilon.minosoft.modding.loader.mod.MinosoftMod
@ -24,7 +28,7 @@ import java.io.FileInputStream
class DirectorySource( class DirectorySource(
val directory: File, val directory: File,
) : ModSource { ) : ModSource, TextFormattable {
override fun process(mod: MinosoftMod) { override fun process(mod: MinosoftMod) {
val files = directory.listFiles()!! val files = directory.listFiles()!!
@ -49,6 +53,10 @@ class DirectorySource(
return "directory:$directory" return "directory:$directory"
} }
override fun toText(): Any {
return BaseComponent("directory:", TextComponent(directory.path).clickEvent(OpenFileClickEvent(directory)))
}
companion object { companion object {
fun scanClasses(mod: MinosoftMod, baseDirectory: File, currentDirectory: File) { fun scanClasses(mod: MinosoftMod, baseDirectory: File, currentDirectory: File) {

View File

@ -16,6 +16,10 @@ package de.bixilon.minosoft.modding.loader.mod.source
import de.bixilon.kutil.latch.CountUpAndDownLatch import de.bixilon.kutil.latch.CountUpAndDownLatch
import de.bixilon.minosoft.assets.directory.DirectoryAssetsManager import de.bixilon.minosoft.assets.directory.DirectoryAssetsManager
import de.bixilon.minosoft.assets.util.FileUtil.readJson 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
import de.bixilon.minosoft.modding.loader.mod.MinosoftMod import de.bixilon.minosoft.modding.loader.mod.MinosoftMod
import java.io.File import java.io.File
@ -24,7 +28,7 @@ import java.io.FileInputStream
class SplitDirectorySource( class SplitDirectorySource(
val classes: File, val classes: File,
val resources: File, val resources: File,
) : ModSource { ) : ModSource, TextFormattable {
override fun process(mod: MinosoftMod) { override fun process(mod: MinosoftMod) {
processResources(mod) processResources(mod)
@ -36,7 +40,11 @@ class SplitDirectorySource(
} }
override fun toString(): String { 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) { private fun processResources(mod: MinosoftMod) {