discord-kagebot/src/main/kotlin/moe/kageru/kagebot/features/SetConfigFeature.kt

29 lines
1.0 KiB
Kotlin
Raw Normal View History

package moe.kageru.kagebot.features
2019-07-17 22:04:06 +02:00
import moe.kageru.kagebot.MessageUtil.sendEmbed
import moe.kageru.kagebot.config.Config
import moe.kageru.kagebot.config.ConfigParser
import org.javacord.api.event.message.MessageCreateEvent
2019-07-17 23:42:12 +02:00
class SetConfigFeature : MessageFeature {
2019-11-14 15:10:30 +01:00
@ExperimentalStdlibApi
override fun handle(message: MessageCreateEvent) {
if (message.messageAttachments.size != 1) {
message.channel.sendMessage("Error: please attach the new config to your message.")
return
}
2019-11-14 15:10:30 +01:00
val newConfig = message.messageAttachments[0].url.openStream().readAllBytes().decodeToString()
try {
Config.localization = Config.localeSpec.string(newConfig)
Config.featureConfig = Config.featureSpec.string(newConfig)
Config.commandConfig = Config.commandSpec.string(newConfig)
ConfigParser.configFile.writeText(newConfig)
message.channel.sendMessage("Config reloaded.")
} catch (e: Exception) {
message.channel.sendEmbed {
addField("Error", "```${e.message}```")
}
}
}
}