summaryrefslogtreecommitdiff
path: root/platform-paper
diff options
context:
space:
mode:
authorSho Sakuma <me@m1sk9.dev>2026-01-06 00:00:52 +0900
committerSho Sakuma <me@m1sk9.dev>2026-01-06 00:00:52 +0900
commit596745a96f3ea7c633751ce883ad54b7d461e4f8 (patch)
treeb2785bbe43a4d28403e5041cf2a8bc5982bf6df7 /platform-paper
parent5c3bbc57babfdf87db06bd6b35044cf7d916ca2b (diff)
downloadLunaticChat-596745a96f3ea7c633751ce883ad54b7d461e4f8.tar.gz
LunaticChat-596745a96f3ea7c633751ce883ad54b7d461e4f8.tar.bz2
LunaticChat-596745a96f3ea7c633751ce883ad54b7d461e4f8.zip
feat: Add LunaticChat config
Diffstat (limited to 'platform-paper')
-rw-r--r--platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/LunaticChat.kt14
-rw-r--r--platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/ConfigManager.kt59
-rw-r--r--platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/LunaticChatConfiguration.kt12
-rw-r--r--platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/FeaturesConfig.kt6
-rw-r--r--platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/MessageFormatConfig.kt7
-rw-r--r--platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/config/key/VelocityConfig.kt8
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,
+)