From fda2040de9a73575c7859e2577edce693473bb85 Mon Sep 17 00:00:00 2001 From: Him188 Date: Mon, 10 Feb 2020 16:01:59 +0800 Subject: [PATCH] Update docs --- .../qqandroid/event/ForceOfflineEvent.kt | 23 ------------ .../network/QQAndroidBotNetworkHandler.kt | 2 +- .../packet/chat/receive/MessageSvc.kt | 6 +--- .../kotlin/net.mamoe.mirai/contact/Contact.kt | 2 +- .../data/ConnectionOccupiedEvent.kt | 17 --------- .../kotlin/net.mamoe.mirai/data/GroupInfo.kt | 36 ------------------- .../kotlin/net.mamoe.mirai/data/Profile.kt | 2 +- .../event/MessageSubscribers.kt | 8 ++++- .../event/events/ForceOfflineEvent.kt | 13 +++++++ .../net.mamoe.mirai/utils/MiraiLogger.kt | 2 ++ .../kotlin/net.mamoe.mirai/utils/WeakRef.kt | 13 +++---- 11 files changed, 33 insertions(+), 91 deletions(-) delete mode 100644 mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/event/ForceOfflineEvent.kt delete mode 100644 mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/ConnectionOccupiedEvent.kt delete mode 100644 mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/GroupInfo.kt create mode 100644 mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/ForceOfflineEvent.kt diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/event/ForceOfflineEvent.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/event/ForceOfflineEvent.kt deleted file mode 100644 index c9c288039..000000000 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/event/ForceOfflineEvent.kt +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2020 Mamoe Technologies and contributors. - * - * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. - * - * https://github.com/mamoe/mirai/blob/master/LICENSE - */ - -package net.mamoe.mirai.qqandroid.event - -import net.mamoe.mirai.Bot -import net.mamoe.mirai.data.Packet -import net.mamoe.mirai.event.events.BotEvent - -/** - * 被挤下线 - */ -data class ForceOfflineEvent( - override val bot: Bot, - val title: String, - val tips: String -) : BotEvent(), Packet \ No newline at end of file diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt index 9b0e1b28b..7126e9ebb 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/QQAndroidBotNetworkHandler.kt @@ -21,6 +21,7 @@ import kotlinx.io.core.use import net.mamoe.mirai.contact.ContactList import net.mamoe.mirai.contact.Member import net.mamoe.mirai.contact.MemberPermission +import net.mamoe.mirai.event.events.ForceOfflineEvent import net.mamoe.mirai.data.MultiPacket import net.mamoe.mirai.data.Packet import net.mamoe.mirai.event.* @@ -29,7 +30,6 @@ import net.mamoe.mirai.qqandroid.GroupImpl import net.mamoe.mirai.qqandroid.MemberImpl import net.mamoe.mirai.qqandroid.QQAndroidBot import net.mamoe.mirai.qqandroid.QQImpl -import net.mamoe.mirai.qqandroid.event.ForceOfflineEvent import net.mamoe.mirai.qqandroid.event.PacketReceivedEvent import net.mamoe.mirai.qqandroid.network.protocol.data.proto.MsgSvc import net.mamoe.mirai.qqandroid.network.protocol.packet.* diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/MessageSvc.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/MessageSvc.kt index 5723cebe4..5e0011320 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/MessageSvc.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/MessageSvc.kt @@ -11,13 +11,13 @@ package net.mamoe.mirai.qqandroid.network.protocol.packet.chat.receive import kotlinx.io.core.ByteReadPacket import kotlinx.io.core.discardExact +import net.mamoe.mirai.event.events.ForceOfflineEvent import net.mamoe.mirai.data.MultiPacket import net.mamoe.mirai.data.Packet import net.mamoe.mirai.event.BroadcastControllable import net.mamoe.mirai.message.FriendMessage import net.mamoe.mirai.message.data.MessageChain import net.mamoe.mirai.qqandroid.QQAndroidBot -import net.mamoe.mirai.qqandroid.event.ForceOfflineEvent import net.mamoe.mirai.qqandroid.io.serialization.decodeUniPacket import net.mamoe.mirai.qqandroid.io.serialization.readProtoBuf import net.mamoe.mirai.qqandroid.io.serialization.toByteArray @@ -32,11 +32,7 @@ import net.mamoe.mirai.qqandroid.network.protocol.data.proto.MsgComm import net.mamoe.mirai.qqandroid.network.protocol.data.proto.MsgSvc import net.mamoe.mirai.qqandroid.network.protocol.data.proto.SyncCookie import net.mamoe.mirai.qqandroid.network.protocol.packet.* -import net.mamoe.mirai.qqandroid.message.toMessageChain -import net.mamoe.mirai.qqandroid.message.toRichTextElems -import net.mamoe.mirai.utils.MiraiDebugAPI import net.mamoe.mirai.utils.MiraiInternalAPI -import net.mamoe.mirai.utils.cryptor.contentToString import net.mamoe.mirai.utils.currentTimeSeconds import kotlin.math.absoluteValue import kotlin.random.Random diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Contact.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Contact.kt index f91d93e13..794b8c36c 100644 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Contact.kt +++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/contact/Contact.kt @@ -28,7 +28,7 @@ interface Contact : CoroutineScope { * 这个联系人所属 [Bot]. */ @WeakRefProperty - val bot: Bot // weak ref + val bot: Bot /** * 可以是 QQ 号码或者群号码. diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/ConnectionOccupiedEvent.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/ConnectionOccupiedEvent.kt deleted file mode 100644 index 4d8c401fc..000000000 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/ConnectionOccupiedEvent.kt +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright 2020 Mamoe Technologies and contributors. - * - * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. - * - * https://github.com/mamoe/mirai/blob/master/LICENSE - */ - -package net.mamoe.mirai.data - -/** - * 被挤下线. 只能获取到中文的消息 - */ -inline class ConnectionOccupiedEvent(val message: String) : EventPacket { - override fun toString(): String = "ConnectionOccupiedEvent(${message.replace("\n", "").replace("\r", "")})" -} diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/GroupInfo.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/GroupInfo.kt deleted file mode 100644 index c458d9445..000000000 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/GroupInfo.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2020 Mamoe Technologies and contributors. - * - * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. - * - * https://github.com/mamoe/mirai/blob/master/LICENSE - */ - -package net.mamoe.mirai.data - -import net.mamoe.mirai.contact.ContactList -import net.mamoe.mirai.contact.Group -import net.mamoe.mirai.contact.Member -import kotlin.jvm.JvmField - -/** - * 群资料 - */ -@Suppress("MemberVisibilityCanBePrivate") // 将来使用 -class GroupInfo( - @JvmField internal var _group: Group, - @JvmField internal var _owner: Member, - @JvmField internal var _name: String, - @JvmField internal var _announcement: String, - @JvmField internal var _members: ContactList -) { - val group: Group get() = _group - val owner: Member get() = _owner - val name: String get() = _name - val announcement: String get() = _announcement - val members: ContactList get() = _members - - override fun toString(): String = - "GroupInfo(id=${group.id}, owner=$owner, name=$name, announcement=$announcement, members=${members.idContentString}" -} diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/Profile.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/Profile.kt index 34201cbdb..62d23d433 100644 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/Profile.kt +++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/data/Profile.kt @@ -53,7 +53,7 @@ data class Profile( /** * 性别 - */ // 在 Android 中 enum 的使用被严格控制. + */ enum class Gender(val value: Byte) { SECRET(0), MALE(1), diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt index 7fad2ec97..0d0b5a8c8 100644 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt +++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/MessageSubscribers.kt @@ -180,6 +180,12 @@ class MessageSubscribersBuilder>( infix fun nand(another: ListeningFilter): ListeningFilter = ListeningFilter { !filter.invoke(this, it) || !another.filter.invoke(this, it) } + /** + * 进行逻辑 `not` + */ + fun not(): ListeningFilter = + ListeningFilter { !filter.invoke(this, it) } + /** * 启动事件监听. */ @@ -359,7 +365,7 @@ class MessageSubscribersBuilder>( */ @MessageDsl inline fun sentByFriend(crossinline onEvent: MessageListener): Listener = - content({ this is FriendMessage }){ + content({ this is FriendMessage }) { onEvent(this as FriendMessage, it) } diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/ForceOfflineEvent.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/ForceOfflineEvent.kt new file mode 100644 index 000000000..0d1f6f7cf --- /dev/null +++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/event/events/ForceOfflineEvent.kt @@ -0,0 +1,13 @@ +package net.mamoe.mirai.event.events + +import net.mamoe.mirai.Bot +import net.mamoe.mirai.data.Packet + +/** + * 被挤下线 + */ +data class ForceOfflineEvent( + override val bot: Bot, + val title: String, + val tips: String +) : BotEvent(), Packet \ No newline at end of file diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/MiraiLogger.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/MiraiLogger.kt index 6392fd2d2..cb01c8a83 100644 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/MiraiLogger.kt +++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/MiraiLogger.kt @@ -42,6 +42,8 @@ fun MiraiLogger.withSwitch(default: Boolean = true): MiraiLoggerWithSwitch = Mir * * 在定义 logger 变量时, 请一直使用 [MiraiLogger] 或者 [MiraiLoggerWithSwitch]. * + * Mirai 内建三种日志实现, 分别是 [SimpleLogger], [PlatformLogger], [SilentLogger] + * * @see SimpleLogger 简易 logger, 它将所有的日志记录操作都转移给 lambda `(String?, Throwable?) -> Unit` * @see PlatformLogger 各个平台下的默认日志记录实现. * @see SilentLogger 忽略任何日志记录操作的 logger 实例. diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/WeakRef.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/WeakRef.kt index 999133033..dbc6b0a45 100644 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/WeakRef.kt +++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/WeakRef.kt @@ -13,6 +13,8 @@ package net.mamoe.mirai.utils import kotlin.reflect.KProperty +// TODO: 2020/2/10 添加中文 doc + /** * WeakRef that `getValue` for delegation throws an [IllegalStateException] if the referent is released by GC. Therefore it returns notnull value only */ @@ -32,13 +34,12 @@ operator fun UnsafeWeakRef.getValue(thisRef: Any?, property: KProperty<*> /** * Weak Reference. - * In JVM, this is implemented as a typealias to `WeakReference` from JDK. + * On JVM, it is implemented as a typealias referring to `WeakReference` from JDK. * - * Reference details: - * In JVM, instances of objects are stored in the Heap and are accessed via references. - * GC can automatically collect and release the memory used by objects that are not directly referred by any other. - * WeakReference is not direct reference, therefore it does no influence on garbage collection. - * Using weak reference can help GC with that. + * Details: + * On JVM, instances of objects are stored in the JVM Heap and are accessed via references. + * GC(garbage collection) can automatically collect and release the memory used by objects that are not directly referred by any other. + * [WeakRef] is not a direct reference, therefore it doesn't hinder GC. * * @see weakRef provides a WeakRef * @see unsafeWeakRef provides a UnsafeWeakRef