Re-added writeSafely to optionally specify predefined player ResultRow

This commit is contained in:
Auxilor
2021-11-04 13:36:35 +00:00
parent 7119da13b7
commit 75dec2bf49

View File

@@ -48,12 +48,16 @@ class MySQLDataHandler(
}
override fun <T> write(uuid: UUID, key: NamespacedKey, value: T) {
writeSafely(uuid, key, value)
}
private fun <T> writeSafely(uuid: UUID, key: NamespacedKey, value: T, predefinedPlayer: ResultRow? = null) {
val column: Column<T> = getColumn(key.toString()) as Column<T>
executor.execute {
val player = getPlayer(uuid)
transaction {
val player = predefinedPlayer ?: getPlayer(uuid)
player[column] = value
}
}
@@ -63,8 +67,10 @@ class MySQLDataHandler(
val profile = PlayerProfile.load(uuid)
transaction {
val player = getPlayer(uuid)
for (key in Eco.getHandler().keyRegistry.registeredKeys) {
write(uuid, key.key, profile.read(key))
writeSafely(uuid, key.key, profile.read(key), predefinedPlayer = player)
}
}
}
@@ -78,9 +84,7 @@ class MySQLDataHandler(
return value
}
object Players : UUIDTable("eco_players") {
}
object Players : UUIDTable("eco_players")
private fun <T> registerColumn(key: PersistentDataKey<T>, table: UUIDTable) {
table.apply {