Skip to content

Commit 2d02ccf

Browse files
committed
feature: allow the use of tag resolvers
resolves #118
1 parent d43bc19 commit 2d02ccf

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

src/main/kotlin/dev/fruxz/stacked/Stacked.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import net.kyori.adventure.text.event.HoverEventSource
1313
import net.kyori.adventure.text.format.Style
1414
import net.kyori.adventure.text.format.StyleSetter
1515
import net.kyori.adventure.text.format.TextColor
16+
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
1617

1718
/**
1819
* This function creates a [TextComponent] with the given base and modifier.
@@ -162,8 +163,9 @@ fun Builder.click(process: () -> ClickEvent?) = this.clickEvent(process())
162163
inline fun text(
163164
@StyledString content: String,
164165
serializer: OpenMiniMessageSerializer = miniMessageSerializer,
166+
tagResolver: TagResolver = TagResolver.standard(),
165167
builder: StackedBuilder.() -> Unit = { },
166-
) = content.asStyledComponent(serializer = serializer, builder = builder)
168+
) = content.asStyledComponent(serializer = serializer, tagResolver = tagResolver, builder = builder)
167169

168170
/**
169171
* This function uses the [component] to apply it to an new [TextComponent.Builder]

src/main/kotlin/dev/fruxz/stacked/extension/Adventure.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import net.kyori.adventure.text.ComponentLike
66
import net.kyori.adventure.text.TextComponent
77
import net.kyori.adventure.text.format.NamedTextColor
88
import net.kyori.adventure.text.minimessage.MiniMessage
9+
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
910
import net.kyori.adventure.text.serializer.ComponentSerializer
1011
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer
1112
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer
@@ -161,8 +162,9 @@ val String.asStyledComponent: TextComponent
161162
*/
162163
inline fun String.asStyledComponent(
163164
serializer: OpenMiniMessageSerializer = miniMessageSerializer,
165+
tagResolver: TagResolver = TagResolver.standard(),
164166
builder: StackedBuilder.() -> Unit = { },
165-
) = StackedBuilder(Component.text().append(serializer.deserializeOr(this, Component.empty())!!))
167+
) = StackedBuilder(Component.text().append(serializer.deserialize(this, tagResolver)))
166168
.apply(builder)
167169
.build()
168170

@@ -188,7 +190,8 @@ val String.asStyledComponents: List<TextComponent>
188190
*/
189191
fun String.asStyledComponents(
190192
serializer: OpenMiniMessageSerializer = miniMessageSerializer,
191-
): List<TextComponent> = this.lines().asStyledComponents(serializer)
193+
tagResolver: TagResolver = TagResolver.standard(),
194+
): List<TextComponent> = this.lines().asStyledComponents(serializer = serializer, tagResolver = tagResolver)
192195

193196
/**
194197
* This computational value converts this [Iterable] into a [TextComponent]
@@ -213,4 +216,5 @@ val Iterable<String>.asStyledComponents: List<TextComponent>
213216
*/
214217
fun Iterable<String>.asStyledComponents(
215218
serializer: OpenMiniMessageSerializer = miniMessageSerializer,
216-
): List<TextComponent> = map { it.asStyledComponent(serializer) }
219+
tagResolver: TagResolver = TagResolver.standard(),
220+
): List<TextComponent> = map { it.asStyledComponent(serializer = serializer, tagResolver = tagResolver) }
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package dev.fruxz.stacked.extension
22

3-
import net.kyori.adventure.text.Component
4-
import net.kyori.adventure.text.serializer.ComponentSerializer
3+
import net.kyori.adventure.text.minimessage.MiniMessage
54

6-
typealias OpenMiniMessageSerializer = ComponentSerializer<Component, Component, String>
5+
typealias OpenMiniMessageSerializer = MiniMessage

0 commit comments

Comments
 (0)