Him188
238ec52eea
Adapt for server time difference, let MessageSource.time
refer to server time. Fixes 1519
2021-09-04 21:31:10 +08:00
Him188
5188d88483
Improve CheckableResponse
2021-09-04 19:36:16 +08:00
Him188
d727bae9d0
Add Either.left and Either.right
2021-09-02 16:03:32 +08:00
Him188
f239192677
Add trySafely
2021-09-01 20:05:05 +08:00
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
Him188
081e5d9b04
Use String constructor from Kotlin stdlib
2021-09-01 14:37:47 +08:00
Him188
f31f525343
Add util Array<Byte>.toUHexString
2021-09-01 13:55:39 +08:00
Him188
a1dba40f80
Add util CollectionDiff
2021-09-01 13:55:39 +08:00
Him188
f1c2393434
Add util readResource
2021-09-01 13:55:39 +08:00
Him188
f40659b1c7
Make TypeSafeMap()
returns TypeSafeMap.EMPTY
2021-09-01 13:55:39 +08:00
Him188
1ffa9eb957
Add toString
for TypeSafeMap implementations
2021-09-01 13:55:39 +08:00
Him188
f5fe442cc8
Add simple constructor for TypeSafeMap
2021-09-01 13:55:39 +08:00
Him188
f5b2dbc65d
Avoid boxing in TypeSafeMap
and support serialization
2021-09-01 13:55:39 +08:00
Him188
9c272ebf1e
Migrate more transformers to NoticeProcessorPipeline
2021-09-01 13:55:39 +08:00
Him188
edf1bc9a2e
Migrate more transformers to NoticeProcessorPipeline
2021-09-01 13:55:39 +08:00
Him188
41733e23ef
Extract utils into multiple files
2021-09-01 13:55:39 +08:00
Him188
1b80fbc1e6
Redesign notice handling and introduce NoticeProcessorPipeline
part 3:
...
- Extract `SyncController`;
- Add super type `ProtocolStruct` to `ProtoBuf` and `JceStruct` to standardize `NoticeProcessorPipeline.process`
- and other implementations for pipeline
2021-09-01 13:55:39 +08:00
Him188
09265190e9
Add UnconsumedNoticesAlerter
and cleanup
...
Co-authored-by: Karlatemp <karlatemp@vip.qq.com>
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
497a458be4
Add TypeSafeMap
2021-09-01 13:55:39 +08:00
Him188
dad2d965ab
Add contracts to cast
, safeCast
and castOrNull
; Add uncheckedCast
2021-09-01 13:55:39 +08:00
Him188
45cc60c8e9
Fix loadService
with fallback implementation
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
40bbab4b5e
Use mirai TestOnly
annotation in ServerListImpl.<init>
2021-08-08 15:09:21 +08:00
Him188
8d8aca3f1c
Introduce Audio
for new API, revert changes on Voice
2021-08-05 21:48:20 +08:00
Him188
cf1c5d4d81
Add utility loadService
2021-08-05 21:48:20 +08:00
Him188
f4adc1232f
Add ComputeOnNullMutableProperty
2021-08-05 21:48:20 +08:00
Him188
482b62c0c3
Fix LateinitMutableProperty
: ensure visibility
2021-07-31 17:50:40 +08:00
Him188
883518b1f1
Remove unused expressions
2021-07-23 12:58:09 +08:00
Him188
dfbe73da9a
Do unwrap
even if wrapper exception has suppressed exceptions
2021-07-22 11:48:11 +08:00
Him188
8d41e18cdc
Improve Throwable.unwrap
on Android: improve performance
2021-07-22 11:48:11 +08:00
Him188
2929db7f38
Implement Throwable.unwrap
accordingly to the target platform. Fix #1404
2021-07-16 15:22:31 +08:00
Karlatemp
5b170ab63a
Add HtmlEntity
for decode html entity
2021-07-16 14:52:09 +08:00
Him188
dd606c3022
Improve performance of hexToBytes
and simplify similar extensions
2021-07-07 15:00:28 +08:00
Him188
51d354c5e9
Improve Announcement logging
2021-07-06 19:12:45 +08:00
Him188
251bf3d9df
Add JsonStruct
to simplify deserialization
2021-07-06 19:12:45 +08:00
Him188
f0dc3cdf7e
Add CheckableResult
to standardize checks for deserialized responses
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
7722a5a0b0
Move KSerializer.map
to mirai-core-utils
2021-07-04 17:56:23 +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
5d57c33789
Improve Throwable.unwrap
: add the unwrapped-out exception to suppressed exceptions to avoid loss of debugging information
2021-06-29 23:10:06 +08:00
Him188
abb28ee6d2
Improve performance of Either.fold
, Either.mapLeft
and Either.mapRight
2021-06-25 20:16:59 +08:00
Him188
11ffb324c9
Add Either
2021-06-25 20:05:28 +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
Him188
9ceb7c3fc2
- Take line number into account of ExceptionCollector.collect
;
...
- Fix suppression;
- Add manual cleanup of references to help gc
2021-06-07 17:47:11 +08:00
Him188
71b128b06c
Improve ExceptionCollector.collect for better performance, close #1308
2021-06-07 12:57:00 +08:00
Him188
dadff42718
Unwrap NetworkException on logon failure
2021-06-06 13:58:46 +08:00
Him188
137e1a1235
Fix network scopes and exception handling. Support recovering after system hibernation and network failure.
2021-06-05 16:05:41 +08:00
Him188
a781941ede
Fix LateinitMutableProperty
2021-06-05 16:05:41 +08:00