diff options
| author | Sho Sakuma <me@m1sk9.dev> | 2026-01-10 11:07:10 +0900 |
|---|---|---|
| committer | Sho Sakuma <me@m1sk9.dev> | 2026-01-10 11:07:10 +0900 |
| commit | fc0f37a3d48203e5efd2f10aa9f4cff2e7a49a78 (patch) | |
| tree | 0ebe3e0a8a8d200dc885bbb6805e7d1dfce970a8 /platform-paper | |
| parent | 13a1f6808ce5c84bd744e3873cb21f9c4730534e (diff) | |
| download | LunaticChat-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.kt | 44 |
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.") } |
