From 51b184266b48783be8b090708cc4d08fa5ff67c3 Mon Sep 17 00:00:00 2001 From: DaMachinator Date: Wed, 14 Feb 2018 11:54:01 -0500 Subject: [PATCH] Implement /reload --- 1.10.2/src/main/kotlin/matterlink/MatterLinkConfig.kt | 2 +- 1.11.2/src/main/kotlin/matterlink/MatterLinkConfig.kt | 2 +- 1.12.2/src/main/kotlin/matterlink/MatterLinkConfig.kt | 2 +- core/src/main/kotlin/matterlink/command/CommandCore.kt | 10 ++++++---- core/src/main/kotlin/matterlink/config/BaseConfig.kt | 8 ++++++-- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/1.10.2/src/main/kotlin/matterlink/MatterLinkConfig.kt b/1.10.2/src/main/kotlin/matterlink/MatterLinkConfig.kt index ac790a3..25b1269 100644 --- a/1.10.2/src/main/kotlin/matterlink/MatterLinkConfig.kt +++ b/1.10.2/src/main/kotlin/matterlink/MatterLinkConfig.kt @@ -5,7 +5,7 @@ import matterlink.config.cfg import net.minecraftforge.common.config.Configuration import java.io.File -class MatterLinkConfig(file: File) : BaseConfig() { +class MatterLinkConfig(file: File) : BaseConfig(file) { init { logger.info("Reading bridge blueprints... from {}", file) val config = Configuration(file) diff --git a/1.11.2/src/main/kotlin/matterlink/MatterLinkConfig.kt b/1.11.2/src/main/kotlin/matterlink/MatterLinkConfig.kt index ac790a3..25b1269 100644 --- a/1.11.2/src/main/kotlin/matterlink/MatterLinkConfig.kt +++ b/1.11.2/src/main/kotlin/matterlink/MatterLinkConfig.kt @@ -5,7 +5,7 @@ import matterlink.config.cfg import net.minecraftforge.common.config.Configuration import java.io.File -class MatterLinkConfig(file: File) : BaseConfig() { +class MatterLinkConfig(file: File) : BaseConfig(file) { init { logger.info("Reading bridge blueprints... from {}", file) val config = Configuration(file) diff --git a/1.12.2/src/main/kotlin/matterlink/MatterLinkConfig.kt b/1.12.2/src/main/kotlin/matterlink/MatterLinkConfig.kt index bbd1ff5..1d2ef25 100644 --- a/1.12.2/src/main/kotlin/matterlink/MatterLinkConfig.kt +++ b/1.12.2/src/main/kotlin/matterlink/MatterLinkConfig.kt @@ -5,7 +5,7 @@ import matterlink.config.cfg import net.minecraftforge.common.config.Configuration import java.io.File -class MatterLinkConfig(file: File) : BaseConfig() { +class MatterLinkConfig(file: File) : BaseConfig(file) { init { logger.info("Reading bridge blueprints... from {}", file) val config = Configuration(file) diff --git a/core/src/main/kotlin/matterlink/command/CommandCore.kt b/core/src/main/kotlin/matterlink/command/CommandCore.kt index ede5611..dc053af 100644 --- a/core/src/main/kotlin/matterlink/command/CommandCore.kt +++ b/core/src/main/kotlin/matterlink/command/CommandCore.kt @@ -1,5 +1,7 @@ package matterlink.command +import matterlink.bridge.MessageHandler +import matterlink.config.BaseConfig import matterlink.instance object CommandCore { @@ -10,7 +12,7 @@ object CommandCore { fun execute(args : Array) : String { val cmd = args[0].toLowerCase() - val reply : String = when (cmd) { + return when (cmd) { "connect" -> { instance.connect() "Bridge connected!" @@ -20,15 +22,15 @@ object CommandCore { "Bridge disconnected!" } "reload" -> { - + if (MessageHandler.connected) instance.disconnect() + BaseConfig.reload() + if (!MessageHandler.connected) instance.connect() "Bridge config reloaded!" } else -> { "Invalid arguments for command!" } } - - return reply } } \ No newline at end of file diff --git a/core/src/main/kotlin/matterlink/config/BaseConfig.kt b/core/src/main/kotlin/matterlink/config/BaseConfig.kt index 0079f31..c568f16 100644 --- a/core/src/main/kotlin/matterlink/config/BaseConfig.kt +++ b/core/src/main/kotlin/matterlink/config/BaseConfig.kt @@ -1,11 +1,11 @@ package matterlink.config +import java.io.File import java.util.regex.Pattern var cfg: BaseConfig? = null - -abstract class BaseConfig { +abstract class BaseConfig(val file : File) { companion object { private val CATEGORY_RELAY_OPTIONS = "relay" private val CATEGORY_FORMATTING_INCOMING = "formatting" @@ -13,6 +13,10 @@ abstract class BaseConfig { private val CATEGORY_CONNECTION = "connection" private val CATEGORY_COMMAND = "command" private val CATEGORY_DEATH = "death" + + fun reload() { + cfg = cfg!!.javaClass.getConstructor(cfg!!.file.javaClass).newInstance(cfg!!.file) + } } var relay: RelayOptions = RelayOptions()