mirror of
https://github.com/Auxilor/EcoSkills.git
synced 2026-01-02 13:56:38 +00:00
Fixed descriptions
This commit is contained in:
@@ -10,7 +10,9 @@ import com.willfp.eco.core.placeholder.PlayerStaticPlaceholder
|
||||
import com.willfp.eco.core.placeholder.PlayerlessPlaceholder
|
||||
import com.willfp.eco.core.placeholder.context.placeholderContext
|
||||
import com.willfp.eco.core.registry.KRegistrable
|
||||
import com.willfp.eco.util.NumberUtils
|
||||
import com.willfp.eco.util.formatEco
|
||||
import com.willfp.eco.util.toNiceString
|
||||
import com.willfp.eco.util.toNumeral
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import com.willfp.ecoskills.util.DescriptionPlaceholder
|
||||
@@ -45,12 +47,7 @@ abstract class Levellable(
|
||||
}.map { it.uniqueId }
|
||||
}
|
||||
|
||||
// Lazy init so config placeholders can inject
|
||||
private val unformattedDescription by lazy {
|
||||
loadDescriptionPlaceholders(config).fold(config.getString("description")) { desc, it ->
|
||||
desc.replace("%${it.id}%", it.expr)
|
||||
}
|
||||
}
|
||||
private val unformattedDescription = config.getString("description")
|
||||
|
||||
val name = config.getFormattedString("name")
|
||||
|
||||
@@ -92,11 +89,20 @@ abstract class Levellable(
|
||||
}
|
||||
|
||||
fun getDescription(player: Player): String {
|
||||
return unformattedDescription.formatEco(
|
||||
placeholderContext(
|
||||
player = player,
|
||||
injectable = LevelInjectable(getActualLevel(player))
|
||||
)
|
||||
var desc = unformattedDescription
|
||||
|
||||
val context = placeholderContext(
|
||||
player = player,
|
||||
injectable = LevelInjectable(getActualLevel(player))
|
||||
)
|
||||
|
||||
for (placeholder in loadDescriptionPlaceholders(config)) {
|
||||
val id = placeholder.id
|
||||
val value = NumberUtils.evaluateExpression(placeholder.expr, context)
|
||||
|
||||
desc = desc.replace("%$id%", value.toNiceString())
|
||||
}
|
||||
|
||||
return desc.formatEco(context)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ import com.willfp.eco.util.toNiceString
|
||||
import com.willfp.eco.util.toNumeral
|
||||
import com.willfp.ecoskills.EcoSkillsPlugin
|
||||
import com.willfp.ecoskills.api.getFormattedRequiredXP
|
||||
import com.willfp.ecoskills.api.getRequiredXP
|
||||
import com.willfp.ecoskills.api.getSkillLevel
|
||||
import com.willfp.ecoskills.api.getSkillProgress
|
||||
import com.willfp.ecoskills.api.getSkillXP
|
||||
@@ -193,17 +192,20 @@ class Skill(
|
||||
.filter { it <= level } // Only consider levels not greater than the provided level
|
||||
.maxOrNull() ?: 1 // Get the maximum level, default to 1 if no suitable level was found
|
||||
|
||||
val rawMessages = config.getStrings("reward-messages.$highestConfiguredLevel")
|
||||
val messages = config.getStrings("reward-messages.$highestConfiguredLevel").toMutableList()
|
||||
|
||||
val messages = loadDescriptionPlaceholders(config).fold(rawMessages) { desc, placeholder ->
|
||||
desc.map { s -> s.replace("%${placeholder.id}%", placeholder.expr) }
|
||||
val context = placeholderContext(
|
||||
injectable = LevelInjectable(level)
|
||||
)
|
||||
|
||||
for (placeholder in loadDescriptionPlaceholders(config)) {
|
||||
val id = placeholder.id
|
||||
val value = NumberUtils.evaluateExpression(placeholder.expr, context)
|
||||
|
||||
messages.replaceAll { s -> s.replace("%$id%", value.toNiceString()) }
|
||||
}
|
||||
|
||||
return messages.formatEco(
|
||||
placeholderContext(
|
||||
injectable = LevelInjectable(level)
|
||||
)
|
||||
)
|
||||
return messages.formatEco(context)
|
||||
}
|
||||
|
||||
internal fun handleLevelUp(player: OfflinePlayer, level: Int) {
|
||||
|
||||
Reference in New Issue
Block a user