Commit Graph

3107 Commits

Author SHA1 Message Date
Him188
7e84330262
[core] Use netty-handler instead of netty-all to reduce size 2022-10-29 13:11:30 +01:00
Him188
564a7ce8f8
[core] Review atomic calls and enable atomicfu compiler. Close #2315 2022-10-29 13:04:37 +01:00
Him188
ab8e53fc76
[core] Suppress NOTHING_TO_INLINE warnings for AtomicIntSeq 2022-10-29 11:57:01 +01:00
Him188
2baba6a1f3
[core] Fix up previous commit 81a09549e7 2022-10-29 11:56:08 +01:00
Him188
d0f825b0b0
[core] Replace AtomicIntSeq with value class implementations to optimize space. Close #2287 2022-10-29 11:49:30 +01:00
Him188
81a09549e7
[core] Fix potential memory leak with buildPacket 2022-10-29 11:36:41 +01:00
cssxsh
9818c08054
[core] Add sign event (#2217)
* add: SignEvent

* add: SignEvent

* add: hasRank

* add: api dump

* add: toString

* add: toString

* fix: sign for review
2022-10-29 11:11:20 +01:00
cssxsh
c9d1d386b1
fix: ANDROID_PHONE and ANDROID_WATCH (#2312)
* fix: ANDROID_PHONE and ANDROID_WATCH

* fix: ANDROID_PHONE
2022-10-28 22:49:09 +01:00
Him188
9c3514dc89
[core] Remove necessary inlining in MessageSvcPbSendMsg to improve debugging experience 2022-10-28 14:46:24 +01:00
Him188
1f8524fb04
Fix all compiler warnings throughout the project 2022-10-21 17:00:37 +01:00
Him188
25e66d19c7
[core] Filter out relocated ktor dependencies in runtime except for mirai-core-utils and mirai-core-all. Fix #2291 2022-10-21 16:09:27 +01:00
Karlatemp
ddfd22e541
[core] [Network] Handle non ipaddress converting caused by some unknown 2022-10-20 12:58:09 +08:00
Karlatemp
58ab562322
[core - JVM] [Network] Wrap exception from connecting to NettyChannelException to allow selector to reconnect 2022-10-20 12:56:39 +08:00
Karlatemp
5fb1d714f7
[core] Improve exception message of Outdated Version 2022-10-15 22:39:27 +08:00
Him188
4276b67b2b
[core] Fix internal comments in estimateLength 2022-10-13 15:39:00 +01:00
Him188
73293251d1
[core] Improve docs for messages 2022-10-13 15:35:34 +01:00
Karlatemp
dc6f590581
[mock] Fix building
- caused by 5ed9dc7e
2022-10-13 00:27:55 +08:00
Him188
5ed9dc7e89
[core] Check service configuration when loading MessageProtocols. Helps #2268 2022-10-12 14:54:47 +01:00
Him188
4d80e0e6d3
[core] Improve documentation on processor pipeline system. 2022-10-12 14:38:17 +01:00
Him188
7c1e468b85
[core] Load FriendGroups separately from Friends. Fix #2274. 2022-10-12 12:05:31 +01:00
Him188
7fd3234ff3
[core] Fix bot.close, ensure network is also closed, fix recursion problems. Fix #2266 2022-10-10 22:51:02 +01:00
Karlatemp
eb9143d520
[core] Use ptt codec 2022-10-10 00:34:06 +08:00
Karlatemp
9eef7d3787
[core] Fix group audio url fetching. fix #2269 2022-10-10 00:10:25 +08:00
Him188
16609fb1e0
[core] Introduce Streamable for simplified multiplatform asFlow a… (#2256)
* [core] Introduce `Streamable` for simplified multiplatform `asFlow` and `asStream`. Make `Announcements.asFlow` not suspend.

* Remove `@JvmBlockingBridge` in native
2022-09-25 23:44:18 +08:00
Him188
2da0a2d6d3
[core] Fix relevant uses of Closeable 2022-09-23 23:01:39 +08:00
Him188
9122dddfb7
[core] Add net.mamoe.mirai.utils.Closeable for MPP use 2022-09-23 21:38:06 +08:00
cssxsh
d000f2ea0f
[core] add group level api (#2115)
* add: api dump

* feat: Member.level

* add: api dump

* rename: level to rank

* feat: rank show

* feat: honor flag

* fix: honor flag index

* feat: record and chart

* feat: flag and docs

* add: api dump

* fix: active

* fix: honor

* fix: active

* fix: rebase

* fix: docs

* feat: MemberActive

* fix: for review

* feat: other notification

* remove: low level api

* add: since and api dump

* add: since

* for: review

* add: event sync

* fix: name and docs

* fix: api dump

* fix: for review

* add: ActiveRank, MemberMedal close #2233

* fix: active for review

* improve public API for inlined GroupHonorType

* Change `@since 2.13.0` to `@since 2.13`

* dump api changes

* implement mock framework for Active

* change `GroupActive.flush` to `GroupActive.refresh`

* improve docs for GroupActive

* remove unnecessary expect/actual for MemberActive

* change property names in GroupInfo

* check permission in MockGroupActiveImpl

* optimize member names in  CommonGroupActiveImpl

* fix error checking

* dump api

Co-authored-by: Him188 <Him188@mamoe.net>
2022-09-21 23:18:50 +08:00
AdoptOSS
397d824d33
[core] enhance(ECDH): reconstruct ECDH (#2161)
* enhance(ECDH): reconstruct ECDH
common: 移动特定于 QQ 平台的实现到 OicqECDH,重新设计 ECDH,使 ECDH 类只针对算法本身,而不过多包括 QQ 协议的使用细节
jvm: 尝试优先使用平台加密实现,可能改善性能
jvm & android: 使用 curveName `secp256r1` 代替 `prime256v1`,前者在 Java 中更常用,可以被更多的 JCE 实现所识别(虽然都是指同一条曲线)
android: 使用系统自带的实现以减少依赖,并尝试兼容 Android P+ 版本
native: 中间储存时保留OpenSSL内部结构而不反复 new & free,提高性能
    (为了实现智能指针,需要用到 `@ExperimentalStdlibApi` 的 `createCleaner`,但这种风险应该可以接受)
native: 直接使用 point/bignum 到 bytes 的转换,避免了 hex string 作为中间层,提高效率

* test(ECDH): fix AndroidTest

* style(Ecdh): obey official Kotlin coding conventions
> When using an acronym as part of a declaration name, capitalize it if it consists of two letters (IOStream); capitalize only the first letter if it is longer (XmlFormatter, HttpInputStream).
> [View origin](https://kotlinlang.org/docs/coding-conventions.html)

Co-authored-by: ArcticLampyrid <arcticlampyrid@outlook.com>
2022-09-11 20:14:39 +08:00
Him188
bfbc6bcb02 [core] Fix selector for CONNECTING state 2022-09-11 19:41:16 +08:00
Him188
eb89b6348d [core] Support solving device verification request by SMS:
- close #2190, helps #717
- deprecate `LoginSolver.onSolveUnsafeDeviceLoginVerify`, add `.onSolveDeviceVerification`
2022-09-11 19:41:16 +08:00
Him188
951e835a26
[core] Fix sender name in forwarded messages. close #2187 2022-09-07 13:02:48 +08:00
cssxsh
7804ca1d7d
fix: watch and macOS (#2228) 2022-09-02 07:45:33 +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
f4db93745d
[core] Move structureToString from .core.utils.debug to .core.utils
due to compiler bug.
2022-08-27 01:21:14 +08:00
Him188
965ab57aaa
[core] Move StructureToStringTransformer to mirai-core-utils, and use legacy implementation as fallback. close #2097. 2022-08-26 18:42:56 +08:00
Eritque arcus
fea1d28488
[core] Support friend group (#2113)
* feat: support friend group

* remove unnecessary modifications

* toByteArray2

* support friendGroup, with api dump

* support rename, with api dump

* modify as required

* modify as required

* reverse

* doc

* FriendGroups

* api dump

* modify as required

* fix CI

* FriendGroup sync notice

* api dump

* modify as required

* immutable

* add friends: ContactList in FriendGroup

* more sync notice

* modify log content

* Change `FriendGroup.friends` to `Collection<Friend>`

* Fix `FriendGroup.friends.isEmpty()`

* modified as require, untested

* del count and online count in info

* change import

* fix missing import

* set @since 2.13 and modified as required

* modified as required

* modified as required

* doc

* change friendGroupId type to Int?

* api dumped

* change friendGroupId type to Int?

* introduce null to friendGroupId

* modified as required

* chore

* api dump

* chore: remark

* change int? to int

* api dump

* Update mirai-core-api/src/commonMain/kotlin/data/FriendGroups.kt

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

* Move FriendGroup and FriendGroups to contact.friendgroup

* Make `Friend.friendGroup` not null

* add FriendGroups.default for default group

* Redesign FriendGroup interface

Co-authored-by: Karlatemp <kar@kasukusakura.com>
Co-authored-by: Him188 <Him188@mamoe.net>
2022-08-26 16:56:09 +08:00
Him188
fb3f39e328 [core] Improve NetworkHandler exception handling and optimize exception logging:
- close #2175
- close #2148
- Fix `Throwable.findCause`
- Rename `mirai.network.handle.selector.logging` to `mirai.network.handler.selector.logging`
- Hide rather long and complicated `CancellationException`s, use `mirai.network.handler.cancellation.trace` to re-enable it
2022-08-26 15:20:04 +08:00
Eritque arcus
b4066ac6d1
NextEventAndIntercept and NextMessageAndIntercept (#2177)
* rewrote pr, no tested

* test and change param position

* enable ci

* finish test

* modified as required

* typo
2022-08-23 18:07:03 +08:00
Him188
648681a2ee
[core] Avoid deserialization error on sending group announcement, helps #2069.
Note this can not actually solve the problem that announcement had failed to send.
2022-08-20 16:15:33 +08:00
Him188
7ff61becee
[core] fix up 2e4cab43: Rename MiraiInternalMessageFlag to SkipEventBroadcast; Do not broadcast pre- and post-message events for FileMessages that sent internally. #2195
full rev: 2e4cab4365
2022-08-16 11:33:56 +08:00
Him188
9dc25bb1f3
[core] fix up previous 2e4cab43: fix omitted change. #2195 2022-08-16 11:33:00 +08:00
Him188
2e4cab4365
[core] Fix sending FileMessage on uploadNewFile (regression in 2.12.0), fix #2195 2022-08-16 10:54:55 +08:00
Him188
39074f1764
[build] Update to Kotlin 1.7.10:
Kotlin 1.7.10
kotlinx-serialization 1.3.3
kotlinx-coroutines 1.6.4
kotlinx-atomicfu 0.17.3
Ktor 2.1.0
2022-08-15 18:36:40 +08:00
Him188
e6bef9ce1e
[core/common] Process packet body in launched coroutines, instead of suspending the processing queue. part of #2160. 2022-08-15 16:41:17 +08:00
微莹·纤绫
a3cb15f13a
[core] Fix forward message seq-id; Fix ordering on iOS (#2191) 2022-08-15 00:44:47 +08:00
Eritque arcus
6b8c054948
[core] Support change friend remark (#2112)
* feat: support ChangeFriendName

* fix: register factory

[skip ci]

* rebase dev

* kdoc?

* api dump

* kdoc

* rebase dev

* remove unnecessary modification

* info::remark -> info.remark

* rebase dev

* api dump

* try to fix CI

* Add `@since` for `Friend.remark` setter

Co-authored-by: Him188 <Him188@mamoe.net>
2022-08-14 10:15:42 +08:00
Karlatemp
ff74129974
[core] Fix cache directory resolving 2022-08-09 21:51:54 +08:00
Karlatemp
c685a77c68
[core] Fix highway uploading 2022-08-09 21:44:50 +08:00
Him188
2df0fc2e4d
[core] change server list logging priority from info to verbose 2022-08-05 01:30:07 +08:00
Him188
0fe0e7afb8
[core] Fix TestFactory checks 2022-08-03 11:48:51 +08:00