Commit fda2040d authored by Him188's avatar Him188

Update docs

parent d1b1c765
/*
* 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
...@@ -21,6 +21,7 @@ import kotlinx.io.core.use ...@@ -21,6 +21,7 @@ import kotlinx.io.core.use
import net.mamoe.mirai.contact.ContactList import net.mamoe.mirai.contact.ContactList
import net.mamoe.mirai.contact.Member import net.mamoe.mirai.contact.Member
import net.mamoe.mirai.contact.MemberPermission import net.mamoe.mirai.contact.MemberPermission
import net.mamoe.mirai.event.events.ForceOfflineEvent
import net.mamoe.mirai.data.MultiPacket import net.mamoe.mirai.data.MultiPacket
import net.mamoe.mirai.data.Packet import net.mamoe.mirai.data.Packet
import net.mamoe.mirai.event.* import net.mamoe.mirai.event.*
...@@ -29,7 +30,6 @@ import net.mamoe.mirai.qqandroid.GroupImpl ...@@ -29,7 +30,6 @@ import net.mamoe.mirai.qqandroid.GroupImpl
import net.mamoe.mirai.qqandroid.MemberImpl import net.mamoe.mirai.qqandroid.MemberImpl
import net.mamoe.mirai.qqandroid.QQAndroidBot import net.mamoe.mirai.qqandroid.QQAndroidBot
import net.mamoe.mirai.qqandroid.QQImpl 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.event.PacketReceivedEvent
import net.mamoe.mirai.qqandroid.network.protocol.data.proto.MsgSvc import net.mamoe.mirai.qqandroid.network.protocol.data.proto.MsgSvc
import net.mamoe.mirai.qqandroid.network.protocol.packet.* import net.mamoe.mirai.qqandroid.network.protocol.packet.*
......
...@@ -11,13 +11,13 @@ package net.mamoe.mirai.qqandroid.network.protocol.packet.chat.receive ...@@ -11,13 +11,13 @@ package net.mamoe.mirai.qqandroid.network.protocol.packet.chat.receive
import kotlinx.io.core.ByteReadPacket import kotlinx.io.core.ByteReadPacket
import kotlinx.io.core.discardExact import kotlinx.io.core.discardExact
import net.mamoe.mirai.event.events.ForceOfflineEvent
import net.mamoe.mirai.data.MultiPacket import net.mamoe.mirai.data.MultiPacket
import net.mamoe.mirai.data.Packet import net.mamoe.mirai.data.Packet
import net.mamoe.mirai.event.BroadcastControllable import net.mamoe.mirai.event.BroadcastControllable
import net.mamoe.mirai.message.FriendMessage import net.mamoe.mirai.message.FriendMessage
import net.mamoe.mirai.message.data.MessageChain import net.mamoe.mirai.message.data.MessageChain
import net.mamoe.mirai.qqandroid.QQAndroidBot 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.decodeUniPacket
import net.mamoe.mirai.qqandroid.io.serialization.readProtoBuf import net.mamoe.mirai.qqandroid.io.serialization.readProtoBuf
import net.mamoe.mirai.qqandroid.io.serialization.toByteArray import net.mamoe.mirai.qqandroid.io.serialization.toByteArray
...@@ -32,11 +32,7 @@ import net.mamoe.mirai.qqandroid.network.protocol.data.proto.MsgComm ...@@ -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.MsgSvc
import net.mamoe.mirai.qqandroid.network.protocol.data.proto.SyncCookie import net.mamoe.mirai.qqandroid.network.protocol.data.proto.SyncCookie
import net.mamoe.mirai.qqandroid.network.protocol.packet.* 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.MiraiInternalAPI
import net.mamoe.mirai.utils.cryptor.contentToString
import net.mamoe.mirai.utils.currentTimeSeconds import net.mamoe.mirai.utils.currentTimeSeconds
import kotlin.math.absoluteValue import kotlin.math.absoluteValue
import kotlin.random.Random import kotlin.random.Random
......
...@@ -28,7 +28,7 @@ interface Contact : CoroutineScope { ...@@ -28,7 +28,7 @@ interface Contact : CoroutineScope {
* 这个联系人所属 [Bot]. * 这个联系人所属 [Bot].
*/ */
@WeakRefProperty @WeakRefProperty
val bot: Bot // weak ref val bot: Bot
/** /**
* 可以是 QQ 号码或者群号码. * 可以是 QQ 号码或者群号码.
......
/*
* 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", "")})"
}
/*
* 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<Member>
) {
val group: Group get() = _group
val owner: Member get() = _owner
val name: String get() = _name
val announcement: String get() = _announcement
val members: ContactList<Member> get() = _members
override fun toString(): String =
"GroupInfo(id=${group.id}, owner=$owner, name=$name, announcement=$announcement, members=${members.idContentString}"
}
...@@ -53,7 +53,7 @@ data class Profile( ...@@ -53,7 +53,7 @@ data class Profile(
/** /**
* 性别 * 性别
*/ // 在 Android 中 enum 的使用被严格控制. */
enum class Gender(val value: Byte) { enum class Gender(val value: Byte) {
SECRET(0), SECRET(0),
MALE(1), MALE(1),
......
...@@ -180,6 +180,12 @@ class MessageSubscribersBuilder<T : MessagePacket<*, *>>( ...@@ -180,6 +180,12 @@ class MessageSubscribersBuilder<T : MessagePacket<*, *>>(
infix fun nand(another: ListeningFilter): ListeningFilter = infix fun nand(another: ListeningFilter): ListeningFilter =
ListeningFilter { !filter.invoke(this, it) || !another.filter.invoke(this, it) } 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<T : MessagePacket<*, *>>( ...@@ -359,7 +365,7 @@ class MessageSubscribersBuilder<T : MessagePacket<*, *>>(
*/ */
@MessageDsl @MessageDsl
inline fun sentByFriend(crossinline onEvent: MessageListener<FriendMessage>): Listener<T> = inline fun sentByFriend(crossinline onEvent: MessageListener<FriendMessage>): Listener<T> =
content({ this is FriendMessage }){ content({ this is FriendMessage }) {
onEvent(this as FriendMessage, it) onEvent(this as FriendMessage, it)
} }
......
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
...@@ -42,6 +42,8 @@ fun MiraiLogger.withSwitch(default: Boolean = true): MiraiLoggerWithSwitch = Mir ...@@ -42,6 +42,8 @@ fun MiraiLogger.withSwitch(default: Boolean = true): MiraiLoggerWithSwitch = Mir
* *
* 在定义 logger 变量时, 请一直使用 [MiraiLogger] 或者 [MiraiLoggerWithSwitch]. * 在定义 logger 变量时, 请一直使用 [MiraiLogger] 或者 [MiraiLoggerWithSwitch].
* *
* Mirai 内建三种日志实现, 分别是 [SimpleLogger], [PlatformLogger], [SilentLogger]
*
* @see SimpleLogger 简易 logger, 它将所有的日志记录操作都转移给 lambda `(String?, Throwable?) -> Unit` * @see SimpleLogger 简易 logger, 它将所有的日志记录操作都转移给 lambda `(String?, Throwable?) -> Unit`
* @see PlatformLogger 各个平台下的默认日志记录实现. * @see PlatformLogger 各个平台下的默认日志记录实现.
* @see SilentLogger 忽略任何日志记录操作的 logger 实例. * @see SilentLogger 忽略任何日志记录操作的 logger 实例.
......
...@@ -13,6 +13,8 @@ package net.mamoe.mirai.utils ...@@ -13,6 +13,8 @@ package net.mamoe.mirai.utils
import kotlin.reflect.KProperty 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 * 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 <T> UnsafeWeakRef<T>.getValue(thisRef: Any?, property: KProperty<*> ...@@ -32,13 +34,12 @@ operator fun <T> UnsafeWeakRef<T>.getValue(thisRef: Any?, property: KProperty<*>
/** /**
* Weak Reference. * 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: * Details:
* In JVM, instances of objects are stored in the Heap and are accessed via references. * On JVM, instances of objects are stored in the JVM 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. * GC(garbage collection) 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. * [WeakRef] is not a direct reference, therefore it doesn't hinder GC.
* Using weak reference can help GC with that.
* *
* @see weakRef provides a WeakRef * @see weakRef provides a WeakRef
* @see unsafeWeakRef provides a UnsafeWeakRef * @see unsafeWeakRef provides a UnsafeWeakRef
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment