@@ -4,11 +4,11 @@ import com.mojang.authlib.GameProfile
44import com.uchuhimo.konf.Config
55import com.uchuhimo.konf.ConfigSpec
66import dev.kord.core.entity.Message
7+ import eu.pb4.placeholders.api.ParserContext
78import eu.pb4.placeholders.api.PlaceholderContext
8- import eu.pb4.placeholders.api.Placeholders
9- import eu.pb4.placeholders.api.TextParserUtils
109import io.github.quiltservertools.blockbotapi.sender.MessageSender
1110import io.github.quiltservertools.blockbotapi.sender.PlayerMessageSender
11+ import io.github.quiltservertools.blockbotdiscord.utility.formatText
1212import io.github.quiltservertools.blockbotdiscord.utility.getTextures
1313import io.github.quiltservertools.blockbotdiscord.utility.literal
1414import io.github.quiltservertools.blockbotdiscord.utility.summary
@@ -77,10 +77,12 @@ fun Config.formatWebhookAnnouncement(sender: MessageSender, message: String): St
7777 formatDiscordRelayMessage(sender, message, config[ChatRelaySpec .DiscordWebhookFormatSpec .announcementFormat])
7878
7979fun Config.formatWebhookAuthor (sender : MessageSender ): String =
80- formatDiscordRelayMessage(sender, " " , config[ChatRelaySpec .DiscordWebhookFormatSpec .authorFormat], mapOf (
81- " sender" to sender.name,
82- " sender_display" to sender.displayName
83- ))
80+ formatDiscordRelayMessage(
81+ sender, " " , config[ChatRelaySpec .DiscordWebhookFormatSpec .authorFormat], mapOf (
82+ " sender" to sender.name,
83+ " sender_display" to sender.displayName
84+ )
85+ )
8486
8587fun Config.formatPlayerJoinMessage (player : ServerPlayerEntity ): String =
8688 formatDiscordRelayMessage(player, config[ChatRelaySpec .DiscordMessageFormatSpec .playerJoin]).string
@@ -115,85 +117,57 @@ private fun formatDiscordRelayMessage(
115117 "message" to message.literal()
116118 )
117119): String {
118- var parsedText = Placeholders .parseText(
119- format.literal(),
120- Placeholders .ALT_PLACEHOLDER_PATTERN_CUSTOM ,
121- placeholders
122- )
123- if (sender is PlayerMessageSender ) parsedText = Placeholders .parseText(
124- parsedText,
125- PlaceholderContext .of(sender.player)
126- )
127- return parsedText.string
120+ var context = ParserContext .of()
121+ if (sender is PlayerMessageSender ) {
122+ context = PlaceholderContext .of(sender.player).asParserContext()
123+ }
124+ return format.formatText(context, placeholders).string
128125}
129126
130127fun formatDiscordRelayMessage (
131128 player : ServerPlayerEntity ,
132129 format : String ,
133130 placeholders : Map <String , Text > = mapOf()
134- ): Text =
135- Placeholders .parseText(
136- Placeholders .parseText(
137- format.literal(),
138- Placeholders .ALT_PLACEHOLDER_PATTERN_CUSTOM ,
139- placeholders
140- ),
141- PlaceholderContext .of(player)
142- )
131+ ): Text = format.formatText(player, placeholders)
143132
144133fun formatDiscordRelayMessage (
145134 server : MinecraftServer ,
146135 format : String ,
147136 placeholders : Map <String , Text > = mapOf()
148137): String =
149- Placeholders .parseText(
150- Placeholders .parseText(
151- format.literal(),
152- Placeholders .ALT_PLACEHOLDER_PATTERN_CUSTOM ,
153- placeholders
154- ),
155- PlaceholderContext .of(server)
156- ).string
138+ format.formatText(PlaceholderContext .of(server).asParserContext(), placeholders).string
157139
158140fun Config.getMinecraftChatRelayMsg (
159141 sender : MutableText ,
160142 topRole : MutableText ,
161143 message : Text ,
162144 server : MinecraftServer
163- ): Text = Placeholders .parseText(
164- Placeholders .parseText(
165- TextParserUtils .formatText(this [ChatRelaySpec .MinecraftFormatSpec .messageFormat]),
166- Placeholders .ALT_PLACEHOLDER_PATTERN_CUSTOM ,
167- mapOf (
168- " sender" to sender.copy().formatted(Formatting .RESET ),
169- " sender_colored" to sender,
170- " top_role" to topRole,
171- " message" to message
172- )
173- ), PlaceholderContext .of(server)
145+ ): Text = this [ChatRelaySpec .MinecraftFormatSpec .messageFormat].formatText(
146+ PlaceholderContext .of(server).asParserContext(),
147+ mapOf (
148+ " sender" to sender.copy().formatted(Formatting .RESET ),
149+ " sender_colored" to sender,
150+ " top_role" to topRole,
151+ " message" to message
152+ )
174153)
175154
176155fun Config.getReplyMsg (
177156 sender : String ,
178157 message : Message ,
179158 server : MinecraftServer
180- ): Text = Placeholders .parseText(
181- Placeholders .parseText(
182- TextParserUtils .formatText(this [ChatRelaySpec .MinecraftFormatSpec .replyFormat]),
183- Placeholders .ALT_PLACEHOLDER_PATTERN_CUSTOM ,
184- mapOf (
185- " sender" to (sender).literal(),
186- " message" to message.content.literal(),
187- " summary" to message.summary().literal(),
188- )
189- ), PlaceholderContext .of(server)
159+ ): Text = this [ChatRelaySpec .MinecraftFormatSpec .replyFormat].formatText(
160+ PlaceholderContext .of(server).asParserContext(),
161+ mapOf (
162+ " sender" to (sender).literal(),
163+ " message" to message.content.literal(),
164+ " summary" to message.summary().literal(),
165+ )
190166)
191167
192168fun Config.getWebhookChatRelayAvatar (gameProfile : GameProfile ): String =
193- Placeholders .parseText(
194- this [ChatRelaySpec .WebhookSpec .playerAvatarUrl].literal(),
195- Placeholders .ALT_PLACEHOLDER_PATTERN_CUSTOM ,
196- mapOf (
169+ this [ChatRelaySpec .WebhookSpec .playerAvatarUrl].formatText(
170+ ParserContext .of(), mapOf (
197171 " uuid" to gameProfile.id.toString().literal(),
198172 " username" to gameProfile.name.literal(),
199173 " texture" to (gameProfile.getTextures()?.literal() ? : Text .empty())
0 commit comments