diff options
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt')
-rw-r--r-- | src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt | 39 |
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 |