@@ -81,7 +81,7 @@ class Command : TabExecutor {
8181 )
8282 )
8383 sender.sendMessage(results.quantity.replace(" {quantity}" , quantity.toString()))
84- sender.sendMessage(formatResultMessage(material.name.lowercase(), " " , stackInfo, results.stacks))
84+ sender.sendMessage(formatResultMessage(material.name.lowercase(), null , stackInfo, results.stacks))
8585 sender.sendMessage(results.remaining.replace(" {remaining}" , stackInfo.remainingItems.toString()))
8686 sender.sendMessage(
8787 results.chests.replace(" {chests}" , stackInfo.chests.toString()).replace(" {chest_size}" , chestSize.toString())
@@ -194,14 +194,13 @@ fun getCraftingMaterials(
194194 }
195195}
196196
197-
198197fun formatResultMessage (
199198 ingredient : String ,
200- translatedName : String = "" ,
199+ translatedName : Component ? ,
201200 stackInfo : StackInfo ,
202201 template : String
203- ): String {
204- return template
202+ ): Component {
203+ val base = template
205204 .replace(" {item}" , ingredient)
206205 .replace(" {ingredient}" , ingredient)
207206 .replace(" {quantity}" , stackInfo.totalStacks.toString())
@@ -210,26 +209,42 @@ fun formatResultMessage(
210209 .replace(" {remaining}" , stackInfo.remainingItems.toString())
211210 .replace(" {chests}" , stackInfo.chests.toString())
212211 .replace(" {chest_size}" , Config .configData.chest_size.toString())
213- .let { if (translatedName.isNotEmpty()) it.replace(" {translated_name}" , translatedName) else it }
212+ return if (translatedName != null ) {
213+ Component .text(base).replaceText { builder ->
214+ builder.matchLiteral(" {translated_name}" ).replacement(translatedName)
215+ }
216+ } else {
217+ Component .text(base)
218+ }
214219}
215220
216221fun formatMaterialComponent (material : Material , stackInfo : StackInfo ): Component {
217222 val translated = material.itemTranslationKey?.let { Component .translatable(it) }
218223 ? : Component .text(material.name.lowercase(Locale .getDefault()))
219- val template = Config .langData.results.ingredients.item
224+
225+ val itemTpl = Config .langData.results.ingredients.item
226+ val stacksTpl = Config .langData.results.ingredients.stacks
227+ val remainingTpl = Config .langData.results.ingredients.remaining
228+ val chestsTpl = Config .langData.results.ingredients.chests
229+
230+ val template = listOf (itemTpl, stacksTpl, remainingTpl, chestsTpl).joinToString(" \n " )
220231 .replace(" {ingredient}" , material.name.lowercase(Locale .getDefault()))
221232 .replace(" {quantity}" , stackInfo.totalStacks.toString())
222233 .replace(" {stacks}" , stackInfo.totalStacks.toString())
223234 .replace(" {stack_size}" , stackInfo.maxStackSize.toString())
224235 .replace(" {remaining}" , stackInfo.remainingItems.toString())
225236 .replace(" {chests}" , stackInfo.chests.toString())
226237 .replace(" {chest_size}" , Config .configData.chest_size.toString())
238+
227239 return Component .text(template).replaceText { builder ->
228240 builder.matchLiteral(" {translated_name}" ).replacement(translated)
229241 }
230242}
231243
232-
233- private fun getTranslatedItemName (material : Material ): String {
234- return material.itemTranslationKey ? : material.name.lowercase(Locale .getDefault())
244+ private fun getTranslatedItemName (material : Material ): Component {
245+ return material.itemTranslationKey?.let { Component .translatable(it) } ? : Component .text(
246+ material.name.lowercase(
247+ Locale .getDefault()
248+ )
249+ )
235250}
0 commit comments