Commit Graph

189 Commits

Author SHA1 Message Date
ParaN3xus
ee30203e3a
[console] Optimize comments of AutoLogin.yml (#2742) 2023-07-23 09:06:32 +08:00
微莹·纤绫
8b4af6d8cf
[console] 优化插件 classpath 策略 (#2666)
* [console/it] Fix testers not run when testers modified

* [console] Add options to control plugin classpath resolving

- Also add `META-INF/mirai-console-plugin/options.properties`

* [console/it] Testers for options.properties

* api dump

* update property names

* doc update
2023-05-21 21:21:20 +08:00
Him188
363d1f7ece
Remove module-level opt-ins, add @OptIn explicit in use-sites;
added some opt-in markers on API which should have:

- `appendMiraiCodeTo`

Made API stable (otherwise they require too heavy opt-ins):
- MiraiConsoleImplementation$ConsoleLaunchOptions
- LowLevelApi
2023-05-06 11:04:31 +01:00
Him188
164f621427 [build] Fully support Android target; Update to Gradle 8.0 2023-05-02 16:17:48 +01:00
Karlatemp
e76cdfb5df
[console] Skip downloading mirai-console-compiler-annotations 2023-04-15 23:35:43 +08:00
NoMathExpectation
cb603adbfc
[console] 支持使用 json 保存与读取 PluginDataPluginConfig (#2498)
* Supports PluginData store with json format.

* Reformat code.
2023-03-22 15:36:54 +00:00
Him188
427c37e649
[build] Update to Kotlin 1.8.10 2023-03-19 03:18:34 +00:00
StageGuard
78d0b4fd54
QRCode login support & Introduce new authorization factory (#2502)
* [core] process `wtlogin.trans_emp` to support qrcode login

* [core] fix `wtlogin.trans_emp` protocol

* [core] optimize QRCodeLoginProcessor logic

* [core] fix `wtlogin.trans_emp` outgoing packet

* [core] cancel login when logging a bot which is inconsistent from bot factory

* [core] ignore `flag3` check on ANDROID_WATCH & name `flag1` and `flag2`

* [core] provide default `QRCodeLoginListener` for jvm

* [core] don't catch IllegalStateException in QRCodeLoginProcessor

* [core] Use `LoginSolver.createQRCodeLoginListener()` instead of property; Rename configuration name

* [core] Code improvement

* [core] remove qrcode state lock

* [core] ignore `flag3` when command is `wtlogin.trans_emp` in packet codec

* [core] enable qrcode login for macos

* [core] remove debug property in log

* [core] reformat code

* [core] rename `TransEmpResponse` to `Response`

* [core] assert `flag3Exception` not null first

* [core] remove arg client

* [core] update qrcode login notes

* [core] set custom qrcode size

* [core] Draft BotAuthorization

* [core] make SecretsProtection mpp

* [core] BotAuthorization.byXXX

* [core] Move QRCodeLoginListener to `.auth`

* [core] Protect data of BotAccount

* [core] Add SelectorRequireReconnectException

* [core] Implementation of BotAuthorization

* Revert changes of BotConfiguration

* api dump

* [core] remove passwordMd5 in `BotAccount`

* [mock] Add new bot factory function to mock bot factory

* Delete LoginCommandTest

* [core] Improve QRCode render

* [core] Introduce UnsupportedCaptchaMethodException & UnsupportedQRCodeCaptchaException

* api dump

* update docs

* [core] update `DebugRunHelper`

* [core] add simple block for BotAuthorization

* api dump

* Rename `canDoQRLogin` to `supportsQRLogin`, and specify argument names for MiraiProtocolInternal

* Remove `phoneNumber` parameter from BotAccount

* Make `BotAccount.<init>` with String password parameter TestOnly

* Rename `InconsistentBotException` to `InconsistentBotIdException`

* Rename `QRCodeLoginListener.onStatusChanged` to `QRCodeLoginListener.onStateChanged`

* Rename `BotAuthorizationResult` to `BotAuthResult`

* Rename BotAuthComponent, move internal APIs to internal module

* Logic fixup

* doc update

* QRCodeLoginListener.qrCodeStateUpdateInterval & onIntervalLoop

* console login with BotAuthorization

* update testing

* Update mirai-core-api/src/jvmMain/kotlin/utils/LoginSolver.jvm.kt

* Move AuthControl outside SsoProcessor

* Redesign auth

* Add initialTicket to producerCoroutine

* Revert protocol changes of MACOS

* Fix latch death locking

* Fix CoroutineOnDemandValueScope.receiveOrNull exceptional finish

* Fix exception collecting

* Fix DefaultBotAuthorizationFactory loading

* [core] qrcode login for IPAD protocol

* Revert "[core] qrcode login for IPAD protocol"

This reverts commit c1136a8798.

---------

Co-authored-by: Karlatemp <kar@kasukusakura.com>
Co-authored-by: Him188 <Him188@mamoe.net>
2023-03-18 13:52:31 +00:00
ArgonarioD
4f0f733f4d
修复JvmPlugin无法通过自己的classLoader以getResource的方法获取全局依赖的class文件 (#2536)
* [console] Fixed classLoaders of JvmPlugin cannot getResource(classes of global dependencies), fix #2535

* [core/utils/jvm] new fun: addAll(Enumeration)

* [console] modify DynLibClassLoader.tryFastOrStrictResolveResource to tryFastOrStrictResolveResources

* [console] remove allClassesAsResources field

* [console] add var to control whether class files of mirai dependencies could be load as resources

* [console/integration-test] modify loader test

* [console] dump new apis

* [console] rename JvmPluginClasspath.openMiraiDependenciesClassResource and standardize its KDoc

* [console] modify the KDoc of JvmPluginClasspath.shouldResolveConsoleSystemResource

* [console/integration-test] improve resources loading test cases

* [console/integration-test] modify assert to assertTrue
2023-03-12 22:37:47 +08:00
赵怡然
cb78ed34a5
[console] 修复在Android系统运行时,被杀后台时抛出的 InterruptedException 导致崩溃 (#2474)
* 修复在Android系统运行时,被杀后台时抛出的 InterruptedException 导致崩溃

* Update mirai-console/backend/mirai-console/src/MiraiConsoleImplementation.kt

Co-authored-by: Him188 <Him188@mamoe.net>

---------

Co-authored-by: Him188 <Him188@mamoe.net>
2023-03-01 17:57:57 +00:00
NoMathExpectation
a6afd9540c
[console] Fixed reaching UNREACHABLE_CLAUSE when running extensions with non-null function results. (#2528) 2023-02-24 02:15:43 +00:00
cssxsh
38e03fdc00
[console] Add StartupEvent and AutoLoginEvent (#2446)
* add: console event impl

* add: internal annotation

* add: since 2.15
2023-02-19 11:48:28 +00:00
EnchStudio
c96275892c
[console] typo: 将 consosle 改为 console (#2491) 2023-02-10 16:20:29 +00:00
char46
fa734ce2ff
[docs] 将 TempCommandSender 替换为 GroupTempCommandSender (#2457)
根据后文代码注释'mirai 正计划支持其他渠道发起的临时会话, 届时此事件会变动. 原 TempCommandSender 已更改为 GroupTempCommandSender'修改。
2023-01-25 15:18:23 +00:00
Karlatemp
68e1cc45b3
Fix console not stopped when plugin failed to load 2023-01-19 00:03:27 +08:00
Karlatemp
62ae2ac03c
[console] Create PluginOnDisableCalledOnlyOnceTest test; Fix tests 2023-01-02 23:43:33 +08:00
Karlatemp
6b1aa9c80b
[console] Fix JvmPlugin disabling multiple times; Introduce JvmPlugin status 2023-01-02 23:43:33 +08:00
Karlatemp
2f759c199a
[console] Fix plugin disabling order control 2023-01-02 23:43:32 +08:00
Karlatemp
b59c7336d0
[console] Make JvmPluginLoader a child job of PluginManager 2023-01-02 23:43:32 +08:00
Him188
38737a473a
[mock] Remove MockConsoleImplementation.createLogger because it had been removed in its super class
This commit fixes 7908edb57b
2022-12-27 17:50:41 +00:00
Him188
0a60535d46
[console] Ignore APIs marked with @ExperimentalCommandDescriptors in ABI compatibility checks 2022-12-27 16:01:03 +00:00
Him188
7908edb57b
[core+console] Raise deprecation level for 2.14, API including:
- EventChannel.asChannel
- (internal) syncFromEventImpl
- EmptyMessageChain
- GroupEntranceAnnouncementChangeEvent
- MiraiConsole.createLogger
- SingletonExtensionPoint
2022-12-27 15:53:12 +00:00
Karlatemp
a3f9755e8e
[console] Disable network log in testing 2022-12-18 22:36:13 +08:00
Karlatemp
e5a48566df [console/logging] Fix test naming 2022-12-17 20:33:33 +00:00
Karlatemp
46cd06d261 [console/logging] Fix typo fix nameing 2022-12-17 20:33:33 +00:00
Karlatemp
6c295723db [console/logging] slf4j binding support 2022-12-17 20:33:33 +00:00
Karlatemp
7537e29b0e [console/logging] Always load LoggerConfig; Add LoggerConfig.Binding settings 2022-12-17 20:33:33 +00:00
Karlatemp
8a07308a56 [console/logging] Introduce LoggerControlState for optimize performance 2022-12-17 20:33:33 +00:00
Him188
65e49283a2
Revert "[console] Enable atomicfu compiler", due to incorrect behavior of atomicfu. See #2329
This reverts commit 440122d4f9.
2022-11-27 20:07:32 +00:00
cssxsh
5618333a9d
[console/plugin] Fix multi-dependency-repositories not working (#2358) 2022-11-23 10:39:21 +00:00
Karlatemp
841f6e5326
[console] Fix gradle user home detecting; Fix #2357 2022-11-22 13:02:29 +08:00
赵怡然
0e4d5efd38
[console] 修复 JvmPluginInternal 在 Android java.lang.NoSuchMethodError (#2354)
* fix java.lang.NoSuchMethodError

fix java.lang.NoSuchMethodError: No virtual method getDeclaredAnnotation(Ljava/lang/Class;)L

* fix formatting

Co-authored-by: Him188 <Him188@mamoe.net>
2022-11-18 23:26:52 +00:00
Karlatemp
d47221fa35
[console] Add LegacyCompatibilityLayerClassLoader; Load ktor 1.6.8 as fallback; fix #2297 2022-10-29 23:27:17 +08:00
Karlatemp
a47a8e1c2a
[console] [internal] No longer fast resolve netty to core 2022-10-29 23:27:16 +08:00
Karlatemp
d648e56867
[console] Add https://repo1.maven.org/maven2/ to default servers 2022-10-29 22:57:03 +08:00
Him188
440122d4f9
[console] Enable atomicfu compiler 2022-10-29 13:14:35 +01:00
cssxsh
03fc3a3445
[console] Unwrap InvocationTargetException when executing commands (#2258) 2022-10-28 14:07:40 +01:00
cssxsh
5bf9fdf5b6
[console] feat: load SPI Service in jvm plugin (#2247)
* feat: load SPI Service in jvm plugin

* add: api dump

* fix: docs
2022-10-28 14:06:41 +01:00
cssxsh
1b5f45cd70
feat: more login info (#2304) 2022-10-26 18:46:43 +01:00
Him188
1f8524fb04
Fix all compiler warnings throughout the project 2022-10-21 17:00:37 +01:00
Karlatemp
bf362f9d75
[console] Add version bar before logo 2022-09-20 12:38:41 +08:00
Karlatemp
678fe6fd6b
[console] Print logo to help users distinguish between mirai-console and mirai-console-loader 2022-09-18 22:26:24 +08:00
Karlatemp
500ad3cc9e
Fix console integration test 2022-09-06 18:21:40 +08:00
Karlatemp
af2b38d476
Make MultiFilePluginDataStorageImpl.logger lazy init 2022-09-06 18:21:36 +08:00
Karlatemp
a94c98d990
Add FrontendLoggingInitContext.invokeAfterInitialization 2022-09-06 18:21:25 +08:00
cssxsh
e00f592b84
[console] feat: login use auto login account configuration (#2209)
* feat: other account configuration

* add: test
2022-09-02 07:50:08 +08:00
Karlatemp
969c77f146
[console] Change convention of createLoggerFactory() 2022-08-28 22:52:48 +08:00
Him188
f0651c81c6
[core+console] Improve logging hierarchy: (#2196)
- always use factory API from mirai-core
- Terminal is still overriding standard outputs
- plugins are forbidden to override logging framework (this was allowed but not working before)
2022-08-27 18:46:16 +08:00
Him188
2d393ee0b0
[core+console] Raise deprecation level for 2.13: (#2213)
- warningSince 2.11 -> errorSince 2.13
 - errorSince 2.12 -> hiddenSince 2.13
 - some experimental APIs removed
2022-08-27 14:06:03 +08:00
Him188
3ae6c2802e
[console] Change Aliyun public repository to central respiratory. Fix #2184 2022-08-20 16:19:40 +08:00