Use strong reference in message events, fix #303

This commit is contained in:
Him188 2020-05-05 12:18:35 +08:00
parent 63241670e4
commit f041a7eda7
4 changed files with 3 additions and 15 deletions

View File

@ -73,7 +73,6 @@ abstract class MessagePacketBase<out TSender : User, out TSubject : Contact> : P
/**
* 接受到这条消息的
*/
@WeakRefProperty
abstract override val bot: Bot
/**
@ -85,7 +84,6 @@ abstract class MessagePacketBase<out TSender : User, out TSubject : Contact> : P
*
* 在回复消息时, 可通过 [subject] 作为回复对象
*/
@WeakRefProperty
abstract val subject: TSubject
/**
@ -93,7 +91,6 @@ abstract class MessagePacketBase<out TSender : User, out TSubject : Contact> : P
*
* 在好友消息时为 [Friend] 的实例, 在群消息时为 [Member] 的实例
*/
@WeakRefProperty
abstract val sender: TSender
abstract val senderName: String

View File

@ -18,14 +18,12 @@ import net.mamoe.mirai.message.data.MessageChain
import net.mamoe.mirai.message.data.MessageSource
import net.mamoe.mirai.message.data.OnlineMessageSource
import net.mamoe.mirai.message.data.source
import net.mamoe.mirai.utils.getValue
import net.mamoe.mirai.utils.unsafeWeakRef
/**
* 好友消息事件
*/
class FriendMessage constructor(
sender: Friend,
override val sender: Friend,
override val message: MessageChain,
override val time: Int
) : ContactMessage(), BroadcastControllable {
@ -34,7 +32,6 @@ class FriendMessage constructor(
check(source is OnlineMessageSource.Incoming.FromFriend) { "source provided to a FriendMessage must be an instance of OnlineMessageSource.Incoming.FromFriend" }
}
override val sender: Friend by sender.unsafeWeakRef()
override val bot: Bot get() = sender.bot
override val subject: Friend get() = sender
override val senderName: String get() = sender.nick

View File

@ -15,8 +15,6 @@ import net.mamoe.mirai.contact.Member
import net.mamoe.mirai.contact.MemberPermission
import net.mamoe.mirai.event.Event
import net.mamoe.mirai.message.data.*
import net.mamoe.mirai.utils.getValue
import net.mamoe.mirai.utils.unsafeWeakRef
/**
* 群消息事件
@ -30,7 +28,7 @@ class GroupMessage(
* 发送方权限.
*/
val permission: MemberPermission,
sender: Member,
override val sender: Member,
override val message: MessageChain,
override val time: Int
) : ContactMessage(), Event {
@ -39,7 +37,6 @@ class GroupMessage(
check(source is OnlineMessageSource.Incoming.FromGroup) { "source provided to a GroupMessage must be an instance of OnlineMessageSource.Incoming.FromGroup" }
}
override val sender: Member by sender.unsafeWeakRef()
val group: Group get() = sender.group
override val bot: Bot get() = sender.bot

View File

@ -10,15 +10,13 @@ import net.mamoe.mirai.message.data.MessageSource
import net.mamoe.mirai.message.data.OnlineMessageSource
import net.mamoe.mirai.message.data.source
import net.mamoe.mirai.utils.SinceMirai
import net.mamoe.mirai.utils.getValue
import net.mamoe.mirai.utils.unsafeWeakRef
/**
* 临时会话消息
*/
@SinceMirai("0.35.0")
class TempMessage(
sender: Member,
override val sender: Member,
override val message: MessageChain,
override val time: Int
) : ContactMessage(), BroadcastControllable {
@ -27,7 +25,6 @@ class TempMessage(
check(source is OnlineMessageSource.Incoming.FromTemp) { "source provided to a TempMessage must be an instance of OnlineMessageSource.Incoming.FromTemp" }
}
override val sender: Member by sender.unsafeWeakRef()
override val bot: Bot get() = sender.bot
override val subject: Member get() = sender
inline val group: Group get() = sender.group