summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
diff options
context:
space:
mode:
authorDico200 <dico.karssiens@gmail.com>2018-07-22 16:44:32 +0200
committerDico200 <dico.karssiens@gmail.com>2018-07-22 16:44:32 +0200
commit8a0a77b8ba4a2e160558809b592e4bc393e7c997 (patch)
treeedc3fef745ea7a06723a12d017a2db3f0afaefd9 /src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
parent0aa8b1fa9052d67664a503a3f78d90c4b64b03b7 (diff)
Successfully connecting to h2 database
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt')
-rw-r--r--src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt47
1 files changed, 46 insertions, 1 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt b/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
index 5ffce7c..43ee65b 100644
--- a/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
+++ b/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
@@ -1,15 +1,60 @@
package io.dico.parcels2
+import io.dico.parcels2.storage.Storage
+import io.dico.parcels2.storage.yamlObjectMapper
+import io.dico.parcels2.util.tryCreate
+import org.bukkit.Bukkit
import org.bukkit.plugin.java.JavaPlugin
import org.slf4j.LoggerFactory
+import java.io.File
+import java.util.logging.Level
val logger = LoggerFactory.getLogger("ParcelsPlugin")
+private inline val plogger get() = logger
+
class ParcelsPlugin : JavaPlugin() {
+ lateinit var optionsFile: File
+ lateinit var options: Options
+ lateinit var worlds: Worlds
+ lateinit var storage: Storage
override fun onEnable() {
- super.onEnable()
+ if (!init()) {
+ Bukkit.getPluginManager().disablePlugin(this)
+ }
+ }
+
+ private fun init(): Boolean {
+ optionsFile = File(dataFolder, "options.yml")
+ options = Options()
+ worlds = Worlds()
+
+ try {
+ if (optionsFile.exists()) {
+ yamlObjectMapper.readerForUpdating(options).readValue<Options>(optionsFile)
+ } else if (optionsFile.tryCreate()) {
+ options.addWorld("plotworld", WorldOptions())
+ yamlObjectMapper.writeValue(optionsFile, options)
+ } else {
+ plogger.error("Failed to save options file ${optionsFile.canonicalPath}")
+ return false
+ }
+
+ try {
+ storage = options.storage.newStorageInstance()
+ } catch (ex: Exception) {
+ plogger.error("Failed to connect to database", ex)
+ return false
+ }
+
+ worlds.loadWorlds(options)
+ } catch (ex: Exception) {
+ plogger.error("Error loading options", ex)
+ return false
+ }
+ return true
}
} \ No newline at end of file