diff options
| author | Sho Sakuma <me@m1sk9.dev> | 2026-01-06 00:00:52 +0900 |
|---|---|---|
| committer | Sho Sakuma <me@m1sk9.dev> | 2026-01-06 00:00:52 +0900 |
| commit | 596745a96f3ea7c633751ce883ad54b7d461e4f8 (patch) | |
| tree | b2785bbe43a4d28403e5041cf2a8bc5982bf6df7 /platform-paper | |
| parent | 5c3bbc57babfdf87db06bd6b35044cf7d916ca2b (diff) | |
| download | LunaticChat-596745a96f3ea7c633751ce883ad54b7d461e4f8.tar.gz LunaticChat-596745a96f3ea7c633751ce883ad54b7d461e4f8.tar.bz2 LunaticChat-596745a96f3ea7c633751ce883ad54b7d461e4f8.zip | |
feat: Add LunaticChat config
Diffstat (limited to 'platform-paper')
6 files changed, 104 insertions, 2 deletions
diff --git a/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/LunaticChat.kt b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/LunaticChat.kt index 6bcc9b0..360ebb9 100644 --- a/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/LunaticChat.kt +++ b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/LunaticChat.kt @@ -1,13 +1,23 @@ package dev.m1sk9.lunaticChat.paper +import dev.m1sk9.lunaticChat.paper.config.ConfigManager import org.bukkit.plugin.java.JavaPlugin class LunaticChat : JavaPlugin() { override fun onEnable() { - // Plugin startup logic + saveDefaultConfig() + val lunaticChatConfiguration = ConfigManager.loadConfiguration(config) + + if (lunaticChatConfiguration.debug) { + logger.warning("LunaticChat is running in debug mode.") + logger.info("Debug: $lunaticChatConfiguration") + // TODO: Enable debug features + } + + logger.info("LunaticChat enabled.") } override fun onDisable() { - // Plugin shutdown logic + logger.info("LunaticChat disabled.") } } diff --git a/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/ConfigManager.kt b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/ConfigManager.kt new file mode 100644 index 0000000..302a207 --- /dev/null +++ b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/ConfigManager.kt @@ -0,0 +1,59 @@ +package dev.m1sk9.lunaticChat.paper.config + +import dev.m1sk9.lunaticChat.paper.config.key.FeaturesConfig +import dev.m1sk9.lunaticChat.paper.config.key.MessageFormatConfig +import dev.m1sk9.lunaticChat.paper.config.key.VelocityConfig +import org.bukkit.configuration.file.FileConfiguration + +object ConfigManager { + + private var lunaticChatConfiguration: LunaticChatConfiguration? = null + + fun getConfiguration(): LunaticChatConfiguration = + lunaticChatConfiguration ?: IllegalStateException("LunaticChat Config not loaded").let { throw it } + + fun loadConfiguration(configFile: FileConfiguration): LunaticChatConfiguration { + val loadedConfig = + LunaticChatConfiguration( + features = + FeaturesConfig( + japaneseConversionEnabled = configFile.getBoolean("features.japaneseConversionEnabled", false), + quickRepliesEnabled = configFile.getBoolean("features.quickRepliesEnabled", true), + ), + messageFormat = + MessageFormatConfig( + directMessageFormat = + configFile.getString( + "messageFormat.directMessageFormat", + "&7[&e{sender} &7>>] &f{message}", + )!!, + crossServerMessageFormat = + configFile.getString( + "messageFormat.crossServerMessageFormat", + "&7[&e{sender} &7(&b{server}&7)] &f{message}", + )!!, + crossServerDirectMessageFormat = + configFile.getString( + "messageFormat.crossServerDirectMessageFormat", + "&7[&e{sender}@&7(&b{server}&7) >>] &f{message}", + )!!, + ), + velocity = + VelocityConfig( + enabled = configFile.getBoolean("velocity.enabled", false), + serverName = configFile.getString("velocity.serverName", "s1")!!, + crossServerChatEnabled = configFile.getBoolean("velocity.crossServerChatEnabled", false), + crossServerDirectMessagesEnabled = + configFile.getBoolean( + "velocity.crossServerDirectMessagesEnabled", + false, + ), + ), + debug = configFile.getBoolean("debug", false), + ) + + lunaticChatConfiguration = loadedConfig + return loadedConfig + } + +} diff --git a/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/LunaticChatConfiguration.kt b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/LunaticChatConfiguration.kt new file mode 100644 index 0000000..d474de7 --- /dev/null +++ b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/LunaticChatConfiguration.kt @@ -0,0 +1,12 @@ +package dev.m1sk9.lunaticChat.paper.config + +import dev.m1sk9.lunaticChat.paper.config.key.FeaturesConfig +import dev.m1sk9.lunaticChat.paper.config.key.MessageFormatConfig +import dev.m1sk9.lunaticChat.paper.config.key.VelocityConfig + +data class LunaticChatConfiguration( + val features: FeaturesConfig, + val messageFormat: MessageFormatConfig, + val velocity: VelocityConfig, + val debug: Boolean = false, +) diff --git a/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/FeaturesConfig.kt b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/FeaturesConfig.kt new file mode 100644 index 0000000..56ee7ec --- /dev/null +++ b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/FeaturesConfig.kt @@ -0,0 +1,6 @@ +package dev.m1sk9.lunaticChat.paper.config.key + +data class FeaturesConfig( + val japaneseConversionEnabled: Boolean, + val quickRepliesEnabled: Boolean, +) diff --git a/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/MessageFormatConfig.kt b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/MessageFormatConfig.kt new file mode 100644 index 0000000..52eddae --- /dev/null +++ b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/MessageFormatConfig.kt @@ -0,0 +1,7 @@ +package dev.m1sk9.lunaticChat.paper.config.key + +data class MessageFormatConfig( + val directMessageFormat: String = "&7[&e{sender} &7>>] &f{message}", + val crossServerMessageFormat: String = "&7[&e{sender} &7(&b{server}&7)] &f{message}", + val crossServerDirectMessageFormat: String = "&7[&e{sender}@&7(&b{server}&7) >>] &f{message}", +) diff --git a/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/VelocityConfig.kt b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/VelocityConfig.kt new file mode 100644 index 0000000..3932b41 --- /dev/null +++ b/platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/VelocityConfig.kt @@ -0,0 +1,8 @@ +package dev.m1sk9.lunaticChat.paper.config.key + +data class VelocityConfig( + val enabled: Boolean, + val serverName: String, + val crossServerChatEnabled: Boolean, + val crossServerDirectMessagesEnabled: Boolean, +) |
