Him188
66999aadaf
Migrate to Kotlin 1.5.30 and review dependencies:
...
- Remove redundant atomicfu-common
- Do not expose kotlinx-io and atomicfu
2021-09-01 18:52:36 +08:00
Karlatemp
8271fa9a82
Ensure SimpleListenerHost.handleException
is called; Cancel registered listeners in SimpleListenerHost
when it's completed ( #1490 )
...
* Improve `SimpleListenerHost` registration
* Comments
2021-09-01 14:00:42 +08:00
Him188
4b4e7e1dcc
Fix MemberJoinEvent
processing and add MemberJoinTest
2021-09-01 13:55:39 +08:00
Him188
56cbe2d8a2
Redesign notice handling and introduce NoticeProcessorPipeline
part 2
...
Do not broadcast StrangerAddedEvent if added twice, fix stranger scope not closed
Do not add new instance if there is already one
Close and remove corresponding stranger instance if there is new friend.
2021-09-01 13:55:39 +08:00
Him188
dc54679acb
Redesign notice handling and introduce NoticeProcessorPipeline
2021-09-01 13:55:39 +08:00
Him188
03a18724fe
Add out
variance to generic type of ContactList
2021-09-01 13:55:39 +08:00
Karlatemp
66c209381d
Improve event log
2021-08-26 22:28:33 +08:00
Him188
c3258eaa3b
Update docs for NormalMember
2021-08-25 13:58:34 +08:00
Him188
a34c11f239
Make classes sealed: MessageEvent
, UserMessageEvent
, GroupAwareMessageEvent
2021-08-13 16:21:46 +08:00
Him188
13484c7a7a
Remove redundant TODOs and unused classes
2021-08-13 16:21:46 +08:00
Karlatemp
8a607eddaf
Add RequestEventData
for saving request events ( #1309 )
...
* Add `RequestEventData` for saving request events
* typo
* Remove `data`; Add `@SerialName`
2021-08-12 14:18:25 +08:00
Him188
5170f217ad
Add test for compatibility on legacy logging overrides
2021-08-11 15:24:32 +08:00
Him188
dcd8a1aee0
Fix static initialization of DefaultFactory
2021-08-11 15:24:32 +08:00
Him188
9189affdf9
Do not wrap original MiraiLogger
as MarkedMiraiLogger
if it is not the type
2021-08-11 15:24:32 +08:00
Him188
317b3cc0c7
Fix factory loader for MiraiLogger.Factory
2021-08-11 15:24:32 +08:00
Him188
5950e9e1e8
Improve logging: use Log4j internally and support markers
...
Migrate usages of `MiraiLogger.create` to new API
apiDump for new logging
2021-08-11 15:24:32 +08:00
Him188
8d8aca3f1c
Introduce Audio
for new API, revert changes on Voice
2021-08-05 21:48:20 +08:00
Him188
12b96aedc9
Make hints in SwingSolver.onSolveUnsafeDeviceLoginVerify
more clear
2021-08-04 12:30:15 +08:00
Him188
927da16245
Add subscribeUserMessages
2021-08-04 12:29:33 +08:00
RainChan
bd61c1e80d
支持在踢出群成员时选择是否拉黑 ( #1457 )
...
* 支持在踢出群成员时选择是否拉黑
* fix binary-compatibility for kick NormalMember
* change doc
2021-08-03 22:20:53 +08:00
RainChan
0c6115dcf3
fix docs for subscribeOnce
2021-08-03 19:37:29 +08:00
Him188
03a6596553
Remove redundant overrides for contacts
2021-08-02 14:25:23 +08:00
Him188
a14531f696
Update KDoc for contacts
2021-08-02 14:11:05 +08:00
Him188
978228afc1
Remove duplicated serializers for UnsupportedMessage
2021-07-31 17:50:55 +08:00
Him188
0ebf656c20
Improve performance of MessageChainBuilder.add
and .addAll
2021-07-31 17:50:40 +08:00
Karlatemp
b423430b74
Deprecate GroupSettings.entranceAnnouncement
; close #1399 , close #1398
2021-07-15 22:29:51 +08:00
Him188
dd606c3022
Improve performance of hexToBytes
and simplify similar extensions
2021-07-07 15:00:28 +08:00
Him188
eaa8f20208
Mark UserProfile
with NotStableForInheritance
2021-07-07 13:47:45 +08:00
Him188
e389594c47
Update docs on MemberPermission
2021-07-07 13:47:28 +08:00
Him188
a0baa65193
Announcement API: Refine naming of properties:
...
- pinned -> isPinned
- popup -> showPopup
- needConfirm -> requireConfirmation
- readMemberNumber -> confirmedMembersCount
- publishTime -> publicationTime
- isAllRead -> allConfirmed
2021-07-06 19:45:51 +08:00
Him188
881f713be2
Update docs of announcement
2021-07-06 19:12:45 +08:00
Him188
9d9b9ce7e2
Change AnnouncementImage
's width
and height
to Int
2021-07-06 19:12:45 +08:00
Him188
6145b3ef47
Remove inline
to make compiler happy :)
2021-07-06 19:12:45 +08:00
Him188
c588b5ce76
Add permission requirement to docs on
...
some Announcement API
2021-07-06 19:12:45 +08:00
Him188
d08c6b81a8
Add simplified one-line API for publishing a single announcement
2021-07-06 19:12:45 +08:00
Him188
b98fcdd2e5
Add default argument to OfflineAnnouncement
2021-07-06 19:12:45 +08:00
Him188
f7e2391d96
Add contracts for eligible Announcement API
2021-07-06 19:12:45 +08:00
Him188
d10cd270e8
Make AnnouncementParameters better for Java
2021-07-06 19:12:45 +08:00
Him188
5c89645056
Add a stable factory-method for AnnouncementImage
2021-07-06 19:12:45 +08:00
Him188
b239c57679
Re-order parameters of AnnouncementImage
2021-07-06 19:12:45 +08:00
Him188
858766d6b5
Make OfflineAnnouncement.create
synthetic
2021-07-06 19:12:45 +08:00
Him188
1abc65fb16
Update docs for Announcement API
2021-07-06 19:12:45 +08:00
Him188
47192f3ee3
Make Announcements.asStream
not suspend
2021-07-06 19:12:45 +08:00
Him188
9f1343c02e
Generate equals
, hashCode
and toString
for AnnouncementParameters
abd AnnouncementImage
2021-07-06 19:12:45 +08:00
Him188
d2e35772d0
Add constructor-like functions for Kotlin users
2021-07-06 19:12:45 +08:00
Him188
1abfcf4317
Add OfflineAnnouncement.serializer
2021-07-06 19:12:45 +08:00
Him188
b319e2bc5c
Remove parameter title
of Announcement
2021-07-06 19:12:45 +08:00
Him188
4a2b510a70
Remove announcements' low-level API and bundle them into AnnouncementProtocol
, improve code style and maintainability
2021-07-06 19:12:45 +08:00
Him188
f5ce64ba4f
Redesign Announcement API
...
Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-07-06 19:12:45 +08:00
Him188
194d34d309
Remove meaningless @LazyProperty
2021-07-06 19:12:10 +08:00
Him188
d6c4b5456f
Remove inappropriate weak references
2021-07-06 19:12:10 +08:00
Him188
be3c873f4f
Face.toString
: use contentToString()
for better readability (#1382 )
2021-07-06 16:07:41 +08:00
Karlatemp
a4f0bbfe80
Fix document of RandomAccessFile.toExternalResource()
2021-07-05 18:16:53 +08:00
Him188
69f2d24c22
Fix build
2021-07-05 18:02:01 +08:00
Him188
c4fd79ef22
Fix doc on ExternalResource
2021-07-05 18:00:57 +08:00
Him188
8fdce4dc98
Update docs on ExternalResource for auto release, and categorise declarations
2021-07-05 17:20:57 +08:00
Him188
abc2bfcb3e
Add @NotStableForInheritance
and apply it to suitable classes ( #1385 )
...
* Add `@NotStableForInheritance` and apply it to suitable classes
* apiDump
* Fix import
* fix
2021-07-05 12:50:00 +08:00
Him188
7722a5a0b0
Move KSerializer.map
to mirai-core-utils
2021-07-04 17:56:23 +08:00
Karlatemp
4c810ee3ee
ExternalResourceLeakObserver ( #1383 )
...
* ExternalResourceLeakObserver
* Avoid exceptions of user-defined run-when-close actions
* Fix build
* Release references
* Move `ExternalResourceLeakObserver` to mirai-core-api
* Make internal
* Make `close()` thread-safely
* typo
* Don't track `ExternalResource` creation stack by default
* Update mirai-core-api/src/commonMain/kotlin/internal/utils/ExternalResourceLeakObserver.kt
Co-authored-by: Him188 <Him188@mamoe.net>
2021-07-03 22:05:12 +08:00
Him188
ceac90ed19
Minor update for doc of BotJoinGroupEvent.Active
2021-07-02 22:11:38 +08:00
Him188
91a9e63877
Do light refine after constructing MessageReceipt
, fix #1371
2021-07-02 21:06:31 +08:00
Karlatemp
a4b62b0909
Voice serialization ( #1368 )
...
* Voice serialization
* Implement `hashCode` and `equals` for `Voice`
* Update test
* Update test
* Add note of `PttMessage.pttInternalInstance`
* Fix logic of `Voice.equals`
2021-07-02 12:10:20 +08:00
Him188
adc39a93b5
Update copyright
2021-07-02 00:39:10 +08:00
Him188
b9eb654a51
Reformat and cleanup code
2021-07-02 00:39:10 +08:00
Him188
6eff4bdf40
Add EVENT_LAUNCH_UNDISPATCHED
to allow to launch coroutines for event listeners in a UNDISPATCHED start mode
2021-06-29 22:43:02 +08:00
Him188
3d0fba2d8f
Fix EventChannel.filter
, allow blocking calls correctly
2021-06-29 22:21:58 +08:00
Karlatemp
06c005e068
Update document link of captcha solving
2021-06-26 19:31:30 +08:00
Karlatemp
a20833bb2a
Enable slider captcha for built-in login solvers
2021-06-26 19:31:28 +08:00
Karlatemp
eb5c7414d7
Add hashCode
and equals
for Image
, close #1302
2021-06-26 16:29:40 +08:00
Karlatemp
ae54a5fb41
Private voice support ( #1310 )
...
* Support voice for private messaging
* typo
* Add extension functions for `uploadAsVoice`; Update KDocs
* Update KDoc
* Update error message
* Fix `C2CPttStoreBDH` error
* Deprecated `ExternalResource.uploadAsVoice(Contact): Voice`
* Update mirai-core-api/src/commonMain/kotlin/utils/ExternalResource.kt
* apiDump
Co-authored-by: Him188 <Him188@mamoe.net>
2021-06-26 10:02:23 +08:00
Him188
baf1ca618e
Improve performance of MessageChain.get
, MessageChain.contains
. Add relevant tests.
2021-06-25 07:57:52 +08:00
Noire
b8de3f77ff
GroupAnnoucement ( #1141 )
...
* Add more comment about GroupAnnouncement.kt
* Edit comment about GroupAnnouncement.kt
Provide experimental api
* Api Dump
* After review
* Change to interface and API dump
* More change
* More change
* More more change
* Some change
* api dump
* Fix name
* Redesign Announcement public api
* Edit comment about GroupAnnouncement.kt
Provide experimental api
* After review
* Change to interface and API dump
* More change
* Modify to extension fun
* Fix sendAnnouncement and change place
* Change Group.deleteAnnouncement to group companion
* fix publish
* Api dump
* Reformat code
* Add `@since 2.7`
* Fix build
Co-authored-by: Him188 <Him188@mamoe.net>
2021-06-24 00:59:53 +08:00
sandtechnology
76e57d4aae
Update system face ( #1260 )
...
* Update system face
* Update api dump
* Update api dump for android
* Update system face which updated today
* Update api dump
* Add new system face
* Update apidump
2021-06-23 15:00:06 +08:00
zhou2008
7ed9f280d7
Update ForwardMessage.kt ( #1275 )
2021-06-23 14:57:48 +08:00
Him188
415f133cbc
Fix Flow<Message>.toMessageChain
2021-06-20 01:36:32 +08:00
Him188
8840ba9e6f
Remove contract
in MiraiLogger
2021-06-20 00:21:49 +08:00
Him188
c37457cafb
Cleanup and move local serializable classes to top-level
2021-06-19 18:28:21 +08:00
Him188
a38f24cbe5
Redesign connection maintenance mechanism:
...
Reconnection is directed by `BotOfflineEvent`.
### Event Broadcasting
- PacketFactory `MessageSvcPushForceOffline` closes network with `ForceOfflineException`.
- `network.close(cause)` pass the cause to state observer from `QQAndroidBot.stateObserverChain`, the observer broadcasts as follows:
- Nothing if `cause` is `ForceOfflineException` or `BotClosedByEvent`(which is broadcast by user)
- `BotOfflineEvent.Dropped` if cause is NetworkException and is recoverable(which is from Netty handlers)
- `BotOfflineEvent.Force` if cause is `ForceOfflineException` is from the factory mentioned above.
- `BotOfflineEvent.Active` otherwise(any other unexpected exceptions considered as an error)
### Deciding whether to reconnect
User can listen and change `BotOfflineEvent.reconnect` to decide. Default values are determined by `BotConfiguration`.
### Event listening
- Component `BotOfflineEventMonitor` listens `BotOfflineEvent`, logs the event for users, and launches a coroutine to do `network.resumeConnection` to notify the selector to renew an instance.
- `BotOnlineWatchdog` in `SelectorNetworkHandler` is removed.
- Selector now handles `maxAttempts` correctly in such a way that `awaitResumeInstance` does not throw exception until maximum attempts reached.
- On every attempt, new exceptions are logged to provide debugging information, and further duplications are ignored.
2021-06-16 16:58:20 +08:00
AdoptOSS
7732014cbd
fix: do trimming properly in startsWith
& endsWith
, #1282 ( #1314 )
...
Co-authored-by: ArcticLampyrid <arcticlampyrid@outlook.com>
2021-06-08 15:42:37 +08:00
Him188
a9489567d0
Clearify docs for ExternalResource
and RemoteFile
( #1248 )
...
* Update code docs for ExternalResource emphasising its properties
* Update code docs for ExternalResource emphasising its representative file location
* Update mirai-core-api/src/commonMain/kotlin/utils/RemoteFile.kt
* Update mirai-core-api/src/commonMain/kotlin/utils/RemoteFile.kt
* Clarify docs
2021-06-08 11:23:09 +08:00
Him188
6b442b251f
Introduce AbstractEventTest
2021-06-07 18:56:33 +08:00
Him188
fc96ba96dd
Add _EventBroadcast
to allow tests to overrode implementation of Event.broadcast
2021-06-07 18:29:15 +08:00
Him188
9619338d5b
Catch and forward event broadcasting to EventDispatcher
2021-06-07 18:18:07 +08:00
Him188
02681428c9
Review and migrate deprecated calls
2021-06-07 12:57:01 +08:00
Karlatemp
ef439f1dea
Fix API check
2021-06-07 12:33:31 +08:00
Him188
38d0b124f2
Fix docs on BotOfflineEvent.Force
2021-06-06 13:58:46 +08:00
Him188
c03155af6d
Review docs and improve readability ( #1291 )
...
* Review docs and improve readability
* Update docs/Bots.md
Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
* Update docs/Bots.md
Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
* Update docs/Bots.md
Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
* Fix doc
* Fix doc
* Clarify AnonymousMember and NormalMember
* Fix typo
* Add language type
Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
2021-06-02 20:29:36 +08:00
Him188
e0a767060a
Deprecate RemoteFile.upload
and relevant extensions, fix #1255 ( #1290 )
...
* Deprecate `RemoteFile.upload` and relevant extensions, fix #1255
* Replace '// since 2.7-M1' with '// deprecated since 2.7-M1'
* Move deprecation notes to `RemoteFile.upload`
2021-06-02 14:00:24 +08:00
Karlatemp
1e95482158
Fix the resource leak when closing TxCaptchaHelper(Swing) directly
2021-06-01 12:47:42 +08:00
Karlatemp
c89d31cef6
Redesign LoginSolver ( #1285 )
...
* Redesign SwingSolver
* TxCaptchaHelper support
* Simplify TxCaptchaHelper
2021-06-01 12:26:37 +08:00
Him188
043006413c
Change upper bound type of MessageSubscribersBuilder.has
from Message
to SingleMessage
, fix #1223
2021-05-31 16:40:57 +08:00
Him188
e6f7edadeb
Fix doc on MessageSource
2021-05-30 23:44:52 +08:00
Him188
2d10cc10be
Add implementation notes for Listener
2021-05-30 09:42:24 +08:00
Him188
bcdff1336b
Kotlin 1.5 and dependencies updates ( #1246 )
...
* Kotlin 1.5 and dependencies updates
* Update mirai-console ref
* Use Kotlin 1.5.10
* 2.7-M1-dev-3
* Update console ref
2021-05-27 14:39:13 +08:00
Him188
5e25c0e25b
Remove bintray
2021-05-25 12:25:53 +08:00
Him188
d43a77b590
Update docs and improve source code readability
2021-05-09 15:31:50 +08:00
Him188
2e1ec03daa
Deprecate ForceOfflineException
2021-05-09 13:12:34 +08:00
Him188
d755ebf7ee
Use topLevelEventLogger instead of MiraiLogger.TopLevel for non-BotEvent events
2021-05-09 00:54:48 +08:00
Him188
35884182af
Fix and improve event logging
2021-05-09 00:54:48 +08:00
Him188
d73f5a2692
Review BotConfiguration and implement relevant configs, implement alive heartbeat, fix behavior on resume
2021-05-09 00:54:48 +08:00