Fixed PersistentDataKeyType.BIG_DECIMAL

This commit is contained in:
Auxilor
2023-06-18 14:11:50 +02:00
parent ff356fcde5
commit 8eb62d65b4
3 changed files with 29 additions and 6 deletions

View File

@@ -15,6 +15,7 @@ import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -648,6 +649,32 @@ public interface Config extends Cloneable, PlaceholderInjectable {
@Nullable
List<? extends Config> getSubsectionsOrNull(@NotNull String path);
/**
* Get a big decimal from config.
*
* @param path The key to fetch the value from.
* @return The found value, or 0 if not found.
*/
@NotNull
default BigDecimal getBigDecimal(@NotNull final String path) {
return Objects.requireNonNullElse(getBigDecimalOrNull(path), BigDecimal.ZERO);
}
/**
* Get a big decimal from config.
*
* @param path The key to fetch the value from.
* @return The found value, or null if not found.
*/
@Nullable
default BigDecimal getBigDecimalOrNull(@NotNull final String path) {
if (this.has(path)) {
return new BigDecimal(this.getString(path));
} else {
return null;
}
}
/**
* Get config type.
*

View File

@@ -21,7 +21,6 @@ import org.jetbrains.exposed.sql.insert
import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction
import org.jetbrains.exposed.sql.update
import java.math.BigDecimal
import java.util.UUID
import java.util.concurrent.Executors
import java.util.concurrent.TimeUnit
@@ -85,8 +84,7 @@ class MySQLDataHandler(
PersistentDataKeyType.BOOLEAN -> data.getBoolOrNull(key.key.toString())
PersistentDataKeyType.STRING_LIST -> data.getStringsOrNull(key.key.toString())
PersistentDataKeyType.CONFIG -> data.getSubsectionOrNull(key.key.toString())
PersistentDataKeyType.BIG_DECIMAL -> if (data.has(key.key.toString()))
BigDecimal(data.getString(key.key.toString())) else null
PersistentDataKeyType.BIG_DECIMAL -> data.getBigDecimalOrNull(key.key.toString())
else -> null
}

View File

@@ -5,7 +5,6 @@ import com.willfp.eco.core.data.keys.PersistentDataKeyType
import com.willfp.eco.internal.spigot.EcoSpigotPlugin
import com.willfp.eco.internal.spigot.data.ProfileHandler
import org.bukkit.NamespacedKey
import java.math.BigDecimal
import java.util.UUID
@Suppress("UNCHECKED_CAST")
@@ -28,8 +27,7 @@ class YamlDataHandler(
PersistentDataKeyType.BOOLEAN -> dataYml.getBoolOrNull("player.$uuid.${key.key}") as T?
PersistentDataKeyType.STRING_LIST -> dataYml.getStringsOrNull("player.$uuid.${key.key}") as T?
PersistentDataKeyType.CONFIG -> dataYml.getSubsectionOrNull("player.$uuid.${key.key}") as T?
PersistentDataKeyType.BIG_DECIMAL -> (if (dataYml.has(key.key.toString()))
BigDecimal(dataYml.getString(key.key.toString())) else null) as T?
PersistentDataKeyType.BIG_DECIMAL -> dataYml.getBigDecimalOrNull("player.$uuid.${key.key}") as T?
else -> null
}