summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt')
-rw-r--r--src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt39
1 files changed, 25 insertions, 14 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt b/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
index 6d08d28..e9c70f6 100644
--- a/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
+++ b/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
@@ -10,8 +10,9 @@ import io.dico.parcels2.defaultimpl.GlobalAddedDataManagerImpl
import io.dico.parcels2.defaultimpl.ParcelProviderImpl
import io.dico.parcels2.listener.ParcelEntityTracker
import io.dico.parcels2.listener.ParcelListeners
+import io.dico.parcels2.options.Options
+import io.dico.parcels2.options.optionsMapper
import io.dico.parcels2.storage.Storage
-import io.dico.parcels2.storage.yamlObjectMapper
import io.dico.parcels2.util.FunctionHelper
import io.dico.parcels2.util.tryCreate
import org.bukkit.Bukkit
@@ -41,6 +42,7 @@ class ParcelsPlugin : JavaPlugin() {
override fun onEnable() {
plogger.info("Debug enabled: ${plogger.isDebugEnabled}")
+ plogger.debug(System.getProperty("user.dir"))
if (!init()) {
Bukkit.getPluginManager().disablePlugin(this)
}
@@ -60,7 +62,7 @@ class ParcelsPlugin : JavaPlugin() {
if (!loadOptions()) return false
try {
- storage = options.storage.newStorageInstance()
+ storage = options.storage.newInstance()
storage.init()
} catch (ex: Exception) {
plogger.error("Failed to connect to database", ex)
@@ -83,26 +85,33 @@ class ParcelsPlugin : JavaPlugin() {
fun loadOptions(): Boolean {
when {
- optionsFile.exists() -> yamlObjectMapper.readerForUpdating(options).readValue<Options>(optionsFile)
- optionsFile.tryCreate() -> {
+ optionsFile.exists() -> optionsMapper.readerForUpdating(options).readValue<Options>(optionsFile)
+ else -> run {
options.addWorld("parcels")
- try {
- yamlObjectMapper.writeValue(optionsFile, options)
- } catch (ex: Throwable) {
- optionsFile.delete()
- throw ex
+ if (saveOptions()) {
+ plogger.warn("Created options file with a world template. Please review it before next start.")
+ } else {
+ plogger.error("Failed to save options file ${optionsFile.canonicalPath}")
}
- plogger.warn("Created options file with a world template. Please review it before next start.")
- return false
- }
- else -> {
- plogger.error("Failed to save options file ${optionsFile.canonicalPath}")
return false
}
}
return true
}
+ fun saveOptions(): Boolean {
+ if (optionsFile.tryCreate()) {
+ try {
+ optionsMapper.writeValue(optionsFile, options)
+ } catch (ex: Throwable) {
+ optionsFile.delete()
+ throw ex
+ }
+ return true
+ }
+ return false
+ }
+
override fun getDefaultWorldGenerator(worldName: String, generatorId: String?): ChunkGenerator? {
return parcelProvider.getWorldGenerator(worldName)
}
@@ -118,6 +127,8 @@ class ParcelsPlugin : JavaPlugin() {
listeners = ParcelListeners(parcelProvider, entityTracker)
registrator.registerListeners(listeners!!)
}
+
+ functionHelper.scheduleRepeating(100, 5, entityTracker::tick)
}
} \ No newline at end of file