| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- * Copyright 2020 Mamoe Technologies and contributors.
- *
- * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
- * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
- *
- * https://github.com/mamoe/mirai/blob/master/LICENSE
- */
- package net.mamoe.mirai.console.terminal
- import kotlinx.coroutines.runBlocking
- import net.mamoe.mirai.Bot
- import net.mamoe.mirai.console.MiraiConsole
- import net.mamoe.mirai.console.extensions.BotConfigurationAlterer
- import net.mamoe.mirai.console.logging.LoggerController
- import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescription
- import net.mamoe.mirai.console.plugin.jvm.KotlinPlugin
- import net.mamoe.mirai.utils.MiraiLogger
- import net.mamoe.mirai.utils.SimpleLogger
- import java.io.File
- fun main() {
- configureUserDir()
- val terminal = object : MiraiConsoleImplementationTerminal() {
- override val loggerController: LoggerController = object : LoggerController {
- override fun shouldLog(identity: String?, priority: SimpleLogger.LogPriority): Boolean = true
- }
- }
- val mockPlugin = object : KotlinPlugin(JvmPluginDescription("org.test.test", "1.0.0")) {}
- terminal.backendAccess.globalComponentStorage.contribute(
- BotConfigurationAlterer,
- mockPlugin,
- BotConfigurationAlterer { _, configuration ->
- configuration.networkLoggerSupplier = { MiraiLogger.Factory.create(Bot::class, "Net.${it.id}") } // deploy
- configuration
- }
- )
- MiraiConsoleTerminalLoader.startAsDaemon(terminal)
- runCatching { runBlocking { MiraiConsole.job.join() } }
- }
- internal fun configureUserDir() {
- val projectDir = runCatching {
- File(".").resolve("frontend").resolve("mirai-console-terminal").takeIf { it.isDirectory }
- ?: File(".").resolve("mirai-console/frontend").resolve("mirai-console-terminal")
- }.getOrElse { return }
- if (projectDir.isDirectory) {
- val run = projectDir.resolve("run")
- run.mkdir()
- System.setProperty("user.dir", run.absolutePath)
- println("[Mirai Console] Set user.dir = ${run.absolutePath}")
- }
- }
|