summaryrefslogtreecommitdiff
path: root/platform-paper
diff options
context:
space:
mode:
authorSho Sakuma <me@m1sk9.dev>2026-01-10 11:07:10 +0900
committerSho Sakuma <me@m1sk9.dev>2026-01-10 11:07:10 +0900
commitfc0f37a3d48203e5efd2f10aa9f4cff2e7a49a78 (patch)
tree0ebe3e0a8a8d200dc885bbb6805e7d1dfce970a8 /platform-paper
parent13a1f6808ce5c84bd744e3873cb21f9c4730534e (diff)
downloadLunaticChat-fc0f37a3d48203e5efd2f10aa9f4cff2e7a49a78.tar.gz
LunaticChat-fc0f37a3d48203e5efd2f10aa9f4cff2e7a49a78.tar.bz2
LunaticChat-fc0f37a3d48203e5efd2f10aa9f4cff2e7a49a78.zip
feat: Add manager register
Diffstat (limited to 'platform-paper')
-rw-r--r--platform-paper/src/main/kotlin/dev/m1sk9/lunaticChat/paper/LunaticChat.kt44
1 files changed, 42 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 00f2eb9..141c620 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
@@ -6,9 +6,16 @@ import dev.m1sk9.lunaticChat.paper.command.impl.ReplyCommand
import dev.m1sk9.lunaticChat.paper.command.impl.TellCommand
import dev.m1sk9.lunaticChat.paper.common.SpyPermissionManager
import dev.m1sk9.lunaticChat.paper.config.ConfigManager
+import dev.m1sk9.lunaticChat.paper.converter.ConversionCache
+import dev.m1sk9.lunaticChat.paper.converter.GoogleIMEClient
+import dev.m1sk9.lunaticChat.paper.converter.RomanjiConverter
+import dev.m1sk9.lunaticChat.paper.listener.PlayerChatListener
import dev.m1sk9.lunaticChat.paper.listener.PlayerPresenceListener
+import io.ktor.client.HttpClient
+import io.ktor.client.engine.cio.CIO
import org.bukkit.event.Listener
import org.bukkit.plugin.java.JavaPlugin
+import kotlin.time.Duration.Companion.milliseconds
class LunaticChat :
JavaPlugin(),
@@ -16,6 +23,7 @@ class LunaticChat :
lateinit var directMessageHandler: DirectMessageHandler
private lateinit var commandRegistry: CommandRegistry
+ private lateinit var romajiConverter: RomanjiConverter
override fun onEnable() {
saveDefaultConfig()
@@ -26,18 +34,50 @@ class LunaticChat :
logger.info("Debug: $lunaticChatConfiguration")
}
+ val cache =
+ ConversionCache(
+ cacheFile = dataFolder.resolve("conversion_cache.json").toPath(),
+ maxEntries = lunaticChatConfiguration.features.japaneseConversion.cacheMaxEntries,
+ plugin = this,
+ logger = logger,
+ )
+ cache.loadFromDisk()
+
+ val httpClient = HttpClient(CIO)
+ val apiClient =
+ GoogleIMEClient(
+ timeout = lunaticChatConfiguration.features.japaneseConversion.apiTimeout.milliseconds,
+ httpClient = httpClient,
+ )
+ romajiConverter = RomanjiConverter(cache, apiClient, logger)
+
+ val saveInterval = lunaticChatConfiguration.features.japaneseConversion.cacheSaveIntervalSeconds * 20L
+ server.scheduler.runTaskTimerAsynchronously(
+ this,
+ Runnable {
+ cache.saveToDisk()
+ },
+ saveInterval,
+ saveInterval,
+ )
+
directMessageHandler = DirectMessageHandler()
commandRegistry =
CommandRegistry(this)
.registerAll(
TellCommand(this, directMessageHandler),
- ReplyCommand(this, directMessageHandler),
)
+ if (lunaticChatConfiguration.features.quickRepliesEnabled.enabled) {
+ commandRegistry.registerAll(
+ ReplyCommand(this, directMessageHandler),
+ )
+ }
commandRegistry.initialize()
server.pluginManager.registerEvents(SpyPermissionManager, this)
- server.pluginManager.registerEvents(PlayerPresenceListener(), this)
+ server.pluginManager.registerEvents(PlayerPresenceListener(this), this)
+ server.pluginManager.registerEvents(PlayerChatListener(romajiConverter), this)
logger.info("LunaticChat enabled.")
}