Applied kotlin style conventions

This commit is contained in:
bluefireoly
2020-10-18 18:36:49 +02:00
parent e1d4e8bbfc
commit da848728d2
39 changed files with 509 additions and 385 deletions

View File

@@ -28,24 +28,26 @@ import kotlin.reflect.KProperty
* exist and no default config is specified.
*/
inline fun <reified T : Any> kSpigotJsonConfig(
file: File,
noinline default: (() -> T)? = null,
file: File,
noinline default: (() -> T)? = null,
) = ConfigDelegate(T::class, file, default)
/**
* @see kSpigotJsonConfig
*/
class ConfigDelegate<T : Any> (
private val configClass: KClass<T>,
private val file: File,
private val defaultCallback: (() -> T)?
class ConfigDelegate<T : Any>(
private val configClass: KClass<T>,
private val file: File,
private val defaultCallback: (() -> T)?
) {
private var internalConfig: T = loadIt()
var data: T
get() = internalConfig
set(value) { internalConfig = value }
set(value) {
internalConfig = value
}
operator fun getValue(thisRef: Any?, property: KProperty<*>) = internalConfig
@@ -62,25 +64,26 @@ class ConfigDelegate<T : Any> (
/**
* Loads the current state of the config on disk to the config object.
*/
fun reload() { loadIt() }
fun reload() {
loadIt()
}
private fun saveIt(toSave: T) {
GsonConfigManager.saveConfig(file, toSave, true)
internalConfig = toSave
}
private fun loadIt()
= if (defaultCallback == null)
GsonConfigManager.loadConfig(file, configClass)
else
GsonConfigManager.loadOrCreateDefault(file, configClass, true, defaultCallback)
private fun loadIt() = if (defaultCallback == null)
GsonConfigManager.loadConfig(file, configClass)
else
GsonConfigManager.loadOrCreateDefault(file, configClass, true, defaultCallback)
}
internal object GsonConfigManager {
fun <T : Any> loadConfig(file: File, configClass: KClass<T>): T
= FileReader(file).use { reader -> return getGson(false).fromJson(reader, configClass.java) }
fun <T : Any> loadConfig(file: File, configClass: KClass<T>): T =
FileReader(file).use { reader -> return getGson(false).fromJson(reader, configClass.java) }
fun <T : Any> saveConfig(file: File, config: T, pretty: Boolean = true) {
file.createIfNotExists()

View File

@@ -3,10 +3,9 @@ package net.axay.kspigot.config
import net.axay.kspigot.main.KSpigotMainInstance
import java.io.File
class PluginFile(path: String, child: String? = null)
: File(
"${KSpigotMainInstance.dataFolder}",
run {
if (child == null) path else File(path, child).path
}
)
class PluginFile(path: String, child: String? = null) : File(
"${KSpigotMainInstance.dataFolder}",
run {
if (child == null) path else File(path, child).path
}
)