diff --git a/pom.xml b/pom.xml
index f2fc94a..a3d2ecc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,6 @@
1.19.2-R0.1-SNAPSHOT
provided
-
org.jetbrains.kotlin
kotlin-test-junit5
@@ -81,7 +80,33 @@
exec-maven-plugin
1.6.0
- MainKt
+ OntimeHandlerPlugin
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 6
+
+
+
+ maven-assembly-plugin
+
+
+ package
+
+ single
+
+
+
+
+
+ jar-with-dependencies
+
+ ${project.artifactId}-${project.version}
+ false
diff --git a/src/main/kotlin/de/sh_edraft/OntimeHandlerPlugin.kt b/src/main/kotlin/de/sh_edraft/OntimeHandlerPlugin.kt
index 6cbc380..9952edc 100644
--- a/src/main/kotlin/de/sh_edraft/OntimeHandlerPlugin.kt
+++ b/src/main/kotlin/de/sh_edraft/OntimeHandlerPlugin.kt
@@ -1,13 +1,21 @@
package de.sh_edraft
+import de.sh_edraft.config.Config
import org.bukkit.plugin.java.JavaPlugin
open class OntimeHandlerPlugin() : JavaPlugin() {
+
+ private lateinit var config: Config
+
override fun onEnable() {
- logger.info("onEnable is called!")
+ this.config = Config(logger)
+ this.config.read("/config.properties", false)
+ this.config.read("/config.${this.config.environment}.properties", true)
+ this.config.read("/config.${this.config.hostName}.properties", true)
+ logger.info("OntimeHandlerPlugin enabled :D")
}
override fun onDisable() {
- logger.info("onDisable is called!")
+ logger.info("OntimeHandlerPlugin disabled :(")
}
}
\ No newline at end of file
diff --git a/src/main/kotlin/de/sh_edraft/config/Config.kt b/src/main/kotlin/de/sh_edraft/config/Config.kt
new file mode 100644
index 0000000..9ea089b
--- /dev/null
+++ b/src/main/kotlin/de/sh_edraft/config/Config.kt
@@ -0,0 +1,69 @@
+package de.sh_edraft.config
+
+import java.net.InetAddress
+import java.net.UnknownHostException
+import java.util.*
+import java.util.logging.Logger
+
+
+class Config(private var logger: Logger) {
+ private val properties = Properties()
+
+ var hostName: String = ""
+ get() {
+ return this.getHostname() ?: "localhost"
+ }
+ private set
+
+ var environment: String = ""
+ get() {
+ return System.getenv("PLUGIN_ENVIRONMENT") ?: "production"
+ }
+ private set
+
+ lateinit var ApiURL: String
+ private set
+
+ lateinit var ApiKey: String
+ private set
+
+ private fun getHostname(): String? {
+ try {
+ return InetAddress.getLocalHost().hostName
+ } catch (ex: UnknownHostException) {
+ println("Hostname can not be resolved")
+ }
+ return null
+ }
+
+ fun read(filename: String, optional: Boolean = false) {
+ logger.config("Try to read config ${filename}")
+ var foundFile = false
+ try {
+ val file = this::class.java.getResourceAsStream(filename)
+ if (file == null && optional) {
+ logger.config("${filename} not found")
+ return
+ }
+ this.properties.load(file)
+ logger.info("Found config ${filename}")
+ foundFile = true
+ } catch (e: Exception) {
+ this.logger.warning("Error loading ${filename}")
+ }
+
+ if (!foundFile) {
+ return
+ }
+ try {
+ this.ApiURL = this.getProperty("apiURL").toString()
+ this.ApiKey = this.getProperty("apiKey").toString()
+ } catch (e: Exception) {
+ this.logger.severe("Error loading config")
+ }
+ }
+
+ private fun getProperty(key: String): String? {
+ return this.properties.getProperty(key)
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/config.development.properties b/src/main/resources/config.development.properties
new file mode 100644
index 0000000..6359af7
--- /dev/null
+++ b/src/main/resources/config.development.properties
@@ -0,0 +1,2 @@
+apiURL: http://localhost/api/
+apiKey: abcd
\ No newline at end of file
diff --git a/src/main/resources/config.edrafts-pc.properties b/src/main/resources/config.edrafts-pc.properties
new file mode 100644
index 0000000..6359af7
--- /dev/null
+++ b/src/main/resources/config.edrafts-pc.properties
@@ -0,0 +1,2 @@
+apiURL: http://localhost/api/
+apiKey: abcd
\ No newline at end of file
diff --git a/src/main/resources/config.properties b/src/main/resources/config.properties
new file mode 100644
index 0000000..adc8eac
--- /dev/null
+++ b/src/main/resources/config.properties
@@ -0,0 +1,2 @@
+apiURL=https://kdb.keksdose-gaming.de/api/
+apiKey=abcd
\ No newline at end of file
diff --git a/src/main/resources/config.staging.properties b/src/main/resources/config.staging.properties
new file mode 100644
index 0000000..b8f03e4
--- /dev/null
+++ b/src/main/resources/config.staging.properties
@@ -0,0 +1,2 @@
+apiURL: https://kdb-test.keksdose-gaming.de/api/
+apiKey: abcd
\ No newline at end of file