Compare commits

..

5 Commits

Author SHA1 Message Date
Auxilor
97fba3e243 Updated to 6.28.1 2022-03-11 16:29:15 +00:00
Auxilor
e47c6387a2 Injecting placeholders now clears config cache 2022-03-11 16:29:05 +00:00
Auxilor
00df39097c Fixed statics in expressions 2022-03-11 16:28:21 +00:00
Auxilor
efcb406e9a Revert "Updated to 6.28.1"
This reverts commit 9e92ea6062.
2022-03-11 10:52:36 +00:00
Auxilor
9e92ea6062 Updated to 6.28.1 2022-03-11 10:41:43 +00:00
4 changed files with 7 additions and 5 deletions

View File

@@ -211,6 +211,7 @@ open class EcoJSONConfigWrapper : JSONConfig {
override fun injectPlaceholders(placeholders: Iterable<StaticPlaceholder>) {
injections.removeIf { placeholders.any { placeholder -> it.identifier == placeholder.identifier } }
injections.addAll(placeholders)
this.clearCache()
}
override fun getInjectedPlaceholders(): List<StaticPlaceholder> {
@@ -219,6 +220,7 @@ open class EcoJSONConfigWrapper : JSONConfig {
override fun clearInjectedPlaceholders() {
injections.clear()
this.clearCache()
}
override fun getType(): ConfigType {

View File

@@ -230,6 +230,7 @@ open class EcoYamlConfigWrapper<T : ConfigurationSection> : Config {
override fun injectPlaceholders(placeholders: Iterable<StaticPlaceholder>) {
injections.removeIf { placeholders.any { placeholder -> it.identifier == placeholder.identifier } }
injections.addAll(placeholders)
this.clearCache()
}
override fun getInjectedPlaceholders(): List<StaticPlaceholder> {
@@ -238,6 +239,7 @@ open class EcoYamlConfigWrapper<T : ConfigurationSection> : Config {
override fun clearInjectedPlaceholders() {
injections.clear()
this.clearCache()
}
override fun getType(): ConfigType {

View File

@@ -15,14 +15,12 @@ private val goToZero = Crunch.compileExpression("0")
fun evaluateExpression(expression: String, player: Player?, statics: Iterable<StaticPlaceholder>): Double {
val placeholderValues = PlaceholderManager.findPlaceholdersIn(expression)
.map { PlaceholderManager.translatePlaceholders(it, player) }
.union(statics.map { it.value })
.toList()
.map { PlaceholderManager.translatePlaceholders(it, player, statics.toList()) }
.map { runCatching { FastNumberParsing.parseDouble(it) }.getOrDefault(0.0) }
.toDoubleArray()
val compiled = cache.get(expression) {
val placeholders = PlaceholderManager.findPlaceholdersIn(it) union statics.map { static -> "%${static.identifier}%" }
val placeholders = PlaceholderManager.findPlaceholdersIn(it)
val env = EvaluationEnvironment()
env.setVariableNames(*placeholders.toTypedArray())
runCatching { Crunch.compileExpression(expression, env) }.getOrDefault(goToZero)

View File

@@ -1,3 +1,3 @@
version = 6.28.0
version = 6.28.1
plugin-name = eco
kotlin.code.style = official