summaryrefslogtreecommitdiff
path: root/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
diff options
context:
space:
mode:
authorDico200 <dico.karssiens@gmail.com>2018-07-22 20:51:46 +0200
committerDico200 <dico.karssiens@gmail.com>2018-07-22 20:51:46 +0200
commit9e31ea7e51762292301858b6821e27e971b3981b (patch)
treecbaa0c2444919f0d8717f2dbe06685773517e9e5 /src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
parent8a0a77b8ba4a2e160558809b592e4bc393e7c997 (diff)
Add a few development commands. World generation works
Diffstat (limited to 'src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt')
-rw-r--r--src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt49
1 files changed, 38 insertions, 11 deletions
diff --git a/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt b/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
index 43ee65b..9e9fc10 100644
--- a/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
+++ b/src/main/kotlin/io/dico/parcels2/ParcelsPlugin.kt
@@ -1,5 +1,8 @@
package io.dico.parcels2
+import io.dico.dicore.command.CommandBuilder
+import io.dico.dicore.command.EOverridePolicy
+import io.dico.dicore.command.ICommandDispatcher
import io.dico.parcels2.storage.Storage
import io.dico.parcels2.storage.yamlObjectMapper
import io.dico.parcels2.util.tryCreate
@@ -7,7 +10,6 @@ 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")
@@ -18,28 +20,28 @@ class ParcelsPlugin : JavaPlugin() {
lateinit var options: Options
lateinit var worlds: Worlds
lateinit var storage: Storage
+ private var cmdDispatcher: ICommandDispatcher? = null
override fun onEnable() {
if (!init()) {
Bukkit.getPluginManager().disablePlugin(this)
+ return
}
+
+ registerCommands()
+ }
+
+ override fun onDisable() {
+ cmdDispatcher?.unregisterFromCommandMap()
}
private fun init(): Boolean {
optionsFile = File(dataFolder, "options.yml")
options = Options()
- worlds = Worlds()
+ worlds = Worlds(this)
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
- }
+ if (!loadOptions()) return false
try {
storage = options.storage.newStorageInstance()
@@ -57,4 +59,29 @@ class ParcelsPlugin : JavaPlugin() {
return true
}
+ fun loadOptions(): Boolean {
+ 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
+ }
+ return true
+ }
+
+ private fun registerCommands() {
+ //@formatting:off
+ cmdDispatcher = CommandBuilder()
+ .group("parcel", "plot", "plots", "p")
+ .registerCommands(PlotCommands(this))
+ .parent()
+ .getDispatcher()
+ //@formatting:on
+
+ cmdDispatcher!!.registerToCommandMap("parcels:", EOverridePolicy.FALLBACK_ONLY)
+ }
+
} \ No newline at end of file