mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-09 18:00:33 +08:00
Add constructor checks
This commit is contained in:
parent
a604083e9a
commit
06786eb3da
@ -13,15 +13,24 @@ import net.mamoe.mirai.Bot
|
|||||||
import net.mamoe.mirai.contact.QQ
|
import net.mamoe.mirai.contact.QQ
|
||||||
import net.mamoe.mirai.event.BroadcastControllable
|
import net.mamoe.mirai.event.BroadcastControllable
|
||||||
import net.mamoe.mirai.message.data.MessageChain
|
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.OnlineMessageSource
|
||||||
import net.mamoe.mirai.message.data.source
|
import net.mamoe.mirai.message.data.source
|
||||||
import net.mamoe.mirai.utils.getValue
|
import net.mamoe.mirai.utils.getValue
|
||||||
import net.mamoe.mirai.utils.unsafeWeakRef
|
import net.mamoe.mirai.utils.unsafeWeakRef
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 好友消息
|
||||||
|
*/
|
||||||
class FriendMessage(
|
class FriendMessage(
|
||||||
sender: QQ,
|
sender: QQ,
|
||||||
override val message: MessageChain
|
override val message: MessageChain
|
||||||
) : ContactMessage(), BroadcastControllable {
|
) : ContactMessage(), BroadcastControllable {
|
||||||
|
init {
|
||||||
|
val source = message.getOrNull(MessageSource) ?: error("Cannot find MessageSource from message")
|
||||||
|
check(source is OnlineMessageSource.Incoming.FromFriend) { "source provided to a FriendMessage must be an instance of OnlineMessageSource.Incoming.FromFriend" }
|
||||||
|
}
|
||||||
|
|
||||||
override val sender: QQ by sender.unsafeWeakRef()
|
override val sender: QQ by sender.unsafeWeakRef()
|
||||||
override val bot: Bot get() = sender.bot
|
override val bot: Bot get() = sender.bot
|
||||||
override val subject: QQ get() = sender
|
override val subject: QQ get() = sender
|
||||||
|
@ -15,6 +15,7 @@ import net.mamoe.mirai.contact.Member
|
|||||||
import net.mamoe.mirai.contact.MemberPermission
|
import net.mamoe.mirai.contact.MemberPermission
|
||||||
import net.mamoe.mirai.event.Event
|
import net.mamoe.mirai.event.Event
|
||||||
import net.mamoe.mirai.message.data.MessageChain
|
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.OnlineMessageSource
|
||||||
import net.mamoe.mirai.message.data.source
|
import net.mamoe.mirai.message.data.source
|
||||||
import net.mamoe.mirai.utils.getValue
|
import net.mamoe.mirai.utils.getValue
|
||||||
@ -30,6 +31,11 @@ class GroupMessage(
|
|||||||
sender: Member,
|
sender: Member,
|
||||||
override val message: MessageChain
|
override val message: MessageChain
|
||||||
) : ContactMessage(), Event {
|
) : ContactMessage(), Event {
|
||||||
|
init {
|
||||||
|
val source = message.getOrNull(MessageSource) ?: error("Cannot find MessageSource from message")
|
||||||
|
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()
|
override val sender: Member by sender.unsafeWeakRef()
|
||||||
val group: Group get() = sender.group
|
val group: Group get() = sender.group
|
||||||
override val bot: Bot get() = sender.bot
|
override val bot: Bot get() = sender.bot
|
||||||
|
@ -4,19 +4,31 @@ import net.mamoe.mirai.Bot
|
|||||||
import net.mamoe.mirai.contact.Member
|
import net.mamoe.mirai.contact.Member
|
||||||
import net.mamoe.mirai.event.BroadcastControllable
|
import net.mamoe.mirai.event.BroadcastControllable
|
||||||
import net.mamoe.mirai.message.data.MessageChain
|
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.OnlineMessageSource
|
||||||
import net.mamoe.mirai.message.data.source
|
import net.mamoe.mirai.message.data.source
|
||||||
|
import net.mamoe.mirai.utils.SinceMirai
|
||||||
import net.mamoe.mirai.utils.getValue
|
import net.mamoe.mirai.utils.getValue
|
||||||
import net.mamoe.mirai.utils.unsafeWeakRef
|
import net.mamoe.mirai.utils.unsafeWeakRef
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 临时会话消息
|
||||||
|
*/
|
||||||
|
@SinceMirai("0.35.0")
|
||||||
class TempMessage(
|
class TempMessage(
|
||||||
sender: Member,
|
sender: Member,
|
||||||
override val message: MessageChain
|
override val message: MessageChain
|
||||||
) : ContactMessage(), BroadcastControllable {
|
) : ContactMessage(), BroadcastControllable {
|
||||||
|
init {
|
||||||
|
val source = message.getOrNull(MessageSource) ?: error("Cannot find MessageSource from message")
|
||||||
|
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 sender: Member by sender.unsafeWeakRef()
|
||||||
override val bot: Bot get() = sender.bot
|
override val bot: Bot get() = sender.bot
|
||||||
override val subject: Member get() = sender
|
override val subject: Member get() = sender
|
||||||
override val source: OnlineMessageSource.Incoming.FromTemp get() = message.source as OnlineMessageSource.Incoming.FromTemp
|
override val source: OnlineMessageSource.Incoming.FromTemp get() = message.source as OnlineMessageSource.Incoming.FromTemp
|
||||||
|
|
||||||
override fun toString(): String = "TempMessage(sender=${sender.id} from group(${sender.group.id}), message=$message)"
|
override fun toString(): String =
|
||||||
|
"TempMessage(sender=${sender.id} from group(${sender.group.id}), message=$message)"
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user