Commit Graph

188 Commits

Author SHA1 Message Date
cssxsh
9db5d2c4b5 Add client properties to MessageSyncEvents, add OtherClientCommandSenderOnMessageSync and MessageSyncEvent.toCommandSender 2022-08-03 11:27:39 +08:00
cssxsh
6bb2bf23aa
支持 vararg 和原生类型数组命令参数 (#1760)
* fix: vararg

* marge

* add: other array test

* api dump
2022-07-31 15:56:14 +08:00
Karlatemp
9a8b696132
[Console] Track plugin file path into error stack; iTXTech/mirai-console-loader#128 2022-07-25 01:47:24 +08:00
微莹·纤绫
f256926821
Fix CommandSender extensions (#2105) 2022-07-20 15:09:48 +08:00
Him188
21c4a5ba04 Use kotlinx-coroutines-test 2022-07-20 00:30:16 +08:00
Him188
4c6b879873 Upgrade to Ktor 2.0.2, use CIO engine for linux targets; Remove ktor-client-okhttp from mirai-core-api jvmBaseMain
Use Input.readAllText instead of Input.readText, because readText only reads one buffer.
#2084
2022-07-20 00:30:16 +08:00
Him188
13dadd5a95 Implement mirai-core for native 2022-07-20 00:30:16 +08:00
Him188
ff2a8acb0c Implement multiplatform modules 2022-07-20 00:30:16 +08:00
Him188
d96641dedb Configure HMPP project structure 2022-07-20 00:30:16 +08:00
Karlatemp
1be39eeb0a
Hard linking jdk builtin modules; fix #2141; fix #2126
- Not allow override jdk modules
2022-07-08 13:08:34 +08:00
Karlatemp
1110a6f3fa
Fix private dependencies resolving; fix #2108 2022-06-22 17:43:09 +08:00
Karlatemp
f69fdb7ac1
improve console it project structs 2022-06-22 17:14:21 +08:00
Karlatemp
f48940a897
Prefer SystemCommandSender; fix SystemCommandSender error message rendering 2022-06-18 23:49:54 +08:00
Him188
f527aa9b40 Update docs for commands 2022-06-17 15:00:20 +01:00
Him188
90bc48177a Allow overriding CommandArgumentContext in JCompositeCommand and JSimpleCommand 2022-06-17 15:00:20 +01:00
Him188
eeb361358a Add CommandContext and support retrieving original message chain from command, close #1835 2022-06-17 15:00:20 +01:00
Him188
371673678e
Update hints for builtin ValueArgumentParsers 2022-06-15 11:10:12 +01:00
Him188
a4e7fda416
Raise deprecation level for 2.12 2022-06-14 11:19:44 +01:00
Him188
98e05f3bf4
Improve comments in LoggerConfig 2022-06-14 10:24:38 +01:00
Him188
70c8255b6b
相反于加载顺序卸载插件, close #1994 2022-06-13 19:48:09 +01:00
Eritque arcus
4408750847
mark plugin disabled when it throw exception during enable process (#2022)
* Fix bootstrap when no env specified

* add PluginWithExceptionTest

* Add exceptedExceptionMessage in MCIT(Throwable or Exception may not work?)

* Using red color show disabled plugins in /status command

* Catch exception during enable process

* Count plugins without disabled plugins

* Revert "Fix bootstrap when no env specified"

This reverts commit ff9bb180fd6687c5da27b8a38da2658a1b26ad93.

* format

* format

* halt plugin enable process when mirai failed to enable it dependencies.

* Update mirai-console/backend/mirai-console/src/internal/plugin/PluginManagerImpl.kt hint

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

* rename tmp to dependsOn

* Revert changes of PluginManagerImpl

* Plugin callback executions assertions

* Improve & Fix Logic

* Fix PluginDependOnErrorPlugin

* Update err msg

* move dependencies check from JvmPluginInternal.kt to BuiltInJvmPluginLoaderImpl.kt

* typo

* don't throw err caused by dependencies fail

Co-authored-by: Him188 <Him188@mamoe.net>
Co-authored-by: Karlatemp <kar@kasukusakura.com>
2022-06-13 19:45:39 +01:00
cssxsh
2d41a617fe
在 MultiFilePluginDataStorage.load 失败时,备份数据文件 (#2089)
* feat: load data failure, backup data file

* feat: load data failure, backup data file

* feat: currentTimeMillis
2022-06-13 19:45:22 +01:00
TheFatCat
342538e31b
修复在插件配置的saveName中使用子路径出现的异常 (#2088) 2022-06-13 19:45:11 +01:00
微莹·纤绫
d0c1848c94
Improve console shutdown (#2016)
* Try to improve console shutdown

* Resetting & Better java calling

* Dump crash report when timed out to shutdown

* Ensure `CoroutineScope.cancel()` working; rename to `shutdown`

* Signal handlers

* Force halt system to avoid some magic errors
2022-06-07 00:10:51 +08:00
微莹·纤绫
0b67a6783a
PluginCustomCommandSender (#1964)
* PluginCustomCommandSender

* Update doc & remove lazy

* Update CommandSender.kt
2022-06-07 00:10:28 +08:00
水纹霖霖
d9c1da275b
fix protocol guideline & update docs (#2067)
* Update Bots.md

* Update AutoLoginConfig.kt
2022-06-06 16:57:27 +01:00
Him188
b40b681f81 Deprecate EmptyMessageChain in favor of emptyMessageChain() 2022-05-25 22:39:53 +01:00
Him188
a9516b401b Generalize chineseLength to mirai-core-utils 2022-05-25 22:39:53 +01:00
Karlatemp
167a29e0d8
Fix build 2022-05-24 18:10:18 +08:00
Karlatemp
48c2b04a49
Fix plugin's dependencies classes linking; fix #2054 2022-05-24 17:56:29 +08:00
Karlatemp
e25e604c79
Copy modules as maven module 2022-05-24 17:30:58 +08:00
Karlatemp
50e7462b6b
Rename Access to Classpath 2022-05-24 17:00:30 +08:00
Karlatemp
72d248f1e6
Fix DynLibClassLoader class resolving logic 2022-05-23 18:26:33 +08:00
Karlatemp
237320317e
JvmPluginClassLoaderAccess 2022-05-23 18:26:33 +08:00
Karlatemp
b0711ed9ab
Setup vm-names of JvmPluginClassLoader's libraries classloaders 2022-05-23 17:41:51 +08:00
Him188
26c3bca473
Do not require plugin to be loaded for getPluginDescription 2022-05-21 15:25:28 +01:00
Karlatemp
6d0e5adf95
Fix ktor 2.0.0 linking (#2051); Improve console plugin classloader logic
- Drop `io.ktor` in consoleRuntimeClasspath included by `core-api: api(io.ktor)`; Fix #2051
- Fix IT.plugin-resolve-self-dependencies-over-console-ones
- Fix IT.plugin-use-console-deps-fallback
- Fix plugin dependencies linked to AppClassLoader if any external dependencies used
2022-05-21 21:24:09 +08:00
Him188
0da75d31b9 Fix readStringListFromEnv when no env specified 2022-05-08 09:48:10 +01:00
Karlatemp
8250c3da65
Using PlatformClassLoader to resolve java.*; fix #2009 2022-05-04 16:36:13 +08:00
cssxsh
edf7622b0b
fix: ContactOrBot.render (#2010) 2022-05-04 16:28:14 +08:00
Him188
6b5f9e2eef Change file suffix of new plugins to '.mirai2.jar'. Ignore '.mirai.jar' if its '.mirai2.jar' counterparts loaded. Close #1999 2022-05-01 17:59:05 +01:00
Him188
4993e59fd0 JavaPluginSchedulerImpl: run jobs with runInterruptible 2022-04-27 12:53:33 +01:00
Him188
bb8cd86daa Update dependencies:
Kotlin 1.6.21
Dokka 1.6.20
coroutines 1.6.1
atomifFU 0.17.2
serialization 1.3.2
ktor 1.6.7
blocking-bridge 2.0.0-162.1
dynamic-delegation 0.3.0-162.2
2022-04-26 11:12:35 +01:00
Him188
e2477645cd Migrate references of JAutoSavePluginConfig in docs 2022-04-25 14:18:14 +01:00
Him188
3be16c4644 Code cleanup. Remove duplicated internal utilities. 2022-04-25 14:15:29 +01:00
Him188
2780fc4761 Fix build 2022-04-24 16:47:42 +01:00
Him188
854b55f216 Add plugin tests PluginResolveSelfDependenciesOverConsoleOnes, close #1981 2022-04-24 16:18:22 +01:00
Him188
556c805448 console IT: Do not delete entire test sandbox, keep libraries 2022-04-24 16:15:17 +01:00
Him188
97ce422b33 Update docs for console IT 2022-04-24 15:45:58 +01:00
Him188
ffbe540800 Fix AbstractPluginData.findBackingFieldValueNode 2022-04-24 15:05:53 +01:00
Him188
45defb32a2 Fix support for Any and support primitive and reference arrays, close #1801 2022-04-24 15:05:44 +01:00
Him188
d4095fa5c6
Add JavaAutoSavePluginData and deprecate JAutoSavePluginData to fix saving issues. (#1988) 2022-04-24 10:37:42 +01:00
Him188
be832c7dbd
Support serializersModule for PluginData, close #1796. Improve PluginData.value type inference behavior: resolve exact returned type. (#1987)
Also support `MessageChain` and others from `MessageSerializers.serializersModule`, fix #1922.
2022-04-24 10:37:10 +01:00
Karlatemp
35c08e8b16
Link mirai-core in console IT, fix non-hard-linked dependencies resolving 2022-04-23 17:15:20 +08:00
Him188
fbadf4a256 Fix documentation on PluginDependency.dependsOn and improve other relevant info. Fix #1869 2022-04-22 13:17:29 +01:00
微莹·纤绫
15133c7902
Rewrite PluginManagerImpl.sortByDependencies, fixing #1949: resolving optional dependencies (#1968)
* Rewrite `PluginManagerImpl.sortByDependencies`

* Update error msgs
2022-04-19 00:24:17 +01:00
cssxsh
a727704061
Fix error message for '/perm cancel' (#1918)
* fix: cancel error info

* fix: use UnsupportedOperationException

* fix: test

* fix: equals
2022-04-19 00:06:38 +01:00
Him188
4acd74974a Migrate deprecated usages and cleanup code 2022-04-13 13:08:14 +01:00
Karlatemp
706e283218
Init dependencies of no-other-plugin-depended plugins first; fix #1965 2022-04-06 20:30:05 +08:00
Karlatemp
304220708a
Fix empty resource link resolving 2022-03-30 11:52:36 +08:00
Karlatemp
51c8684e22
Resources resolving 2022-03-30 08:48:42 +08:00
Karlatemp
d6f4e2e567
Resources & ServiceLoader resolving 2022-03-30 08:48:41 +08:00
Karlatemp
94828544cb
Add DynLibClassLoader.name 2022-03-30 08:48:41 +08:00
Karlatemp
884e7a3ee4
Nested modules in console integration test 2022-03-30 08:48:28 +08:00
Karlatemp
7a2d2ef1f9 Add perm source 2022-03-25 11:42:56 +00:00
Karlatemp
7819feaca7 Improve /permissions permittedPermissions 2022-03-25 11:42:56 +00:00
Karlatemp
ffcc489455 Improve /permissions listPermissions 2022-03-25 11:42:56 +00:00
Him188
446cf84272 Extract LoginCommand implementation and fix tests 2022-03-16 16:04:10 +00:00
Him188
366ea34fde Improve LoginCommand logic, remove unsafe checks, and add tests 2022-03-16 15:27:11 +00:00
Him188
b1d66c0d20 Add ConsoleDataScopeImpl.set for test onlyˆ 2022-03-16 15:27:11 +00:00
Him188
80fa25c316 Add contract for MessageScope extensions 2022-03-13 11:25:03 +00:00
Karlatemp
595ff7c9d2
Fix config/Console/Logger.yml ignored 2022-03-10 23:28:18 +08:00
Karlatemp
bb489601b7
Auto finding testing points 2022-03-10 18:05:16 +08:00
Karlatemp
894b8a9c2e
Fix class resolving when package duplicated in dependent plugins. Fix #1920 2022-03-10 17:51:30 +08:00
Him188
68711538c8 fuzzySearchMember: improve performance 2022-03-01 14:18:04 +00:00
Eritque arcus
3d3a995aae
Support heartbeatStrategy in autologin config (#1903)
* support heartbeatStrategy in autologin config

* doc: update tips

8d641c1d4c/docs/Bots.md
2022-02-27 15:09:28 +00:00
Him188
77e2a5c3b4 Prohibit premature usages of PermissionService 2022-02-24 11:05:41 +00:00
Him188
044457ae24 apiDump 2022-02-24 11:05:41 +00:00
Him188
c6c2eff8f7 Give built-in providers with priority -1 2022-02-24 11:05:41 +00:00
Him188
0ee15dda7f Adapt command tests to fit the new structure 2022-02-24 11:05:41 +00:00
Him188
062a644474 Initialize and register configs in a specific phase, store and retrieve then in DataScope, instead of making them objects. 2022-02-24 11:05:41 +00:00
Him188
835059c44c (ABI change) Rewrite ComponentStorage: order extensions by property priority. Remove builtinImplementations and contribute them at the first initialization phase instead.
Close #1888, fix #1860.

Add `ComponentStorageInternal` for frontend to provide components.

Deprecate:
- SingletonExtension
- SingletonExtensionPoint
- AbstractSingletonExtensionPoint
- SingletonExtensionSelector
- CommandCallInterceptorProviderImpl
- CommandCallInterceptorProviderImplLazy
- CommandCallParserProviderImpl
- CommandCallParserProviderImplLazy
- CommandCallResolverProviderImpl
- CommandCallResolverProviderImplLazy

ABI breaking change:
- `PermissionServiceProvider`: supertype changed
- `CommandCallResolverProvider.ExtensionPoint`: supertype changed
- `PermissionServiceProvider.ExtensionPoint`: supertype changed
2022-02-24 11:05:41 +00:00
Marcia Sun
96e943c33f
support escape for text parameter parsing (#1897) 2022-02-22 10:37:24 +00:00
cssxsh
5a1059b0b3
修复权限取消,同时在取消时给出更多提示 (#1843)
* fix: AbstractConcurrentPermissionService

* feat: cancel about

* fix: filter parent

* fix: return

* fix: filter parent

* add: PermissionServiceTest
2022-02-22 10:34:18 +00:00
Karlatemp
29ebf78a54
Fix testing 2022-02-21 22:07:04 +08:00
Karlatemp
8e77109d26
Warning if used undefined dependencies 2022-02-21 21:20:53 +08:00
Karlatemp
22d2bd79df
Allow override console non-hard-link dependencies 2022-02-21 21:20:53 +08:00
Karlatemp
0570a50e5e
Support multi remote servers; Support maven local & gradle local 2022-02-21 21:20:51 +08:00
Karlatemp
d32913aa9f
api dump 2022-02-21 21:20:50 +08:00
Karlatemp
4100eaa245
Plugin dependencies automatic download system 2022-02-21 21:20:35 +08:00
微莹·纤绫
4f6481955c
Save journals to file (#1874)
* Save journals to file

* Use kotlin coroutines

* Fix StackOverflowError

* Auto split log files && test units

* Implement ConsoleTerminalSettings.noLogging

* Improve logging

* High-Speed logging test
2022-02-21 12:18:05 +00:00
Stardust·减
6b036439fd
Update protocol in autologin.yml (#1891)
* Add files via upload

* Update AutoLoginConfig.kt

* Update AutoLoginConfig.kt
2022-02-18 22:32:29 +00:00
Him188
6f67a41b5c Ignore ConsoleFrontEndImplementation on apiDump 2022-02-17 17:45:48 +00:00
Him188
2ebd017786 Make MiraiConsoleImplementationBridge class, add MiraiConsoleImplementation.origin. MiraiConsoleImplementation.Companion.getInstance will now return the bridge object instead of the user-defined implementation. 2022-02-17 17:45:48 +00:00
Him188
5af3d63e25 Print "CONSOLE STOPPED" after each test 2022-02-17 14:02:42 +00:00
Him188
f71ca64b0a Cancel console instance and join when JVM shutdown, if initialized 2022-02-17 14:02:42 +00:00
cssxsh
d2505a397d
fix: PluginDescription.checkSatisfies (#1859) 2022-02-12 12:47:09 +00:00
Karlatemp
6f24035154
Update mirai-console.integration-test 2022-01-15 19:17:04 +08:00
Him188
7d3971259d
Review deprecation for 2.10. close #1742 (#1774) 2022-01-14 18:26:44 +00:00
cssxsh
a3d29b847e
add: TemporalArgumentParser (#1748)
* add: TemporalArgumentParser

* fix: no reflect

* fix: delete @Suppress("UNCHECKED_CAST")

* fix: Temporal -> TemporalAccessor

* add: test temporal argument

* add: isInstance

* docs: since 2.10

* docs: since 2.10
2022-01-14 17:14:12 +00:00