Data Handler changes

This commit is contained in:
Auxilor
2022-05-27 15:48:13 +01:00
parent b6d79da4e1
commit c761df9ee6
4 changed files with 12 additions and 10 deletions

View File

@@ -4,33 +4,35 @@ import com.willfp.eco.core.data.keys.KeyRegistry
import com.willfp.eco.core.data.keys.PersistentDataKey
import java.util.UUID
interface DataHandler {
abstract class DataHandler(
val type: HandlerType
) {
/**
* Read value from a key.
*/
fun <T : Any> read(uuid: UUID, key: PersistentDataKey<T>): T?
abstract fun <T : Any> read(uuid: UUID, key: PersistentDataKey<T>): T?
/**
* Write value to a key.
*/
fun <T : Any> write(uuid: UUID, key: PersistentDataKey<T>, value: T)
abstract fun <T : Any> write(uuid: UUID, key: PersistentDataKey<T>, value: T)
/**
* Save a set of keys for a given UUID.
*/
fun saveKeysFor(uuid: UUID, keys: Set<PersistentDataKey<*>>)
abstract fun saveKeysFor(uuid: UUID, keys: Set<PersistentDataKey<*>>)
// Everything below this are methods that are only needed for certain implementations.
fun save() {
open fun save() {
}
fun categorize(key: PersistentDataKey<*>, category: KeyRegistry.KeyCategory) {
open fun categorize(key: PersistentDataKey<*>, category: KeyRegistry.KeyCategory) {
}
fun initialize() {
open fun initialize() {
}
}

View File

@@ -21,7 +21,7 @@ import java.util.UUID
class MongoDataHandler(
plugin: EcoSpigotPlugin,
private val handler: EcoProfileHandler
) : DataHandler {
) : DataHandler(HandlerType.MONGO) {
private val client: CoroutineClient
private val collection: CoroutineCollection<UUIDProfile>

View File

@@ -57,7 +57,7 @@ the worst bodge I've shipped in production.
class MySQLDataHandler(
private val plugin: EcoSpigotPlugin,
handler: EcoProfileHandler
) : DataHandler {
) : DataHandler(HandlerType.MYSQL) {
private val playerHandler: ImplementedMySQLHandler
private val serverHandler: ImplementedMySQLHandler

View File

@@ -11,7 +11,7 @@ import java.util.UUID
class YamlDataHandler(
plugin: EcoSpigotPlugin,
private val handler: EcoProfileHandler
) : DataHandler {
) : DataHandler(HandlerType.YAML) {
private val dataYml = plugin.dataYml
override fun save() {