From 68ca9a67e5832d11976596ee3195f20ff1a0737f Mon Sep 17 00:00:00 2001 From: Karlatemp Date: Fri, 4 Sep 2020 20:29:34 +0800 Subject: [PATCH 01/34] Plugin dependencies loading. --- .../internal/plugin/JarPluginLoaderImpl.kt | 5 +- .../internal/plugin/JvmPluginClassLoader.kt | 51 +++++++++++++++++++ 2 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt index 5683356c0..829f11ea3 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt @@ -26,6 +26,7 @@ import net.mamoe.mirai.utils.info import java.io.File import java.net.URLClassLoader import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.ConcurrentLinkedQueue internal object JarPluginLoaderImpl : AbstractFilePluginLoader(".jar"), @@ -43,7 +44,7 @@ internal object JarPluginLoaderImpl : override val dataStorage: PluginDataStorage get() = MiraiConsoleImplementationBridge.dataStorageForJarPluginLoader - internal val classLoaders: MutableList = mutableListOf() + internal val classLoaders: ConcurrentLinkedQueue = ConcurrentLinkedQueue() @Suppress("EXTENSION_SHADOWED_BY_MEMBER") // doesn't matter override val JvmPlugin.description: JvmPluginDescription @@ -70,7 +71,7 @@ internal object JarPluginLoaderImpl : val filePlugins = this.filterNot { pluginFileToInstanceMap.containsKey(it) }.associateWith { - URLClassLoader(arrayOf(it.toURI().toURL()), MiraiConsole::class.java.classLoader) + JvmPluginClassLoader(arrayOf(it.toURI().toURL()), MiraiConsole::class.java.classLoader, classLoaders) }.onEach { (_, classLoader) -> classLoaders.add(classLoader) }.asSequence().findAllInstances().onEach { loaded -> diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt new file mode 100644 index 000000000..608308c5f --- /dev/null +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt @@ -0,0 +1,51 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + * + */ + +@file:Suppress("MemberVisibilityCanBePrivate") + +package net.mamoe.mirai.console.internal.plugin + +import java.net.URL +import java.net.URLClassLoader +import java.util.concurrent.ConcurrentHashMap + +internal class JvmPluginClassLoader( + urls: Array, + parent: ClassLoader?, + val classloaders: Collection +) : URLClassLoader(urls, parent) { + private val cache = ConcurrentHashMap>() + + companion object { + init { + ClassLoader.registerAsParallelCapable() + } + } + + // private val + + override fun findClass(name: String): Class<*> { + return findClass(name, false) ?: throw ClassNotFoundException(name) + } + + internal fun findClass(name: String, disableGlobal: Boolean): Class<*>? { + val cachedClass = cache[name] + if (cachedClass != null) return cachedClass + kotlin.runCatching { return super.findClass(name).also { cache[name] = it } } + if (disableGlobal) + return null + classloaders.forEach { otherClassloader -> + if (otherClassloader === this) return@forEach + val otherClass = otherClassloader.findClass(name, true) + if (otherClass != null) return otherClass + } + return null + } +} \ No newline at end of file From 9c832f0afadc67f6b9bb5a6aeb74014ad330a055 Mon Sep 17 00:00:00 2001 From: Karlatemp Date: Thu, 10 Sep 2020 12:09:53 +0800 Subject: [PATCH 02/34] Export Manager --- .../internal/plugin/ExportManagerImpl.kt | 89 +++++++++++++++++++ .../internal/plugin/JarPluginLoaderImpl.kt | 21 ++++- .../internal/plugin/JvmPluginClassLoader.kt | 10 ++- .../mirai/console/plugin/jvm/ExportManager.kt | 24 +++++ 4 files changed, 139 insertions(+), 5 deletions(-) create mode 100644 backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt create mode 100644 backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt new file mode 100644 index 000000000..262dcc670 --- /dev/null +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2018-2020 Karlatemp. All rights reserved. + * @author Karlatemp + * + * LuckPerms-Mirai/mirai-console.mirai-console.main/ExportManagerImpl.kt + * + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * + * https://github.com/Karlatemp/LuckPerms-Mirai/blob/master/LICENSE + */ + +package net.mamoe.mirai.console.internal.plugin + +import net.mamoe.mirai.console.plugin.jvm.ExportManager + +internal class ExportManagerImpl( + private val rules: List<(String) -> Boolean?> +) : ExportManager { + + override fun isExported(className: String): Boolean { + rules.forEach { + val result = it(className) + if (result != null) return@isExported result + } + return true + } + + companion object { + fun parse(lines: Iterator): ExportManagerImpl { + val rules = ArrayList<(String) -> Boolean?>() + lines.forEach { line -> + val trimed = line.trim() + if (trimed.isEmpty()) return@forEach + if (trimed[0] == '#') return@forEach + val command: String + val argument: String + kotlin.run { + val splitter = trimed.indexOf(' ') + if (splitter == -1) { + command = trimed + argument = "" + } else { + command = trimed.substring(0, splitter) + argument = trimed.substring(splitter + 1) + } + } + when (command) { + "export" -> { + if (argument.isBlank()) { + rules.add { true } + } else { + if (argument.endsWith(".")) { + rules.add { + if (it.startsWith(argument)) true else null + } + } else { + rules.add { + if (it == argument) true else null + } + } + } + } + "deny", "internal", "hidden" -> { + if (argument.isBlank()) { + rules.add { false } + } else { + if (argument.endsWith(".")) { + rules.add { + if (it.startsWith(argument)) false else null + } + } else { + rules.add { + if (it == argument) false else null + } + } + } + } + "export-all" -> { + rules.add { true } + } + "deny-all", "hidden-all" -> { + rules.add { false } + } + } + } + return ExportManagerImpl(rules) + } + } +} \ No newline at end of file diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt index ffcb6e9e3..228fca149 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt @@ -23,7 +23,6 @@ import net.mamoe.mirai.console.plugin.jvm.* import net.mamoe.mirai.console.util.CoroutineScopeUtils.childScope import net.mamoe.mirai.utils.MiraiLogger import java.io.File -import java.net.URLClassLoader import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentLinkedQueue @@ -54,15 +53,29 @@ internal object JarPluginLoaderImpl : override fun Sequence.extractPlugins(): List { ensureActive() - fun Sequence>.findAllInstances(): Sequence> { + fun Sequence>.findAllInstances(): Sequence> { return map { (f, pluginClassLoader) -> - f to pluginClassLoader.findServices( + val exportManagers = pluginClassLoader.findServices( + ExportManager::class + ).loadAllServices() + if (exportManagers.isEmpty()) { + val rules = pluginClassLoader.getResourceAsStream("export-rules.txt") + if (rules == null) + pluginClassLoader.declaredFilter = StandardExportManagers.AllExported + else rules.bufferedReader(Charsets.UTF_8).useLines { + pluginClassLoader.declaredFilter = ExportManagerImpl.parse(it.iterator()) + } + } else { + pluginClassLoader.declaredFilter = exportManagers[0] + } + f to (pluginClassLoader.findServices( JvmPlugin::class, KotlinPlugin::class, AbstractJvmPlugin::class, JavaPlugin::class - ).loadAllServices() + ).loadAllServices()) }.flatMap { (f, list) -> + list.associateBy { f }.asSequence() } } diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt index 608308c5f..5e812fea7 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt @@ -12,6 +12,7 @@ package net.mamoe.mirai.console.internal.plugin +import net.mamoe.mirai.console.plugin.jvm.ExportManager import java.net.URL import java.net.URLClassLoader import java.util.concurrent.ConcurrentHashMap @@ -22,6 +23,7 @@ internal class JvmPluginClassLoader( val classloaders: Collection ) : URLClassLoader(urls, parent) { private val cache = ConcurrentHashMap>() + internal var declaredFilter: ExportManager? = null companion object { init { @@ -43,9 +45,15 @@ internal class JvmPluginClassLoader( return null classloaders.forEach { otherClassloader -> if (otherClassloader === this) return@forEach + val filter = otherClassloader.declaredFilter + if (filter != null) { + if (!filter.isExported(name)) { + return@forEach + } + } val otherClass = otherClassloader.findClass(name, true) if (otherClass != null) return otherClass } return null } -} \ No newline at end of file +} diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt new file mode 100644 index 000000000..1138747d6 --- /dev/null +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt @@ -0,0 +1,24 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + +package net.mamoe.mirai.console.plugin.jvm + +public fun interface ExportManager { + public fun isExported(className: String): Boolean +} + +public object StandardExportManagers { + public object AllExported : ExportManager { + override fun isExported(className: String): Boolean = true + } + + public object AllDenied : ExportManager { + override fun isExported(className: String): Boolean = false + } +} \ No newline at end of file From 58970e6308eaee58d0bb09d4837fab9ed73f4c04 Mon Sep 17 00:00:00 2001 From: Karlatemp Date: Fri, 11 Sep 2020 12:53:56 +0800 Subject: [PATCH 03/34] Fix Multiple-ClassLoader Classes Loading --- .../internal/plugin/JarPluginLoaderImpl.kt | 2 +- .../internal/plugin/JvmPluginClassLoader.kt | 77 +++++++++++++++---- 2 files changed, 61 insertions(+), 18 deletions(-) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt index 228fca149..64b689fd3 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JarPluginLoaderImpl.kt @@ -83,7 +83,7 @@ internal object JarPluginLoaderImpl : val filePlugins = this.filterNot { pluginFileToInstanceMap.containsKey(it) }.associateWith { - JvmPluginClassLoader(arrayOf(it.toURI().toURL()), MiraiConsole::class.java.classLoader, classLoaders) + JvmPluginClassLoader(it, arrayOf(it.toURI().toURL()), MiraiConsole::class.java.classLoader, classLoaders) }.onEach { (_, classLoader) -> classLoaders.add(classLoader) }.asSequence().findAllInstances().onEach { diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt index 5e812fea7..bde482fb2 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt @@ -17,43 +17,86 @@ import java.net.URL import java.net.URLClassLoader import java.util.concurrent.ConcurrentHashMap +internal class LoadingDeniedException(name: String) : ClassNotFoundException(name) + internal class JvmPluginClassLoader( + val source: Any, urls: Array, parent: ClassLoader?, - val classloaders: Collection + val classLoaders: Collection ) : URLClassLoader(urls, parent) { + override fun toString(): String { + return "JvmPluginClassLoader{source=$source}" + } + private val cache = ConcurrentHashMap>() internal var declaredFilter: ExportManager? = null companion object { + val loadingLock = ConcurrentHashMap() + init { ClassLoader.registerAsParallelCapable() } } - // private val - override fun findClass(name: String): Class<*> { - return findClass(name, false) ?: throw ClassNotFoundException(name) + synchronized(kotlin.run { + val lock = Any() + loadingLock.putIfAbsent(name, lock) ?: lock + }) { + return findClass(name, false) ?: throw ClassNotFoundException(name) + } } internal fun findClass(name: String, disableGlobal: Boolean): Class<*>? { val cachedClass = cache[name] - if (cachedClass != null) return cachedClass - kotlin.runCatching { return super.findClass(name).also { cache[name] = it } } - if (disableGlobal) - return null - classloaders.forEach { otherClassloader -> - if (otherClassloader === this) return@forEach - val filter = otherClassloader.declaredFilter - if (filter != null) { - if (!filter.isExported(name)) { - return@forEach + if (cachedClass != null) { + if (disableGlobal) { + val filter = declaredFilter + if (filter != null && !filter.isExported(name)) { + throw LoadingDeniedException(name) } } - val otherClass = otherClassloader.findClass(name, true) - if (otherClass != null) return otherClass + return cachedClass + } + if (disableGlobal) + return kotlin.runCatching { + super.findClass(name).also { cache[name] = it } + }.getOrElse { + if (it is ClassNotFoundException) null + else throw it + }?.also { + val filter = declaredFilter + if (filter != null && !filter.isExported(name)) { + throw LoadingDeniedException(name) + } + } + + classLoaders.forEach { otherClassloader -> + if (otherClassloader === this) return@forEach + val filter = otherClassloader.declaredFilter + if (otherClassloader.cache.containsKey(name)) { + return if (filter == null || filter.isExported(name)) { + otherClassloader.cache[name] + } else throw LoadingDeniedException("$name was not exported by $otherClassloader") + } + } + + return kotlin.runCatching { super.findClass(name).also { cache[name] = it } }.getOrElse { + if (it is ClassNotFoundException) { + classLoaders.forEach { otherClassloader -> + if (otherClassloader === this) return@forEach + val other = kotlin.runCatching { + otherClassloader.findClass(name, true) + }.getOrElse { err -> + if (err is LoadingDeniedException || err !is ClassNotFoundException) throw it + null + } + if (other != null) return other + } + } + throw it } - return null } } From aa032a145fdd28b209227a2c310622b7e1e7ee9f Mon Sep 17 00:00:00 2001 From: Karlatemp Date: Sun, 13 Sep 2020 12:39:46 +0800 Subject: [PATCH 04/34] Code Review - Add comments. - Use when not if. - Add docs --- .../plugin/BuiltInJvmPluginLoaderImpl.kt | 5 +- .../internal/plugin/ExportManagerImpl.kt | 73 ++++++++----------- .../internal/plugin/JvmPluginClassLoader.kt | 34 +++++++-- .../mirai/console/plugin/jvm/ExportManager.kt | 61 +++++++++++++++- docs/Plugins.md | 52 +++++++++++++ 5 files changed, 170 insertions(+), 55 deletions(-) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt index 31d591797..2fc247161 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt @@ -42,7 +42,7 @@ internal object BuiltInJvmPluginLoaderImpl : override val dataStorage: PluginDataStorage get() = MiraiConsoleImplementationBridge.dataStorageForJvmPluginLoader - internal val classLoaders: ConcurrentLinkedQueue = ConcurrentLinkedQueue() + internal val classLoaders: MutableList = mutableListOf() @Suppress("EXTENSION_SHADOWED_BY_MEMBER") // doesn't matter override fun getPluginDescription(plugin: JvmPlugin): JvmPluginDescription = plugin.description @@ -53,7 +53,7 @@ internal object BuiltInJvmPluginLoaderImpl : ensureActive() fun Sequence>.findAllInstances(): Sequence> { - return map { (f, pluginClassLoader) -> + return onEach { (_, pluginClassLoader) -> val exportManagers = pluginClassLoader.findServices( ExportManager::class ).loadAllServices() @@ -67,6 +67,7 @@ internal object BuiltInJvmPluginLoaderImpl : } else { pluginClassLoader.declaredFilter = exportManagers[0] } + }.map { (f, pluginClassLoader) -> f to (pluginClassLoader.findServices( JvmPlugin::class, KotlinPlugin::class, diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt index 262dcc670..37073cc88 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt @@ -26,61 +26,46 @@ internal class ExportManagerImpl( } companion object { + @JvmStatic fun parse(lines: Iterator): ExportManagerImpl { val rules = ArrayList<(String) -> Boolean?>() - lines.forEach { line -> - val trimed = line.trim() - if (trimed.isEmpty()) return@forEach - if (trimed[0] == '#') return@forEach - val command: String - val argument: String - kotlin.run { - val splitter = trimed.indexOf(' ') - if (splitter == -1) { - command = trimed - argument = "" - } else { - command = trimed.substring(0, splitter) - argument = trimed.substring(splitter + 1) - } - } + lines.asSequence().map { it.trim() }.filter { it.isNotBlank() }.filterNot { + it[0] == '#' + }.forEach { line -> + val command = line.substringBefore(' ') + val argument = line.substringAfter(' ', missingDelimiterValue = "").trim() + when (command) { "export" -> { - if (argument.isBlank()) { - rules.add { true } - } else { - if (argument.endsWith(".")) { - rules.add { - if (it.startsWith(argument)) true else null - } - } else { - rules.add { - if (it == argument) true else null - } + when { + // export-all + argument.isBlank() -> rules.add { true } + // export package + argument.endsWith(".") -> rules.add { + if (it.startsWith(argument)) true else null + } + // export class + else -> rules.add { + if (it == argument) true else null } } } "deny", "internal", "hidden" -> { - if (argument.isBlank()) { - rules.add { false } - } else { - if (argument.endsWith(".")) { - rules.add { - if (it.startsWith(argument)) false else null - } - } else { - rules.add { - if (it == argument) false else null - } + when { + // deny-all + argument.isBlank() -> rules.add { false } + // deny package + argument.endsWith(".") -> rules.add { + if (it.startsWith(argument)) false else null + } + // deny class + else -> rules.add { + if (it == argument) false else null } } } - "export-all" -> { - rules.add { true } - } - "deny-all", "hidden-all" -> { - rules.add { false } - } + "export-all" -> rules.add { true } + "deny-all", "hidden-all" -> rules.add { false } } } return ExportManagerImpl(rules) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt index bde482fb2..9154ba714 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt @@ -50,6 +50,7 @@ internal class JvmPluginClassLoader( } internal fun findClass(name: String, disableGlobal: Boolean): Class<*>? { + // First. Try direct load in cache. val cachedClass = cache[name] if (cachedClass != null) { if (disableGlobal) { @@ -60,19 +61,30 @@ internal class JvmPluginClassLoader( } return cachedClass } - if (disableGlobal) + if (disableGlobal) { + // ==== Process Loading Request From JvmPluginClassLoader ==== + // + // If load from other classloader, + // means no other loaders are cached. + // direct load return kotlin.runCatching { super.findClass(name).also { cache[name] = it } }.getOrElse { if (it is ClassNotFoundException) null else throw it }?.also { + // This request is from other classloader, + // so we need to check the class is exported or not. val filter = declaredFilter if (filter != null && !filter.isExported(name)) { throw LoadingDeniedException(name) } } + } + // ==== Process Loading Request From JDK ClassLoading System ==== + + // First. scan other classLoaders's caches classLoaders.forEach { otherClassloader -> if (otherClassloader === this) return@forEach val filter = otherClassloader.declaredFilter @@ -83,20 +95,26 @@ internal class JvmPluginClassLoader( } } - return kotlin.runCatching { super.findClass(name).also { cache[name] = it } }.getOrElse { - if (it is ClassNotFoundException) { + // If no cache... + return kotlin.runCatching { + // Try load this class direct.... + super.findClass(name).also { cache[name] = it } + }.getOrElse { exception -> + if (exception is ClassNotFoundException) { + // Cannot load the class from this, try others. classLoaders.forEach { otherClassloader -> if (otherClassloader === this) return@forEach val other = kotlin.runCatching { otherClassloader.findClass(name, true) - }.getOrElse { err -> - if (err is LoadingDeniedException || err !is ClassNotFoundException) throw it - null - } + }.onFailure { err -> + if (err is LoadingDeniedException || err !is ClassNotFoundException) + throw err + }.getOrNull() if (other != null) return other } } - throw it + // Great, nobody known what is the class. + throw exception } } } diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt index 1138747d6..c9c20544f 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt @@ -9,7 +9,61 @@ package net.mamoe.mirai.console.plugin.jvm -public fun interface ExportManager { +import net.mamoe.mirai.console.internal.plugin.ExportManagerImpl + +/** + * 插件的类导出管理器 + * + * 我们允许插件将一些内部实现hidden起来, 避免其他插件调用, 要启动这个特性, + * 只需要在你的 resources 文件夹创建名为 `export-rules.txt` 的规则文件,便可以控制插件的类的公开规则 + * + * Example: + * ```text + * + * # #开头的行我们都识别为注释, 你可以在规则文件里面写很多注释 + * + * # export 运行插件访问一个类, 或者一个包 + * + * # 导出了一个internal包的一个类 + * export org.example.miraiconsole.myplugin.internal.OpenInternal + * + * # 导出了整个 api 包, 导出包和导出类的区别就是末尾是否存在 . 号 + * export org.example.miraiconsole.myplugin.api. + * + * # deny, 不允许其他插件使用这个包, 要隐藏一个包的时候, 注意不要忘记最后的 . 号 + * # + * # 别名: hidden, internal + * deny org.example.miraiconsole.myplugin.internal. + * + * # 这条规则不会生效, 因为在这条规则前已经被上面的 deny 给隐藏了 + * export org.example.miraiconsole.myplugin.internal.NotOpenInternal + * + * + * # export-all, 导出全部内容, 当然在此规则之前的deny依然会生效 + * # 使用此规则会同时让此规则后的所有规则全部失效 + * # export-all + * + * # 拒绝其他插件使用任何类, 除了之前已经explort的 + * # 此规则会导致后面的所有规则全部失效 + * deny-all + * + * ``` + * + * 插件也可以通过 Service 来自定义导出控制 + * + * Example: + * ``` + * @AutoService(ExportManager::class) + * object MyExportManager: ExportManager { + * override fun isExported(className: String): Boolean { + * println(" <== $className") + * return true + * } + * } + * ``` + * + */ +public interface ExportManager { public fun isExported(className: String): Boolean } @@ -21,4 +75,9 @@ public object StandardExportManagers { public object AllDenied : ExportManager { override fun isExported(className: String): Boolean = false } + + @JvmStatic + public fun parse(lines: Iterator): ExportManager { + return ExportManagerImpl.parse(lines) + } } \ No newline at end of file diff --git a/docs/Plugins.md b/docs/Plugins.md index f04beb5f7..32f6de3f4 100644 --- a/docs/Plugins.md +++ b/docs/Plugins.md @@ -16,6 +16,8 @@ [`PluginConfig`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginConfig.kt [`PluginDataStorage`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt +[`ExportManager`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt + [`MiraiConsole`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsole.kt [`MiraiConsoleImplementation`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt @@ -160,6 +162,56 @@ public final class JExample extends JavaPlugin { 多个插件的加载是*顺序的*,意味着若一个插件的 `onLoad()` 等回调处理缓慢,后续插件的加载也会被延后,即使它们可能没有依赖关系。 因此请尽量让 `onLoad()`,`onEnable()`,`onDisable()`快速返回。 +### API 导出管理 + +我们允许插件将一些内部实现hidden起来, 避免其他插件调用, 要启动这个特性, +只需要在你的 resources 文件夹创建名为 `export-rules.txt` 的规则文件,便可以控制插件的类的公开规则 + +Example: +```text + +# #开头的行我们都识别为注释, 你可以在规则文件里面写很多注释 + +# export 运行插件访问一个类, 或者一个包 + +# 导出了一个internal包的一个类 +export org.example.miraiconsole.myplugin.internal.OpenInternal + +# 导出了整个 api 包, 导出包和导出类的区别就是末尾是否存在 . 号 +export org.example.miraiconsole.myplugin.api. + +# deny, 不允许其他插件使用这个包, 要隐藏一个包的时候, 注意不要忘记最后的 . 号 +# +# 别名: hidden, internal +deny org.example.miraiconsole.myplugin.internal. + +# 这条规则不会生效, 因为在这条规则前已经被上面的 deny 给隐藏了 +export org.example.miraiconsole.myplugin.internal.NotOpenInternal + + +# export-all, 导出全部内容, 当然在此规则之前的deny依然会生效 +# 使用此规则会同时让此规则后的所有规则全部失效 +# export-all + +# 拒绝其他插件使用任何类, 除了之前已经explort的 +# 此规则会导致后面的所有规则全部失效 +deny-all + +``` + +插件也可以通过 Service 来自定义导出控制 + +Example: +```kotlin +@AutoService(ExportManager::class) +object MyExportManager: ExportManager { + override fun isExported(className: String): Boolean { + println(" <== $className") + return true + } +} +``` + ### 插件生命周期 Mirai Console 不提供热加载和热卸载功能,所有插件只能在服务器启动前加载,在服务器结束时卸载。([为什么不支持热加载和卸载插件?]) From 106704a0106b245aeea86bea1afa07b3739a37a4 Mon Sep 17 00:00:00 2001 From: Karlatemp Date: Thu, 17 Sep 2020 12:35:39 +0800 Subject: [PATCH 05/34] Update ExportManager --- .../internal/plugin/ExportManagerImpl.kt | 46 +++++------- .../mirai/console/plugin/jvm/ExportManager.kt | 71 +++++++++++-------- docs/Plugins.md | 53 +++++++++----- 3 files changed, 94 insertions(+), 76 deletions(-) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt index 37073cc88..008723470 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt @@ -28,6 +28,8 @@ internal class ExportManagerImpl( companion object { @JvmStatic fun parse(lines: Iterator): ExportManagerImpl { + fun Boolean.without(value: Boolean) = if (this == value) null else this + val rules = ArrayList<(String) -> Boolean?>() lines.asSequence().map { it.trim() }.filter { it.isNotBlank() }.filterNot { it[0] == '#' @@ -36,36 +38,24 @@ internal class ExportManagerImpl( val argument = line.substringAfter(' ', missingDelimiterValue = "").trim() when (command) { - "export" -> { - when { - // export-all - argument.isBlank() -> rules.add { true } - // export package - argument.endsWith(".") -> rules.add { - if (it.startsWith(argument)) true else null - } - // export class - else -> rules.add { - if (it == argument) true else null - } - } + "exports", "export-package" -> rules.add { + it.startsWith(argument).without(false) } - "deny", "internal", "hidden" -> { - when { - // deny-all - argument.isBlank() -> rules.add { false } - // deny package - argument.endsWith(".") -> rules.add { - if (it.startsWith(argument)) false else null - } - // deny class - else -> rules.add { - if (it == argument) false else null - } - } + "export", "export-class" -> rules.add { + (it == argument).without(false) } - "export-all" -> rules.add { true } - "deny-all", "hidden-all" -> rules.add { false } + "protects", "protect-package" -> rules.add { + if (it.startsWith(argument)) + false + else null + } + "protect", "protect-class" -> rules.add { + if (it == argument) + false + else null + } + "export-all", "export-plugin", "export-system" -> rules.add { true } + "protect-all", "protect-plugin", "protect-system" -> rules.add { false } } } return ExportManagerImpl(rules) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt index c9c20544f..431b3b0e9 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt @@ -10,72 +10,83 @@ package net.mamoe.mirai.console.plugin.jvm import net.mamoe.mirai.console.internal.plugin.ExportManagerImpl +import net.mamoe.mirai.console.util.ConsoleExperimentalApi /** * 插件的类导出管理器 * - * 我们允许插件将一些内部实现hidden起来, 避免其他插件调用, 要启动这个特性, - * 只需要在你的 resources 文件夹创建名为 `export-rules.txt` 的规则文件,便可以控制插件的类的公开规则 + * + * 允许插件将一些内部实现保护起来, 避免其他插件调用, 要启动这个特性, + * 只需要创建名为 `export-rules.txt` 的规则文件,便可以控制插件的类的公开规则。 + * + * 如果正在使用 `Gradle` 项目, 该规则文件一般位于 `src/main/resources` 下 * * Example: * ```text * - * # #开头的行我们都识别为注释, 你可以在规则文件里面写很多注释 + * # #开头的行全部识别为注释 * - * # export 运行插件访问一个类, 或者一个包 + * # export, 允许其他插件直接使用某个类 * * # 导出了一个internal包的一个类 - * export org.example.miraiconsole.myplugin.internal.OpenInternal - * - * # 导出了整个 api 包, 导出包和导出类的区别就是末尾是否存在 . 号 - * export org.example.miraiconsole.myplugin.api. - * - * # deny, 不允许其他插件使用这个包, 要隐藏一个包的时候, 注意不要忘记最后的 . 号 * # - * # 别名: hidden, internal - * deny org.example.miraiconsole.myplugin.internal. + * # 别名: export-class + * export org.example.miraiconsole.myplugin.internal.OpenInternal + * # 可以使用别名 + * export-class org.example.miraiconsole.myplugin.internal.OpenInternal * - * # 这条规则不会生效, 因为在这条规则前已经被上面的 deny 给隐藏了 + * # 导出了整个 api 包 + * # + * # 别名: export-package + * exports org.example.miraiconsole.myplugin.api + * + * # 保护 org.example.miraiconsole.myplugin.api2.Internal, 不允许其他插件直接使用 + * # + * # 别名: protect-class + * protect org.example.miraiconsole.myplugin.api2.Internal + * + * # 保护整个包 + * # + * # 别名: protect-package + * protects org.example.miraiconsole.myplugin.internal + * + * # 此规则不会生效, 因为在此条规则之前, + * # org.example.miraiconsole.myplugin.internal 已经被加入到保护域中 * export org.example.miraiconsole.myplugin.internal.NotOpenInternal * * - * # export-all, 导出全部内容, 当然在此规则之前的deny依然会生效 + * # export-plugin, 允许其他插件使用除了已经被保护的全部类 * # 使用此规则会同时让此规则后的所有规则全部失效 - * # export-all + * # 别名: export-all, export-system + * # export-plugin * - * # 拒绝其他插件使用任何类, 除了之前已经explort的 - * # 此规则会导致后面的所有规则全部失效 - * deny-all * - * ``` + * # 将整个插件放入保护域中 + * # 除了此规则之前显式 export 的类, 其他插件将不允许直接使用被保护的插件的任何类 + * # 别名: protect-all, protect-system + * protect-plugin * - * 插件也可以通过 Service 来自定义导出控制 - * - * Example: - * ``` - * @AutoService(ExportManager::class) - * object MyExportManager: ExportManager { - * override fun isExported(className: String): Boolean { - * println(" <== $className") - * return true - * } - * } * ``` * */ +@ConsoleExperimentalApi public interface ExportManager { public fun isExported(className: String): Boolean } +@ConsoleExperimentalApi public object StandardExportManagers { + @ConsoleExperimentalApi public object AllExported : ExportManager { override fun isExported(className: String): Boolean = true } + @ConsoleExperimentalApi public object AllDenied : ExportManager { override fun isExported(className: String): Boolean = false } + @ConsoleExperimentalApi @JvmStatic public fun parse(lines: Iterator): ExportManager { return ExportManagerImpl.parse(lines) diff --git a/docs/Plugins.md b/docs/Plugins.md index 32f6de3f4..a74a4d6bc 100644 --- a/docs/Plugins.md +++ b/docs/Plugins.md @@ -164,38 +164,55 @@ public final class JExample extends JavaPlugin { ### API 导出管理 -我们允许插件将一些内部实现hidden起来, 避免其他插件调用, 要启动这个特性, -只需要在你的 resources 文件夹创建名为 `export-rules.txt` 的规则文件,便可以控制插件的类的公开规则 +允许插件将一些内部实现保护起来, 避免其他插件调用, 要启动这个特性, +只需要创建名为 `export-rules.txt` 的规则文件,便可以控制插件的类的公开规则。 + +如果正在使用 `Gradle` 项目, 该规则文件一般位于 `src/main/resources` 下 Example: ```text -# #开头的行我们都识别为注释, 你可以在规则文件里面写很多注释 +# #开头的行全部识别为注释 -# export 运行插件访问一个类, 或者一个包 +# export, 允许其他插件直接使用某个类 # 导出了一个internal包的一个类 -export org.example.miraiconsole.myplugin.internal.OpenInternal - -# 导出了整个 api 包, 导出包和导出类的区别就是末尾是否存在 . 号 -export org.example.miraiconsole.myplugin.api. - -# deny, 不允许其他插件使用这个包, 要隐藏一个包的时候, 注意不要忘记最后的 . 号 # -# 别名: hidden, internal -deny org.example.miraiconsole.myplugin.internal. +# 别名: export-class +export org.example.miraiconsole.myplugin.internal.OpenInternal +# 可以使用别名 +export-class org.example.miraiconsole.myplugin.internal.OpenInternal -# 这条规则不会生效, 因为在这条规则前已经被上面的 deny 给隐藏了 +# 导出了整个 api 包 +# +# 别名: export-package +exports org.example.miraiconsole.myplugin.api + +# 保护 org.example.miraiconsole.myplugin.api2.Internal, 不允许其他插件直接使用 +# +# 别名: protect-class +protect org.example.miraiconsole.myplugin.api2.Internal + +# 保护整个包 +# +# 别名: protect-package +protects org.example.miraiconsole.myplugin.internal + +# 此规则不会生效, 因为在此条规则之前, +# org.example.miraiconsole.myplugin.internal 已经被加入到保护域中 export org.example.miraiconsole.myplugin.internal.NotOpenInternal -# export-all, 导出全部内容, 当然在此规则之前的deny依然会生效 +# export-plugin, 允许其他插件使用除了已经被保护的全部类 # 使用此规则会同时让此规则后的所有规则全部失效 -# export-all +# 别名: export-all, export-system +# export-plugin -# 拒绝其他插件使用任何类, 除了之前已经explort的 -# 此规则会导致后面的所有规则全部失效 -deny-all + +# 将整个插件放入保护域中 +# 除了此规则之前显式 export 的类, 其他插件将不允许直接使用被保护的插件的任何类 +# 别名: protect-all, protect-system +protect-plugin ``` From e02c559fb646d4e337acb609b58f43e6d3343d6d Mon Sep 17 00:00:00 2001 From: Karlatemp Date: Thu, 17 Sep 2020 12:48:22 +0800 Subject: [PATCH 06/34] Update KDoc --- .../net/mamoe/mirai/console/plugin/jvm/ExportManager.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt index 431b3b0e9..e99970c72 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt @@ -11,6 +11,7 @@ package net.mamoe.mirai.console.plugin.jvm import net.mamoe.mirai.console.internal.plugin.ExportManagerImpl import net.mamoe.mirai.console.util.ConsoleExperimentalApi +import kotlin.reflect.KClass /** * 插件的类导出管理器 @@ -71,6 +72,14 @@ import net.mamoe.mirai.console.util.ConsoleExperimentalApi */ @ConsoleExperimentalApi public interface ExportManager { + /** + * 如果 [className] 能够通过 [ExportManager] 的规则, 返回 true + * + * @param className [className] 是一个合法的满足 [ClassLoader] 的加载规则 的全限定名. + * [className] 不应该是数组的全限定名或者JVM基本类型的名字. + * See also: [ClassLoader.loadClass] + * [ClassLoader#name](https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html#name) + */ public fun isExported(className: String): Boolean } From 64c44295d3fac83e879883aac37365598e5ce798 Mon Sep 17 00:00:00 2001 From: Karlatemp Date: Sat, 10 Oct 2020 11:59:22 +0800 Subject: [PATCH 07/34] Resolve conflicts --- .../console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt | 3 +-- .../mirai/console/internal/plugin/JvmPluginClassLoader.kt | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt index 6a97d2b15..526496d73 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt @@ -24,7 +24,6 @@ import net.mamoe.mirai.console.util.CoroutineScopeUtils.childScope import net.mamoe.mirai.utils.MiraiLogger import java.io.File import java.util.concurrent.ConcurrentHashMap -import java.util.concurrent.ConcurrentLinkedQueue internal object BuiltInJvmPluginLoaderImpl : AbstractFilePluginLoader(".jar"), @@ -83,7 +82,7 @@ internal object BuiltInJvmPluginLoaderImpl : val filePlugins = this.filterNot { pluginFileToInstanceMap.containsKey(it) }.associateWith { - JvmPluginClassLoader(it, arrayOf(it.toURI().toURL()), MiraiConsole::class.java.classLoader, classLoaders) + JvmPluginClassLoader(it, MiraiConsole::class.java.classLoader, classLoaders) }.onEach { (_, classLoader) -> classLoaders.add(classLoader) }.asSequence().findAllInstances().onEach { diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt index 0e68e3951..f0c37166d 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt @@ -30,7 +30,7 @@ internal class JvmPluginClassLoader( // 因此无需 override getResourceAsStream override fun toString(): String { - return "JvmPluginClassLoader{source=$source}" + return "JvmPluginClassLoader{source=$file}" } private val cache = ConcurrentHashMap>() From 7e480c2de2bc72f5167988e5e4b91b07390498eb Mon Sep 17 00:00:00 2001 From: Karlatemp Date: Tue, 27 Oct 2020 12:49:05 +0800 Subject: [PATCH 08/34] Update ExportManager rule --- .../internal/plugin/ExportManagerImpl.kt | 17 ++++-------- .../mirai/console/plugin/jvm/ExportManager.kt | 27 ++++++++++++------- docs/Plugins.md | 13 +++------ 3 files changed, 26 insertions(+), 31 deletions(-) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt index 008723470..5797aece0 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt @@ -36,21 +36,14 @@ internal class ExportManagerImpl( }.forEach { line -> val command = line.substringBefore(' ') val argument = line.substringAfter(' ', missingDelimiterValue = "").trim() + val argumentPackage = "$argument." when (command) { - "exports", "export-package" -> rules.add { - it.startsWith(argument).without(false) + "exports" -> rules.add { + (it == argument || it.startsWith(argumentPackage)).without(false) } - "export", "export-class" -> rules.add { - (it == argument).without(false) - } - "protects", "protect-package" -> rules.add { - if (it.startsWith(argument)) - false - else null - } - "protect", "protect-class" -> rules.add { - if (it == argument) + "protects" -> rules.add { + if (it == argument || it.startsWith(argumentPackage)) false else null } diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt index e99970c72..1c2626720 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt @@ -11,7 +11,6 @@ package net.mamoe.mirai.console.plugin.jvm import net.mamoe.mirai.console.internal.plugin.ExportManagerImpl import net.mamoe.mirai.console.util.ConsoleExperimentalApi -import kotlin.reflect.KClass /** * 插件的类导出管理器 @@ -27,24 +26,19 @@ import kotlin.reflect.KClass * * # #开头的行全部识别为注释 * - * # export, 允许其他插件直接使用某个类 + * # exports, 允许其他插件直接使用某个类 * * # 导出了一个internal包的一个类 * # - * # 别名: export-class - * export org.example.miraiconsole.myplugin.internal.OpenInternal - * # 可以使用别名 - * export-class org.example.miraiconsole.myplugin.internal.OpenInternal + * exports org.example.miraiconsole.myplugin.internal.OpenInternal * * # 导出了整个 api 包 * # - * # 别名: export-package * exports org.example.miraiconsole.myplugin.api * * # 保护 org.example.miraiconsole.myplugin.api2.Internal, 不允许其他插件直接使用 * # - * # 别名: protect-class - * protect org.example.miraiconsole.myplugin.api2.Internal + * protects org.example.miraiconsole.myplugin.api2.Internal * * # 保护整个包 * # @@ -53,7 +47,7 @@ import kotlin.reflect.KClass * * # 此规则不会生效, 因为在此条规则之前, * # org.example.miraiconsole.myplugin.internal 已经被加入到保护域中 - * export org.example.miraiconsole.myplugin.internal.NotOpenInternal + * exports org.example.miraiconsole.myplugin.internal.NotOpenInternal * * * # export-plugin, 允许其他插件使用除了已经被保护的全部类 @@ -69,6 +63,19 @@ import kotlin.reflect.KClass * * ``` * + * 插件也可以通过 Service 来自定义导出控制 + * + * Example: + * ```kotlin + * @AutoService(ExportManager::class) + * object MyExportManager: ExportManager { + * override fun isExported(className: String): Boolean { + * println(" <== $className") + * return true + * } + * } + * ``` + * */ @ConsoleExperimentalApi public interface ExportManager { diff --git a/docs/Plugins.md b/docs/Plugins.md index a74a4d6bc..f472c8f30 100644 --- a/docs/Plugins.md +++ b/docs/Plugins.md @@ -174,24 +174,19 @@ Example: # #开头的行全部识别为注释 -# export, 允许其他插件直接使用某个类 +# exports, 允许其他插件直接使用某个类 # 导出了一个internal包的一个类 # -# 别名: export-class -export org.example.miraiconsole.myplugin.internal.OpenInternal -# 可以使用别名 -export-class org.example.miraiconsole.myplugin.internal.OpenInternal +exports org.example.miraiconsole.myplugin.internal.OpenInternal # 导出了整个 api 包 # -# 别名: export-package exports org.example.miraiconsole.myplugin.api # 保护 org.example.miraiconsole.myplugin.api2.Internal, 不允许其他插件直接使用 # -# 别名: protect-class -protect org.example.miraiconsole.myplugin.api2.Internal +protects org.example.miraiconsole.myplugin.api2.Internal # 保护整个包 # @@ -200,7 +195,7 @@ protects org.example.miraiconsole.myplugin.internal # 此规则不会生效, 因为在此条规则之前, # org.example.miraiconsole.myplugin.internal 已经被加入到保护域中 -export org.example.miraiconsole.myplugin.internal.NotOpenInternal +exports org.example.miraiconsole.myplugin.internal.NotOpenInternal # export-plugin, 允许其他插件使用除了已经被保护的全部类 From d2dffef44cf78ac9b49762ef6eb48512325e04e4 Mon Sep 17 00:00:00 2001 From: Him188 Date: Tue, 27 Oct 2020 20:39:38 +0800 Subject: [PATCH 09/34] 1.0-RC Code review --- .../mirai/console/MiraiConsoleImplementation.kt | 2 +- .../mamoe/mirai/console/command/AbstractCommand.kt | 14 ++++++++++---- .../net/mamoe/mirai/console/command/Command.kt | 3 +++ .../mirai/console/command/CommandExecuteResult.kt | 9 +++++++++ .../console/command/CommandExecutionException.kt | 6 ++---- .../mamoe/mirai/console/command/CommandOwner.kt | 9 +++++---- .../command/CommandPermissionDeniedException.kt | 4 +--- .../mirai/console/command/CompositeCommand.kt | 3 +-- .../net/mamoe/mirai/console/command/RawCommand.kt | 4 ++-- .../mamoe/mirai/console/command/SimpleCommand.kt | 3 +-- .../mirai/console/command/java/JRawCommand.kt | 4 ++-- .../mamoe/mirai/console/data/AbstractPluginData.kt | 3 +++ .../mirai/console/data/AutoSavePluginConfig.kt | 8 +------- .../mamoe/mirai/console/data/AutoSavePluginData.kt | 9 --------- .../net/mamoe/mirai/console/data/PluginData.kt | 5 ++++- .../mamoe/mirai/console/data/ValueDescription.kt | 7 ++++++- .../console/data/java/JAutoSavePluginConfig.kt | 8 +------- .../mirai/console/data/java/JAutoSavePluginData.kt | 7 +------ .../mirai/console/extension/ExtensionPoint.kt | 6 ++++-- .../extensions/CommandCallParserProvider.kt | 4 ++-- .../extensions/CommandCallResolverProvider.kt | 4 ++-- .../console/extensions/PostStartupExtension.kt | 4 ++-- .../extensions/SingletonExtensionSelector.kt | 5 ++++- .../internal/MiraiConsoleImplementationBridge.kt | 3 +++ .../console/internal/command/CommandReflector.kt | 11 ++++++++++- .../mirai/console/internal/command/internal.kt | 3 ++- .../internal/data/builtins/AutoLoginConfig.kt | 9 +++++++++ .../extension/BuiltInSingletonExtensionSelector.kt | 9 +++++++++ .../console/internal/plugin/ExportManagerImpl.kt | 8 +++----- .../internal/util/JavaPluginSchedulerImpl.kt | 5 ++--- .../console/permission/PermissionIdNamespace.kt | 2 +- .../net/mamoe/mirai/console/plugin/Plugin.kt | 2 +- .../mamoe/mirai/console/plugin/PluginManager.kt | 12 ++++++++++++ .../console/plugin/jvm/JavaPluginScheduler.kt | 8 +++++--- .../net/mamoe/mirai/console/util/ConsoleInput.kt | 2 +- .../net/mamoe/mirai/console/util/MessageScope.kt | 5 +++++ .../net/mamoe/mirai/console/command/TestCommand.kt | 1 + 37 files changed, 131 insertions(+), 80 deletions(-) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt index c2cab53e7..9950ae12d 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt @@ -47,7 +47,7 @@ public annotation class ConsoleFrontEndImplementation /** * 实现 [MiraiConsole] 的接口 * - * **注意**: 随着 Console 的更新, 在版本号 `x.y.z` 的 `y` 修改时此接口可能就会变动. 意味着前端实现着需要跟随 Console 更新. + * **注意**: 随着 Console 的更新, 在版本号 `x.y.z` 的 `y` 修改时此接口可能就会发生 ABI 变动. 意味着前端实现着需要跟随 Console 更新. * * @see MiraiConsoleImplementation.start 启动 */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/AbstractCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/AbstractCommand.kt index 7de3bd955..940c50294 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/AbstractCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/AbstractCommand.kt @@ -7,9 +7,12 @@ * https://github.com/mamoe/mirai/blob/master/LICENSE */ +@file:Suppress("unused") + package net.mamoe.mirai.console.command -import net.mamoe.mirai.console.internal.command.createOrFindCommandPermission +import net.mamoe.mirai.console.command.descriptor.ExperimentalCommandDescriptors +import net.mamoe.mirai.console.internal.command.findOrCreateCommandPermission import net.mamoe.mirai.console.permission.Permission /** @@ -26,14 +29,17 @@ public abstract class AbstractCommand public final override val secondaryNames: Array, public override val description: String = "", parentPermission: Permission = owner.parentPermission, - /** 为 `true` 时表示 [指令前缀][CommandManager.commandPrefix] 可选 */ - public override val prefixOptional: Boolean = false, ) : Command { + + @ExperimentalCommandDescriptors + override val prefixOptional: Boolean + get() = false + init { Command.checkCommandName(primaryName) secondaryNames.forEach(Command.Companion::checkCommandName) } public override val usage: String get() = description - public override val permission: Permission by lazy { createOrFindCommandPermission(parentPermission) } + public override val permission: Permission by lazy { findOrCreateCommandPermission(parentPermission) } } \ No newline at end of file diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt index a73e2f842..f1f44cbd9 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt @@ -77,6 +77,9 @@ public interface Command { * 为 `true` 时表示 [指令前缀][CommandManager.commandPrefix] 可选. * * 会影响聊天语境中的解析. + * + * #### 实验性 API + * 由于指令解析允许被扩展, 此属性可能不适用所有解析器, 因此还未决定是否保留. */ @ExperimentalCommandDescriptors @ConsoleExperimentalApi diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecuteResult.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecuteResult.kt index 9697dd4d7..2e7c79c4a 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecuteResult.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecuteResult.kt @@ -21,6 +21,8 @@ import kotlin.contracts.contract /** * 指令的执行返回 * + * 注意: 现阶段 + * * @see CommandExecuteStatus */ @ConsoleExperimentalApi("Not yet implemented") @@ -144,12 +146,14 @@ public sealed class CommandExecuteResult { } } +@ExperimentalCommandDescriptors @Suppress("RemoveRedundantQualifierName") public typealias CommandExecuteStatus = CommandExecuteResult.CommandExecuteStatus /** * 当 [this] 为 [CommandExecuteResult.Success] 时返回 `true` */ +@ExperimentalCommandDescriptors @JvmSynthetic public fun CommandExecuteResult.isSuccess(): Boolean { contract { @@ -162,6 +166,7 @@ public fun CommandExecuteResult.isSuccess(): Boolean { /** * 当 [this] 为 [CommandExecuteResult.IllegalArgument] 时返回 `true` */ +@ExperimentalCommandDescriptors @JvmSynthetic public fun CommandExecuteResult.isIllegalArgument(): Boolean { contract { @@ -174,6 +179,7 @@ public fun CommandExecuteResult.isIllegalArgument(): Boolean { /** * 当 [this] 为 [CommandExecuteResult.ExecutionFailed] 时返回 `true` */ +@ExperimentalCommandDescriptors @JvmSynthetic public fun CommandExecuteResult.isExecutionException(): Boolean { contract { @@ -186,6 +192,7 @@ public fun CommandExecuteResult.isExecutionException(): Boolean { /** * 当 [this] 为 [CommandExecuteResult.PermissionDenied] 时返回 `true` */ +@ExperimentalCommandDescriptors @JvmSynthetic public fun CommandExecuteResult.isPermissionDenied(): Boolean { contract { @@ -198,6 +205,7 @@ public fun CommandExecuteResult.isPermissionDenied(): Boolean { /** * 当 [this] 为 [CommandExecuteResult.UnresolvedCall] 时返回 `true` */ +@ExperimentalCommandDescriptors @JvmSynthetic public fun CommandExecuteResult.isCommandNotFound(): Boolean { contract { @@ -210,6 +218,7 @@ public fun CommandExecuteResult.isCommandNotFound(): Boolean { /** * 当 [this] 为 [CommandExecuteResult.ExecutionFailed], [CommandExecuteResult.IllegalArgument] 或 [CommandExecuteResult.UnresolvedCall] 时返回 `true` */ +@ExperimentalCommandDescriptors @JvmSynthetic public fun CommandExecuteResult.isFailure(): Boolean { contract { diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecutionException.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecutionException.kt index 1998b71b0..dd3d0c761 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecutionException.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecutionException.kt @@ -11,10 +11,8 @@ package net.mamoe.mirai.console.command -import net.mamoe.mirai.console.command.CommandManager.INSTANCE.executeCommand - /** - * 在 [CommandManager.executeCommand] 中, [Command.onCommand] 抛出异常时包装的异常. + * 在 [CommandManager.executeCommand] 中抛出异常时包装的异常. */ public class CommandExecutionException( /** @@ -29,7 +27,7 @@ public class CommandExecutionException( * 匹配到的指令名 */ public val name: String, - cause: Throwable + cause: Throwable, ) : RuntimeException( "Exception while executing command '${command.primaryName}'", cause diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandOwner.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandOwner.kt index f59033c95..0c5ea4eaa 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandOwner.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandOwner.kt @@ -9,7 +9,6 @@ package net.mamoe.mirai.console.command -import net.mamoe.mirai.console.command.CommandManager.INSTANCE.unregisterAllCommands import net.mamoe.mirai.console.compiler.common.ResolveContext import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.PERMISSION_NAME import net.mamoe.mirai.console.permission.Permission @@ -34,11 +33,13 @@ public interface CommandOwner : PermissionIdNamespace { /** * 代表控制台所有者. 所有的 mirai-console 内建的指令都属于 [ConsoleCommandOwner]. + * + * 插件注册指令时不应该使用 [ConsoleCommandOwner]. */ -internal object ConsoleCommandOwner : CommandOwner { - override val parentPermission: Permission get() = BuiltInCommands.parentPermission +public object ConsoleCommandOwner : CommandOwner { + public override val parentPermission: Permission get() = BuiltInCommands.parentPermission - override fun permissionId( + public override fun permissionId( @ResolveContext(PERMISSION_NAME) name: String, ): PermissionId = PermissionId("console", name) } \ No newline at end of file diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandPermissionDeniedException.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandPermissionDeniedException.kt index f966ce96d..309f1528a 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandPermissionDeniedException.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandPermissionDeniedException.kt @@ -9,8 +9,6 @@ package net.mamoe.mirai.console.command -import net.mamoe.mirai.console.command.CommandManager.INSTANCE.executeCommand - /** * 在 [CommandManager.executeCommand] 中, [CommandSender] 未拥有 [Command.permission] 所要求的权限时抛出的异常. * @@ -24,7 +22,7 @@ public class CommandPermissionDeniedException( /** * 执行过程发生异常的指令 */ - public val command: Command + public val command: Command, ) : RuntimeException("Permission denied while executing command '${command.primaryName}'") { public override fun toString(): String = "CommandPermissionDeniedException(command=$command)" diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt index efec2b5d1..d88b41559 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt @@ -87,9 +87,8 @@ public abstract class CompositeCommand( @ResolveContext(COMMAND_NAME) vararg secondaryNames: String, description: String = "no description available", parentPermission: Permission = owner.parentPermission, - prefixOptional: Boolean = false, overrideContext: CommandArgumentContext = EmptyCommandArgumentContext, -) : Command, AbstractCommand(owner, primaryName, secondaryNames = secondaryNames, description, parentPermission, prefixOptional), +) : Command, AbstractCommand(owner, primaryName, secondaryNames = secondaryNames, description, parentPermission), CommandArgumentContextAware { private val reflector by lazy { CommandReflector(this, CompositeCommandSubCommandAnnotationResolver) } diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt index 4b17e51e2..850c55320 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt @@ -15,7 +15,7 @@ import net.mamoe.mirai.console.command.descriptor.* import net.mamoe.mirai.console.command.java.JRawCommand import net.mamoe.mirai.console.compiler.common.ResolveContext import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.COMMAND_NAME -import net.mamoe.mirai.console.internal.command.createOrFindCommandPermission +import net.mamoe.mirai.console.internal.command.findOrCreateCommandPermission import net.mamoe.mirai.console.internal.data.typeOf0 import net.mamoe.mirai.console.permission.Permission import net.mamoe.mirai.message.data.Message @@ -53,7 +53,7 @@ public abstract class RawCommand( @OptIn(ExperimentalCommandDescriptors::class) public override val prefixOptional: Boolean = false, ) : Command { - public override val permission: Permission by lazy { createOrFindCommandPermission(parentPermission) } + public override val permission: Permission by lazy { findOrCreateCommandPermission(parentPermission) } @ExperimentalCommandDescriptors override val overloads: List = listOf( diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt index 48ce42f7c..9d0465ee0 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt @@ -58,9 +58,8 @@ public abstract class SimpleCommand( @ResolveContext(COMMAND_NAME) vararg secondaryNames: String, description: String = "no description available", parentPermission: Permission = owner.parentPermission, - prefixOptional: Boolean = false, overrideContext: CommandArgumentContext = EmptyCommandArgumentContext, -) : Command, AbstractCommand(owner, primaryName, secondaryNames = secondaryNames, description, parentPermission, prefixOptional), +) : Command, AbstractCommand(owner, primaryName, secondaryNames = secondaryNames, description, parentPermission), CommandArgumentContextAware { private val reflector by lazy { CommandReflector(this, SimpleCommandSubCommandAnnotationResolver) } diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JRawCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JRawCommand.kt index 70b62e680..8d6358050 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JRawCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JRawCommand.kt @@ -16,7 +16,7 @@ import net.mamoe.mirai.console.command.CommandOwner import net.mamoe.mirai.console.command.descriptor.ExperimentalCommandDescriptors import net.mamoe.mirai.console.compiler.common.ResolveContext import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.COMMAND_NAME -import net.mamoe.mirai.console.internal.command.createOrFindCommandPermission +import net.mamoe.mirai.console.internal.command.findOrCreateCommandPermission import net.mamoe.mirai.console.permission.Permission /** @@ -65,7 +65,7 @@ public abstract class JRawCommand protected set /** 指令权限 */ - public final override var permission: Permission = createOrFindCommandPermission(parentPermission) + public final override var permission: Permission = findOrCreateCommandPermission(parentPermission) protected set /** 为 `true` 时表示 [指令前缀][CommandManager.commandPrefix] 可选 */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt index 90b22bd06..435a666eb 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt @@ -23,6 +23,9 @@ import kotlin.reflect.KProperty /** * [PluginData] 的默认实现. 支持使用 `by value()` 等委托方法创建 [Value] 并跟踪其改动. * + * ### 实现注意 + * 此类型处于实验性阶段. 使用其中定义的属性和函数是安全的, 但将来可能会新增成员抽象函数. + * * @see PluginData */ public abstract class AbstractPluginData : PluginData, PluginDataImpl() { diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt index 1e3793e5a..749c9b60f 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt @@ -23,10 +23,4 @@ import kotlinx.coroutines.Job * @see PluginConfig * @see AutoSavePluginData */ -public open class AutoSavePluginConfig : AutoSavePluginData, PluginConfig { - @Deprecated("请手动指定保存名称. 此构造器将在 1.0.0 删除", level = DeprecationLevel.ERROR, replaceWith = ReplaceWith("AutoSavePluginConfig(\"把我改成保存名称\")")) - @Suppress("DEPRECATION_ERROR") - public constructor() : super() - - public constructor(saveName: String) : super(saveName) -} +public open class AutoSavePluginConfig public constructor(saveName: String) : AutoSavePluginData(saveName), PluginConfig \ No newline at end of file diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt index f081af4d2..3fe5c0bc9 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt @@ -18,7 +18,6 @@ import net.mamoe.mirai.console.internal.data.qualifiedNameOrTip import net.mamoe.mirai.console.internal.plugin.updateWhen import net.mamoe.mirai.console.util.ConsoleExperimentalApi import net.mamoe.mirai.utils.* -import kotlin.reflect.full.findAnnotation /** * 链接自动保存的 [PluginData]. @@ -46,14 +45,6 @@ public open class AutoSavePluginData private constructor( _saveName = saveName } - @Deprecated("请手动指定保存名称. 此构造器将在 1.0.0 删除", level = DeprecationLevel.ERROR, replaceWith = ReplaceWith("AutoSavePluginData(\"把我改成保存名称\")")) - public constructor() : this(null) { - val clazz = this::class - _saveName = clazz.findAnnotation()?.value - ?: clazz.qualifiedName - ?: throw IllegalArgumentException("Cannot find a serial name for ${this::class}") - } - @ConsoleExperimentalApi override fun onInit(owner: PluginDataHolder, storage: PluginDataStorage) { check(owner is AutoSavePluginDataHolder) { "owner must be AutoSavePluginDataHolder for AutoSavePluginData" } diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt index 174170e1b..05d6ffe43 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt @@ -98,13 +98,16 @@ import kotlin.reflect.KType * ``` * // MyPluginData.nestedMap: MutableMap> by value() * val newList = MyPluginData.map.getOrPut(1, ::mutableListOf) - * newList.add(1) // 不会添加到 MyPluginData.nestedMap 中, 因为 `mutableListOf` 创建的 MutableList 被非引用地添加进了 MyPluginData.nestedMap + * newList.add(1) // 不会添加到 MyPluginData.nestedMap 中, 因为 `mutableListOf` 创建的 MutableList 被非引用 (浅拷贝) 地添加进了 MyPluginData.nestedMap * ``` * * 一个解决方案是对 [SerializerAwareValue] 做映射或相关修改. 如 [PluginDataExtensions]. * * 要查看详细的解释,请查看 [docs/PluginData.md](https://github.com/mamoe/mirai-console/blob/master/docs/PluginData.md) * + * ## 实现注意 + * 此类型处于实验性阶段. 使用其中定义的属性和函数是安全的, 但将来可能会新增成员抽象函数. + * * @see AbstractJvmPlugin.reloadPluginData 通过 [JvmPlugin] 获取指定 [PluginData] 实例. * @see PluginDataStorage [PluginData] 存储仓库 * @see PluginDataExtensions 相关 [SerializerAwareValue] 映射函数 diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueDescription.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueDescription.kt index 907944766..1b4c02a13 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueDescription.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueDescription.kt @@ -35,4 +35,9 @@ import kotlinx.serialization.SerialInfo @SerialInfo @Target(AnnotationTarget.PROPERTY, AnnotationTarget.CLASS) @Retention(AnnotationRetention.RUNTIME) -public annotation class ValueDescription(val value: String) \ No newline at end of file +public annotation class ValueDescription( + /** + * 将会被 [String.trimIndent] 处理. + */ + val value: String, +) \ No newline at end of file diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginConfig.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginConfig.kt index 1ca820466..568ad2530 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginConfig.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginConfig.kt @@ -37,10 +37,4 @@ import net.mamoe.mirai.console.data.PluginData * @see JAutoSavePluginData * @see PluginConfig */ -public abstract class JAutoSavePluginConfig : AutoSavePluginConfig, PluginConfig { - @Deprecated("请手动指定保存名称. 此构造器将在 1.0.0 删除", level = DeprecationLevel.ERROR, replaceWith = ReplaceWith("JAutoSavePluginConfig(\"把我改成保存名称\")")) - @Suppress("DEPRECATION_ERROR") - public constructor() : super() - - public constructor(saveName: String) : super(saveName) -} +public abstract class JAutoSavePluginConfig public constructor(saveName: String) : AutoSavePluginConfig(saveName), PluginConfig \ No newline at end of file diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginData.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginData.kt index 442f19cc9..8ec168756 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginData.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginData.kt @@ -66,12 +66,7 @@ import kotlin.reflect.full.createType * * @see PluginData */ -public abstract class JAutoSavePluginData : AutoSavePluginData, PluginConfig { - @Deprecated("请手动指定保存名称. 此构造器将在 1.0.0 删除", level = DeprecationLevel.ERROR, replaceWith = ReplaceWith("JAutoSavePluginData(\"把我改成保存名称\")")) - @Suppress("DEPRECATION_ERROR") - public constructor() : super() - - public constructor(saveName: String) : super(saveName) +public abstract class JAutoSavePluginData public constructor(saveName: String) : AutoSavePluginData(saveName), PluginConfig { //// region JPluginData_value_primitives CODEGEN //// diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionPoint.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionPoint.kt index b5580db83..04a772cf5 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionPoint.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionPoint.kt @@ -50,7 +50,8 @@ public interface InstanceExtensionPoint> : ExtensionPoi public interface FunctionExtensionPoint : ExtensionPoint -public abstract class AbstractInstanceExtensionPoint, T>( +public abstract class AbstractInstanceExtensionPoint, T> +@ConsoleExperimentalApi constructor( extensionType: KClass, /** * 内建的实现列表. @@ -59,7 +60,8 @@ public abstract class AbstractInstanceExtensionPoint, T public vararg val builtinImplementations: E, ) : AbstractExtensionPoint(extensionType) -public abstract class AbstractSingletonExtensionPoint, T>( +public abstract class AbstractSingletonExtensionPoint, T> +@ConsoleExperimentalApi constructor( extensionType: KClass, /** * 内建的实现. diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallParserProvider.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallParserProvider.kt index 51cc23a9f..b543edf89 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallParserProvider.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallParserProvider.kt @@ -30,6 +30,6 @@ public interface CommandCallParserProvider : InstanceExtension CommandCallParser) : CommandCallParserProvider { - override val instance: CommandCallParser by lazy(instanceCalculator) +public class CommandCallParserProviderImplLazy(initializer: () -> CommandCallParser) : CommandCallParserProvider { + override val instance: CommandCallParser by lazy(initializer) } \ No newline at end of file diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallResolverProvider.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallResolverProvider.kt index 43e2a6fca..5081e21b3 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallResolverProvider.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallResolverProvider.kt @@ -26,6 +26,6 @@ public interface CommandCallResolverProvider : InstanceExtension CommandCallResolver) : CommandCallResolverProvider { - override val instance: CommandCallResolver by lazy(instanceCalculator) +public class CommandCallResolverProviderImplLazy(initializer: () -> CommandCallResolver) : CommandCallResolverProvider { + override val instance: CommandCallResolver by lazy(initializer) } \ No newline at end of file diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PostStartupExtension.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PostStartupExtension.kt index f18185e17..ab5d563e2 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PostStartupExtension.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PostStartupExtension.kt @@ -24,10 +24,10 @@ public fun interface PostStartupExtension : FunctionExtension { /** * 将在 Console 主线程执行. * - * @throws Exception 所有抛出的 [Exception] 都会被捕获并包装为 [ExtensionException] 抛出, 并停止 [MiraiConsole] - * * #### 内部实现细节 * 在 [MiraiConsoleImplementationBridge.doStart] 所有 [MiraiConsoleImplementationBridge.phase] 执行完成后顺序调用. + * + * @throws Exception 所有抛出的 [Exception] 都会被捕获并包装为 [ExtensionException] 抛出, 并停止 [MiraiConsole] */ @Throws(Exception::class) public operator fun invoke() diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/SingletonExtensionSelector.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/SingletonExtensionSelector.kt index 2dfce8f6c..869cfff2c 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/SingletonExtensionSelector.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/SingletonExtensionSelector.kt @@ -28,13 +28,16 @@ import kotlin.reflect.KClass * 如有多个 [SingletonExtensionSelector] 注册, 将会停止服务器. */ public interface SingletonExtensionSelector : FunctionExtension { + /** + * 表示一个插件注册的 [Extension] + */ public data class Registry( val plugin: Plugin?, val extension: T, ) /** - * @return null 表示使用 builtin + * @return `null` 表示使用 Console 内置的 [SingletonExtensionSelector] */ public fun selectSingleton( extensionType: KClass, diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleImplementationBridge.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleImplementationBridge.kt index 6b98780cc..9c1119d5a 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleImplementationBridge.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleImplementationBridge.kt @@ -226,6 +226,9 @@ internal object MiraiConsoleImplementationBridge : CoroutineScope, MiraiConsoleI @DslMarker internal annotation class ILoveOmaeKumikoForever + /** + * 表示一个初始化阶段, 无实际作用. + */ @ILoveOmaeKumikoForever private inline fun phase(block: () -> Unit) { contract { diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt index a85a7a8f8..e65c0103c 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + package net.mamoe.mirai.console.internal.command import net.mamoe.mirai.console.command.* @@ -149,7 +158,7 @@ internal class CommandReflector( append(" ") } append(subcommand.valueParameters.joinToString(" ") { it.render() }) - annotationResolver.getDescription(command, subcommand.originFunction).let { description -> + annotationResolver.getDescription(command, subcommand.originFunction)?.let { description -> append(" ") append(description) } diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/internal.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/internal.kt index a1ebfbf2e..42eead40c 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/internal.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/internal.kt @@ -58,6 +58,7 @@ internal fun Group.fuzzySearchMember( disambiguationRate: Double = 0.1, ): List> { val candidates = (this.members + botAsMember) + .asSequence() .associateWith { it.nameCard.fuzzyMatchWith(nameCardTarget) } .filter { it.value >= minRate } .toList() @@ -79,7 +80,7 @@ internal fun Group.fuzzySearchMember( } } -internal fun Command.createOrFindCommandPermission(parent: Permission): Permission { +internal fun Command.findOrCreateCommandPermission(parent: Permission): Permission { val id = owner.permissionId("command.$primaryName") return PermissionService.INSTANCE[id] ?: PermissionService.INSTANCE.register(id, description, parent) } diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/AutoLoginConfig.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/AutoLoginConfig.kt index 5cf269874..a78aa6ef5 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/AutoLoginConfig.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/AutoLoginConfig.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + package net.mamoe.mirai.console.internal.data.builtins import net.mamoe.mirai.console.data.AutoSavePluginConfig diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/BuiltInSingletonExtensionSelector.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/BuiltInSingletonExtensionSelector.kt index d096341ed..1d313ca6d 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/BuiltInSingletonExtensionSelector.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/BuiltInSingletonExtensionSelector.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + package net.mamoe.mirai.console.internal.extension import kotlinx.coroutines.runBlocking diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt index 5797aece0..787f7bd80 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt @@ -1,12 +1,10 @@ /* - * Copyright (c) 2018-2020 Karlatemp. All rights reserved. - * @author Karlatemp - * - * LuckPerms-Mirai/mirai-console.mirai-console.main/ExportManagerImpl.kt + * Copyright 2019-2020 Mamoe Technologies and contributors. * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. * - * https://github.com/Karlatemp/LuckPerms-Mirai/blob/master/LICENSE + * https://github.com/mamoe/mirai/blob/master/LICENSE */ package net.mamoe.mirai.console.internal.plugin diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/JavaPluginSchedulerImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/JavaPluginSchedulerImpl.kt index 23af98223..7385df2ae 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/JavaPluginSchedulerImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/JavaPluginSchedulerImpl.kt @@ -43,11 +43,10 @@ internal class JavaPluginSchedulerImpl internal constructor(parentCoroutineConte } } - override fun delayed(delayMillis: Long, runnable: Callable): CompletableFuture { + override fun delayed(delayMillis: Long, callable: Callable): CompletableFuture { return future { delay(delayMillis) - withContext(Dispatchers.IO) { runnable.call() } - null + withContext(Dispatchers.IO) { callable.call() } } } diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionIdNamespace.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionIdNamespace.kt index 90a043608..ac0076b2b 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionIdNamespace.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionIdNamespace.kt @@ -20,7 +20,7 @@ public interface PermissionIdNamespace { /** * 创建一个此命名空间下的 [PermitteeId]. * - * 在指令初始化时, 会申请对应权限. 此时 [name] 为 "command.$primaryName` 其中 [primaryName][Command.primaryName]. + * 在指令初始化时, 会申请对应权限. 此时 [name] 为 `command.$primaryName` 其中 [primaryName][Command.primaryName]. */ public fun permissionId(@ResolveContext(PERMISSION_NAME) name: String): PermissionId } \ No newline at end of file diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt index 9fd35e08b..0a7c2c05d 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt @@ -35,7 +35,7 @@ import kotlin.DeprecationLevel.ERROR */ public interface Plugin : CommandOwner { /** - * 判断此插件是否已启用 + * 当插件已启用时返回 `true`, 否则表示插件未启用. * * @see PluginManager.enablePlugin 启用一个插件 * @see PluginManager.disablePlugin 禁用一个插件 diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt index e5ad8140f..1b0804b39 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt @@ -140,16 +140,28 @@ public interface PluginManager { get() = this.loader as PluginLoader + /** + * @see getPluginDescription + */ @get:JvmSynthetic public inline val Plugin.description: PluginDescription get() = getPluginDescription(this) + /** + * @see disablePlugin + */ @JvmSynthetic public inline fun Plugin.disable(): Unit = disablePlugin(this) + /** + * @see enablePlugin + */ @JvmSynthetic public inline fun Plugin.enable(): Unit = enablePlugin(this) + /** + * @see loadPlugin + */ @JvmSynthetic public inline fun Plugin.load(): Unit = loadPlugin(this) } diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt index 684832703..d1f50470d 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt @@ -19,6 +19,7 @@ import java.util.concurrent.Callable import java.util.concurrent.CompletableFuture import java.util.concurrent.Future import kotlin.coroutines.CoroutineContext +import kotlin.coroutines.EmptyCoroutineContext /** @@ -48,9 +49,9 @@ public interface JavaPluginScheduler : CoroutineScope { /** * 新增一个 Delayed Task (延迟任务) * - * 在延迟 [delayMillis] 后执行 [runnable] + * 在延迟 [delayMillis] 后执行 [callable] */ - public fun delayed(delayMillis: Long, runnable: Callable): CompletableFuture + public fun delayed(delayMillis: Long, callable: Callable): CompletableFuture /** * 异步执行一个任务, 最终返回 [Future], 与 Java 使用方法无异, 但效率更高且可以在插件关闭时停止 @@ -68,7 +69,8 @@ public interface JavaPluginScheduler : CoroutineScope { */ @JvmStatic @JvmName("create") - public operator fun invoke(parentCoroutineContext: CoroutineContext): JavaPluginScheduler = + @JvmOverloads + public operator fun invoke(parentCoroutineContext: CoroutineContext = EmptyCoroutineContext): JavaPluginScheduler = JavaPluginSchedulerImpl(parentCoroutineContext) } } \ No newline at end of file diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt index dc30c4d81..ed79e4c76 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt @@ -18,7 +18,7 @@ import net.mamoe.mirai.console.MiraiConsole import net.mamoe.mirai.console.internal.util.ConsoleInputImpl /** - * Console 输入. 由于 console 接管了 [stdin][System. in], [readLine] 等操作需要在这里进行. + * Console 输入. 由于 console 接管了 [标准输入][System. in], [readLine] 等操作需要在这里进行. */ public interface ConsoleInput { /** diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt index 92a82a616..a8fd52195 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt @@ -72,6 +72,7 @@ import kotlin.internal.LowPriorityInOverloadResolution * val duration = Random.nextInt(1, 15) * target.mute(duration) * + * * // 不使用 MessageScope, 无用的样板代码 * val thisGroup = this.getGroupOrNull() * val message = "${this.name} 禁言 ${target.nameCardOrNick} $duration 秒" @@ -80,12 +81,14 @@ import kotlin.internal.LowPriorityInOverloadResolution * } * sendMessage(message) * + * * // 使用 MessageScope, 清晰逻辑 * // 表示至少发送给 `this`, 当 `this` 的真实发信对象与 `target.group` 不同时, 还额外发送给 `target.group` * this.scopeWith(target.group) { * sendMessage("${name} 禁言了 ${target.nameCardOrNick} $duration 秒") * } * + * * // 同样地, 可以扩展用法, 同时私聊指令执行者: * // this.scopeWith( * // target, @@ -132,6 +135,8 @@ public inline operator fun MS.invoke(action: MS.() -> R): /* * 实现提示: 以下所有代码都通过 codegen 模块中 net.mamoe.mirai.console.codegen.MessageScopeCodegen 生成. 请不要手动修改它们. + * + * 建议阅读 [MessageScope] 的文档. */ //// region MessageScopeBuilders CODEGEN //// diff --git a/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/TestCommand.kt b/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/TestCommand.kt index bf3b7c796..f9cf618dc 100644 --- a/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/TestCommand.kt +++ b/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/TestCommand.kt @@ -77,6 +77,7 @@ internal class TestCommand { @Test fun testRegister() { + error(TestCompositeCommand.usage) try { unregisterAllCommands(ConsoleCommandOwner) // builtins unregisterCommand(TestSimpleCommand) From cfdce8dd8cc7640b7c8cfe754d71a51648c59b9d Mon Sep 17 00:00:00 2001 From: Him188 Date: Tue, 27 Oct 2020 21:58:57 +0800 Subject: [PATCH 10/34] Update TestCommand.kt --- .../test/kotlin/net/mamoe/mirai/console/command/TestCommand.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/TestCommand.kt b/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/TestCommand.kt index f9cf618dc..3a89ca769 100644 --- a/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/TestCommand.kt +++ b/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/TestCommand.kt @@ -77,7 +77,6 @@ internal class TestCommand { @Test fun testRegister() { - error(TestCompositeCommand.usage) try { unregisterAllCommands(ConsoleCommandOwner) // builtins unregisterCommand(TestSimpleCommand) @@ -339,4 +338,4 @@ internal fun assertSuccess(result: CommandExecuteResult) { if (result.isFailure()) { throw result.exception ?: AssertionError(result.toString()) } -} \ No newline at end of file +} From 72b75fd2875606eb4759f5e1baedf9789465243d Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 28 Oct 2020 13:27:16 +0800 Subject: [PATCH 11/34] Add `@ConsoleExperimentalApi` for experimental Value APIs --- .../main/kotlin/net/mamoe/mirai/console/data/Value.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt index 14bc75e65..1eb124b12 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt @@ -156,6 +156,7 @@ public interface SerializerAwareValue : Value { * 注意: 目前这些类型都会被装箱, 由于泛型 T. 在将来可能会有优化处理. * *Primitive* 仅表示一个类型是上面 9 种类型之一. */ +@ConsoleExperimentalApi public interface PrimitiveValue : Value @@ -164,46 +165,55 @@ public interface PrimitiveValue : Value /** * 表示一个不可空 [Byte] [Value]. */ +@ConsoleExperimentalApi public interface ByteValue : PrimitiveValue /** * 表示一个不可空 [Short] [Value]. */ +@ConsoleExperimentalApi public interface ShortValue : PrimitiveValue /** * 表示一个不可空 [Int] [Value]. */ +@ConsoleExperimentalApi public interface IntValue : PrimitiveValue /** * 表示一个不可空 [Long] [Value]. */ +@ConsoleExperimentalApi public interface LongValue : PrimitiveValue /** * 表示一个不可空 [Float] [Value]. */ +@ConsoleExperimentalApi public interface FloatValue : PrimitiveValue /** * 表示一个不可空 [Double] [Value]. */ +@ConsoleExperimentalApi public interface DoubleValue : PrimitiveValue /** * 表示一个不可空 [Char] [Value]. */ +@ConsoleExperimentalApi public interface CharValue : PrimitiveValue /** * 表示一个不可空 [Boolean] [Value]. */ +@ConsoleExperimentalApi public interface BooleanValue : PrimitiveValue /** * 表示一个不可空 [String] [Value]. */ +@ConsoleExperimentalApi public interface StringValue : PrimitiveValue //// endregion PrimitiveValues CODEGEN //// From f10632e7542de4f32181251be5b1b7f892f770cc Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 28 Oct 2020 13:30:44 +0800 Subject: [PATCH 12/34] Separate command descriptor files --- ...mmandDescriptor.kt => CommandParameter.kt} | 79 +--------------- .../command/descriptor/CommandSignature.kt | 90 +++++++++++++++++++ 2 files changed, 91 insertions(+), 78 deletions(-) rename backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/{CommandDescriptor.kt => CommandParameter.kt} (75%) create mode 100644 backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandSignature.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandDescriptor.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt similarity index 75% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandDescriptor.kt rename to backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt index 562cc9b40..eae2a09b4 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandDescriptor.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt @@ -1,5 +1,5 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. @@ -14,93 +14,16 @@ import net.mamoe.mirai.console.command.descriptor.AbstractCommandValueParameter. import net.mamoe.mirai.console.command.descriptor.AbstractCommandValueParameter.UserDefinedType.Companion.createRequired import net.mamoe.mirai.console.command.descriptor.ArgumentAcceptance.Companion.isAcceptable import net.mamoe.mirai.console.command.parse.CommandValueArgument -import net.mamoe.mirai.console.command.resolve.ResolvedCommandCall import net.mamoe.mirai.console.internal.data.classifierAsKClass import net.mamoe.mirai.console.internal.data.classifierAsKClassOrNull import net.mamoe.mirai.console.internal.data.typeOf0 import net.mamoe.mirai.console.util.ConsoleExperimentalApi import kotlin.reflect.KClass -import kotlin.reflect.KFunction import kotlin.reflect.KType import kotlin.reflect.full.isSubclassOf import kotlin.reflect.full.isSubtypeOf import kotlin.reflect.typeOf -/** - * 指令签名. 表示指令定义的需要的参数. - * - * @see AbstractCommandSignature - */ -@ExperimentalCommandDescriptors -public interface CommandSignature { - /** - * 接收者参数, 为 [CommandSender] 子类 - */ - @ConsoleExperimentalApi - public val receiverParameter: CommandReceiverParameter? - - /** - * 形式 值参数. - */ - public val valueParameters: List> - - /** - * 调用这个指令. - */ - public suspend fun call(resolvedCommandCall: ResolvedCommandCall) -} - -/** - * 来自 [KFunction] 反射得到的 [CommandSignature] - * - * @see CommandSignatureFromKFunctionImpl - */ -@ConsoleExperimentalApi -@ExperimentalCommandDescriptors -public interface CommandSignatureFromKFunction : CommandSignature { - public val originFunction: KFunction<*> -} - -/** - * @see CommandSignatureImpl - * @see CommandSignatureFromKFunctionImpl - */ -@ExperimentalCommandDescriptors -public abstract class AbstractCommandSignature : CommandSignature { - override fun toString(): String { - val receiverParameter = receiverParameter - return if (receiverParameter == null) { - "CommandSignatureVariant(${valueParameters.joinToString()})" - } else { - "CommandSignatureVariant($receiverParameter, ${valueParameters.joinToString()})" - } - } -} - -@ExperimentalCommandDescriptors -public open class CommandSignatureImpl( - override val receiverParameter: CommandReceiverParameter?, - override val valueParameters: List>, - private val onCall: suspend CommandSignatureImpl.(resolvedCommandCall: ResolvedCommandCall) -> Unit, -) : CommandSignature, AbstractCommandSignature() { - override suspend fun call(resolvedCommandCall: ResolvedCommandCall) { - return onCall(resolvedCommandCall) - } -} - -@ConsoleExperimentalApi -@ExperimentalCommandDescriptors -public open class CommandSignatureFromKFunctionImpl( - override val receiverParameter: CommandReceiverParameter?, - override val valueParameters: List>, - override val originFunction: KFunction<*>, - private val onCall: suspend CommandSignatureFromKFunctionImpl.(resolvedCommandCall: ResolvedCommandCall) -> Unit, -) : CommandSignatureFromKFunction, AbstractCommandSignature() { - override suspend fun call(resolvedCommandCall: ResolvedCommandCall) { - return onCall(resolvedCommandCall) - } -} - /** * Inherited instances must be [CommandValueParameter] or [CommandReceiverParameter] diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandSignature.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandSignature.kt new file mode 100644 index 000000000..8dba2deaf --- /dev/null +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandSignature.kt @@ -0,0 +1,90 @@ +/* + * Copyright 2019-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.command.descriptor + +import net.mamoe.mirai.console.command.CommandSender +import net.mamoe.mirai.console.command.resolve.ResolvedCommandCall +import net.mamoe.mirai.console.util.ConsoleExperimentalApi +import kotlin.reflect.KFunction + +/** + * 指令签名. 表示指令定义的需要的参数. + * + * @see AbstractCommandSignature + */ +@ExperimentalCommandDescriptors +public interface CommandSignature { + /** + * 接收者参数, 为 [CommandSender] 子类 + */ + @ConsoleExperimentalApi + public val receiverParameter: CommandReceiverParameter? + + /** + * 形式 值参数. + */ + public val valueParameters: List> + + /** + * 调用这个指令. + */ + public suspend fun call(resolvedCommandCall: ResolvedCommandCall) +} + +/** + * 来自 [KFunction] 反射得到的 [CommandSignature] + * + * @see CommandSignatureFromKFunctionImpl + */ +@ConsoleExperimentalApi +@ExperimentalCommandDescriptors +public interface CommandSignatureFromKFunction : CommandSignature { + public val originFunction: KFunction<*> +} + +/** + * @see CommandSignatureImpl + * @see CommandSignatureFromKFunctionImpl + */ +@ExperimentalCommandDescriptors +public abstract class AbstractCommandSignature : CommandSignature { + override fun toString(): String { + val receiverParameter = receiverParameter + return if (receiverParameter == null) { + "CommandSignatureVariant(${valueParameters.joinToString()})" + } else { + "CommandSignatureVariant($receiverParameter, ${valueParameters.joinToString()})" + } + } +} + +@ExperimentalCommandDescriptors +public open class CommandSignatureImpl( + override val receiverParameter: CommandReceiverParameter?, + override val valueParameters: List>, + private val onCall: suspend CommandSignatureImpl.(resolvedCommandCall: ResolvedCommandCall) -> Unit, +) : CommandSignature, AbstractCommandSignature() { + override suspend fun call(resolvedCommandCall: ResolvedCommandCall) { + return onCall(resolvedCommandCall) + } +} + +@ConsoleExperimentalApi +@ExperimentalCommandDescriptors +public open class CommandSignatureFromKFunctionImpl( + override val receiverParameter: CommandReceiverParameter?, + override val valueParameters: List>, + override val originFunction: KFunction<*>, + private val onCall: suspend CommandSignatureFromKFunctionImpl.(resolvedCommandCall: ResolvedCommandCall) -> Unit, +) : CommandSignatureFromKFunction, AbstractCommandSignature() { + override suspend fun call(resolvedCommandCall: ResolvedCommandCall) { + return onCall(resolvedCommandCall) + } +} \ No newline at end of file From 2c5f9ebcf44bab59d694d470420bc3b20ac718cc Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 28 Oct 2020 13:35:15 +0800 Subject: [PATCH 13/34] Update copyright --- .../kotlin/net/mamoe/mirai/console/codegen/Codegen.kt | 2 +- .../mamoe/mirai/console/codegen/MessageScopeCodegen.kt | 4 ++-- .../mirai/console/codegen/ValuePluginDataCodegen.kt | 2 +- .../mamoe/mirai/console/codegen/old/JSettingCodegen.kt | 2 +- .../console/codegen/old/SettingValueUseSiteCodegen.kt | 2 +- .../mamoe/mirai/console/codegen/old/ValueImplCodegen.kt | 2 +- .../net/mamoe/mirai/console/codegen/old/ValuesCodegen.kt | 2 +- .../main/kotlin/net/mamoe/mirai/console/codegen/util.kt | 2 +- .../main/kotlin/net/mamoe/mirai/console/MiraiConsole.kt | 3 +-- .../mirai/console/MiraiConsoleFrontEndDescription.kt | 2 +- .../mamoe/mirai/console/MiraiConsoleImplementation.kt | 2 +- .../net/mamoe/mirai/console/command/AbstractCommand.kt | 2 +- .../net/mamoe/mirai/console/command/BuiltInCommands.kt | 2 +- .../kotlin/net/mamoe/mirai/console/command/Command.kt | 2 +- .../mamoe/mirai/console/command/CommandExecuteResult.kt | 2 +- .../mirai/console/command/CommandExecutionException.kt | 2 +- .../net/mamoe/mirai/console/command/CommandManager.kt | 2 +- .../net/mamoe/mirai/console/command/CommandOwner.kt | 2 +- .../console/command/CommandPermissionDeniedException.kt | 2 +- .../net/mamoe/mirai/console/command/CommandSender.kt | 2 +- .../net/mamoe/mirai/console/command/CompositeCommand.kt | 2 +- .../console/command/IllegalCommandArgumentException.kt | 3 +-- .../kotlin/net/mamoe/mirai/console/command/RawCommand.kt | 2 +- .../net/mamoe/mirai/console/command/SimpleCommand.kt | 2 +- .../console/command/descriptor/CommandArgumentContext.kt | 2 +- .../command/descriptor/CommandArgumentParserBuiltins.kt | 2 +- .../mirai/console/command/descriptor/CommandParameter.kt | 2 +- .../mirai/console/command/descriptor/CommandSignature.kt | 2 +- .../command/descriptor/CommandValueArgumentParser.kt | 2 +- .../mamoe/mirai/console/command/descriptor/Exceptions.kt | 4 ++-- .../command/descriptor/ExperimentalCommandDescriptors.kt | 4 ++-- .../mirai/console/command/descriptor/TypeVariant.kt | 4 ++-- .../mirai/console/command/java/JCompositeCommand.kt | 2 +- .../net/mamoe/mirai/console/command/java/JRawCommand.kt | 2 +- .../mamoe/mirai/console/command/java/JSimpleCommand.kt | 2 +- .../net/mamoe/mirai/console/command/parse/CommandCall.kt | 4 ++-- .../mirai/console/command/parse/CommandCallParser.kt | 9 +++++++++ .../mirai/console/command/parse/CommandValueArgument.kt | 4 ++-- .../command/parse/SpaceSeparatedCommandCallParser.kt | 9 +++++++++ .../command/resolve/BuiltInCommandCallResolver.kt | 9 +++++++++ .../mirai/console/command/resolve/CommandCallResolver.kt | 4 ++-- .../mirai/console/command/resolve/ResolvedCommandCall.kt | 4 ++-- .../mirai/console/compiler/common/ResolveContext.kt | 4 ++-- .../mirai/console/compiler/common/RestrictedScope.kt | 4 ++-- .../net/mamoe/mirai/console/data/AbstractPluginData.kt | 2 +- .../net/mamoe/mirai/console/data/AutoSavePluginConfig.kt | 4 ++-- .../net/mamoe/mirai/console/data/AutoSavePluginData.kt | 2 +- .../mamoe/mirai/console/data/AutoSavePluginDataHolder.kt | 9 +++++++++ .../kotlin/net/mamoe/mirai/console/data/PluginConfig.kt | 2 +- .../kotlin/net/mamoe/mirai/console/data/PluginData.kt | 2 +- .../net/mamoe/mirai/console/data/PluginDataExtensions.kt | 9 +++++++++ .../net/mamoe/mirai/console/data/PluginDataHolder.kt | 2 +- .../net/mamoe/mirai/console/data/PluginDataStorage.kt | 2 +- .../main/kotlin/net/mamoe/mirai/console/data/Value.kt | 2 +- .../net/mamoe/mirai/console/data/ValueDescription.kt | 2 +- .../kotlin/net/mamoe/mirai/console/data/ValueName.kt | 2 +- .../mirai/console/data/java/JAutoSavePluginConfig.kt | 2 +- .../mamoe/mirai/console/data/java/JAutoSavePluginData.kt | 2 +- .../mamoe/mirai/console/events/CommandExecutionEvent.kt | 2 +- .../net/mamoe/mirai/console/events/ConsoleEvent.kt | 2 +- .../mamoe/mirai/console/extension/ComponentStorage.kt | 4 ++-- .../net/mamoe/mirai/console/extension/Extension.kt | 4 ++-- .../mamoe/mirai/console/extension/ExtensionException.kt | 4 ++-- .../net/mamoe/mirai/console/extension/ExtensionPoint.kt | 4 ++-- .../mirai/console/extension/PluginComponentStorage.kt | 4 ++-- .../mirai/console/extensions/BotConfigurationAlterer.kt | 4 ++-- .../console/extensions/CommandCallParserProvider.kt | 4 ++-- .../console/extensions/CommandCallResolverProvider.kt | 4 ++-- .../console/extensions/PermissionServiceProvider.kt | 4 ++-- .../mirai/console/extensions/PluginLoaderProvider.kt | 4 ++-- .../mirai/console/extensions/PostStartupExtension.kt | 4 ++-- .../console/extensions/SingletonExtensionSelector.kt | 4 ++-- .../mirai/console/internal/MiraiConsoleBuildConstants.kt | 2 +- .../console/internal/MiraiConsoleImplementationBridge.kt | 2 +- .../mirai/console/internal/command/CommandManagerImpl.kt | 2 +- .../mirai/console/internal/command/CommandReflector.kt | 2 +- .../net/mamoe/mirai/console/internal/command/internal.kt | 2 +- .../mirai/console/internal/data/CompositeValueImpl.kt | 2 +- .../console/internal/data/MemoryPluginDataStorageImpl.kt | 2 +- .../internal/data/MultiFilePluginDataStorageImpl.kt | 2 +- .../mamoe/mirai/console/internal/data/PluginDataImpl.kt | 2 +- .../mirai/console/internal/data/_PluginData.value.kt | 2 +- .../console/internal/data/_PrimitiveValueDeclarations.kt | 2 +- .../console/internal/data/builtins/AutoLoginConfig.kt | 2 +- .../console/internal/data/builtins/ConsoleDataScope.kt | 4 ++-- .../mamoe/mirai/console/internal/data/collectionUtil.kt | 2 +- .../mamoe/mirai/console/internal/data/reflectionUtils.kt | 2 +- .../mirai/console/internal/data/serializerHelper.kt | 2 +- .../mirai/console/internal/data/valueFromKTypeImpl.kt | 2 +- .../extension/BuiltInSingletonExtensionSelector.kt | 2 +- .../internal/extension/ComponentStorageInternal.kt | 4 ++-- .../permission/AbstractConcurrentPermissionService.kt | 4 ++-- .../internal/permission/BuiltInPermissionServices.kt | 4 ++-- .../console/internal/permission/parseFromStringImpl.kt | 2 +- .../internal/plugin/BuiltInJvmPluginLoaderImpl.kt | 2 +- .../mamoe/mirai/console/internal/plugin/Exceptions.kt | 2 +- .../mirai/console/internal/plugin/ExportManagerImpl.kt | 2 +- .../console/internal/plugin/JvmPluginClassLoader.kt | 3 +-- .../mirai/console/internal/plugin/JvmPluginInternal.kt | 2 +- .../mirai/console/internal/plugin/PluginManagerImpl.kt | 2 +- .../net/mamoe/mirai/console/internal/util/ByteUtils.kt | 4 ++-- .../net/mamoe/mirai/console/internal/util/CommonUtils.kt | 4 ++-- .../mirai/console/internal/util/ConsoleInputImpl.kt | 2 +- .../console/internal/util/JavaPluginSchedulerImpl.kt | 2 +- .../mirai/console/internal/util/PluginServiceHelper.kt | 4 ++-- .../console/internal/util/semver/RangeTokenReader.kt | 3 +-- .../console/internal/util/semver/SemVersionInternal.kt | 3 +-- .../net/mamoe/mirai/console/permission/Permission.kt | 4 ++-- .../net/mamoe/mirai/console/permission/PermissionId.kt | 4 ++-- .../mirai/console/permission/PermissionIdNamespace.kt | 4 ++-- .../mirai/console/permission/PermissionImplementation.kt | 4 ++-- .../permission/PermissionRegistryConflictException.kt | 4 ++-- .../mamoe/mirai/console/permission/PermissionService.kt | 4 ++-- .../net/mamoe/mirai/console/permission/Permittee.kt | 4 ++-- .../net/mamoe/mirai/console/permission/PermitteeId.kt | 2 +- .../main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt | 2 +- .../mamoe/mirai/console/plugin/PluginFileExtensions.kt | 4 ++-- .../net/mamoe/mirai/console/plugin/PluginManager.kt | 2 +- .../net/mamoe/mirai/console/plugin/ResourceContainer.kt | 2 +- .../mamoe/mirai/console/plugin/center/PluginCenter.kt | 2 +- .../description/IllegalPluginDescriptionException.kt | 2 +- .../mirai/console/plugin/description/PluginDependency.kt | 2 +- .../console/plugin/description/PluginDescription.kt | 2 +- .../mamoe/mirai/console/plugin/jvm/AbstractJvmPlugin.kt | 2 +- .../net/mamoe/mirai/console/plugin/jvm/ExportManager.kt | 2 +- .../net/mamoe/mirai/console/plugin/jvm/JavaPlugin.kt | 2 +- .../mirai/console/plugin/jvm/JavaPluginScheduler.kt | 2 +- .../net/mamoe/mirai/console/plugin/jvm/JvmPlugin.kt | 2 +- .../mirai/console/plugin/jvm/JvmPluginDescription.kt | 2 +- .../mamoe/mirai/console/plugin/jvm/JvmPluginLoader.kt | 2 +- .../net/mamoe/mirai/console/plugin/jvm/KotlinPlugin.kt | 2 +- .../mirai/console/plugin/loader/FilePluginLoader.kt | 9 +++++++++ .../mirai/console/plugin/loader/PluginLoadException.kt | 2 +- .../mamoe/mirai/console/plugin/loader/PluginLoader.kt | 2 +- .../kotlin/net/mamoe/mirai/console/util/Annotations.kt | 2 +- .../kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt | 2 +- .../kotlin/net/mamoe/mirai/console/util/ContactUtils.kt | 4 ++-- .../net/mamoe/mirai/console/util/CoroutineScopeUtils.kt | 4 ++-- .../kotlin/net/mamoe/mirai/console/util/MessageScope.kt | 2 +- .../kotlin/net/mamoe/mirai/console/util/MessageUtils.kt | 4 ++-- .../kotlin/net/mamoe/mirai/console/util/SemVersion.kt | 3 +-- .../kotlin/net/mamoe/mirai/console/util/StandardUtils.kt | 4 ++-- .../kotlin/net/mamoe/mirai/console/util/retryCatching.kt | 2 +- buildSrc/src/main/kotlin/MiraiConsoleBuildPlugin.kt | 2 +- buildSrc/src/main/kotlin/PublishingHelpers.kt | 9 +++++++++ buildSrc/src/main/kotlin/SetCompileTargetPlugin.kt | 2 +- buildSrc/src/main/kotlin/Versions.kt | 2 +- buildSrc/src/main/kotlin/dependencyExtensions.kt | 2 +- buildSrc/src/main/kotlin/upload/Bintray.kt | 2 +- buildSrc/src/main/kotlin/upload/CuiCloud.kt | 2 +- buildSrc/src/main/kotlin/upload/GitHub.kt | 2 +- .../mamoe/mirai/console/pure/MiraiConsolePureLoader.kt | 3 +-- .../mamoe/mirai/console/terminal/BufferedOutputStream.kt | 3 +-- .../net/mamoe/mirai/console/terminal/ConsoleInputImpl.kt | 3 +-- .../mirai/console/terminal/ConsoleTerminalSettings.kt | 5 ++--- .../net/mamoe/mirai/console/terminal/ConsoleThread.kt | 3 +-- .../terminal/MiraiConsoleImplementationTerminal.kt | 3 +-- .../mirai/console/terminal/MiraiConsoleTerminalLoader.kt | 3 +-- .../mamoe/mirai/console/terminal/noconsole/NoConsole.kt | 2 +- .../compiler/common/diagnostics/MiraiConsoleErrors.java | 2 +- .../common/diagnostics/MiraiConsoleErrorsRendering.kt | 2 +- .../console/compiler/common/resolve/resolveCommon.kt | 4 ++-- .../console/compiler/common/resolve/resolveTypes.kt | 4 ++-- .../mamoe/mirai/console/compiler/common/utilCommon.kt | 4 ++-- .../console/gradle/IGNORED_DEPENDENCIES_IN_SHADOW.kt | 4 ++-- .../mamoe/mirai/console/gradle/MiraiConsoleExtension.kt | 4 ++-- .../mirai/console/gradle/MiraiConsoleGradlePlugin.kt | 4 ++-- .../net/mamoe/mirai/console/gradle/VersionConstants.kt | 4 ++-- .../mirai/console/intellij/IDEContainerContributor.kt | 4 ++-- .../kotlin/net/mamoe/mirai/console/intellij/Icons.kt | 4 ++-- .../mamoe/mirai/console/intellij/QuickFixRegistrar.kt | 9 +++++++++ .../intellij/diagnostics/ContextualParametersChecker.kt | 4 ++-- .../intellij/diagnostics/PluginDataValuesChecker.kt | 4 ++-- .../console/intellij/diagnostics/diagnosticsUtil.kt | 4 ++-- .../intellij/diagnostics/fix/AbuseYellowIntention.kt | 4 ++-- .../console/intellij/diagnostics/fix/AddSerializerFix.kt | 9 +++++++++ .../line/marker/CommandDeclarationLineMarkerProvider.kt | 4 ++-- .../intellij/line/marker/PluginMainLineMarkerProvider.kt | 4 ++-- .../mamoe/mirai/console/intellij/resolve/resolveIdea.kt | 4 ++-- .../src/main/resources/META-INF/plugin.xml | 9 +++++++++ 180 files changed, 319 insertions(+), 242 deletions(-) diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/Codegen.kt b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/Codegen.kt index 8857cb0c1..bfc674cc4 100644 --- a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/Codegen.kt +++ b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/Codegen.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/MessageScopeCodegen.kt b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/MessageScopeCodegen.kt index 69b39e2e3..e6b1c6b87 100644 --- a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/MessageScopeCodegen.kt +++ b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/MessageScopeCodegen.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/ValuePluginDataCodegen.kt b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/ValuePluginDataCodegen.kt index 8cb0fd3b2..836ff9a1a 100644 --- a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/ValuePluginDataCodegen.kt +++ b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/ValuePluginDataCodegen.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/JSettingCodegen.kt b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/JSettingCodegen.kt index b7cefac84..312703014 100644 --- a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/JSettingCodegen.kt +++ b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/JSettingCodegen.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/SettingValueUseSiteCodegen.kt b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/SettingValueUseSiteCodegen.kt index e1032cdf1..9d2f20fb8 100644 --- a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/SettingValueUseSiteCodegen.kt +++ b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/SettingValueUseSiteCodegen.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValueImplCodegen.kt b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValueImplCodegen.kt index d391685fa..47e42a836 100644 --- a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValueImplCodegen.kt +++ b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValueImplCodegen.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValuesCodegen.kt b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValuesCodegen.kt index 90da1619f..7c07d1b73 100644 --- a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValuesCodegen.kt +++ b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValuesCodegen.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/util.kt b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/util.kt index 0066d071b..735215346 100644 --- a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/util.kt +++ b/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/util.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsole.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsole.kt index 42106685e..2211eff30 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsole.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsole.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ @@ -17,7 +17,6 @@ import kotlinx.coroutines.Job import net.mamoe.mirai.Bot import net.mamoe.mirai.console.MiraiConsole.INSTANCE import net.mamoe.mirai.console.MiraiConsoleImplementation.Companion.start -import net.mamoe.mirai.console.command.BuiltInCommands import net.mamoe.mirai.console.extensions.BotConfigurationAlterer import net.mamoe.mirai.console.internal.MiraiConsoleImplementationBridge import net.mamoe.mirai.console.internal.extension.GlobalComponentStorage diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleFrontEndDescription.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleFrontEndDescription.kt index f8155a9d1..4c4de4b32 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleFrontEndDescription.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleFrontEndDescription.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt index 9950ae12d..7aa2f239f 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/AbstractCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/AbstractCommand.kt index 940c50294..c9048e221 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/AbstractCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/AbstractCommand.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/BuiltInCommands.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/BuiltInCommands.kt index fc4c406b6..9a6724e1d 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/BuiltInCommands.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/BuiltInCommands.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt index f1f44cbd9..6ea89734e 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecuteResult.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecuteResult.kt index 2e7c79c4a..106d1a8b6 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecuteResult.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecuteResult.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecutionException.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecutionException.kt index dd3d0c761..da35d181e 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecutionException.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecutionException.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandManager.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandManager.kt index f837ed105..ee2871993 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandManager.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandManager.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandOwner.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandOwner.kt index 0c5ea4eaa..e60628ce7 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandOwner.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandOwner.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandPermissionDeniedException.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandPermissionDeniedException.kt index 309f1528a..5fbb6d95c 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandPermissionDeniedException.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandPermissionDeniedException.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandSender.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandSender.kt index f3f9b55ee..5f1abba24 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandSender.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandSender.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt index d88b41559..46be20fdc 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/IllegalCommandArgumentException.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/IllegalCommandArgumentException.kt index 0e8936524..461f701d8 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/IllegalCommandArgumentException.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/IllegalCommandArgumentException.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ @file:Suppress("unused") diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt index 850c55320..fda863120 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt index 9d0465ee0..6f78c8a42 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentContext.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentContext.kt index c662a2997..0540532fc 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentContext.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentContext.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentParserBuiltins.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentParserBuiltins.kt index 20d0665b6..4d0a78a62 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentParserBuiltins.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentParserBuiltins.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt index eae2a09b4..5fdf0558f 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt @@ -2,7 +2,7 @@ * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandSignature.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandSignature.kt index 8dba2deaf..efeb4618b 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandSignature.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandSignature.kt @@ -2,7 +2,7 @@ * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandValueArgumentParser.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandValueArgumentParser.kt index 75c373519..e8d4e67b3 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandValueArgumentParser.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandValueArgumentParser.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/Exceptions.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/Exceptions.kt index 4ce6f7338..434983625 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/Exceptions.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/Exceptions.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/ExperimentalCommandDescriptors.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/ExperimentalCommandDescriptors.kt index 31ee99b7c..20b04a79b 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/ExperimentalCommandDescriptors.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/ExperimentalCommandDescriptors.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/TypeVariant.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/TypeVariant.kt index 4e2792638..2a4d49a82 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/TypeVariant.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/TypeVariant.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JCompositeCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JCompositeCommand.kt index b3828418d..aecefc529 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JCompositeCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JCompositeCommand.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JRawCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JRawCommand.kt index 8d6358050..e3cf80512 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JRawCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JRawCommand.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JSimpleCommand.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JSimpleCommand.kt index 706a14df4..d5aa6d3ed 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JSimpleCommand.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JSimpleCommand.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCall.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCall.kt index 4bb43bb9e..a7dabba62 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCall.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCall.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCallParser.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCallParser.kt index 4d4bc6f59..92baa6184 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCallParser.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCallParser.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + package net.mamoe.mirai.console.command.parse import net.mamoe.mirai.console.command.CommandSender diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandValueArgument.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandValueArgument.kt index 30e908e60..03b2771d5 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandValueArgument.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandValueArgument.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/SpaceSeparatedCommandCallParser.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/SpaceSeparatedCommandCallParser.kt index b17cabdaf..45a077dad 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/SpaceSeparatedCommandCallParser.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/SpaceSeparatedCommandCallParser.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + package net.mamoe.mirai.console.command.parse import net.mamoe.mirai.console.command.CommandSender diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/BuiltInCommandCallResolver.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/BuiltInCommandCallResolver.kt index 7f43e3d2b..f07b09eca 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/BuiltInCommandCallResolver.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/BuiltInCommandCallResolver.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + package net.mamoe.mirai.console.command.resolve import net.mamoe.mirai.console.command.Command diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/CommandCallResolver.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/CommandCallResolver.kt index 8022f532b..e4a0ff675 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/CommandCallResolver.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/CommandCallResolver.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/ResolvedCommandCall.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/ResolvedCommandCall.kt index 5b48c74b9..8b24788cc 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/ResolvedCommandCall.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/ResolvedCommandCall.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/ResolveContext.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/ResolveContext.kt index 350e20ada..93a5006e3 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/ResolveContext.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/ResolveContext.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/RestrictedScope.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/RestrictedScope.kt index 640016cc7..f4f4f1215 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/RestrictedScope.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/RestrictedScope.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt index 435a666eb..6bbc507a4 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt index 749c9b60f..da08e4493 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt index 3fe5c0bc9..63bbd64d2 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginDataHolder.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginDataHolder.kt index 2237e1ec7..bf4e78344 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginDataHolder.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginDataHolder.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + package net.mamoe.mirai.console.data import kotlinx.coroutines.CoroutineExceptionHandler diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginConfig.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginConfig.kt index 88f74e033..807c1039e 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginConfig.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginConfig.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt index 05d6ffe43..2da279502 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataExtensions.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataExtensions.kt index 654687d49..69af2f6a9 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataExtensions.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataExtensions.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + @file:Suppress("unused", "INAPPLICABLE_JVM_NAME", "INVISIBLE_REFERENCE", "INVISIBLE_MEMBER") package net.mamoe.mirai.console.data diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataHolder.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataHolder.kt index af2bae5db..302cc7046 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataHolder.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataHolder.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt index 8e4e667ac..e10310c51 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt index 1eb124b12..5535ad8c9 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueDescription.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueDescription.kt index 1b4c02a13..aeeaaf9c8 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueDescription.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueDescription.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueName.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueName.kt index e9de3a500..17f101429 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueName.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueName.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginConfig.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginConfig.kt index 568ad2530..05cee4d5f 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginConfig.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginConfig.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginData.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginData.kt index 8ec168756..5118f5ecf 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginData.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginData.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/CommandExecutionEvent.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/CommandExecutionEvent.kt index 4edbcea61..360750b25 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/CommandExecutionEvent.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/CommandExecutionEvent.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/ConsoleEvent.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/ConsoleEvent.kt index bc7399958..3616ce54d 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/ConsoleEvent.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/ConsoleEvent.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ComponentStorage.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ComponentStorage.kt index 62b7b47c2..f70167db5 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ComponentStorage.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ComponentStorage.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/Extension.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/Extension.kt index 744fbd719..584a0dda6 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/Extension.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/Extension.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionException.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionException.kt index 3b4025c94..774d0a2af 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionException.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionException.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionPoint.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionPoint.kt index 04a772cf5..b2cfa16e7 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionPoint.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionPoint.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/PluginComponentStorage.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/PluginComponentStorage.kt index 2eb1451ad..4cb05874f 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/PluginComponentStorage.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/PluginComponentStorage.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/BotConfigurationAlterer.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/BotConfigurationAlterer.kt index 642d5ea9b..53b278368 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/BotConfigurationAlterer.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/BotConfigurationAlterer.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallParserProvider.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallParserProvider.kt index b543edf89..9a31864ca 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallParserProvider.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallParserProvider.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallResolverProvider.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallResolverProvider.kt index 5081e21b3..bf63c771d 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallResolverProvider.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallResolverProvider.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PermissionServiceProvider.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PermissionServiceProvider.kt index e5c353ae7..d47043993 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PermissionServiceProvider.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PermissionServiceProvider.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PluginLoaderProvider.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PluginLoaderProvider.kt index 6722e9743..0352ca17e 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PluginLoaderProvider.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PluginLoaderProvider.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PostStartupExtension.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PostStartupExtension.kt index ab5d563e2..3e3015771 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PostStartupExtension.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PostStartupExtension.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/SingletonExtensionSelector.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/SingletonExtensionSelector.kt index 869cfff2c..70d48a7fd 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/SingletonExtensionSelector.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/SingletonExtensionSelector.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleBuildConstants.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleBuildConstants.kt index b3abe5cbd..7db8384b1 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleBuildConstants.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleBuildConstants.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleImplementationBridge.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleImplementationBridge.kt index 9c1119d5a..8a2d7e0ee 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleImplementationBridge.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleImplementationBridge.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandManagerImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandManagerImpl.kt index f0bc776ca..82e472477 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandManagerImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandManagerImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt index e65c0103c..c3cde4f47 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/internal.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/internal.kt index 42eead40c..094462f0c 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/internal.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/internal.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/CompositeValueImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/CompositeValueImpl.kt index c45d135ab..910cc04b0 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/CompositeValueImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/CompositeValueImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MemoryPluginDataStorageImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MemoryPluginDataStorageImpl.kt index 3f089d888..ec4794f2e 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MemoryPluginDataStorageImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MemoryPluginDataStorageImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MultiFilePluginDataStorageImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MultiFilePluginDataStorageImpl.kt index e8226315d..a9e9a1f2c 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MultiFilePluginDataStorageImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MultiFilePluginDataStorageImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/PluginDataImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/PluginDataImpl.kt index e52d4d79a..8792e94a3 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/PluginDataImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/PluginDataImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PluginData.value.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PluginData.value.kt index 7e045e30e..282b60bb8 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PluginData.value.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PluginData.value.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PrimitiveValueDeclarations.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PrimitiveValueDeclarations.kt index 44c11ee9f..aac45983b 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PrimitiveValueDeclarations.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PrimitiveValueDeclarations.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/AutoLoginConfig.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/AutoLoginConfig.kt index a78aa6ef5..a871d754a 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/AutoLoginConfig.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/AutoLoginConfig.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/ConsoleDataScope.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/ConsoleDataScope.kt index 98b8077bd..76ed0a104 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/ConsoleDataScope.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/ConsoleDataScope.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/collectionUtil.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/collectionUtil.kt index c9260c82d..255bd9931 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/collectionUtil.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/collectionUtil.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/reflectionUtils.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/reflectionUtils.kt index 54818777e..d14c3b12e 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/reflectionUtils.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/reflectionUtils.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/serializerHelper.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/serializerHelper.kt index eced14e96..b5a2a0938 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/serializerHelper.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/serializerHelper.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/valueFromKTypeImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/valueFromKTypeImpl.kt index 02e5ddbe9..1d63acce7 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/valueFromKTypeImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/valueFromKTypeImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/BuiltInSingletonExtensionSelector.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/BuiltInSingletonExtensionSelector.kt index 1d313ca6d..1314db595 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/BuiltInSingletonExtensionSelector.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/BuiltInSingletonExtensionSelector.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/ComponentStorageInternal.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/ComponentStorageInternal.kt index 803ccc8d4..6f4af7bd2 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/ComponentStorageInternal.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/ComponentStorageInternal.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/AbstractConcurrentPermissionService.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/AbstractConcurrentPermissionService.kt index 31641db0b..90fafa1a3 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/AbstractConcurrentPermissionService.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/AbstractConcurrentPermissionService.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/BuiltInPermissionServices.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/BuiltInPermissionServices.kt index d787e3358..ae50f993b 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/BuiltInPermissionServices.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/BuiltInPermissionServices.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/parseFromStringImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/parseFromStringImpl.kt index 343832ab6..e1267706c 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/parseFromStringImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/parseFromStringImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt index 526496d73..6a3e30969 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/Exceptions.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/Exceptions.kt index 4cfadc759..6d2030643 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/Exceptions.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/Exceptions.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt index 787f7bd80..9c58761d7 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt index f0c37166d..33c9e0584 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ @file:Suppress("MemberVisibilityCanBePrivate") diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginInternal.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginInternal.kt index 33ce08713..941fa1f95 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginInternal.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginInternal.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/PluginManagerImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/PluginManagerImpl.kt index d26feac23..e93fdb365 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/PluginManagerImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/PluginManagerImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ByteUtils.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ByteUtils.kt index e72dba09f..0b84be55c 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ByteUtils.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ByteUtils.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/CommonUtils.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/CommonUtils.kt index 516609400..27f5d5bdd 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/CommonUtils.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/CommonUtils.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ConsoleInputImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ConsoleInputImpl.kt index e9e8c2562..52c87db78 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ConsoleInputImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ConsoleInputImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/JavaPluginSchedulerImpl.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/JavaPluginSchedulerImpl.kt index 7385df2ae..53c11f026 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/JavaPluginSchedulerImpl.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/JavaPluginSchedulerImpl.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/PluginServiceHelper.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/PluginServiceHelper.kt index c3c0c68dc..d64a7ddc5 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/PluginServiceHelper.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/PluginServiceHelper.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/RangeTokenReader.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/RangeTokenReader.kt index 00a0524b2..5f761cb6e 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/RangeTokenReader.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/RangeTokenReader.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ @file:Suppress("MemberVisibilityCanBePrivate") diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/SemVersionInternal.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/SemVersionInternal.kt index d57c226e9..1c5e013af 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/SemVersionInternal.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/SemVersionInternal.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ package net.mamoe.mirai.console.internal.util.semver diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permission.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permission.kt index 6a8b72425..fd21a2518 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permission.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permission.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionId.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionId.kt index 551ca81a3..65411c3eb 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionId.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionId.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionIdNamespace.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionIdNamespace.kt index ac0076b2b..4c805bf9e 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionIdNamespace.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionIdNamespace.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionImplementation.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionImplementation.kt index 2e79f262e..1b27bed79 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionImplementation.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionImplementation.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionRegistryConflictException.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionRegistryConflictException.kt index de85ebe53..0378a924f 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionRegistryConflictException.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionRegistryConflictException.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionService.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionService.kt index b86f97612..49e25e94b 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionService.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionService.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permittee.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permittee.kt index e7235e22a..a9a21307e 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permittee.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permittee.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermitteeId.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermitteeId.kt index 3379e3b6d..267144cf3 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermitteeId.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermitteeId.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt index 0a7c2c05d..bb9d00a47 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginFileExtensions.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginFileExtensions.kt index 459d768b4..931dba5b6 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginFileExtensions.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginFileExtensions.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt index 1b0804b39..39fa8d3de 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/ResourceContainer.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/ResourceContainer.kt index 8937f4146..8332df1ca 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/ResourceContainer.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/ResourceContainer.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/center/PluginCenter.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/center/PluginCenter.kt index 9e5979319..045392df3 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/center/PluginCenter.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/center/PluginCenter.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/IllegalPluginDescriptionException.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/IllegalPluginDescriptionException.kt index d2a05199e..ba4244be4 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/IllegalPluginDescriptionException.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/IllegalPluginDescriptionException.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDependency.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDependency.kt index d73ac9cec..ea45ea173 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDependency.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDependency.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt index 7c84a2807..608409ff0 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/AbstractJvmPlugin.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/AbstractJvmPlugin.kt index 1f19786fa..c5a3c378f 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/AbstractJvmPlugin.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/AbstractJvmPlugin.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt index 1c2626720..c9bac5cde 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPlugin.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPlugin.kt index b3fe8dd54..51ef697ae 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPlugin.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPlugin.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt index d1f50470d..cfeb23cf2 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPlugin.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPlugin.kt index d3aa7e7cb..4fc8d8233 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPlugin.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPlugin.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginDescription.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginDescription.kt index b147e8873..d4bb97196 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginDescription.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginDescription.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginLoader.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginLoader.kt index 30b4e7f34..7123805a4 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginLoader.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginLoader.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/KotlinPlugin.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/KotlinPlugin.kt index 04a4ea380..50f8ee835 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/KotlinPlugin.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/KotlinPlugin.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/FilePluginLoader.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/FilePluginLoader.kt index f770711a4..4a5b4e60e 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/FilePluginLoader.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/FilePluginLoader.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + package net.mamoe.mirai.console.plugin.loader import net.mamoe.mirai.console.plugin.Plugin diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoadException.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoadException.kt index ac6e6621b..d038971f5 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoadException.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoadException.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoader.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoader.kt index 208f4e743..e4b9e863f 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoader.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoader.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/Annotations.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/Annotations.kt index 161120038..beba09b57 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/Annotations.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/Annotations.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt index ed79e4c76..9f9897be8 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ContactUtils.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ContactUtils.kt index bdd37219d..039989002 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ContactUtils.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ContactUtils.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/CoroutineScopeUtils.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/CoroutineScopeUtils.kt index ee2917b80..c275d1250 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/CoroutineScopeUtils.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/CoroutineScopeUtils.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt index a8fd52195..023642dcb 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageUtils.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageUtils.kt index 475481b08..117b7307f 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageUtils.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageUtils.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/SemVersion.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/SemVersion.kt index 779b97e5d..47c207fa8 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/SemVersion.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/SemVersion.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ /* diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/StandardUtils.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/StandardUtils.kt index 0d7dc8630..4d44aa978 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/StandardUtils.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/StandardUtils.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/retryCatching.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/retryCatching.kt index 41c3358b4..88b951706 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/retryCatching.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/retryCatching.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/buildSrc/src/main/kotlin/MiraiConsoleBuildPlugin.kt b/buildSrc/src/main/kotlin/MiraiConsoleBuildPlugin.kt index 8dbd47d8a..97b642409 100644 --- a/buildSrc/src/main/kotlin/MiraiConsoleBuildPlugin.kt +++ b/buildSrc/src/main/kotlin/MiraiConsoleBuildPlugin.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/buildSrc/src/main/kotlin/PublishingHelpers.kt b/buildSrc/src/main/kotlin/PublishingHelpers.kt index 95e16283a..a48ca62d0 100644 --- a/buildSrc/src/main/kotlin/PublishingHelpers.kt +++ b/buildSrc/src/main/kotlin/PublishingHelpers.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + @file:Suppress("INVISIBLE_MEMBER", "INVISIBLE_REFERENCE", "NOTHING_TO_INLINE", "RemoveRedundantBackticks") import org.gradle.api.Project diff --git a/buildSrc/src/main/kotlin/SetCompileTargetPlugin.kt b/buildSrc/src/main/kotlin/SetCompileTargetPlugin.kt index 1e8b8315d..0757d72cf 100644 --- a/buildSrc/src/main/kotlin/SetCompileTargetPlugin.kt +++ b/buildSrc/src/main/kotlin/SetCompileTargetPlugin.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index ac6523639..fe1c9faee 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/buildSrc/src/main/kotlin/dependencyExtensions.kt b/buildSrc/src/main/kotlin/dependencyExtensions.kt index 76b6fd9b5..761651eb4 100644 --- a/buildSrc/src/main/kotlin/dependencyExtensions.kt +++ b/buildSrc/src/main/kotlin/dependencyExtensions.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/buildSrc/src/main/kotlin/upload/Bintray.kt b/buildSrc/src/main/kotlin/upload/Bintray.kt index a6eb25152..fdf543ddf 100644 --- a/buildSrc/src/main/kotlin/upload/Bintray.kt +++ b/buildSrc/src/main/kotlin/upload/Bintray.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/buildSrc/src/main/kotlin/upload/CuiCloud.kt b/buildSrc/src/main/kotlin/upload/CuiCloud.kt index effcfab09..df5ca35ef 100644 --- a/buildSrc/src/main/kotlin/upload/CuiCloud.kt +++ b/buildSrc/src/main/kotlin/upload/CuiCloud.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/buildSrc/src/main/kotlin/upload/GitHub.kt b/buildSrc/src/main/kotlin/upload/GitHub.kt index e71210f06..5a9ed545c 100644 --- a/buildSrc/src/main/kotlin/upload/GitHub.kt +++ b/buildSrc/src/main/kotlin/upload/GitHub.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt index 477d8dcdc..56cd040e3 100644 --- a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt +++ b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ package net.mamoe.mirai.console.pure diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/BufferedOutputStream.kt b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/BufferedOutputStream.kt index ad7f18160..847e42ce9 100644 --- a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/BufferedOutputStream.kt +++ b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/BufferedOutputStream.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ package net.mamoe.mirai.console.terminal diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleInputImpl.kt b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleInputImpl.kt index c0a83f707..9f69d8765 100644 --- a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleInputImpl.kt +++ b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleInputImpl.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ package net.mamoe.mirai.console.terminal diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleTerminalSettings.kt b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleTerminalSettings.kt index 0c780724e..e652ab4fb 100644 --- a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleTerminalSettings.kt +++ b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleTerminalSettings.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ /* * @author Karlatemp @@ -27,7 +26,7 @@ package net.mamoe.mirai.console.terminal annotation class ConsoleTerminalExperimentalApi @ConsoleTerminalExperimentalApi -public object ConsoleTerminalSettings { +object ConsoleTerminalSettings { @JvmField var setupAnsi: Boolean = System.getProperty("os.name") .toLowerCase() diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleThread.kt b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleThread.kt index 5703eb512..97294ca1c 100644 --- a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleThread.kt +++ b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleThread.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ package net.mamoe.mirai.console.terminal diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleImplementationTerminal.kt b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleImplementationTerminal.kt index 1cd89f853..4501c1af6 100644 --- a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleImplementationTerminal.kt +++ b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleImplementationTerminal.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ @file:Suppress( diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleTerminalLoader.kt b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleTerminalLoader.kt index 930e72b48..aead7f1d8 100644 --- a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleTerminalLoader.kt +++ b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleTerminalLoader.kt @@ -2,10 +2,9 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE - * */ @file:Suppress( diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/noconsole/NoConsole.kt b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/noconsole/NoConsole.kt index 45a8be66d..bf0c054d6 100644 --- a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/noconsole/NoConsole.kt +++ b/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/noconsole/NoConsole.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/compiler-common/src/main/java/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrors.java b/tools/compiler-common/src/main/java/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrors.java index a8181fb84..051334a0a 100644 --- a/tools/compiler-common/src/main/java/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrors.java +++ b/tools/compiler-common/src/main/java/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrors.java @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrorsRendering.kt b/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrorsRendering.kt index ca79ec5b3..01a0d34d6 100644 --- a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrorsRendering.kt +++ b/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrorsRendering.kt @@ -2,7 +2,7 @@ * Copyright 2019-2020 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found via the following link. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveCommon.kt b/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveCommon.kt index 670ccba04..b58b40d78 100644 --- a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveCommon.kt +++ b/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveCommon.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveTypes.kt b/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveTypes.kt index b09530ae4..ddf002a34 100644 --- a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveTypes.kt +++ b/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveTypes.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/utilCommon.kt b/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/utilCommon.kt index 4726abb9f..6ee261353 100644 --- a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/utilCommon.kt +++ b/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/utilCommon.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/IGNORED_DEPENDENCIES_IN_SHADOW.kt b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/IGNORED_DEPENDENCIES_IN_SHADOW.kt index 4b619f28f..ddc9951d9 100644 --- a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/IGNORED_DEPENDENCIES_IN_SHADOW.kt +++ b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/IGNORED_DEPENDENCIES_IN_SHADOW.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleExtension.kt b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleExtension.kt index 74dc3043a..572a74a76 100644 --- a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleExtension.kt +++ b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleExtension.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleGradlePlugin.kt b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleGradlePlugin.kt index 051502390..427eba7b9 100644 --- a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleGradlePlugin.kt +++ b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleGradlePlugin.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt index 8dd24fdf1..81058b1b5 100644 --- a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt +++ b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/IDEContainerContributor.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/IDEContainerContributor.kt index 772e5acb4..00b331fc7 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/IDEContainerContributor.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/IDEContainerContributor.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/Icons.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/Icons.kt index ae7217290..3e7b6f5d2 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/Icons.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/Icons.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/QuickFixRegistrar.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/QuickFixRegistrar.kt index 6e338736c..e13b263ba 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/QuickFixRegistrar.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/QuickFixRegistrar.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + package net.mamoe.mirai.console.intellij import com.intellij.codeInsight.intention.IntentionAction diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt index ab82110a8..f940c6906 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/PluginDataValuesChecker.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/PluginDataValuesChecker.kt index 862e29d89..79b584b3f 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/PluginDataValuesChecker.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/PluginDataValuesChecker.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/diagnosticsUtil.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/diagnosticsUtil.kt index 1c7d4911f..066a3985b 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/diagnosticsUtil.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/diagnosticsUtil.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/fix/AbuseYellowIntention.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/fix/AbuseYellowIntention.kt index fbb08fea4..e2cd2dbb0 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/fix/AbuseYellowIntention.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/fix/AbuseYellowIntention.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/fix/AddSerializerFix.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/fix/AddSerializerFix.kt index e2cb8625c..dd71d28c3 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/fix/AddSerializerFix.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/fix/AddSerializerFix.kt @@ -1,3 +1,12 @@ +/* + * Copyright 2019-2020 Mamoe Technologies and contributors. + * + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. + * + * https://github.com/mamoe/mirai/blob/master/LICENSE + */ + package net.mamoe.mirai.console.intellij.diagnostics.fix import com.intellij.codeInsight.intention.IntentionAction diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/line/marker/CommandDeclarationLineMarkerProvider.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/line/marker/CommandDeclarationLineMarkerProvider.kt index 43ba32e21..d2f6c4c8f 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/line/marker/CommandDeclarationLineMarkerProvider.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/line/marker/CommandDeclarationLineMarkerProvider.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/line/marker/PluginMainLineMarkerProvider.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/line/marker/PluginMainLineMarkerProvider.kt index b69cd1f4d..4bd6b1bfb 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/line/marker/PluginMainLineMarkerProvider.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/line/marker/PluginMainLineMarkerProvider.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/resolve/resolveIdea.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/resolve/resolveIdea.kt index a8afeb64b..dfcd8389b 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/resolve/resolveIdea.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/resolve/resolveIdea.kt @@ -1,8 +1,8 @@ /* - * Copyright 2020 Mamoe Technologies and contributors. + * Copyright 2019-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. + * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. * * https://github.com/mamoe/mirai/blob/master/LICENSE */ diff --git a/tools/intellij-plugin/src/main/resources/META-INF/plugin.xml b/tools/intellij-plugin/src/main/resources/META-INF/plugin.xml index 12267adbc..3dbd79325 100644 --- a/tools/intellij-plugin/src/main/resources/META-INF/plugin.xml +++ b/tools/intellij-plugin/src/main/resources/META-INF/plugin.xml @@ -1,3 +1,12 @@ + + net.mamoe.mirai-console From 0078ebd68f705240093eb79e17f61bf92a171dee Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 28 Oct 2020 13:48:20 +0800 Subject: [PATCH 14/34] Allow "1" for BooleanValueArgumentParser --- .../command/descriptor/CommandArgumentParserBuiltins.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentParserBuiltins.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentParserBuiltins.kt index 4d0a78a62..4e0946376 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentParserBuiltins.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentParserBuiltins.kt @@ -109,7 +109,7 @@ public object PlainTextValueArgumentParser : InternalCommandValueArgumentParserE } /** - * 当字符串内容为(不区分大小写) "true", "yes", "enabled" + * 当字符串内容为(不区分大小写) "true", "yes", "enabled", "on", "1" */ public object BooleanValueArgumentParser : InternalCommandValueArgumentParserExtensions() { public override fun parse(raw: String, sender: CommandSender): Boolean = raw.trim().let { str -> @@ -117,6 +117,7 @@ public object BooleanValueArgumentParser : InternalCommandValueArgumentParserExt || str.equals("yes", ignoreCase = true) || str.equals("enabled", ignoreCase = true) || str.equals("on", ignoreCase = true) + || str.equals("1", ignoreCase = true) } } From b9f70b1c66a0b6df7ac47c25a509d518444fafdf Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 28 Oct 2020 13:57:28 +0800 Subject: [PATCH 15/34] Rename CommandReceiverParameter.PARAMETER_NAME to CommandReceiverParameter.NAME --- .../mirai/console/command/descriptor/CommandParameter.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt index 5fdf0558f..77960e867 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt @@ -104,7 +104,7 @@ public class CommandReceiverParameter( override val isOptional: Boolean, override val type: KType, ) : CommandParameter, AbstractCommandParameter() { - override val name: String get() = PARAMETER_NAME + override val name: String get() = NAME init { val classifier = type.classifier @@ -117,7 +117,7 @@ public class CommandReceiverParameter( } public companion object { - public const val PARAMETER_NAME: String = "" + public const val NAME: String = "" } } From 34eb8eb9cbef5585111208733a0d5d2eae6d8a3f Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 28 Oct 2020 14:02:03 +0800 Subject: [PATCH 16/34] 1.0-RC --- .../mirai/console/internal/MiraiConsoleBuildConstants.kt | 4 ++-- buildSrc/src/main/kotlin/Versions.kt | 2 +- .../kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleBuildConstants.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleBuildConstants.kt index 7db8384b1..a0a673888 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleBuildConstants.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleBuildConstants.kt @@ -14,8 +14,8 @@ import java.time.Instant internal object MiraiConsoleBuildConstants { // auto-filled on build (task :mirai-console:fillBuildConstants) @JvmStatic - val buildDate: Instant = Instant.ofEpochSecond(1601134282) - const val versionConst: String = "1.0-RC-dev-29" + val buildDate: Instant = Instant.ofEpochSecond(1603864859) + const val versionConst: String = "1.0-RC" @JvmStatic val version: SemVersion = SemVersion(versionConst) diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index fe1c9faee..238602556 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -9,7 +9,7 @@ object Versions { const val core = "1.3.2" - const val console = "1.0-RC-dev-32" + const val console = "1.0-RC" const val consoleGraphical = "0.0.7" const val consoleTerminal = console diff --git a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt index 81058b1b5..a3cccbd26 100644 --- a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt +++ b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt @@ -10,6 +10,6 @@ package net.mamoe.mirai.console.gradle internal object VersionConstants { - const val CONSOLE_VERSION = "1.0-RC-dev-32" // value is written here automatically during build + const val CONSOLE_VERSION = "1.0-RC" // value is written here automatically during build const val CORE_VERSION = "1.3.2" // value is written here automatically during build } \ No newline at end of file From 14fd3015b980f99e7ed82e0bdca0eaaec4339734 Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 28 Oct 2020 15:25:30 +0800 Subject: [PATCH 17/34] Fix resolve --- .../mirai/console/compiler/common/resolve/resolveTypes.kt | 2 +- .../kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt | 2 +- .../run/projects/test-project/build.gradle.kts | 4 ++-- .../src/main/kotlin/org/example/myplugin/MyPluginMain.kt | 4 ++-- .../intellij/diagnostics/ContextualParametersChecker.kt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveTypes.kt b/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveTypes.kt index ddf002a34..9687dc4b9 100644 --- a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveTypes.kt +++ b/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveTypes.kt @@ -56,7 +56,7 @@ val RESOLVE_CONTEXT_FQ_NAME = FqName("net.mamoe.mirai.console.compiler.common.Re enum class ResolveContextKind { PLUGIN_ID, PLUGIN_NAME, - PLUGIN_VERSION, + SEMANTIC_VERSION, VERSION_REQUIREMENT, diff --git a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt index a3cccbd26..e68588335 100644 --- a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt +++ b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt @@ -10,6 +10,6 @@ package net.mamoe.mirai.console.gradle internal object VersionConstants { - const val CONSOLE_VERSION = "1.0-RC" // value is written here automatically during build + const val CONSOLE_VERSION = "1.0-RC-dev-33" // value is written here automatically during build const val CORE_VERSION = "1.3.2" // value is written here automatically during build } \ No newline at end of file diff --git a/tools/intellij-plugin/run/projects/test-project/build.gradle.kts b/tools/intellij-plugin/run/projects/test-project/build.gradle.kts index 7125213bc..f1d0e6a2a 100644 --- a/tools/intellij-plugin/run/projects/test-project/build.gradle.kts +++ b/tools/intellij-plugin/run/projects/test-project/build.gradle.kts @@ -21,8 +21,8 @@ kotlin.sourceSets.all { dependencies { compileOnly(kotlin("stdlib-jdk8")) - val core = "1.3.0" - val console = "1.0-RC-dev-28" + val core = "1.3.2" + val console = "1.0-RC-dev-33" compileOnly("net.mamoe:mirai-console:$console") compileOnly("net.mamoe:mirai-core:$core") diff --git a/tools/intellij-plugin/run/projects/test-project/src/main/kotlin/org/example/myplugin/MyPluginMain.kt b/tools/intellij-plugin/run/projects/test-project/src/main/kotlin/org/example/myplugin/MyPluginMain.kt index 7c90205d7..5c46ce9ee 100644 --- a/tools/intellij-plugin/run/projects/test-project/src/main/kotlin/org/example/myplugin/MyPluginMain.kt +++ b/tools/intellij-plugin/run/projects/test-project/src/main/kotlin/org/example/myplugin/MyPluginMain.kt @@ -8,12 +8,12 @@ import net.mamoe.mirai.console.permission.PermissionService import net.mamoe.mirai.console.plugin.jvm.JvmPluginDescription import net.mamoe.mirai.console.plugin.jvm.KotlinPlugin -val T = "org.example" // 编译期常量 +const val T = "org.example" // 编译期常量 object MyPluginMain : KotlinPlugin( JvmPluginDescription( T, - "0.1.0", + "1.0.0-M4", ) { name(".") } diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt index f940c6906..364026232 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt @@ -120,7 +120,7 @@ class ContextualParametersChecker : DeclarationChecker { EnumMap Diagnostic?>(ResolveContextKind::class.java).apply { put(ResolveContextKind.PLUGIN_NAME, ::checkPluginName) put(ResolveContextKind.PLUGIN_ID, ::checkPluginId) - put(ResolveContextKind.PLUGIN_VERSION, ::checkPluginVersion) + put(ResolveContextKind.SEMANTIC_VERSION, ::checkPluginVersion) put(ResolveContextKind.COMMAND_NAME, ::checkCommandName) put(ResolveContextKind.PERMISSION_NAME, ::checkPermissionName) put(ResolveContextKind.PERMISSION_NAMESPACE, ::checkPermissionNamespace) From bace377d1e50ac544900cab149bf26c39f538598 Mon Sep 17 00:00:00 2001 From: Him188 Date: Wed, 28 Oct 2020 15:38:25 +0800 Subject: [PATCH 18/34] Fix semantic version and plugin id regexes --- .../mirai/console/plugin/description/PluginDescription.kt | 4 ++-- .../src/main/kotlin/org/example/myplugin/MyPluginMain.kt | 2 +- .../intellij/diagnostics/ContextualParametersChecker.kt | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt index 608409ff0..7c0053bae 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt @@ -90,7 +90,7 @@ public interface PluginDescription { * - `v1.0` (不允许 "v") * - `V1.0` (不允许 "V") * - * @see Semver 语义化版本. 允许 [宽松][Semver.SemverType.LOOSE] 类型版本. + * @see SemVersion 语义化版本. */ @ResolveContext(SEMANTIC_VERSION) public val version: SemVersion @@ -116,7 +116,7 @@ public interface PluginDescription { * * @see PluginDescription.id */ - public val ID_REGEX: Regex = Regex("""([a-zA-Z]+(?:\.[a-zA-Z0-9]+)*)\.([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)""") + public val ID_REGEX: Regex = Regex("""([a-zA-Z][a-zA-Z0-9]*(?:\.[a-zA-Z][a-zA-Z0-9]*)*)\.([a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z0-9]+)*)""") /** * 在 [PluginDescription.id] 和 [PluginDescription.name] 中禁止用的完全匹配名称列表. diff --git a/tools/intellij-plugin/run/projects/test-project/src/main/kotlin/org/example/myplugin/MyPluginMain.kt b/tools/intellij-plugin/run/projects/test-project/src/main/kotlin/org/example/myplugin/MyPluginMain.kt index 5c46ce9ee..8856e0d1b 100644 --- a/tools/intellij-plugin/run/projects/test-project/src/main/kotlin/org/example/myplugin/MyPluginMain.kt +++ b/tools/intellij-plugin/run/projects/test-project/src/main/kotlin/org/example/myplugin/MyPluginMain.kt @@ -13,7 +13,7 @@ const val T = "org.example" // 编译期常量 object MyPluginMain : KotlinPlugin( JvmPluginDescription( T, - "1.0.0-M4", + "1.0-M4", ) { name(".") } diff --git a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt index 364026232..31b722281 100644 --- a/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt +++ b/tools/intellij-plugin/src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/ContextualParametersChecker.kt @@ -24,11 +24,11 @@ import org.jetbrains.kotlin.resolve.checkers.DeclarationCheckerContext import java.util.* /** - * Checks paramters with [ResolveContextKind] + * Checks parameters with [ResolveContextKind] */ class ContextualParametersChecker : DeclarationChecker { companion object { - private val ID_REGEX: Regex = Regex("""([a-zA-Z]+(?:\.[a-zA-Z0-9]+)*)\.([a-zA-Z]+(?:-[a-zA-Z0-9]+)*)""") + private val ID_REGEX: Regex = Regex("""([a-zA-Z][a-zA-Z0-9]*(?:\.[a-zA-Z][a-zA-Z0-9]*)*)\.([a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z0-9]+)*)""") private val FORBIDDEN_ID_NAMES: Array = arrayOf("main", "console", "plugin", "config", "data") private const val syntax = """类似于 "net.mamoe.mirai.example-plugin", 其中 "net.mamoe.mirai" 为 groupId, "example-plugin" 为插件名""" @@ -37,7 +37,7 @@ class ContextualParametersChecker : DeclarationChecker { * https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string */ private val SEMANTIC_VERSIONING_REGEX = - Regex("""^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?${'$'}""") + Regex("""^(0|[1-9]\d*)\.(0|[1-9]\d*)(?:\.(0|[1-9]\d*))?(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?${'$'}""") fun checkPluginId(inspectionTarget: PsiElement, value: String): Diagnostic? { if (value.isBlank()) return ILLEGAL_PLUGIN_DESCRIPTION.on(inspectionTarget, "插件 Id 不能为空. \n插件 Id$syntax") From 3b14d70cc5df3e4581adef758785957a6d805853 Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 09:48:12 +0800 Subject: [PATCH 19/34] Fix command receiverParameter, #215 --- .../mirai/console/internal/command/CommandReflector.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt index c3cde4f47..116d5c068 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt @@ -256,6 +256,15 @@ internal class CommandReflector( if (instanceParameter != null) { args[instanceParameter] = command } + + val receiverParameter = function.extensionReceiverParameter + if (receiverParameter != null) { + check(receiverParameter.type.classifierAsKClass().isInstance(call.caller)) { + "Bad command call resolved. " + + "Function expects receiver parameter ${receiverParameter.type} whereas actual is ${call.caller::class}." + } + args[receiverParameter] = call.caller + } function.callSuspendBy(args) } }.toList() From 77e38dd964d6978bd8a2977ff129625d5f3e841c Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 09:48:32 +0800 Subject: [PATCH 20/34] Check instanceReceiver before call --- .../mamoe/mirai/console/internal/command/CommandReflector.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt index 116d5c068..d6e3a85e0 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt @@ -254,6 +254,10 @@ internal class CommandReflector( val instanceParameter = function.instanceParameter if (instanceParameter != null) { + check(instanceParameter.type.classifierAsKClass().isInstance(command)) { + "Bad command call resolved. " + + "Function expects instance parameter ${instanceParameter.type} whereas actual instance is ${command::class}." + } args[instanceParameter] = command } From cdefb2dbed3550ead4310c6ee9657fb25f257d5b Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 10:01:38 +0800 Subject: [PATCH 21/34] Cleanup code --- .../mamoe/mirai/console/internal/command/CommandReflector.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt index d6e3a85e0..d39eb6a8f 100644 --- a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt +++ b/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt @@ -71,7 +71,7 @@ internal object SimpleCommandSubCommandAnnotationResolver : override fun getAnnotatedName(ownerCommand: Command, parameter: KParameter): String? = parameter.findAnnotation()?.value - override fun getDescription(ownerCommand: Command, function: KFunction<*>): String? = + override fun getDescription(ownerCommand: Command, function: KFunction<*>): String = ownerCommand.description } @@ -274,7 +274,7 @@ internal class CommandReflector( }.toList() } - private fun KParameter.toCommandReceiverParameter(): CommandReceiverParameter? { + private fun KParameter.toCommandReceiverParameter(): CommandReceiverParameter { check(!this.isVararg) { "Receiver cannot be vararg." } check(this.type.classifierAsKClass().isSubclassOf(CommandSender::class)) { "Receiver must be subclass of CommandSender" } From 8f18842503851f6da71529ab0d4465eb32f08575 Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 10:01:57 +0800 Subject: [PATCH 22/34] Update version constants --- .../kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt index e68588335..a3cccbd26 100644 --- a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt +++ b/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt @@ -10,6 +10,6 @@ package net.mamoe.mirai.console.gradle internal object VersionConstants { - const val CONSOLE_VERSION = "1.0-RC-dev-33" // value is written here automatically during build + const val CONSOLE_VERSION = "1.0-RC" // value is written here automatically during build const val CORE_VERSION = "1.3.2" // value is written here automatically during build } \ No newline at end of file From e673679125f9802841916594f7531fc473da6e4c Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 10:28:15 +0800 Subject: [PATCH 23/34] Rename .java to .kt --- .../MiraiConsoleErrors.java => diagnostics/MiraiConsoleErrors.kt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tools/compiler-common/src/{main/java/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrors.java => diagnostics/MiraiConsoleErrors.kt} (100%) diff --git a/tools/compiler-common/src/main/java/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrors.java b/tools/compiler-common/src/diagnostics/MiraiConsoleErrors.kt similarity index 100% rename from tools/compiler-common/src/main/java/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrors.java rename to tools/compiler-common/src/diagnostics/MiraiConsoleErrors.kt From 03467a6f45e34941aaf6035111b0193fbc56a1d8 Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 10:28:18 +0800 Subject: [PATCH 24/34] Simplify source root structure --- .../mirai/console/codegen => }/Codegen.kt | 0 .../codegen => }/MessageScopeCodegen.kt | 0 .../codegen => }/ValuePluginDataCodegen.kt | 0 .../codegen => }/old/JSettingCodegen.kt | 0 .../old/SettingValueUseSiteCodegen.kt | 0 .../codegen => }/old/ValueImplCodegen.kt | 0 .../console/codegen => }/old/ValuesCodegen.kt | 0 .../mamoe/mirai/console/codegen => }/util.kt | 0 .../mamoe/mirai/console => }/MiraiConsole.kt | 0 .../MiraiConsoleFrontEndDescription.kt | 0 .../MiraiConsoleImplementation.kt | 0 .../console => }/command/AbstractCommand.kt | 0 .../console => }/command/BuiltInCommands.kt | 0 .../mirai/console => }/command/Command.kt | 0 .../command/CommandExecuteResult.kt | 0 .../command/CommandExecutionException.kt | 0 .../console => }/command/CommandManager.kt | 0 .../console => }/command/CommandOwner.kt | 0 .../CommandPermissionDeniedException.kt | 0 .../console => }/command/CommandSender.kt | 0 .../console => }/command/CompositeCommand.kt | 0 .../IllegalCommandArgumentException.kt | 0 .../mirai/console => }/command/RawCommand.kt | 0 .../console => }/command/SimpleCommand.kt | 0 .../descriptor/CommandArgumentContext.kt | 0 .../CommandArgumentParserBuiltins.kt | 0 .../command/descriptor/CommandParameter.kt | 0 .../command/descriptor/CommandSignature.kt | 0 .../descriptor/CommandValueArgumentParser.kt | 0 .../command/descriptor/Exceptions.kt | 0 .../ExperimentalCommandDescriptors.kt | 0 .../command/descriptor/TypeVariant.kt | 0 .../command/java/JCompositeCommand.kt | 0 .../console => }/command/java/JRawCommand.kt | 0 .../command/java/JSimpleCommand.kt | 0 .../console => }/command/parse/CommandCall.kt | 0 .../command/parse/CommandCallParser.kt | 0 .../command/parse/CommandValueArgument.kt | 0 .../parse/SpaceSeparatedCommandCallParser.kt | 0 .../resolve/BuiltInCommandCallResolver.kt | 0 .../command/resolve/CommandCallResolver.kt | 0 .../command/resolve/ResolvedCommandCall.kt | 0 .../compiler => }/common/ResolveContext.kt | 0 .../compiler => }/common/RestrictedScope.kt | 0 .../console => }/data/AbstractPluginData.kt | 0 .../console => }/data/AutoSavePluginConfig.kt | 0 .../console => }/data/AutoSavePluginData.kt | 0 .../data/AutoSavePluginDataHolder.kt | 0 .../mirai/console => }/data/PluginConfig.kt | 0 .../mirai/console => }/data/PluginData.kt | 0 .../console => }/data/PluginDataExtensions.kt | 0 .../console => }/data/PluginDataHolder.kt | 0 .../console => }/data/PluginDataStorage.kt | 0 .../mamoe/mirai/console => }/data/Value.kt | 0 .../console => }/data/ValueDescription.kt | 0 .../mirai/console => }/data/ValueName.kt | 0 .../data/java/JAutoSavePluginConfig.kt | 0 .../data/java/JAutoSavePluginData.kt | 0 .../events/CommandExecutionEvent.kt | 0 .../mirai/console => }/events/ConsoleEvent.kt | 0 .../extension/ComponentStorage.kt | 0 .../mirai/console => }/extension/Extension.kt | 0 .../extension/ExtensionException.kt | 0 .../console => }/extension/ExtensionPoint.kt | 0 .../extension/PluginComponentStorage.kt | 0 .../extensions/BotConfigurationAlterer.kt | 0 .../extensions/CommandCallParserProvider.kt | 0 .../extensions/CommandCallResolverProvider.kt | 0 .../extensions/PermissionServiceProvider.kt | 0 .../extensions/PluginLoaderProvider.kt | 0 .../extensions/PostStartupExtension.kt | 0 .../extensions/SingletonExtensionSelector.kt | 0 .../internal/MiraiConsoleBuildConstants.kt | 0 .../MiraiConsoleImplementationBridge.kt | 0 .../internal/command/CommandManagerImpl.kt | 0 .../internal/command/CommandReflector.kt | 0 .../console => }/internal/command/internal.kt | 0 .../internal/data/CompositeValueImpl.kt | 0 .../data/MemoryPluginDataStorageImpl.kt | 0 .../data/MultiFilePluginDataStorageImpl.kt | 0 .../internal/data/PluginDataImpl.kt | 0 .../internal/data/_PluginData.value.kt | 0 .../data/_PrimitiveValueDeclarations.kt | 0 .../internal/data/builtins/AutoLoginConfig.kt | 0 .../data/builtins/ConsoleDataScope.kt | 0 .../internal/data/collectionUtil.kt | 0 .../internal/data/reflectionUtils.kt | 0 .../internal/data/serializerHelper.kt | 0 .../internal/data/valueFromKTypeImpl.kt | 0 .../BuiltInSingletonExtensionSelector.kt | 0 .../extension/ComponentStorageInternal.kt | 0 .../AbstractConcurrentPermissionService.kt | 0 .../permission/BuiltInPermissionServices.kt | 0 .../permission/parseFromStringImpl.kt | 0 .../plugin/BuiltInJvmPluginLoaderImpl.kt | 0 .../internal/plugin/Exceptions.kt | 0 .../internal/plugin/ExportManagerImpl.kt | 0 .../internal/plugin/JvmPluginClassLoader.kt | 0 .../internal/plugin/JvmPluginInternal.kt | 0 .../internal/plugin/PluginManagerImpl.kt | 0 .../console => }/internal/util/ByteUtils.kt | 0 .../console => }/internal/util/CommonUtils.kt | 0 .../internal/util/ConsoleInputImpl.kt | 0 .../internal/util/JavaPluginSchedulerImpl.kt | 0 .../internal/util/PluginServiceHelper.kt | 0 .../internal/util/semver/RangeTokenReader.kt | 0 .../util/semver/SemVersionInternal.kt | 0 .../console => }/permission/Permission.kt | 0 .../console => }/permission/PermissionId.kt | 0 .../permission/PermissionIdNamespace.kt | 0 .../permission/PermissionImplementation.kt | 0 .../PermissionRegistryConflictException.kt | 0 .../permission/PermissionService.kt | 0 .../console => }/permission/Permittee.kt | 0 .../console => }/permission/PermitteeId.kt | 0 .../mamoe/mirai/console => }/plugin/Plugin.kt | 0 .../plugin/PluginFileExtensions.kt | 0 .../console => }/plugin/PluginManager.kt | 0 .../console => }/plugin/ResourceContainer.kt | 0 .../plugin/center/PluginCenter.kt | 0 .../IllegalPluginDescriptionException.kt | 0 .../plugin/description/PluginDependency.kt | 0 .../plugin/description/PluginDescription.kt | 0 .../plugin/jvm/AbstractJvmPlugin.kt | 0 .../console => }/plugin/jvm/ExportManager.kt | 0 .../console => }/plugin/jvm/JavaPlugin.kt | 0 .../plugin/jvm/JavaPluginScheduler.kt | 0 .../console => }/plugin/jvm/JvmPlugin.kt | 0 .../plugin/jvm/JvmPluginDescription.kt | 0 .../plugin/jvm/JvmPluginLoader.kt | 0 .../console => }/plugin/jvm/KotlinPlugin.kt | 0 .../plugin/loader/FilePluginLoader.kt | 0 .../plugin/loader/PluginLoadException.kt | 0 .../plugin/loader/PluginLoader.kt | 0 .../mirai/console => }/util/Annotations.kt | 0 .../mirai/console => }/util/ConsoleInput.kt | 0 .../mirai/console => }/util/ContactUtils.kt | 0 .../console => }/util/CoroutineScopeUtils.kt | 0 .../mirai/console => }/util/MessageScope.kt | 0 .../mirai/console => }/util/MessageUtils.kt | 0 .../mirai/console => }/util/SemVersion.kt | 0 .../mirai/console => }/util/StandardUtils.kt | 0 .../mirai/console => }/util/retryCatching.kt | 0 .../console => test}/TestMiraiConosle.kt | 0 .../console => test}/command/TestCommand.kt | 0 .../command/commanTestingUtil.kt | 0 .../console => test}/data/SettingTest.kt | 0 .../permission/PermissionsBasicsTest.kt | 0 .../console => test}/util/TestSemVersion.kt | 0 build.gradle.kts | 132 +++++++++++++++++- .../src/main/kotlin/SetCompileTargetPlugin.kt | 45 ------ docs/Commands.md | 86 ++++++------ docs/Extensions.md | 10 +- docs/Permissions.md | 18 +-- docs/PluginData.md | 72 +++++----- docs/Plugins.md | 56 ++++---- .../MiraiConsoleGraphicalLoader.kt | 0 .../console/graphical => }/MiraiGraphical.kt | 0 .../MiraiGraphicalFrontEndController.kt | 0 .../graphical => }/event/ReloadEvent.kt | 0 .../src/main/resources/character.png | Bin 30438 -> 0 bytes .../src/main/resources/logo.png | Bin 16453 -> 0 bytes .../console/graphical => }/model/BotModel.kt | 0 .../graphical => }/model/ConsoleInfo.kt | 0 .../graphical => }/model/GlobalSetting.kt | 0 .../graphical => }/model/PluginModel.kt | 0 .../model/VerificationCodeModel.kt | 0 .../stylesheet/BaseStyleSheet.kt | 0 .../stylesheet/LoginViewStyleSheet.kt | 0 .../stylesheet/PluginViewStyleSheet.kt | 0 .../stylesheet/PrimaryStyleSheet.kt | 0 .../graphical => }/util/JFoenixAdaptor.kt | 0 .../mirai/console/graphical => }/util/SVG.kt | 0 .../console/graphical => }/util/controls.kt | 0 .../console/graphical => }/view/Decorator.kt | 0 .../console/graphical => }/view/LoginView.kt | 0 .../graphical => }/view/PluginsCenterView.kt | 0 .../graphical => }/view/PluginsView.kt | 0 .../graphical => }/view/PrimaryView.kt | 0 .../graphical => }/view/SettingsView.kt | 0 .../graphical => }/view/dialog/InputDialog.kt | 0 .../view/dialog/PluginDetailFragment.kt | 0 .../view/dialog/VerificationCodeFragment.kt | 0 .../{src/test/kotlin => test}/Main.kt | 0 .../terminal => }/BufferedOutputStream.kt | 0 .../console/terminal => }/ConsoleInputImpl.kt | 0 .../terminal => }/ConsoleTerminalSettings.kt | 0 .../console/terminal => }/ConsoleThread.kt | 0 .../MiraiConsoleImplementationTerminal.kt | 0 .../MiraiConsoleTerminalLoader.kt | 0 .../console/pure/MiraiConsolePureLoader.kt | 0 .../terminal => }/noconsole/NoConsole.kt | 0 .../src/diagnostics/MiraiConsoleErrors.kt | 69 +++++---- .../MiraiConsoleErrorsRendering.kt | 10 +- .../common => }/resolve/resolveCommon.kt | 0 .../common => }/resolve/resolveTypes.kt | 0 .../compiler/common => }/utilCommon.kt | 0 .../IGNORED_DEPENDENCIES_IN_SHADOW.kt | 0 .../gradle => }/MiraiConsoleExtension.kt | 0 .../gradle => }/MiraiConsoleGradlePlugin.kt | 0 .../console/gradle => }/VersionConstants.kt | 0 tools/intellij-plugin/README.md | 2 +- .../main => }/resources/META-INF/plugin.xml | 0 .../resources/icons/commandDeclaration.svg | 0 .../main => }/resources/icons/pluginIcon.svg | 0 .../resources/icons/pluginMainDeclaration.png | Bin 0 -> 3803 bytes .../intellij => }/IDEContainerContributor.kt | 0 .../mirai/console/intellij => }/Icons.kt | 0 .../intellij => }/QuickFixRegistrar.kt | 0 .../ContextualParametersChecker.kt | 6 +- .../diagnostics/PluginDataValuesChecker.kt | 0 .../diagnostics/diagnosticsUtil.kt | 0 .../diagnostics/fix/AbuseYellowIntention.kt | 0 .../diagnostics/fix/AddSerializerFix.kt | 0 .../CommandDeclarationLineMarkerProvider.kt | 0 .../marker/PluginMainLineMarkerProvider.kt | 0 .../resources/icons/pluginMainDeclaration.png | Bin 3629 -> 0 bytes .../intellij => }/resolve/resolveIdea.kt | 0 218 files changed, 309 insertions(+), 197 deletions(-) rename backend/codegen/src/{main/kotlin/net/mamoe/mirai/console/codegen => }/Codegen.kt (100%) rename backend/codegen/src/{main/kotlin/net/mamoe/mirai/console/codegen => }/MessageScopeCodegen.kt (100%) rename backend/codegen/src/{main/kotlin/net/mamoe/mirai/console/codegen => }/ValuePluginDataCodegen.kt (100%) rename backend/codegen/src/{main/kotlin/net/mamoe/mirai/console/codegen => }/old/JSettingCodegen.kt (100%) rename backend/codegen/src/{main/kotlin/net/mamoe/mirai/console/codegen => }/old/SettingValueUseSiteCodegen.kt (100%) rename backend/codegen/src/{main/kotlin/net/mamoe/mirai/console/codegen => }/old/ValueImplCodegen.kt (100%) rename backend/codegen/src/{main/kotlin/net/mamoe/mirai/console/codegen => }/old/ValuesCodegen.kt (100%) rename backend/codegen/src/{main/kotlin/net/mamoe/mirai/console/codegen => }/util.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/MiraiConsole.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/MiraiConsoleFrontEndDescription.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/MiraiConsoleImplementation.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/AbstractCommand.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/BuiltInCommands.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/Command.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/CommandExecuteResult.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/CommandExecutionException.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/CommandManager.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/CommandOwner.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/CommandPermissionDeniedException.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/CommandSender.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/CompositeCommand.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/IllegalCommandArgumentException.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/RawCommand.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/SimpleCommand.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/descriptor/CommandArgumentContext.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/descriptor/CommandArgumentParserBuiltins.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/descriptor/CommandParameter.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/descriptor/CommandSignature.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/descriptor/CommandValueArgumentParser.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/descriptor/Exceptions.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/descriptor/ExperimentalCommandDescriptors.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/descriptor/TypeVariant.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/java/JCompositeCommand.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/java/JRawCommand.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/java/JSimpleCommand.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/parse/CommandCall.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/parse/CommandCallParser.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/parse/CommandValueArgument.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/parse/SpaceSeparatedCommandCallParser.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/resolve/BuiltInCommandCallResolver.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/resolve/CommandCallResolver.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/command/resolve/ResolvedCommandCall.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console/compiler => }/common/ResolveContext.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console/compiler => }/common/RestrictedScope.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/AbstractPluginData.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/AutoSavePluginConfig.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/AutoSavePluginData.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/AutoSavePluginDataHolder.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/PluginConfig.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/PluginData.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/PluginDataExtensions.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/PluginDataHolder.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/PluginDataStorage.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/Value.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/ValueDescription.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/ValueName.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/java/JAutoSavePluginConfig.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/data/java/JAutoSavePluginData.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/events/CommandExecutionEvent.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/events/ConsoleEvent.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extension/ComponentStorage.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extension/Extension.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extension/ExtensionException.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extension/ExtensionPoint.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extension/PluginComponentStorage.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extensions/BotConfigurationAlterer.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extensions/CommandCallParserProvider.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extensions/CommandCallResolverProvider.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extensions/PermissionServiceProvider.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extensions/PluginLoaderProvider.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extensions/PostStartupExtension.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/extensions/SingletonExtensionSelector.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/MiraiConsoleBuildConstants.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/MiraiConsoleImplementationBridge.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/command/CommandManagerImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/command/CommandReflector.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/command/internal.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/CompositeValueImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/MemoryPluginDataStorageImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/MultiFilePluginDataStorageImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/PluginDataImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/_PluginData.value.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/_PrimitiveValueDeclarations.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/builtins/AutoLoginConfig.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/builtins/ConsoleDataScope.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/collectionUtil.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/reflectionUtils.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/serializerHelper.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/data/valueFromKTypeImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/extension/BuiltInSingletonExtensionSelector.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/extension/ComponentStorageInternal.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/permission/AbstractConcurrentPermissionService.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/permission/BuiltInPermissionServices.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/permission/parseFromStringImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/plugin/BuiltInJvmPluginLoaderImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/plugin/Exceptions.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/plugin/ExportManagerImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/plugin/JvmPluginClassLoader.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/plugin/JvmPluginInternal.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/plugin/PluginManagerImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/util/ByteUtils.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/util/CommonUtils.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/util/ConsoleInputImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/util/JavaPluginSchedulerImpl.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/util/PluginServiceHelper.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/util/semver/RangeTokenReader.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/internal/util/semver/SemVersionInternal.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/permission/Permission.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/permission/PermissionId.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/permission/PermissionIdNamespace.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/permission/PermissionImplementation.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/permission/PermissionRegistryConflictException.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/permission/PermissionService.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/permission/Permittee.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/permission/PermitteeId.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/Plugin.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/PluginFileExtensions.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/PluginManager.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/ResourceContainer.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/center/PluginCenter.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/description/IllegalPluginDescriptionException.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/description/PluginDependency.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/description/PluginDescription.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/jvm/AbstractJvmPlugin.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/jvm/ExportManager.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/jvm/JavaPlugin.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/jvm/JavaPluginScheduler.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/jvm/JvmPlugin.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/jvm/JvmPluginDescription.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/jvm/JvmPluginLoader.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/jvm/KotlinPlugin.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/loader/FilePluginLoader.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/loader/PluginLoadException.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/plugin/loader/PluginLoader.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/util/Annotations.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/util/ConsoleInput.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/util/ContactUtils.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/util/CoroutineScopeUtils.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/util/MessageScope.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/util/MessageUtils.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/util/SemVersion.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/util/StandardUtils.kt (100%) rename backend/mirai-console/src/{main/kotlin/net/mamoe/mirai/console => }/util/retryCatching.kt (100%) rename backend/mirai-console/{src/test/kotlin/net/mamoe/mirai/console => test}/TestMiraiConosle.kt (100%) rename backend/mirai-console/{src/test/kotlin/net/mamoe/mirai/console => test}/command/TestCommand.kt (100%) rename backend/mirai-console/{src/test/kotlin/net/mamoe/mirai/console => test}/command/commanTestingUtil.kt (100%) rename backend/mirai-console/{src/test/kotlin/net/mamoe/mirai/console => test}/data/SettingTest.kt (100%) rename backend/mirai-console/{src/test/kotlin/net/mamoe/mirai/console => test}/permission/PermissionsBasicsTest.kt (100%) rename backend/mirai-console/{src/test/kotlin/net/mamoe/mirai/console => test}/util/TestSemVersion.kt (100%) delete mode 100644 buildSrc/src/main/kotlin/SetCompileTargetPlugin.kt rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/MiraiConsoleGraphicalLoader.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/MiraiGraphical.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/controller/MiraiGraphicalFrontEndController.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/event/ReloadEvent.kt (100%) delete mode 100644 frontend/mirai-console-graphical/src/main/resources/character.png delete mode 100644 frontend/mirai-console-graphical/src/main/resources/logo.png rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/model/BotModel.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/model/ConsoleInfo.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/model/GlobalSetting.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/model/PluginModel.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/model/VerificationCodeModel.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/stylesheet/BaseStyleSheet.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/stylesheet/LoginViewStyleSheet.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/stylesheet/PluginViewStyleSheet.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/stylesheet/PrimaryStyleSheet.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/util/JFoenixAdaptor.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/util/SVG.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/util/controls.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/view/Decorator.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/view/LoginView.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/view/PluginsCenterView.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/view/PluginsView.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/view/PrimaryView.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/view/SettingsView.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/view/dialog/InputDialog.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/view/dialog/PluginDetailFragment.kt (100%) rename frontend/mirai-console-graphical/src/{main/kotlin/net/mamoe/mirai/console/graphical => }/view/dialog/VerificationCodeFragment.kt (100%) rename frontend/mirai-console-graphical/{src/test/kotlin => test}/Main.kt (100%) rename frontend/mirai-console-terminal/src/{main/kotlin/net/mamoe/mirai/console/terminal => }/BufferedOutputStream.kt (100%) rename frontend/mirai-console-terminal/src/{main/kotlin/net/mamoe/mirai/console/terminal => }/ConsoleInputImpl.kt (100%) rename frontend/mirai-console-terminal/src/{main/kotlin/net/mamoe/mirai/console/terminal => }/ConsoleTerminalSettings.kt (100%) rename frontend/mirai-console-terminal/src/{main/kotlin/net/mamoe/mirai/console/terminal => }/ConsoleThread.kt (100%) rename frontend/mirai-console-terminal/src/{main/kotlin/net/mamoe/mirai/console/terminal => }/MiraiConsoleImplementationTerminal.kt (100%) rename frontend/mirai-console-terminal/src/{main/kotlin/net/mamoe/mirai/console/terminal => }/MiraiConsoleTerminalLoader.kt (100%) rename frontend/mirai-console-terminal/src/{main/kotlin => }/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt (100%) rename frontend/mirai-console-terminal/src/{main/kotlin/net/mamoe/mirai/console/terminal => }/noconsole/NoConsole.kt (100%) rename tools/compiler-common/src/{main/kotlin/net/mamoe/mirai/console/compiler/common => }/diagnostics/MiraiConsoleErrorsRendering.kt (73%) rename tools/compiler-common/src/{main/kotlin/net/mamoe/mirai/console/compiler/common => }/resolve/resolveCommon.kt (100%) rename tools/compiler-common/src/{main/kotlin/net/mamoe/mirai/console/compiler/common => }/resolve/resolveTypes.kt (100%) rename tools/compiler-common/src/{main/kotlin/net/mamoe/mirai/console/compiler/common => }/utilCommon.kt (100%) rename tools/gradle-plugin/src/{main/kotlin/net/mamoe/mirai/console/gradle => }/IGNORED_DEPENDENCIES_IN_SHADOW.kt (100%) rename tools/gradle-plugin/src/{main/kotlin/net/mamoe/mirai/console/gradle => }/MiraiConsoleExtension.kt (100%) rename tools/gradle-plugin/src/{main/kotlin/net/mamoe/mirai/console/gradle => }/MiraiConsoleGradlePlugin.kt (100%) rename tools/gradle-plugin/src/{main/kotlin/net/mamoe/mirai/console/gradle => }/VersionConstants.kt (100%) rename tools/intellij-plugin/{src/main => }/resources/META-INF/plugin.xml (100%) rename tools/intellij-plugin/{src/main => }/resources/icons/commandDeclaration.svg (100%) rename tools/intellij-plugin/{src/main => }/resources/icons/pluginIcon.svg (100%) create mode 100644 tools/intellij-plugin/resources/icons/pluginMainDeclaration.png rename tools/intellij-plugin/src/{main/kotlin/net/mamoe/mirai/console/intellij => }/IDEContainerContributor.kt (100%) rename tools/intellij-plugin/src/{main/kotlin/net/mamoe/mirai/console/intellij => }/Icons.kt (100%) rename tools/intellij-plugin/src/{main/kotlin/net/mamoe/mirai/console/intellij => }/QuickFixRegistrar.kt (100%) rename tools/intellij-plugin/src/{main/kotlin/net/mamoe/mirai/console/intellij => }/diagnostics/ContextualParametersChecker.kt (95%) rename tools/intellij-plugin/src/{main/kotlin/net/mamoe/mirai/console/intellij => }/diagnostics/PluginDataValuesChecker.kt (100%) rename tools/intellij-plugin/src/{main/kotlin/net/mamoe/mirai/console/intellij => }/diagnostics/diagnosticsUtil.kt (100%) rename tools/intellij-plugin/src/{main/kotlin/net/mamoe/mirai/console/intellij => }/diagnostics/fix/AbuseYellowIntention.kt (100%) rename tools/intellij-plugin/src/{main/kotlin/net/mamoe/mirai/console/intellij => }/diagnostics/fix/AddSerializerFix.kt (100%) rename tools/intellij-plugin/src/{main/kotlin/net/mamoe/mirai/console/intellij => }/line/marker/CommandDeclarationLineMarkerProvider.kt (100%) rename tools/intellij-plugin/src/{main/kotlin/net/mamoe/mirai/console/intellij => }/line/marker/PluginMainLineMarkerProvider.kt (100%) delete mode 100644 tools/intellij-plugin/src/main/resources/icons/pluginMainDeclaration.png rename tools/intellij-plugin/src/{main/kotlin/net/mamoe/mirai/console/intellij => }/resolve/resolveIdea.kt (100%) diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/Codegen.kt b/backend/codegen/src/Codegen.kt similarity index 100% rename from backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/Codegen.kt rename to backend/codegen/src/Codegen.kt diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/MessageScopeCodegen.kt b/backend/codegen/src/MessageScopeCodegen.kt similarity index 100% rename from backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/MessageScopeCodegen.kt rename to backend/codegen/src/MessageScopeCodegen.kt diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/ValuePluginDataCodegen.kt b/backend/codegen/src/ValuePluginDataCodegen.kt similarity index 100% rename from backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/ValuePluginDataCodegen.kt rename to backend/codegen/src/ValuePluginDataCodegen.kt diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/JSettingCodegen.kt b/backend/codegen/src/old/JSettingCodegen.kt similarity index 100% rename from backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/JSettingCodegen.kt rename to backend/codegen/src/old/JSettingCodegen.kt diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/SettingValueUseSiteCodegen.kt b/backend/codegen/src/old/SettingValueUseSiteCodegen.kt similarity index 100% rename from backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/SettingValueUseSiteCodegen.kt rename to backend/codegen/src/old/SettingValueUseSiteCodegen.kt diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValueImplCodegen.kt b/backend/codegen/src/old/ValueImplCodegen.kt similarity index 100% rename from backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValueImplCodegen.kt rename to backend/codegen/src/old/ValueImplCodegen.kt diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValuesCodegen.kt b/backend/codegen/src/old/ValuesCodegen.kt similarity index 100% rename from backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/old/ValuesCodegen.kt rename to backend/codegen/src/old/ValuesCodegen.kt diff --git a/backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/util.kt b/backend/codegen/src/util.kt similarity index 100% rename from backend/codegen/src/main/kotlin/net/mamoe/mirai/console/codegen/util.kt rename to backend/codegen/src/util.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsole.kt b/backend/mirai-console/src/MiraiConsole.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsole.kt rename to backend/mirai-console/src/MiraiConsole.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleFrontEndDescription.kt b/backend/mirai-console/src/MiraiConsoleFrontEndDescription.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleFrontEndDescription.kt rename to backend/mirai-console/src/MiraiConsoleFrontEndDescription.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt b/backend/mirai-console/src/MiraiConsoleImplementation.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt rename to backend/mirai-console/src/MiraiConsoleImplementation.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/AbstractCommand.kt b/backend/mirai-console/src/command/AbstractCommand.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/AbstractCommand.kt rename to backend/mirai-console/src/command/AbstractCommand.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/BuiltInCommands.kt b/backend/mirai-console/src/command/BuiltInCommands.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/BuiltInCommands.kt rename to backend/mirai-console/src/command/BuiltInCommands.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt b/backend/mirai-console/src/command/Command.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt rename to backend/mirai-console/src/command/Command.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecuteResult.kt b/backend/mirai-console/src/command/CommandExecuteResult.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecuteResult.kt rename to backend/mirai-console/src/command/CommandExecuteResult.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecutionException.kt b/backend/mirai-console/src/command/CommandExecutionException.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandExecutionException.kt rename to backend/mirai-console/src/command/CommandExecutionException.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandManager.kt b/backend/mirai-console/src/command/CommandManager.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandManager.kt rename to backend/mirai-console/src/command/CommandManager.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandOwner.kt b/backend/mirai-console/src/command/CommandOwner.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandOwner.kt rename to backend/mirai-console/src/command/CommandOwner.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandPermissionDeniedException.kt b/backend/mirai-console/src/command/CommandPermissionDeniedException.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandPermissionDeniedException.kt rename to backend/mirai-console/src/command/CommandPermissionDeniedException.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandSender.kt b/backend/mirai-console/src/command/CommandSender.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandSender.kt rename to backend/mirai-console/src/command/CommandSender.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt b/backend/mirai-console/src/command/CompositeCommand.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt rename to backend/mirai-console/src/command/CompositeCommand.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/IllegalCommandArgumentException.kt b/backend/mirai-console/src/command/IllegalCommandArgumentException.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/IllegalCommandArgumentException.kt rename to backend/mirai-console/src/command/IllegalCommandArgumentException.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt b/backend/mirai-console/src/command/RawCommand.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt rename to backend/mirai-console/src/command/RawCommand.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt b/backend/mirai-console/src/command/SimpleCommand.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt rename to backend/mirai-console/src/command/SimpleCommand.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentContext.kt b/backend/mirai-console/src/command/descriptor/CommandArgumentContext.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentContext.kt rename to backend/mirai-console/src/command/descriptor/CommandArgumentContext.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentParserBuiltins.kt b/backend/mirai-console/src/command/descriptor/CommandArgumentParserBuiltins.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentParserBuiltins.kt rename to backend/mirai-console/src/command/descriptor/CommandArgumentParserBuiltins.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt b/backend/mirai-console/src/command/descriptor/CommandParameter.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandParameter.kt rename to backend/mirai-console/src/command/descriptor/CommandParameter.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandSignature.kt b/backend/mirai-console/src/command/descriptor/CommandSignature.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandSignature.kt rename to backend/mirai-console/src/command/descriptor/CommandSignature.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandValueArgumentParser.kt b/backend/mirai-console/src/command/descriptor/CommandValueArgumentParser.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandValueArgumentParser.kt rename to backend/mirai-console/src/command/descriptor/CommandValueArgumentParser.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/Exceptions.kt b/backend/mirai-console/src/command/descriptor/Exceptions.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/Exceptions.kt rename to backend/mirai-console/src/command/descriptor/Exceptions.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/ExperimentalCommandDescriptors.kt b/backend/mirai-console/src/command/descriptor/ExperimentalCommandDescriptors.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/ExperimentalCommandDescriptors.kt rename to backend/mirai-console/src/command/descriptor/ExperimentalCommandDescriptors.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/TypeVariant.kt b/backend/mirai-console/src/command/descriptor/TypeVariant.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/TypeVariant.kt rename to backend/mirai-console/src/command/descriptor/TypeVariant.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JCompositeCommand.kt b/backend/mirai-console/src/command/java/JCompositeCommand.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JCompositeCommand.kt rename to backend/mirai-console/src/command/java/JCompositeCommand.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JRawCommand.kt b/backend/mirai-console/src/command/java/JRawCommand.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JRawCommand.kt rename to backend/mirai-console/src/command/java/JRawCommand.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JSimpleCommand.kt b/backend/mirai-console/src/command/java/JSimpleCommand.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/java/JSimpleCommand.kt rename to backend/mirai-console/src/command/java/JSimpleCommand.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCall.kt b/backend/mirai-console/src/command/parse/CommandCall.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCall.kt rename to backend/mirai-console/src/command/parse/CommandCall.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCallParser.kt b/backend/mirai-console/src/command/parse/CommandCallParser.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandCallParser.kt rename to backend/mirai-console/src/command/parse/CommandCallParser.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandValueArgument.kt b/backend/mirai-console/src/command/parse/CommandValueArgument.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/CommandValueArgument.kt rename to backend/mirai-console/src/command/parse/CommandValueArgument.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/SpaceSeparatedCommandCallParser.kt b/backend/mirai-console/src/command/parse/SpaceSeparatedCommandCallParser.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/parse/SpaceSeparatedCommandCallParser.kt rename to backend/mirai-console/src/command/parse/SpaceSeparatedCommandCallParser.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/BuiltInCommandCallResolver.kt b/backend/mirai-console/src/command/resolve/BuiltInCommandCallResolver.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/BuiltInCommandCallResolver.kt rename to backend/mirai-console/src/command/resolve/BuiltInCommandCallResolver.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/CommandCallResolver.kt b/backend/mirai-console/src/command/resolve/CommandCallResolver.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/CommandCallResolver.kt rename to backend/mirai-console/src/command/resolve/CommandCallResolver.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/ResolvedCommandCall.kt b/backend/mirai-console/src/command/resolve/ResolvedCommandCall.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/resolve/ResolvedCommandCall.kt rename to backend/mirai-console/src/command/resolve/ResolvedCommandCall.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/ResolveContext.kt b/backend/mirai-console/src/common/ResolveContext.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/ResolveContext.kt rename to backend/mirai-console/src/common/ResolveContext.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/RestrictedScope.kt b/backend/mirai-console/src/common/RestrictedScope.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/RestrictedScope.kt rename to backend/mirai-console/src/common/RestrictedScope.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt b/backend/mirai-console/src/data/AbstractPluginData.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt rename to backend/mirai-console/src/data/AbstractPluginData.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt b/backend/mirai-console/src/data/AutoSavePluginConfig.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt rename to backend/mirai-console/src/data/AutoSavePluginConfig.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt b/backend/mirai-console/src/data/AutoSavePluginData.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt rename to backend/mirai-console/src/data/AutoSavePluginData.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginDataHolder.kt b/backend/mirai-console/src/data/AutoSavePluginDataHolder.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginDataHolder.kt rename to backend/mirai-console/src/data/AutoSavePluginDataHolder.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginConfig.kt b/backend/mirai-console/src/data/PluginConfig.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginConfig.kt rename to backend/mirai-console/src/data/PluginConfig.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt b/backend/mirai-console/src/data/PluginData.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt rename to backend/mirai-console/src/data/PluginData.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataExtensions.kt b/backend/mirai-console/src/data/PluginDataExtensions.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataExtensions.kt rename to backend/mirai-console/src/data/PluginDataExtensions.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataHolder.kt b/backend/mirai-console/src/data/PluginDataHolder.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataHolder.kt rename to backend/mirai-console/src/data/PluginDataHolder.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt b/backend/mirai-console/src/data/PluginDataStorage.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt rename to backend/mirai-console/src/data/PluginDataStorage.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt b/backend/mirai-console/src/data/Value.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt rename to backend/mirai-console/src/data/Value.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueDescription.kt b/backend/mirai-console/src/data/ValueDescription.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueDescription.kt rename to backend/mirai-console/src/data/ValueDescription.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueName.kt b/backend/mirai-console/src/data/ValueName.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/ValueName.kt rename to backend/mirai-console/src/data/ValueName.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginConfig.kt b/backend/mirai-console/src/data/java/JAutoSavePluginConfig.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginConfig.kt rename to backend/mirai-console/src/data/java/JAutoSavePluginConfig.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginData.kt b/backend/mirai-console/src/data/java/JAutoSavePluginData.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginData.kt rename to backend/mirai-console/src/data/java/JAutoSavePluginData.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/CommandExecutionEvent.kt b/backend/mirai-console/src/events/CommandExecutionEvent.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/CommandExecutionEvent.kt rename to backend/mirai-console/src/events/CommandExecutionEvent.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/ConsoleEvent.kt b/backend/mirai-console/src/events/ConsoleEvent.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/events/ConsoleEvent.kt rename to backend/mirai-console/src/events/ConsoleEvent.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ComponentStorage.kt b/backend/mirai-console/src/extension/ComponentStorage.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ComponentStorage.kt rename to backend/mirai-console/src/extension/ComponentStorage.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/Extension.kt b/backend/mirai-console/src/extension/Extension.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/Extension.kt rename to backend/mirai-console/src/extension/Extension.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionException.kt b/backend/mirai-console/src/extension/ExtensionException.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionException.kt rename to backend/mirai-console/src/extension/ExtensionException.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionPoint.kt b/backend/mirai-console/src/extension/ExtensionPoint.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionPoint.kt rename to backend/mirai-console/src/extension/ExtensionPoint.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/PluginComponentStorage.kt b/backend/mirai-console/src/extension/PluginComponentStorage.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/PluginComponentStorage.kt rename to backend/mirai-console/src/extension/PluginComponentStorage.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/BotConfigurationAlterer.kt b/backend/mirai-console/src/extensions/BotConfigurationAlterer.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/BotConfigurationAlterer.kt rename to backend/mirai-console/src/extensions/BotConfigurationAlterer.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallParserProvider.kt b/backend/mirai-console/src/extensions/CommandCallParserProvider.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallParserProvider.kt rename to backend/mirai-console/src/extensions/CommandCallParserProvider.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallResolverProvider.kt b/backend/mirai-console/src/extensions/CommandCallResolverProvider.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/CommandCallResolverProvider.kt rename to backend/mirai-console/src/extensions/CommandCallResolverProvider.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PermissionServiceProvider.kt b/backend/mirai-console/src/extensions/PermissionServiceProvider.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PermissionServiceProvider.kt rename to backend/mirai-console/src/extensions/PermissionServiceProvider.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PluginLoaderProvider.kt b/backend/mirai-console/src/extensions/PluginLoaderProvider.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PluginLoaderProvider.kt rename to backend/mirai-console/src/extensions/PluginLoaderProvider.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PostStartupExtension.kt b/backend/mirai-console/src/extensions/PostStartupExtension.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/PostStartupExtension.kt rename to backend/mirai-console/src/extensions/PostStartupExtension.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/SingletonExtensionSelector.kt b/backend/mirai-console/src/extensions/SingletonExtensionSelector.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/SingletonExtensionSelector.kt rename to backend/mirai-console/src/extensions/SingletonExtensionSelector.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleBuildConstants.kt b/backend/mirai-console/src/internal/MiraiConsoleBuildConstants.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleBuildConstants.kt rename to backend/mirai-console/src/internal/MiraiConsoleBuildConstants.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleImplementationBridge.kt b/backend/mirai-console/src/internal/MiraiConsoleImplementationBridge.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/MiraiConsoleImplementationBridge.kt rename to backend/mirai-console/src/internal/MiraiConsoleImplementationBridge.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandManagerImpl.kt b/backend/mirai-console/src/internal/command/CommandManagerImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandManagerImpl.kt rename to backend/mirai-console/src/internal/command/CommandManagerImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt b/backend/mirai-console/src/internal/command/CommandReflector.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/CommandReflector.kt rename to backend/mirai-console/src/internal/command/CommandReflector.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/internal.kt b/backend/mirai-console/src/internal/command/internal.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/command/internal.kt rename to backend/mirai-console/src/internal/command/internal.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/CompositeValueImpl.kt b/backend/mirai-console/src/internal/data/CompositeValueImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/CompositeValueImpl.kt rename to backend/mirai-console/src/internal/data/CompositeValueImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MemoryPluginDataStorageImpl.kt b/backend/mirai-console/src/internal/data/MemoryPluginDataStorageImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MemoryPluginDataStorageImpl.kt rename to backend/mirai-console/src/internal/data/MemoryPluginDataStorageImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MultiFilePluginDataStorageImpl.kt b/backend/mirai-console/src/internal/data/MultiFilePluginDataStorageImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/MultiFilePluginDataStorageImpl.kt rename to backend/mirai-console/src/internal/data/MultiFilePluginDataStorageImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/PluginDataImpl.kt b/backend/mirai-console/src/internal/data/PluginDataImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/PluginDataImpl.kt rename to backend/mirai-console/src/internal/data/PluginDataImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PluginData.value.kt b/backend/mirai-console/src/internal/data/_PluginData.value.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PluginData.value.kt rename to backend/mirai-console/src/internal/data/_PluginData.value.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PrimitiveValueDeclarations.kt b/backend/mirai-console/src/internal/data/_PrimitiveValueDeclarations.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/_PrimitiveValueDeclarations.kt rename to backend/mirai-console/src/internal/data/_PrimitiveValueDeclarations.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/AutoLoginConfig.kt b/backend/mirai-console/src/internal/data/builtins/AutoLoginConfig.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/AutoLoginConfig.kt rename to backend/mirai-console/src/internal/data/builtins/AutoLoginConfig.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/ConsoleDataScope.kt b/backend/mirai-console/src/internal/data/builtins/ConsoleDataScope.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/builtins/ConsoleDataScope.kt rename to backend/mirai-console/src/internal/data/builtins/ConsoleDataScope.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/collectionUtil.kt b/backend/mirai-console/src/internal/data/collectionUtil.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/collectionUtil.kt rename to backend/mirai-console/src/internal/data/collectionUtil.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/reflectionUtils.kt b/backend/mirai-console/src/internal/data/reflectionUtils.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/reflectionUtils.kt rename to backend/mirai-console/src/internal/data/reflectionUtils.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/serializerHelper.kt b/backend/mirai-console/src/internal/data/serializerHelper.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/serializerHelper.kt rename to backend/mirai-console/src/internal/data/serializerHelper.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/valueFromKTypeImpl.kt b/backend/mirai-console/src/internal/data/valueFromKTypeImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/data/valueFromKTypeImpl.kt rename to backend/mirai-console/src/internal/data/valueFromKTypeImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/BuiltInSingletonExtensionSelector.kt b/backend/mirai-console/src/internal/extension/BuiltInSingletonExtensionSelector.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/BuiltInSingletonExtensionSelector.kt rename to backend/mirai-console/src/internal/extension/BuiltInSingletonExtensionSelector.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/ComponentStorageInternal.kt b/backend/mirai-console/src/internal/extension/ComponentStorageInternal.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/extension/ComponentStorageInternal.kt rename to backend/mirai-console/src/internal/extension/ComponentStorageInternal.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/AbstractConcurrentPermissionService.kt b/backend/mirai-console/src/internal/permission/AbstractConcurrentPermissionService.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/AbstractConcurrentPermissionService.kt rename to backend/mirai-console/src/internal/permission/AbstractConcurrentPermissionService.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/BuiltInPermissionServices.kt b/backend/mirai-console/src/internal/permission/BuiltInPermissionServices.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/BuiltInPermissionServices.kt rename to backend/mirai-console/src/internal/permission/BuiltInPermissionServices.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/parseFromStringImpl.kt b/backend/mirai-console/src/internal/permission/parseFromStringImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/permission/parseFromStringImpl.kt rename to backend/mirai-console/src/internal/permission/parseFromStringImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt b/backend/mirai-console/src/internal/plugin/BuiltInJvmPluginLoaderImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/BuiltInJvmPluginLoaderImpl.kt rename to backend/mirai-console/src/internal/plugin/BuiltInJvmPluginLoaderImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/Exceptions.kt b/backend/mirai-console/src/internal/plugin/Exceptions.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/Exceptions.kt rename to backend/mirai-console/src/internal/plugin/Exceptions.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt b/backend/mirai-console/src/internal/plugin/ExportManagerImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/ExportManagerImpl.kt rename to backend/mirai-console/src/internal/plugin/ExportManagerImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt b/backend/mirai-console/src/internal/plugin/JvmPluginClassLoader.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginClassLoader.kt rename to backend/mirai-console/src/internal/plugin/JvmPluginClassLoader.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginInternal.kt b/backend/mirai-console/src/internal/plugin/JvmPluginInternal.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/JvmPluginInternal.kt rename to backend/mirai-console/src/internal/plugin/JvmPluginInternal.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/PluginManagerImpl.kt b/backend/mirai-console/src/internal/plugin/PluginManagerImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/plugin/PluginManagerImpl.kt rename to backend/mirai-console/src/internal/plugin/PluginManagerImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ByteUtils.kt b/backend/mirai-console/src/internal/util/ByteUtils.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ByteUtils.kt rename to backend/mirai-console/src/internal/util/ByteUtils.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/CommonUtils.kt b/backend/mirai-console/src/internal/util/CommonUtils.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/CommonUtils.kt rename to backend/mirai-console/src/internal/util/CommonUtils.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ConsoleInputImpl.kt b/backend/mirai-console/src/internal/util/ConsoleInputImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/ConsoleInputImpl.kt rename to backend/mirai-console/src/internal/util/ConsoleInputImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/JavaPluginSchedulerImpl.kt b/backend/mirai-console/src/internal/util/JavaPluginSchedulerImpl.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/JavaPluginSchedulerImpl.kt rename to backend/mirai-console/src/internal/util/JavaPluginSchedulerImpl.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/PluginServiceHelper.kt b/backend/mirai-console/src/internal/util/PluginServiceHelper.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/PluginServiceHelper.kt rename to backend/mirai-console/src/internal/util/PluginServiceHelper.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/RangeTokenReader.kt b/backend/mirai-console/src/internal/util/semver/RangeTokenReader.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/RangeTokenReader.kt rename to backend/mirai-console/src/internal/util/semver/RangeTokenReader.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/SemVersionInternal.kt b/backend/mirai-console/src/internal/util/semver/SemVersionInternal.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/internal/util/semver/SemVersionInternal.kt rename to backend/mirai-console/src/internal/util/semver/SemVersionInternal.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permission.kt b/backend/mirai-console/src/permission/Permission.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permission.kt rename to backend/mirai-console/src/permission/Permission.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionId.kt b/backend/mirai-console/src/permission/PermissionId.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionId.kt rename to backend/mirai-console/src/permission/PermissionId.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionIdNamespace.kt b/backend/mirai-console/src/permission/PermissionIdNamespace.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionIdNamespace.kt rename to backend/mirai-console/src/permission/PermissionIdNamespace.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionImplementation.kt b/backend/mirai-console/src/permission/PermissionImplementation.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionImplementation.kt rename to backend/mirai-console/src/permission/PermissionImplementation.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionRegistryConflictException.kt b/backend/mirai-console/src/permission/PermissionRegistryConflictException.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionRegistryConflictException.kt rename to backend/mirai-console/src/permission/PermissionRegistryConflictException.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionService.kt b/backend/mirai-console/src/permission/PermissionService.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionService.kt rename to backend/mirai-console/src/permission/PermissionService.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permittee.kt b/backend/mirai-console/src/permission/Permittee.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permittee.kt rename to backend/mirai-console/src/permission/Permittee.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermitteeId.kt b/backend/mirai-console/src/permission/PermitteeId.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermitteeId.kt rename to backend/mirai-console/src/permission/PermitteeId.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt b/backend/mirai-console/src/plugin/Plugin.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt rename to backend/mirai-console/src/plugin/Plugin.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginFileExtensions.kt b/backend/mirai-console/src/plugin/PluginFileExtensions.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginFileExtensions.kt rename to backend/mirai-console/src/plugin/PluginFileExtensions.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt b/backend/mirai-console/src/plugin/PluginManager.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt rename to backend/mirai-console/src/plugin/PluginManager.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/ResourceContainer.kt b/backend/mirai-console/src/plugin/ResourceContainer.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/ResourceContainer.kt rename to backend/mirai-console/src/plugin/ResourceContainer.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/center/PluginCenter.kt b/backend/mirai-console/src/plugin/center/PluginCenter.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/center/PluginCenter.kt rename to backend/mirai-console/src/plugin/center/PluginCenter.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/IllegalPluginDescriptionException.kt b/backend/mirai-console/src/plugin/description/IllegalPluginDescriptionException.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/IllegalPluginDescriptionException.kt rename to backend/mirai-console/src/plugin/description/IllegalPluginDescriptionException.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDependency.kt b/backend/mirai-console/src/plugin/description/PluginDependency.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDependency.kt rename to backend/mirai-console/src/plugin/description/PluginDependency.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt b/backend/mirai-console/src/plugin/description/PluginDescription.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt rename to backend/mirai-console/src/plugin/description/PluginDescription.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/AbstractJvmPlugin.kt b/backend/mirai-console/src/plugin/jvm/AbstractJvmPlugin.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/AbstractJvmPlugin.kt rename to backend/mirai-console/src/plugin/jvm/AbstractJvmPlugin.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt b/backend/mirai-console/src/plugin/jvm/ExportManager.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt rename to backend/mirai-console/src/plugin/jvm/ExportManager.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPlugin.kt b/backend/mirai-console/src/plugin/jvm/JavaPlugin.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPlugin.kt rename to backend/mirai-console/src/plugin/jvm/JavaPlugin.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt b/backend/mirai-console/src/plugin/jvm/JavaPluginScheduler.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt rename to backend/mirai-console/src/plugin/jvm/JavaPluginScheduler.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPlugin.kt b/backend/mirai-console/src/plugin/jvm/JvmPlugin.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPlugin.kt rename to backend/mirai-console/src/plugin/jvm/JvmPlugin.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginDescription.kt b/backend/mirai-console/src/plugin/jvm/JvmPluginDescription.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginDescription.kt rename to backend/mirai-console/src/plugin/jvm/JvmPluginDescription.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginLoader.kt b/backend/mirai-console/src/plugin/jvm/JvmPluginLoader.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginLoader.kt rename to backend/mirai-console/src/plugin/jvm/JvmPluginLoader.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/KotlinPlugin.kt b/backend/mirai-console/src/plugin/jvm/KotlinPlugin.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/KotlinPlugin.kt rename to backend/mirai-console/src/plugin/jvm/KotlinPlugin.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/FilePluginLoader.kt b/backend/mirai-console/src/plugin/loader/FilePluginLoader.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/FilePluginLoader.kt rename to backend/mirai-console/src/plugin/loader/FilePluginLoader.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoadException.kt b/backend/mirai-console/src/plugin/loader/PluginLoadException.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoadException.kt rename to backend/mirai-console/src/plugin/loader/PluginLoadException.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoader.kt b/backend/mirai-console/src/plugin/loader/PluginLoader.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoader.kt rename to backend/mirai-console/src/plugin/loader/PluginLoader.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/Annotations.kt b/backend/mirai-console/src/util/Annotations.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/Annotations.kt rename to backend/mirai-console/src/util/Annotations.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt b/backend/mirai-console/src/util/ConsoleInput.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt rename to backend/mirai-console/src/util/ConsoleInput.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ContactUtils.kt b/backend/mirai-console/src/util/ContactUtils.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ContactUtils.kt rename to backend/mirai-console/src/util/ContactUtils.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/CoroutineScopeUtils.kt b/backend/mirai-console/src/util/CoroutineScopeUtils.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/CoroutineScopeUtils.kt rename to backend/mirai-console/src/util/CoroutineScopeUtils.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt b/backend/mirai-console/src/util/MessageScope.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt rename to backend/mirai-console/src/util/MessageScope.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageUtils.kt b/backend/mirai-console/src/util/MessageUtils.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageUtils.kt rename to backend/mirai-console/src/util/MessageUtils.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/SemVersion.kt b/backend/mirai-console/src/util/SemVersion.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/SemVersion.kt rename to backend/mirai-console/src/util/SemVersion.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/StandardUtils.kt b/backend/mirai-console/src/util/StandardUtils.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/StandardUtils.kt rename to backend/mirai-console/src/util/StandardUtils.kt diff --git a/backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/retryCatching.kt b/backend/mirai-console/src/util/retryCatching.kt similarity index 100% rename from backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/retryCatching.kt rename to backend/mirai-console/src/util/retryCatching.kt diff --git a/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/TestMiraiConosle.kt b/backend/mirai-console/test/TestMiraiConosle.kt similarity index 100% rename from backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/TestMiraiConosle.kt rename to backend/mirai-console/test/TestMiraiConosle.kt diff --git a/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/TestCommand.kt b/backend/mirai-console/test/command/TestCommand.kt similarity index 100% rename from backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/TestCommand.kt rename to backend/mirai-console/test/command/TestCommand.kt diff --git a/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/commanTestingUtil.kt b/backend/mirai-console/test/command/commanTestingUtil.kt similarity index 100% rename from backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/command/commanTestingUtil.kt rename to backend/mirai-console/test/command/commanTestingUtil.kt diff --git a/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/data/SettingTest.kt b/backend/mirai-console/test/data/SettingTest.kt similarity index 100% rename from backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/data/SettingTest.kt rename to backend/mirai-console/test/data/SettingTest.kt diff --git a/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/permission/PermissionsBasicsTest.kt b/backend/mirai-console/test/permission/PermissionsBasicsTest.kt similarity index 100% rename from backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/permission/PermissionsBasicsTest.kt rename to backend/mirai-console/test/permission/PermissionsBasicsTest.kt diff --git a/backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/util/TestSemVersion.kt b/backend/mirai-console/test/util/TestSemVersion.kt similarity index 100% rename from backend/mirai-console/src/test/kotlin/net/mamoe/mirai/console/util/TestSemVersion.kt rename to backend/mirai-console/test/util/TestSemVersion.kt diff --git a/build.gradle.kts b/build.gradle.kts index ca24e980d..426e01df6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,9 @@ @file:Suppress("UnstableApiUsage") + +import org.jetbrains.kotlin.gradle.dsl.* +import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation +import org.jetbrains.kotlin.utils.addToStdlib.safeAs + plugins { kotlin("jvm") version Versions.kotlinCompiler kotlin("plugin.serialization") version Versions.kotlinCompiler @@ -28,6 +33,129 @@ subprojects { afterEvaluate { apply() - setJavaCompileTarget() + configureJvmTarget() + configureEncoding() + configureKotlinExperimentalUsages() + configureKotlinCompilerSettings() + configureKotlinTestSettings() + configureSourceSets() } -} \ No newline at end of file +} + +val experimentalAnnotations = arrayOf( + "kotlin.RequiresOptIn", + "kotlin.ExperimentalUnsignedTypes", + // "kotlin.ExperimentalStdlibApi", + "kotlin.contracts.ExperimentalContracts", + "kotlin.experimental.ExperimentalTypeInference", + // "kotlinx.coroutines.ExperimentalCoroutinesApi", + "io.ktor.util.KtorExperimentalAPI", + "kotlin.time.ExperimentalTime" +) + + +fun Project.configureJvmTarget() { + tasks.withType(KotlinJvmCompile::class.java) { + kotlinOptions.jvmTarget = "1.8" + } + + extensions.findByType(JavaPluginExtension::class.java)?.run { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } +} + +fun Project.useIr() { + tasks { + withType(KotlinJvmCompile::class.java) { + kotlinOptions.useIR = true + } + } +} + +fun Project.configureKotlinTestSettings() { + tasks.withType(Test::class) { + useJUnitPlatform() + } + when { + isKotlinJvmProject -> { + dependencies { + testImplementation(kotlin("test-junit5")) + + testApi("org.junit.jupiter:junit-jupiter-api:5.2.0") + testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.2.0") + } + } + isKotlinMpp -> { + kotlinSourceSets?.forEach { sourceSet -> + if (sourceSet.name == "common") { + sourceSet.dependencies { + implementation(kotlin("test")) + implementation(kotlin("test-annotations-common")) + } + } else { + sourceSet.dependencies { + implementation(kotlin("test-junit5")) + + implementation("org.junit.jupiter:junit-jupiter-api:5.2.0") + implementation("org.junit.jupiter:junit-jupiter-engine:5.2.0") + } + } + } + } + } +} + +fun Project.configureKotlinCompilerSettings() { + val kotlinCompilations = kotlinCompilations ?: return + for (kotlinCompilation in kotlinCompilations) with(kotlinCompilation) { + if (isKotlinJvmProject) { + @Suppress("UNCHECKED_CAST") + this as KotlinCompilation + } + kotlinOptions.freeCompilerArgs += "-Xjvm-default=all" + } +} + +fun Project.configureEncoding() { + tasks.withType(JavaCompile::class.java) { + options.encoding = "UTF8" + } +} + +fun Project.configureSourceSets() { + sourceSets { + findByName("main")?.apply { + resources.setSrcDirs(listOf(projectDir.resolve("resources"))) + java.setSrcDirs(listOf(projectDir.resolve("src"))) + } + findByName("test")?.apply { + resources.setSrcDirs(listOf(projectDir.resolve("resources"))) + java.setSrcDirs(listOf(projectDir.resolve("test"))) + } + } +} + +fun Project.configureKotlinExperimentalUsages() { + val sourceSets = kotlinSourceSets ?: return + + for (target in sourceSets) { + experimentalAnnotations.forEach { a -> + target.languageSettings.useExperimentalAnnotation(a) + //target.languageSettings.enableLanguageFeature("InlineClasses") + } + } +} + +val Project.kotlinSourceSets get() = extensions.findByName("kotlin").safeAs()?.sourceSets + +val Project.kotlinTargets + get() = + extensions.findByName("kotlin").safeAs()?.target?.let { listOf(it) } + ?: extensions.findByName("kotlin").safeAs()?.targets + +val Project.isKotlinJvmProject: Boolean get() = extensions.findByName("kotlin") is KotlinJvmProjectExtension +val Project.isKotlinMpp: Boolean get() = extensions.findByName("kotlin") is KotlinMultiplatformExtension + +val Project.kotlinCompilations + get() = kotlinTargets?.flatMap { it.compilations } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/SetCompileTargetPlugin.kt b/buildSrc/src/main/kotlin/SetCompileTargetPlugin.kt deleted file mode 100644 index 0757d72cf..000000000 --- a/buildSrc/src/main/kotlin/SetCompileTargetPlugin.kt +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2019-2020 Mamoe Technologies and contributors. - * - * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link. - * - * https://github.com/mamoe/mirai/blob/master/LICENSE - */ - -import org.gradle.api.JavaVersion -import org.gradle.api.Project -import org.gradle.api.plugins.JavaPluginExtension -import org.gradle.api.tasks.compile.JavaCompile -import java.lang.reflect.Method -import kotlin.reflect.KClass - - -fun Any.reflectMethod(name: String, vararg params: KClass): Pair { - return this to this::class.java.getMethod(name, *params.map { it.java }.toTypedArray()) -} - -operator fun Pair.invoke(vararg args: Any?): Any? { - return second.invoke(first, *args) -} - -@Suppress("NOTHING_TO_INLINE") // or error -fun Project.setJavaCompileTarget() { - tasks.filter { it.name in arrayOf("compileKotlin", "compileTestKotlin") }.forEach { task -> - task - .reflectMethod("getKotlinOptions")()!! - .reflectMethod("setJvmTarget", String::class)("1.8") - } - - - kotlin.runCatching { // apply only when java plugin is available - (extensions.getByName("java") as JavaPluginExtension).run { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - tasks.withType(JavaCompile::class.java) { - options.encoding = "UTF8" - } - } -} \ No newline at end of file diff --git a/docs/Commands.md b/docs/Commands.md index 816884f77..0fad7bcf8 100644 --- a/docs/Commands.md +++ b/docs/Commands.md @@ -1,47 +1,47 @@ # Mirai Console Backend - Commands -[`Plugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt -[`PluginDescription`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt -[`PluginLoader`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoader.kt -[`PluginManager`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt -[`JvmPluginLoader`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginLoader.kt -[`JvmPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPlugin.kt -[`JvmPluginDescription`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginDescription.kt -[`AbstractJvmPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/AbstractJvmPlugin.kt -[`KotlinPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/KotlinPlugin.kt -[`JavaPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPlugin.kt +[`Plugin`]: ../backend/mirai-console/src/plugin/Plugin.kt +[`PluginDescription`]: ../backend/mirai-console/src/plugin/description/PluginDescription.kt +[`PluginLoader`]: ../backend/mirai-console/src/plugin/loader/PluginLoader.kt +[`PluginManager`]: ../backend/mirai-console/src/plugin/PluginManager.kt +[`JvmPluginLoader`]: ../backend/mirai-console/src/plugin/jvm/JvmPluginLoader.kt +[`JvmPlugin`]: ../backend/mirai-console/src/plugin/jvm/JvmPlugin.kt +[`JvmPluginDescription`]: ../backend/mirai-console/src/plugin/jvm/JvmPluginDescription.kt +[`AbstractJvmPlugin`]: ../backend/mirai-console/src/plugin/jvm/AbstractJvmPlugin.kt +[`KotlinPlugin`]: ../backend/mirai-console/src/plugin/jvm/KotlinPlugin.kt +[`JavaPlugin`]: ../backend/mirai-console/src/plugin/jvm/JavaPlugin.kt -[`Value`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt -[`PluginData`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt -[`AbstractPluginData`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt -[`AutoSavePluginData`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt -[`AutoSavePluginConfig`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt -[`PluginConfig`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginConfig.kt -[`PluginDataStorage`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt -[`MultiFilePluginDataStorage`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt#L116 -[`MemoryPluginDataStorage`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt#L100 -[`AutoSavePluginDataHolder`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataHolder.kt#L45 -[`PluginDataHolder`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataHolder.kt -[`PluginDataExtensions`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataExtensions.kt +[`Value`]: ../backend/mirai-console/src/data/Value.kt +[`PluginData`]: ../backend/mirai-console/src/data/PluginData.kt +[`AbstractPluginData`]: ../backend/mirai-console/src/data/AbstractPluginData.kt +[`AutoSavePluginData`]: ../backend/mirai-console/src/data/AutoSavePluginData.kt +[`AutoSavePluginConfig`]: ../backend/mirai-console/src/data/AutoSavePluginConfig.kt +[`PluginConfig`]: ../backend/mirai-console/src/data/PluginConfig.kt +[`PluginDataStorage`]: ../backend/mirai-console/src/data/PluginDataStorage.kt +[`MultiFilePluginDataStorage`]: ../backend/mirai-console/src/data/PluginDataStorage.kt#L116 +[`MemoryPluginDataStorage`]: ../backend/mirai-console/src/data/PluginDataStorage.kt#L100 +[`AutoSavePluginDataHolder`]: ../backend/mirai-console/src/data/PluginDataHolder.kt#L45 +[`PluginDataHolder`]: ../backend/mirai-console/src/data/PluginDataHolder.kt +[`PluginDataExtensions`]: ../backend/mirai-console/src/data/PluginDataExtensions.kt -[`MiraiConsole`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsole.kt -[`MiraiConsoleImplementation`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt - +[`MiraiConsole`]: ../backend/mirai-console/src/MiraiConsole.kt +[`MiraiConsoleImplementation`]: ../backend/mirai-console/src/MiraiConsoleImplementation.kt + -[`Command`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt -[`AbstractCommand`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt#L90 -[`CompositeCommand`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt -[`SimpleCommand`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt -[`RawCommand`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt -[`CommandManager`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandManager.kt -[`CommandSender`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandSender.kt -[`CommandArgumentParser`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentParser.kt -[`CommandArgumentContext`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentContext.kt -[`CommandArgumentContext.BuiltIns`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentContext.kt#L66 +[`Command`]: ../backend/mirai-console/src/command/Command.kt +[`AbstractCommand`]: ../backend/mirai-console/src/command/Command.kt#L90 +[`CompositeCommand`]: ../backend/mirai-console/src/command/CompositeCommand.kt +[`SimpleCommand`]: ../backend/mirai-console/src/command/SimpleCommand.kt +[`RawCommand`]: ../backend/mirai-console/src/command/RawCommand.kt +[`CommandManager`]: ../backend/mirai-console/src/command/CommandManager.kt +[`CommandSender`]: ../backend/mirai-console/src/command/CommandSender.kt +[`CommandValueArgumentParser`]: ../backend/mirai-console/src/command/descriptor/CommandValueArgumentParser.kt +[`CommandArgumentContext`]: ../backend/mirai-console/src/command/descriptor/CommandArgumentContext.kt +[`CommandArgumentContext.BuiltIns`]: ../backend/mirai-console/src/command/descriptor/CommandArgumentContext.kt#L66 -[`MessageScope`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt +[`MessageScope`]: ../backend/mirai-console/src/util/MessageScope.kt ## [`Command`] @@ -95,7 +95,7 @@ abstract override suspend fun CommandSender.onCommand(args: MessageChain) Mirai Console 为了简化处理指令时的解析过程,设计了参数智能解析。 -### [`CommandArgumentParser`] +### [`CommandValueArgumentParser`] ```kotlin interface CommandArgumentParser { fun parse(raw: String, sender: CommandSender): T @@ -107,13 +107,13 @@ interface CommandArgumentParser { ### [`CommandArgumentContext`] -是 `Class` 到 [`CommandArgumentParser`] 的映射。作用是为某一个类型分配解析器。 +是 `Class` 到 [`CommandValueArgumentParser`] 的映射。作用是为某一个类型分配解析器。 #### [内建 `CommandArgumentContext`][`CommandArgumentContext.BuiltIns`] 支持原生数据类型,`Contact` 及其子类,`Bot`。 #### 构建 [`CommandArgumentContext`] -查看源码内注释:[CommandArgumentContext.kt: Line 146](../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/descriptor/CommandArgumentContext.kt#L146-L183) +查看源码内注释:[CommandArgumentContext.kt: Line 146](../backend/mirai-console/src/command/descriptor/CommandArgumentContext.kt#L146-L183) ### 支持参数解析的 [`Command`] 实现 Mirai Console 内建 [`SimpleCommand`] 与 [`CompositeCommand`] 拥有 [`CommandArgumentContext`],在处理参数时会首先解析参数再传递给插件的实现。 @@ -140,8 +140,8 @@ object MySimpleCommand : SimpleCommand( 1. 被分割为 `/`, `"tell"`, `"123456"`, `"Hello"` 2. `MySimpleCommand` 被匹配到,根据 `/` 和 `"test"`。`"123456"`, `"Hello"` 被作为指令的原生参数。 3. 由于 `MySimpleCommand` 定义的 `handle` 需要两个参数, `User` 和 `String`,`"123456"` 需要转换成 `User`,`"Hello"` 需要转换成 `String`。 -4. Console 在 [内建 `CommandArgumentContext`][`CommandArgumentContext.BuiltIns`] 寻找适合于 `User` 的 [`CommandArgumentParser`] -5. `"123456"` 被传入这个 [`CommandArgumentParser`],得到 `User` +4. Console 在 [内建 `CommandArgumentContext`][`CommandArgumentContext.BuiltIns`] 寻找适合于 `User` 的 [`CommandValueArgumentParser`] +5. `"123456"` 被传入这个 [`CommandValueArgumentParser`],得到 `User` 6. `"Hello"` 也会按照 4~5 的步骤转换为 `String` 类型的参数 7. 解析完成的参数被传入 `handle` @@ -253,7 +253,7 @@ ConsoleCommandSender AbstractUserCommandSender | +-----------------------------+----------------------------+---------------+ ``` -有关类型的详细信息,请查看 [CommandSender.kt](../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandSender.kt#L48-L135) +有关类型的详细信息,请查看 [CommandSender.kt](../backend/mirai-console/src/command/CommandSender.kt#L48-L135) ### 获取 @@ -263,4 +263,4 @@ ConsoleCommandSender AbstractUserCommandSender | 表示几个消息对象的’域‘,即消息对象的集合。用于最小化将同一条消息发送给多个类型不同的目标的付出。 -参考 [MessageScope](../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/MessageScope.kt#L28-L99) \ No newline at end of file +参考 [MessageScope](../backend/mirai-console/src/util/MessageScope.kt#L28-L99) \ No newline at end of file diff --git a/docs/Extensions.md b/docs/Extensions.md index 6958c0c5b..9a741b0c0 100644 --- a/docs/Extensions.md +++ b/docs/Extensions.md @@ -4,10 +4,10 @@ Mirai Console 拥有灵活的 Extensions API,支持扩展 Console 的一些服 Extensions 属于插件开发的进阶内容。 -[`Extension`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/Extension.kt -[`ExtensionPoint`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ExtensionPoint.kt -[`PluginComponentStorage`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/PluginComponentStorage.kt -[`ComponentStorage`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extension/ComponentStorage.kt +[`Extension`]: ../backend/mirai-console/src/extension/Extension.kt +[`ExtensionPoint`]: ../backend/mirai-console/src/extension/ExtensionPoint.kt +[`PluginComponentStorage`]: ../backend/mirai-console/src/extension/PluginComponentStorage.kt +[`ComponentStorage`]: ../backend/mirai-console/src/extension/ComponentStorage.kt ## [扩展][`Extension`] @@ -34,4 +34,4 @@ object MyPlugin : KotlinPlugin( /* ... */ ) { ### 可用扩展 -查看 [extensions](../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/extensions/)。每个文件对应一个扩展。 \ No newline at end of file +查看 [extensions](../backend/mirai-console/src/extensions)。每个文件对应一个扩展。 \ No newline at end of file diff --git a/docs/Permissions.md b/docs/Permissions.md index 6ba743f00..9cb6b0fcd 100644 --- a/docs/Permissions.md +++ b/docs/Permissions.md @@ -2,15 +2,15 @@ 权限系统。 -[`PermissionService`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionService.kt -[`Permission`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permission.kt -[`RootPermission`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permission.kt#L82 -[`PermissionId`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionId.kt -[`PermissionIdNamespace`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermissionIdNamespace.kt -[`Permittee`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/Permittee.kt -[`PermitteeId`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermitteeId.kt -[`AbstractPermitteeId`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/permission/PermitteeId.kt#L77 -[`CommandSender`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandSender.kt +[`PermissionService`]: ../backend/mirai-console/src/permission/PermissionService.kt +[`Permission`]: ../backend/mirai-console/src/permission/Permission.kt +[`RootPermission`]: ../backend/mirai-console/src/permission/Permission.kt#L82 +[`PermissionId`]: ../backend/mirai-console/src/permission/PermissionId.kt +[`PermissionIdNamespace`]: ../backend/mirai-console/src/permission/PermissionIdNamespace.kt +[`Permittee`]: ../backend/mirai-console/src/permission/Permittee.kt +[`PermitteeId`]: ../backend/mirai-console/src/permission/PermitteeId.kt +[`AbstractPermitteeId`]: ../backend/mirai-console/src/permission/PermitteeId.kt#L77 +[`CommandSender`]: ../backend/mirai-console/src/command/CommandSender.kt ## 权限 diff --git a/docs/PluginData.md b/docs/PluginData.md index bde09d2c1..c1731f9c3 100644 --- a/docs/PluginData.md +++ b/docs/PluginData.md @@ -1,45 +1,45 @@ # Mirai Console Backend - PluginData -[`Plugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt -[`PluginDescription`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt -[`PluginLoader`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoader.kt -[`PluginManager`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt -[`JvmPluginLoader`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginLoader.kt -[`JvmPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPlugin.kt -[`JvmPluginDescription`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginDescription.kt -[`AbstractJvmPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/AbstractJvmPlugin.kt -[`KotlinPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/KotlinPlugin.kt -[`JavaPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPlugin.kt +[`Plugin`]: ../backend/mirai-console/src/plugin/Plugin.kt +[`PluginDescription`]: ../backend/mirai-console/src/plugin/description/PluginDescription.kt +[`PluginLoader`]: ../backend/mirai-console/src/plugin/loader/PluginLoader.kt +[`PluginManager`]: ../backend/mirai-console/src/plugin/PluginManager.kt +[`JvmPluginLoader`]: ../backend/mirai-console/src/plugin/jvm/JvmPluginLoader.kt +[`JvmPlugin`]: ../backend/mirai-console/src/plugin/jvm/JvmPlugin.kt +[`JvmPluginDescription`]: ../backend/mirai-console/src/plugin/jvm/JvmPluginDescription.kt +[`AbstractJvmPlugin`]: ../backend/mirai-console/src/plugin/jvm/AbstractJvmPlugin.kt +[`KotlinPlugin`]: ../backend/mirai-console/src/plugin/jvm/KotlinPlugin.kt +[`JavaPlugin`]: ../backend/mirai-console/src/plugin/jvm/JavaPlugin.kt -[`Value`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/Value.kt -[`PluginData`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt -[`AbstractPluginData`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AbstractPluginData.kt -[`AutoSavePluginData`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginData.kt -[`AutoSavePluginConfig`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/AutoSavePluginConfig.kt -[`PluginConfig`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginConfig.kt -[`PluginDataStorage`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt -[`MultiFilePluginDataStorage`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt#L116 -[`MemoryPluginDataStorage`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt#L100 -[`AutoSavePluginDataHolder`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataHolder.kt#L45 -[`PluginDataHolder`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataHolder.kt -[`PluginDataExtensions`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataExtensions.kt +[`Value`]: ../backend/mirai-console/src/data/Value.kt +[`PluginData`]: ../backend/mirai-console/src/data/PluginData.kt +[`AbstractPluginData`]: ../backend/mirai-console/src/data/AbstractPluginData.kt +[`AutoSavePluginData`]: ../backend/mirai-console/src/data/AutoSavePluginData.kt +[`AutoSavePluginConfig`]: ../backend/mirai-console/src/data/AutoSavePluginConfig.kt +[`PluginConfig`]: ../backend/mirai-console/src/data/PluginConfig.kt +[`PluginDataStorage`]: ../backend/mirai-console/src/data/PluginDataStorage.kt +[`MultiFilePluginDataStorage`]: ../backend/mirai-console/src/data/PluginDataStorage.kt#L116 +[`MemoryPluginDataStorage`]: ../backend/mirai-console/src/data/PluginDataStorage.kt#L100 +[`AutoSavePluginDataHolder`]: ../backend/mirai-console/src/data/PluginDataHolder.kt#L45 +[`PluginDataHolder`]: ../backend/mirai-console/src/data/PluginDataHolder.kt +[`PluginDataExtensions`]: ../backend/mirai-console/src/data/PluginDataExtensions.kt -[`MiraiConsole`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsole.kt -[`MiraiConsoleImplementation`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt - +[`MiraiConsole`]: ../backend/mirai-console/src/MiraiConsole.kt +[`MiraiConsoleImplementation`]: ../backend/mirai-console/src/MiraiConsoleImplementation.kt + -[`Command`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt -[`CompositeCommand`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt -[`SimpleCommand`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt -[`RawCommand`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt -[`CommandManager`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandManager.kt +[`Command`]: ../backend/mirai-console/src/command/Command.kt +[`CompositeCommand`]: ../backend/mirai-console/src/command/CompositeCommand.kt +[`SimpleCommand`]: ../backend/mirai-console/src/command/SimpleCommand.kt +[`RawCommand`]: ../backend/mirai-console/src/command/RawCommand.kt +[`CommandManager`]: ../backend/mirai-console/src/command/CommandManager.kt -[`Annotations`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/Annotations.kt -[`ConsoleInput`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt -[`JavaPluginScheduler`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt -[`ResourceContainer`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/ResourceContainer.kt -[`PluginFileExtensions`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginFileExtensions.kt +[`Annotations`]: ../backend/mirai-console/src/util/Annotations.kt +[`ConsoleInput`]: ../backend/mirai-console/src/util/ConsoleInput.kt +[`JavaPluginScheduler`]: ../backend/mirai-console/src/plugin/jvm/JavaPluginScheduler.kt +[`ResourceContainer`]: ../backend/mirai-console/src/plugin/ResourceContainer.kt +[`PluginFileExtensions`]: ../backend/mirai-console/src/plugin/PluginFileExtensions.kt [Kotlin]: https://www.kotlincn.net/ [Java]: https://www.java.com/zh_CN/ @@ -116,7 +116,7 @@ object MyData : AutoSavePluginData() { *由于 Java 语法局限,为 Kotlin 而设计的 PluginData 在 Java 使用很复杂。* *即使 Mirai Console 为 Java 提供适配器,也强烈推荐 Java 用户在项目中混用 Kotlin 代码来完成数据模型定义。* -参考 [JAutoSavePluginData](../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/java/JAutoSavePluginData.kt#L69) +参考 [JAutoSavePluginData](../backend/mirai-console/src/data/java/JAutoSavePluginData.kt#L69) ### 非引用赋值 由于实现特殊, 赋值时不会写其引用. 即: diff --git a/docs/Plugins.md b/docs/Plugins.md index f472c8f30..63cee40f7 100644 --- a/docs/Plugins.md +++ b/docs/Plugins.md @@ -1,39 +1,39 @@ # Mirai Console Backend - Plugins -[`Plugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/Plugin.kt -[`PluginDescription`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/description/PluginDescription.kt -[`PluginLoader`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/loader/PluginLoader.kt -[`PluginManager`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginManager.kt -[`JvmPluginLoader`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginLoader.kt -[`JvmPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPlugin.kt -[`JvmPluginDescription`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JvmPluginDescription.kt -[`AbstractJvmPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/AbstractJvmPlugin.kt -[`KotlinPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/KotlinPlugin.kt -[`JavaPlugin`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPlugin.kt +[`Plugin`]: ../backend/mirai-console/src/plugin/Plugin.kt +[`PluginDescription`]: ../backend/mirai-console/src/plugin/description/PluginDescription.kt +[`PluginLoader`]: ../backend/mirai-console/src/plugin/loader/PluginLoader.kt +[`PluginManager`]: ../backend/mirai-console/src/plugin/PluginManager.kt +[`JvmPluginLoader`]: ../backend/mirai-console/src/plugin/jvm/JvmPluginLoader.kt +[`JvmPlugin`]: ../backend/mirai-console/src/plugin/jvm/JvmPlugin.kt +[`JvmPluginDescription`]: ../backend/mirai-console/src/plugin/jvm/JvmPluginDescription.kt +[`AbstractJvmPlugin`]: ../backend/mirai-console/src/plugin/jvm/AbstractJvmPlugin.kt +[`KotlinPlugin`]: ../backend/mirai-console/src/plugin/jvm/KotlinPlugin.kt +[`JavaPlugin`]: ../backend/mirai-console/src/plugin/jvm/JavaPlugin.kt -[`PluginData`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginData.kt -[`PluginConfig`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginConfig.kt -[`PluginDataStorage`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataStorage.kt +[`PluginData`]: ../backend/mirai-console/src/data/PluginData.kt +[`PluginConfig`]: ../backend/mirai-console/src/data/PluginConfig.kt +[`PluginDataStorage`]: ../backend/mirai-console/src/data/PluginDataStorage.kt -[`ExportManager`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/ExportManager.kt +[`ExportManager`]: ../backend/mirai-console/src/plugin/jvm/ExportManager.kt -[`MiraiConsole`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsole.kt -[`MiraiConsoleImplementation`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/MiraiConsoleImplementation.kt - +[`MiraiConsole`]: ../backend/mirai-console/src/MiraiConsole.kt +[`MiraiConsoleImplementation`]: ../backend/mirai-console/src/MiraiConsoleImplementation.kt + -[`Command`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/Command.kt -[`CompositeCommand`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CompositeCommand.kt -[`SimpleCommand`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/SimpleCommand.kt -[`RawCommand`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/RawCommand.kt -[`CommandManager`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/command/CommandManager.kt +[`Command`]: ../backend/mirai-console/src/command/Command.kt +[`CompositeCommand`]: ../backend/mirai-console/src/command/CompositeCommand.kt +[`SimpleCommand`]: ../backend/mirai-console/src/command/SimpleCommand.kt +[`RawCommand`]: ../backend/mirai-console/src/command/RawCommand.kt +[`CommandManager`]: ../backend/mirai-console/src/command/CommandManager.kt -[`Annotations`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/Annotations.kt -[`ConsoleInput`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/util/ConsoleInput.kt -[`JavaPluginScheduler`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/jvm/JavaPluginScheduler.kt -[`ResourceContainer`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/ResourceContainer.kt -[`PluginFileExtensions`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/plugin/PluginFileExtensions.kt -[`AutoSavePluginDataHolder`]: ../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/data/PluginDataHolder.kt#L45 +[`Annotations`]: ../backend/mirai-console/src/util/Annotations.kt +[`ConsoleInput`]: ../backend/mirai-console/src/util/ConsoleInput.kt +[`JavaPluginScheduler`]: ../backend/mirai-console/src/plugin/jvm/JavaPluginScheduler.kt +[`ResourceContainer`]: ../backend/mirai-console/src/plugin/ResourceContainer.kt +[`PluginFileExtensions`]: ../backend/mirai-console/src/plugin/PluginFileExtensions.kt +[`AutoSavePluginDataHolder`]: ../backend/mirai-console/src/data/PluginDataHolder.kt#L45 [Kotlin]: https://www.kotlincn.net/ [Java]: https://www.java.com/zh_CN/ diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/MiraiConsoleGraphicalLoader.kt b/frontend/mirai-console-graphical/src/MiraiConsoleGraphicalLoader.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/MiraiConsoleGraphicalLoader.kt rename to frontend/mirai-console-graphical/src/MiraiConsoleGraphicalLoader.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/MiraiGraphical.kt b/frontend/mirai-console-graphical/src/MiraiGraphical.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/MiraiGraphical.kt rename to frontend/mirai-console-graphical/src/MiraiGraphical.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/controller/MiraiGraphicalFrontEndController.kt b/frontend/mirai-console-graphical/src/controller/MiraiGraphicalFrontEndController.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/controller/MiraiGraphicalFrontEndController.kt rename to frontend/mirai-console-graphical/src/controller/MiraiGraphicalFrontEndController.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/event/ReloadEvent.kt b/frontend/mirai-console-graphical/src/event/ReloadEvent.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/event/ReloadEvent.kt rename to frontend/mirai-console-graphical/src/event/ReloadEvent.kt diff --git a/frontend/mirai-console-graphical/src/main/resources/character.png b/frontend/mirai-console-graphical/src/main/resources/character.png deleted file mode 100644 index b55153f1ec3c344df01a0cbde83fa12319d413a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30438 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 diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/BotModel.kt b/frontend/mirai-console-graphical/src/model/BotModel.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/BotModel.kt rename to frontend/mirai-console-graphical/src/model/BotModel.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/ConsoleInfo.kt b/frontend/mirai-console-graphical/src/model/ConsoleInfo.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/ConsoleInfo.kt rename to frontend/mirai-console-graphical/src/model/ConsoleInfo.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/GlobalSetting.kt b/frontend/mirai-console-graphical/src/model/GlobalSetting.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/GlobalSetting.kt rename to frontend/mirai-console-graphical/src/model/GlobalSetting.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/PluginModel.kt b/frontend/mirai-console-graphical/src/model/PluginModel.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/PluginModel.kt rename to frontend/mirai-console-graphical/src/model/PluginModel.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/VerificationCodeModel.kt b/frontend/mirai-console-graphical/src/model/VerificationCodeModel.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/model/VerificationCodeModel.kt rename to frontend/mirai-console-graphical/src/model/VerificationCodeModel.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/stylesheet/BaseStyleSheet.kt b/frontend/mirai-console-graphical/src/stylesheet/BaseStyleSheet.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/stylesheet/BaseStyleSheet.kt rename to frontend/mirai-console-graphical/src/stylesheet/BaseStyleSheet.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/stylesheet/LoginViewStyleSheet.kt b/frontend/mirai-console-graphical/src/stylesheet/LoginViewStyleSheet.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/stylesheet/LoginViewStyleSheet.kt rename to frontend/mirai-console-graphical/src/stylesheet/LoginViewStyleSheet.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/stylesheet/PluginViewStyleSheet.kt b/frontend/mirai-console-graphical/src/stylesheet/PluginViewStyleSheet.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/stylesheet/PluginViewStyleSheet.kt rename to frontend/mirai-console-graphical/src/stylesheet/PluginViewStyleSheet.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/stylesheet/PrimaryStyleSheet.kt b/frontend/mirai-console-graphical/src/stylesheet/PrimaryStyleSheet.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/stylesheet/PrimaryStyleSheet.kt rename to frontend/mirai-console-graphical/src/stylesheet/PrimaryStyleSheet.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/util/JFoenixAdaptor.kt b/frontend/mirai-console-graphical/src/util/JFoenixAdaptor.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/util/JFoenixAdaptor.kt rename to frontend/mirai-console-graphical/src/util/JFoenixAdaptor.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/util/SVG.kt b/frontend/mirai-console-graphical/src/util/SVG.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/util/SVG.kt rename to frontend/mirai-console-graphical/src/util/SVG.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/util/controls.kt b/frontend/mirai-console-graphical/src/util/controls.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/util/controls.kt rename to frontend/mirai-console-graphical/src/util/controls.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/Decorator.kt b/frontend/mirai-console-graphical/src/view/Decorator.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/Decorator.kt rename to frontend/mirai-console-graphical/src/view/Decorator.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/LoginView.kt b/frontend/mirai-console-graphical/src/view/LoginView.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/LoginView.kt rename to frontend/mirai-console-graphical/src/view/LoginView.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PluginsCenterView.kt b/frontend/mirai-console-graphical/src/view/PluginsCenterView.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PluginsCenterView.kt rename to frontend/mirai-console-graphical/src/view/PluginsCenterView.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PluginsView.kt b/frontend/mirai-console-graphical/src/view/PluginsView.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PluginsView.kt rename to frontend/mirai-console-graphical/src/view/PluginsView.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PrimaryView.kt b/frontend/mirai-console-graphical/src/view/PrimaryView.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/PrimaryView.kt rename to frontend/mirai-console-graphical/src/view/PrimaryView.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/SettingsView.kt b/frontend/mirai-console-graphical/src/view/SettingsView.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/SettingsView.kt rename to frontend/mirai-console-graphical/src/view/SettingsView.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/dialog/InputDialog.kt b/frontend/mirai-console-graphical/src/view/dialog/InputDialog.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/dialog/InputDialog.kt rename to frontend/mirai-console-graphical/src/view/dialog/InputDialog.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/dialog/PluginDetailFragment.kt b/frontend/mirai-console-graphical/src/view/dialog/PluginDetailFragment.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/dialog/PluginDetailFragment.kt rename to frontend/mirai-console-graphical/src/view/dialog/PluginDetailFragment.kt diff --git a/frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/dialog/VerificationCodeFragment.kt b/frontend/mirai-console-graphical/src/view/dialog/VerificationCodeFragment.kt similarity index 100% rename from frontend/mirai-console-graphical/src/main/kotlin/net/mamoe/mirai/console/graphical/view/dialog/VerificationCodeFragment.kt rename to frontend/mirai-console-graphical/src/view/dialog/VerificationCodeFragment.kt diff --git a/frontend/mirai-console-graphical/src/test/kotlin/Main.kt b/frontend/mirai-console-graphical/test/Main.kt similarity index 100% rename from frontend/mirai-console-graphical/src/test/kotlin/Main.kt rename to frontend/mirai-console-graphical/test/Main.kt diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/BufferedOutputStream.kt b/frontend/mirai-console-terminal/src/BufferedOutputStream.kt similarity index 100% rename from frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/BufferedOutputStream.kt rename to frontend/mirai-console-terminal/src/BufferedOutputStream.kt diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleInputImpl.kt b/frontend/mirai-console-terminal/src/ConsoleInputImpl.kt similarity index 100% rename from frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleInputImpl.kt rename to frontend/mirai-console-terminal/src/ConsoleInputImpl.kt diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleTerminalSettings.kt b/frontend/mirai-console-terminal/src/ConsoleTerminalSettings.kt similarity index 100% rename from frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleTerminalSettings.kt rename to frontend/mirai-console-terminal/src/ConsoleTerminalSettings.kt diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleThread.kt b/frontend/mirai-console-terminal/src/ConsoleThread.kt similarity index 100% rename from frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/ConsoleThread.kt rename to frontend/mirai-console-terminal/src/ConsoleThread.kt diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleImplementationTerminal.kt b/frontend/mirai-console-terminal/src/MiraiConsoleImplementationTerminal.kt similarity index 100% rename from frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleImplementationTerminal.kt rename to frontend/mirai-console-terminal/src/MiraiConsoleImplementationTerminal.kt diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleTerminalLoader.kt b/frontend/mirai-console-terminal/src/MiraiConsoleTerminalLoader.kt similarity index 100% rename from frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/MiraiConsoleTerminalLoader.kt rename to frontend/mirai-console-terminal/src/MiraiConsoleTerminalLoader.kt diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt b/frontend/mirai-console-terminal/src/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt similarity index 100% rename from frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt rename to frontend/mirai-console-terminal/src/net/mamoe/mirai/console/pure/MiraiConsolePureLoader.kt diff --git a/frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/noconsole/NoConsole.kt b/frontend/mirai-console-terminal/src/noconsole/NoConsole.kt similarity index 100% rename from frontend/mirai-console-terminal/src/main/kotlin/net/mamoe/mirai/console/terminal/noconsole/NoConsole.kt rename to frontend/mirai-console-terminal/src/noconsole/NoConsole.kt diff --git a/tools/compiler-common/src/diagnostics/MiraiConsoleErrors.kt b/tools/compiler-common/src/diagnostics/MiraiConsoleErrors.kt index 051334a0a..03d21ea9e 100644 --- a/tools/compiler-common/src/diagnostics/MiraiConsoleErrors.kt +++ b/tools/compiler-common/src/diagnostics/MiraiConsoleErrors.kt @@ -6,36 +6,53 @@ * * https://github.com/mamoe/mirai/blob/master/LICENSE */ +package net.mamoe.mirai.console.compiler.common.diagnostics -package net.mamoe.mirai.console.compiler.common.diagnostics; +import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.diagnostics.DiagnosticFactory1.create +import org.jetbrains.kotlin.diagnostics.DiagnosticFactory2.create +import org.jetbrains.kotlin.diagnostics.Errors +import org.jetbrains.kotlin.diagnostics.Severity.ERROR +import org.jetbrains.kotlin.psi.KtNamedDeclaration -import com.intellij.psi.PsiElement; -import org.jetbrains.kotlin.descriptors.ClassDescriptor; -import org.jetbrains.kotlin.diagnostics.DiagnosticFactory1; -import org.jetbrains.kotlin.diagnostics.DiagnosticFactory2; -import org.jetbrains.kotlin.diagnostics.Errors; -import org.jetbrains.kotlin.psi.KtNamedDeclaration; +object MiraiConsoleErrors { + @JvmStatic + val ILLEGAL_PLUGIN_DESCRIPTION = create(ERROR) -import static org.jetbrains.kotlin.diagnostics.Severity.ERROR; + @JvmStatic + val NOT_CONSTRUCTABLE_TYPE = create(ERROR) -public interface MiraiConsoleErrors { - DiagnosticFactory1 ILLEGAL_PLUGIN_DESCRIPTION = DiagnosticFactory1.create(ERROR); - DiagnosticFactory1 NOT_CONSTRUCTABLE_TYPE = DiagnosticFactory1.create(ERROR); - DiagnosticFactory1 UNSERIALIZABLE_TYPE = DiagnosticFactory1.create(ERROR); - DiagnosticFactory2 ILLEGAL_COMMAND_NAME = DiagnosticFactory2.create(ERROR); - DiagnosticFactory2 ILLEGAL_PERMISSION_NAME = DiagnosticFactory2.create(ERROR); - DiagnosticFactory2 ILLEGAL_PERMISSION_ID = DiagnosticFactory2.create(ERROR); - DiagnosticFactory2 ILLEGAL_PERMISSION_NAMESPACE = DiagnosticFactory2.create(ERROR); - DiagnosticFactory2 ILLEGAL_COMMAND_REGISTER_USE = DiagnosticFactory2.create(ERROR); - DiagnosticFactory2 ILLEGAL_PERMISSION_REGISTER_USE = DiagnosticFactory2.create(ERROR); + @JvmStatic + val UNSERIALIZABLE_TYPE = create(ERROR) - @Deprecated - Object _init = new Object() { - { + @JvmStatic + val ILLEGAL_COMMAND_NAME = create(ERROR) + + @JvmStatic + val ILLEGAL_PERMISSION_NAME = create(ERROR) + + @JvmStatic + val ILLEGAL_PERMISSION_ID = create(ERROR) + + @JvmStatic + val ILLEGAL_PERMISSION_NAMESPACE = create(ERROR) + + @JvmStatic + val ILLEGAL_COMMAND_REGISTER_USE = create(ERROR) + + @JvmStatic + val ILLEGAL_PERMISSION_REGISTER_USE = create(ERROR) + + @Suppress("ObjectPropertyName", "unused") + @JvmStatic + @Deprecated("", level = DeprecationLevel.ERROR) + val _init: Any = object : Any() { + init { Errors.Initializer.initializeFactoryNamesAndDefaultErrorMessages( - MiraiConsoleErrors.class, - MiraiConsoleErrorsRendering.INSTANCE - ); + MiraiConsoleErrors::class.java, + MiraiConsoleErrorsRendering + ) } - }; -} + } +} \ No newline at end of file diff --git a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrorsRendering.kt b/tools/compiler-common/src/diagnostics/MiraiConsoleErrorsRendering.kt similarity index 73% rename from tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrorsRendering.kt rename to tools/compiler-common/src/diagnostics/MiraiConsoleErrorsRendering.kt index 01a0d34d6..734a3a02a 100644 --- a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/diagnostics/MiraiConsoleErrorsRendering.kt +++ b/tools/compiler-common/src/diagnostics/MiraiConsoleErrorsRendering.kt @@ -9,7 +9,15 @@ package net.mamoe.mirai.console.compiler.common.diagnostics -import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.* +import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.ILLEGAL_COMMAND_NAME +import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.ILLEGAL_COMMAND_REGISTER_USE +import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.ILLEGAL_PERMISSION_ID +import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.ILLEGAL_PERMISSION_NAME +import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.ILLEGAL_PERMISSION_NAMESPACE +import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.ILLEGAL_PERMISSION_REGISTER_USE +import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.ILLEGAL_PLUGIN_DESCRIPTION +import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.NOT_CONSTRUCTABLE_TYPE +import net.mamoe.mirai.console.compiler.common.diagnostics.MiraiConsoleErrors.UNSERIALIZABLE_TYPE import org.jetbrains.kotlin.diagnostics.rendering.DefaultErrorMessages import org.jetbrains.kotlin.diagnostics.rendering.DiagnosticFactoryToRendererMap import org.jetbrains.kotlin.diagnostics.rendering.Renderers diff --git a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveCommon.kt b/tools/compiler-common/src/resolve/resolveCommon.kt similarity index 100% rename from tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveCommon.kt rename to tools/compiler-common/src/resolve/resolveCommon.kt diff --git a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveTypes.kt b/tools/compiler-common/src/resolve/resolveTypes.kt similarity index 100% rename from tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/resolve/resolveTypes.kt rename to tools/compiler-common/src/resolve/resolveTypes.kt diff --git a/tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/utilCommon.kt b/tools/compiler-common/src/utilCommon.kt similarity index 100% rename from tools/compiler-common/src/main/kotlin/net/mamoe/mirai/console/compiler/common/utilCommon.kt rename to tools/compiler-common/src/utilCommon.kt diff --git a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/IGNORED_DEPENDENCIES_IN_SHADOW.kt b/tools/gradle-plugin/src/IGNORED_DEPENDENCIES_IN_SHADOW.kt similarity index 100% rename from tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/IGNORED_DEPENDENCIES_IN_SHADOW.kt rename to tools/gradle-plugin/src/IGNORED_DEPENDENCIES_IN_SHADOW.kt diff --git a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleExtension.kt b/tools/gradle-plugin/src/MiraiConsoleExtension.kt similarity index 100% rename from tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleExtension.kt rename to tools/gradle-plugin/src/MiraiConsoleExtension.kt diff --git a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleGradlePlugin.kt b/tools/gradle-plugin/src/MiraiConsoleGradlePlugin.kt similarity index 100% rename from tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/MiraiConsoleGradlePlugin.kt rename to tools/gradle-plugin/src/MiraiConsoleGradlePlugin.kt diff --git a/tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt b/tools/gradle-plugin/src/VersionConstants.kt similarity index 100% rename from tools/gradle-plugin/src/main/kotlin/net/mamoe/mirai/console/gradle/VersionConstants.kt rename to tools/gradle-plugin/src/VersionConstants.kt diff --git a/tools/intellij-plugin/README.md b/tools/intellij-plugin/README.md index 1d79320c2..e1b3021a4 100644 --- a/tools/intellij-plugin/README.md +++ b/tools/intellij-plugin/README.md @@ -10,7 +10,7 @@ IntelliJ 平台的 Mirai Console 开发插件 [PluginDescriptionChecker.kt](src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/PluginDescriptionChecker.kt#L34) -- 使用 [ResolveContext](../../backend/mirai-console/src/main/kotlin/net/mamoe/mirai/console/compiler/common/ResolveContext.kt) +- 使用 [ResolveContext](../../backend/mirai-console/src/common/ResolveContext.kt) - 检测 Plugin Id, Plugin Name, Plugin Version 的合法性. 并在非法时提示正确的语法. - 支持编译期常量 diff --git a/tools/intellij-plugin/src/main/resources/META-INF/plugin.xml b/tools/intellij-plugin/resources/META-INF/plugin.xml similarity index 100% rename from tools/intellij-plugin/src/main/resources/META-INF/plugin.xml rename to tools/intellij-plugin/resources/META-INF/plugin.xml diff --git a/tools/intellij-plugin/src/main/resources/icons/commandDeclaration.svg b/tools/intellij-plugin/resources/icons/commandDeclaration.svg similarity index 100% rename from tools/intellij-plugin/src/main/resources/icons/commandDeclaration.svg rename to tools/intellij-plugin/resources/icons/commandDeclaration.svg diff --git a/tools/intellij-plugin/src/main/resources/icons/pluginIcon.svg b/tools/intellij-plugin/resources/icons/pluginIcon.svg similarity index 100% rename from tools/intellij-plugin/src/main/resources/icons/pluginIcon.svg rename to tools/intellij-plugin/resources/icons/pluginIcon.svg diff --git a/tools/intellij-plugin/resources/icons/pluginMainDeclaration.png b/tools/intellij-plugin/resources/icons/pluginMainDeclaration.png new file mode 100644 index 0000000000000000000000000000000000000000..386d238b25800cb3abeaa31c8a52621405f6af1b GIT binary patch literal 3803 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 P2c6eqANPZ<> Date: Fri, 30 Oct 2020 10:44:56 +0800 Subject: [PATCH 25/34] Configure testing environment --- frontend/mirai-console-terminal/.gitignore | 1 + .../src/MiraiConsoleImplementationTerminal.kt | 2 +- .../test/RunTerminal.kt | 33 +++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 frontend/mirai-console-terminal/.gitignore create mode 100644 frontend/mirai-console-terminal/test/RunTerminal.kt diff --git a/frontend/mirai-console-terminal/.gitignore b/frontend/mirai-console-terminal/.gitignore new file mode 100644 index 000000000..f35003d5a --- /dev/null +++ b/frontend/mirai-console-terminal/.gitignore @@ -0,0 +1 @@ +/run \ No newline at end of file diff --git a/frontend/mirai-console-terminal/src/MiraiConsoleImplementationTerminal.kt b/frontend/mirai-console-terminal/src/MiraiConsoleImplementationTerminal.kt index 4501c1af6..8708e197a 100644 --- a/frontend/mirai-console-terminal/src/MiraiConsoleImplementationTerminal.kt +++ b/frontend/mirai-console-terminal/src/MiraiConsoleImplementationTerminal.kt @@ -57,7 +57,7 @@ import java.nio.file.Paths @ConsoleExperimentalApi class MiraiConsoleImplementationTerminal @JvmOverloads constructor( - override val rootPath: Path = Paths.get(".").toAbsolutePath(), + override val rootPath: Path = Paths.get(System.getProperty("user.dir", ".")).toAbsolutePath(), override val builtInPluginLoaders: List>> = listOf(lazy { JvmPluginLoader }), override val frontEndDescription: MiraiConsoleFrontEndDescription = ConsoleFrontEndDescImpl, override val consoleCommandSender: MiraiConsoleImplementation.ConsoleCommandSenderImpl = ConsoleCommandSenderImplTerminal, diff --git a/frontend/mirai-console-terminal/test/RunTerminal.kt b/frontend/mirai-console-terminal/test/RunTerminal.kt new file mode 100644 index 000000000..901433db3 --- /dev/null +++ b/frontend/mirai-console-terminal/test/RunTerminal.kt @@ -0,0 +1,33 @@ +/* + * 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.console.MiraiConsole +import java.io.File + +fun main() { + configureUserDir() + + MiraiConsoleTerminalLoader.startAsDaemon() + runCatching { runBlocking { MiraiConsole.job.join() } } +} + +internal fun configureUserDir() { + val projectDir = runCatching { + File(".").resolve("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}") + } +} \ No newline at end of file From ec747979a656f463e8887183da0974f3e209ee6a Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 10:45:56 +0800 Subject: [PATCH 26/34] Fix README --- tools/intellij-plugin/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/tools/intellij-plugin/README.md b/tools/intellij-plugin/README.md index e1b3021a4..db1cc56c6 100644 --- a/tools/intellij-plugin/README.md +++ b/tools/intellij-plugin/README.md @@ -8,8 +8,6 @@ IntelliJ 平台的 Mirai Console 开发插件 #### ILLEGAL_PLUGIN_DESCRIPTION -[PluginDescriptionChecker.kt](src/main/kotlin/net/mamoe/mirai/console/intellij/diagnostics/PluginDescriptionChecker.kt#L34) - - 使用 [ResolveContext](../../backend/mirai-console/src/common/ResolveContext.kt) - 检测 Plugin Id, Plugin Name, Plugin Version 的合法性. 并在非法时提示正确的语法. - 支持编译期常量 From f7c8534b4e6521ca02159e0b63f135667c1e7316 Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 10:54:40 +0800 Subject: [PATCH 27/34] Fix HelpCommand --- backend/mirai-console/src/command/BuiltInCommands.kt | 9 +++++++-- .../src/internal/command/CommandReflector.kt | 6 +++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/backend/mirai-console/src/command/BuiltInCommands.kt b/backend/mirai-console/src/command/BuiltInCommands.kt index 9a6724e1d..0f8ecf562 100644 --- a/backend/mirai-console/src/command/BuiltInCommands.kt +++ b/backend/mirai-console/src/command/BuiltInCommands.kt @@ -76,8 +76,13 @@ public object BuiltInCommands { @Handler public suspend fun CommandSender.handle() { sendMessage( - allRegisteredCommands.joinToString("\n\n") { "◆ ${it.usage}" }.lines().filterNot(String::isBlank) - .joinToString("\n") + allRegisteredCommands + .joinToString("\n\n") { command -> + val lines = command.usage.lines() + if (lines.isEmpty()) "/${command.primaryName} ${command.description}" + else + "◆ " + lines.first() + "\n" + lines.drop(1).joinToString("\n") { " $it" } + }.lines().filterNot(String::isBlank).joinToString("\n") ) } } diff --git a/backend/mirai-console/src/internal/command/CommandReflector.kt b/backend/mirai-console/src/internal/command/CommandReflector.kt index d39eb6a8f..21614293f 100644 --- a/backend/mirai-console/src/internal/command/CommandReflector.kt +++ b/backend/mirai-console/src/internal/command/CommandReflector.kt @@ -153,13 +153,13 @@ internal class CommandReflector( } else { append(CommandManager.commandPrefix) } - if (command is CompositeCommand) { + //if (command is CompositeCommand) { append(command.primaryName) append(" ") - } + //} append(subcommand.valueParameters.joinToString(" ") { it.render() }) annotationResolver.getDescription(command, subcommand.originFunction)?.let { description -> - append(" ") + append(" # ") append(description) } } From 80e869e8c94c6fc7b6780d98c66c663b92b9b0e3 Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 11:23:55 +0800 Subject: [PATCH 28/34] Fix subCommandNames --- .../src/internal/command/CommandReflector.kt | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/backend/mirai-console/src/internal/command/CommandReflector.kt b/backend/mirai-console/src/internal/command/CommandReflector.kt index 21614293f..1e172f90a 100644 --- a/backend/mirai-console/src/internal/command/CommandReflector.kt +++ b/backend/mirai-console/src/internal/command/CommandReflector.kt @@ -66,7 +66,7 @@ internal object SimpleCommandSubCommandAnnotationResolver : function.hasAnnotation() override fun getSubCommandNames(ownerCommand: Command, function: KFunction<*>): Array = - ownerCommand.secondaryNames + emptyArray() override fun getAnnotatedName(ownerCommand: Command, parameter: KParameter): String? = parameter.findAnnotation()?.value @@ -154,8 +154,8 @@ internal class CommandReflector( append(CommandManager.commandPrefix) } //if (command is CompositeCommand) { - append(command.primaryName) - append(" ") + append(command.primaryName) + append(" ") //} append(subcommand.valueParameters.joinToString(" ") { it.render() }) annotationResolver.getDescription(command, subcommand.originFunction)?.let { description -> @@ -228,10 +228,16 @@ internal class CommandReflector( .onEach { it.checkExtensionReceiver() } .onEach { it.checkModifiers() } .onEach { it.checkNames() } - .map { function -> + .flatMap { function -> + val names = annotationResolver.getSubCommandNames(command, function) + if (names.isEmpty()) sequenceOf(createMapEntry(function, null)) + else names.associateBy { function }.asSequence() + } + .map { (function, name) -> val functionNameAsValueParameter = - annotationResolver.getSubCommandNames(command, function).mapIndexed { index, s -> createStringConstantParameter(index, s) } + name?.split(' ')?.mapIndexed { index, s -> createStringConstantParameter(index, s) } + .orEmpty() val functionValueParameters = function.valueParameters.associateBy { it.toUserDefinedCommandParameter() } @@ -274,6 +280,11 @@ internal class CommandReflector( }.toList() } + private fun createMapEntry(key: K, value: V) = object : Map.Entry { + override val key: K get() = key + override val value: V get() = value + } + private fun KParameter.toCommandReceiverParameter(): CommandReceiverParameter { check(!this.isVararg) { "Receiver cannot be vararg." } check(this.type.classifierAsKClass().isSubclassOf(CommandSender::class)) { "Receiver must be subclass of CommandSender" } From 71c744c4296af1e4b9ea3addced88f46fda100d1 Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 11:35:26 +0800 Subject: [PATCH 29/34] Fix command reflection --- .../mirai-console/src/internal/command/CommandReflector.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/backend/mirai-console/src/internal/command/CommandReflector.kt b/backend/mirai-console/src/internal/command/CommandReflector.kt index 1e172f90a..1bf73d773 100644 --- a/backend/mirai-console/src/internal/command/CommandReflector.kt +++ b/backend/mirai-console/src/internal/command/CommandReflector.kt @@ -230,10 +230,10 @@ internal class CommandReflector( .onEach { it.checkNames() } .flatMap { function -> val names = annotationResolver.getSubCommandNames(command, function) - if (names.isEmpty()) sequenceOf(createMapEntry(function, null)) - else names.associateBy { function }.asSequence() + if (names.isEmpty()) sequenceOf(createMapEntry(null, function)) + else names.associateWith { function }.asSequence() } - .map { (function, name) -> + .map { (name, function) -> val functionNameAsValueParameter = name?.split(' ')?.mapIndexed { index, s -> createStringConstantParameter(index, s) } From b6794a882613f9b1841500f4bd469b36d4ffb78d Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 11:35:50 +0800 Subject: [PATCH 30/34] Fix string constant arguments --- .../src/command/descriptor/CommandParameter.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/backend/mirai-console/src/command/descriptor/CommandParameter.kt b/backend/mirai-console/src/command/descriptor/CommandParameter.kt index 77960e867..e6d30d783 100644 --- a/backend/mirai-console/src/command/descriptor/CommandParameter.kt +++ b/backend/mirai-console/src/command/descriptor/CommandParameter.kt @@ -18,6 +18,7 @@ import net.mamoe.mirai.console.internal.data.classifierAsKClass import net.mamoe.mirai.console.internal.data.classifierAsKClassOrNull import net.mamoe.mirai.console.internal.data.typeOf0 import net.mamoe.mirai.console.util.ConsoleExperimentalApi +import net.mamoe.mirai.message.data.content import kotlin.reflect.KClass import kotlin.reflect.KType import kotlin.reflect.full.isSubclassOf @@ -144,7 +145,7 @@ public sealed class AbstractCommandValueParameter : CommandValueParameter, return acceptingImpl(this.type, argument, commandArgumentContext) } - private fun acceptingImpl( + protected open fun acceptingImpl( expectingType: KType, argument: CommandValueArgument, commandArgumentContext: CommandArgumentContext?, @@ -184,6 +185,12 @@ public sealed class AbstractCommandValueParameter : CommandValueParameter, override fun toString(): String = "<$expectingValue>" + override fun acceptingImpl(expectingType: KType, argument: CommandValueArgument, commandArgumentContext: CommandArgumentContext?): ArgumentAcceptance { + return if (argument.type.isSubtypeOf(expectingType) && argument.value.content == expectingValue) { + ArgumentAcceptance.Direct + } else ArgumentAcceptance.Impossible + } + private companion object { @OptIn(ExperimentalStdlibApi::class) val STRING_TYPE = typeOf() From 1ae6b1f13cb7b3cfa1350d68438071876970b410 Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 11:39:36 +0800 Subject: [PATCH 31/34] Improve command descriptions --- backend/mirai-console/src/command/BuiltInCommands.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/mirai-console/src/command/BuiltInCommands.kt b/backend/mirai-console/src/command/BuiltInCommands.kt index 0f8ecf562..c24fe9948 100644 --- a/backend/mirai-console/src/command/BuiltInCommands.kt +++ b/backend/mirai-console/src/command/BuiltInCommands.kt @@ -71,7 +71,7 @@ public object BuiltInCommands { public object HelpCommand : SimpleCommand( ConsoleCommandOwner, "help", - description = "Command list", + description = "查看指令帮助", ), BuiltInCommandInternal { @Handler public suspend fun CommandSender.handle() { @@ -95,7 +95,7 @@ public object BuiltInCommands { public object StopCommand : SimpleCommand( ConsoleCommandOwner, "stop", "shutdown", "exit", - description = "Stop the whole world.", + description = "关闭 Mirai Console", ), BuiltInCommandInternal { private val closingLock = Mutex() @@ -130,10 +130,10 @@ public object BuiltInCommands { public object LoginCommand : SimpleCommand( ConsoleCommandOwner, "login", "登录", - description = "Log in a bot account.", + description = "登录一个账号", ), BuiltInCommandInternal { @Handler - public suspend fun CommandSender.handle(id: Long, password: String) { + public suspend fun CommandSender.handle(@Name("qq") id: Long, password: String) { kotlin.runCatching { MiraiConsole.addBot(id, password).alsoLogin() }.fold( From 43eef23b67069d89018c1d131e000d651542020e Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 13:02:07 +0800 Subject: [PATCH 32/34] Fix StringConstant --- .../mirai-console/src/command/descriptor/CommandParameter.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/mirai-console/src/command/descriptor/CommandParameter.kt b/backend/mirai-console/src/command/descriptor/CommandParameter.kt index e6d30d783..225615447 100644 --- a/backend/mirai-console/src/command/descriptor/CommandParameter.kt +++ b/backend/mirai-console/src/command/descriptor/CommandParameter.kt @@ -186,7 +186,7 @@ public sealed class AbstractCommandValueParameter : CommandValueParameter, override fun toString(): String = "<$expectingValue>" override fun acceptingImpl(expectingType: KType, argument: CommandValueArgument, commandArgumentContext: CommandArgumentContext?): ArgumentAcceptance { - return if (argument.type.isSubtypeOf(expectingType) && argument.value.content == expectingValue) { + return if (argument.value.content == expectingValue) { ArgumentAcceptance.Direct } else ArgumentAcceptance.Impossible } From 5c0355604654a7d13be35881653bb44cb4f26fa1 Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 14:58:04 +0800 Subject: [PATCH 33/34] 1.0-RC-1 --- buildSrc/src/main/kotlin/Versions.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 238602556..09016f70a 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -9,7 +9,7 @@ object Versions { const val core = "1.3.2" - const val console = "1.0-RC" + const val console = "1.0-RC-1" const val consoleGraphical = "0.0.7" const val consoleTerminal = console From c8f6575c440d67ea0a0b5dc8dbdc8d972d14a75b Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 30 Oct 2020 15:01:20 +0800 Subject: [PATCH 34/34] Update build constants and README --- .../src/internal/MiraiConsoleBuildConstants.kt | 4 ++-- docs/ConfiguringProjects.md | 11 ++++------- tools/gradle-plugin/src/VersionConstants.kt | 2 +- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/backend/mirai-console/src/internal/MiraiConsoleBuildConstants.kt b/backend/mirai-console/src/internal/MiraiConsoleBuildConstants.kt index a0a673888..418852398 100644 --- a/backend/mirai-console/src/internal/MiraiConsoleBuildConstants.kt +++ b/backend/mirai-console/src/internal/MiraiConsoleBuildConstants.kt @@ -14,8 +14,8 @@ import java.time.Instant internal object MiraiConsoleBuildConstants { // auto-filled on build (task :mirai-console:fillBuildConstants) @JvmStatic - val buildDate: Instant = Instant.ofEpochSecond(1603864859) - const val versionConst: String = "1.0-RC" + val buildDate: Instant = Instant.ofEpochSecond(1604041264) + const val versionConst: String = "1.0-RC-1" @JvmStatic val version: SemVersion = SemVersion(versionConst) diff --git a/docs/ConfiguringProjects.md b/docs/ConfiguringProjects.md index 6831ff24d..5063a8857 100644 --- a/docs/ConfiguringProjects.md +++ b/docs/ConfiguringProjects.md @@ -11,8 +11,6 @@ console 由后端和前端一起工作. 使用时必须选择一个前端. - `mirai-console-terminal`: 终端前端,适用于 JVM。 - [`MiraiAndroid`](https://github.com/mzdluo123/MiraiAndroid): Android 应用前端。 -**注意:`mirai-console` 1.0-RC 发布之前, 前端请使用 `mirai-console-pure` 而不是 `mirai-console-terminal`** - ## 选择版本 有关各类版本的区别,参考 [版本规范](Appendix.md#版本规范) @@ -20,10 +18,10 @@ console 由后端和前端一起工作. 使用时必须选择一个前端. [Version]: https://api.bintray.com/packages/him188moe/mirai/mirai-console/images/download.svg? [Bintray Download]: https://bintray.com/him188moe/mirai/mirai-console/ -| 版本类型 | 版本号 | -|:------:|:------------:| -| 稳定 | - | -| 预览 | 1.0-M4 | +| 版本类型 | 版本号 | +|:------:|:------------------------------:| +| 稳定 | - | +| 预览 | 1.0-RC-1 | | 开发 | [![Version]][Bintray Download] | ## 配置项目 @@ -74,7 +72,6 @@ dependencies { compileOnly("net.mamoe:mirai-console:$CONSOLE_VERSION") // 后端 testImplementation("net.mamoe:mirai-console-terminal:$CONSOLE_VERSION") // 前端, 用于启动测试 - testImplementation("net.mamoe:mirai-console-terminal:$CONSOLE_VERSION") // 前端, 用于启动测试 } ``` diff --git a/tools/gradle-plugin/src/VersionConstants.kt b/tools/gradle-plugin/src/VersionConstants.kt index a3cccbd26..2ed00f770 100644 --- a/tools/gradle-plugin/src/VersionConstants.kt +++ b/tools/gradle-plugin/src/VersionConstants.kt @@ -10,6 +10,6 @@ package net.mamoe.mirai.console.gradle internal object VersionConstants { - const val CONSOLE_VERSION = "1.0-RC" // value is written here automatically during build + const val CONSOLE_VERSION = "1.0-RC-1" // value is written here automatically during build const val CORE_VERSION = "1.3.2" // value is written here automatically during build } \ No newline at end of file