Skip to content

Commit 258aafe

Browse files
committed
🐛 修复输出格式化问题
1 parent 0a4fe6a commit 258aafe

3 files changed

Lines changed: 36 additions & 21 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
version=0.0.3
1+
version=0.0.4
22
group=org.crashvibe

src/main/kotlin/org/crashvibe/CalcStack/Command.kt

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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-
198197
fun 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

216221
fun 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
}

src/main/kotlin/org/crashvibe/CalcStack/config/Lang.kt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,21 @@ data class Lang(
1919
@Configuration
2020
data class Results(
2121
var header: String = "§a===== 计算结果 =====",
22-
var item: String = "§b物品: {item}({translated_name})",
23-
var quantity: String = "§b数量: {quantity}",
24-
var stacks: String = "§b堆叠: {stacks} 组 ({stack_size} 个/组)",
25-
var remaining: String = "§b剩余: {remaining} 个",
26-
var chests: String = "§b需要箱子: {chests} 个 (每个箱子 {chest_size} 格)",
27-
var footer: String = "§a====================",
22+
var item: String = "§b物品: §r{item}§b(§r{translated_name}§b)",
23+
var quantity: String = "§b数量: §r{quantity}",
24+
var stacks: String = "§b堆叠: §r{stacks} §b组 (§r{stack_size} §b个/组)",
25+
var remaining: String = "§b剩余: §r{remaining} §b个",
26+
var chests: String = "§b需要箱子: §r{chests} §b个 (每个箱子 §r{chest_size} §b格)",
2827
var ingredients: Ingredients = Ingredients(),
28+
var footer: String = "§a====================",
2929
) {
3030
@Configuration
3131
data class Ingredients(
3232
var header: String = "§a===== 原材料 =====",
33-
var item: String = "§b- {ingredient}({translated_name}): {quantity} ",
34-
var stacks: String = " §7- {stacks} 组 ({stack_size} /组)",
35-
var remaining: String = " §7- 剩余 {remaining} ",
36-
var chests: String = " §7- 需要箱子: {chests} (每个箱子 {chest_size} )",
33+
var item: String = "§b- §r{ingredient}§b(§r{translated_name}§b): §r{quantity} §b个",
34+
var stacks: String = " §7- §r{stacks} §7组 (§r{stack_size} §7个/组)",
35+
var remaining: String = " §7- 剩余 §r{remaining} §7个",
36+
var chests: String = " §7- 需要箱子: §r{chests} §7个 (每个箱子 §r{chest_size} §7格)",
3737
)
3838
}
3939
}

0 commit comments

Comments
 (0)