mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-09 03:34:43 +08:00
Add checks for empty message being sent
This commit is contained in:
parent
364ffc334a
commit
56fc3aa88b
@ -25,6 +25,7 @@ import net.mamoe.mirai.event.events.ImageUploadEvent
|
|||||||
import net.mamoe.mirai.message.MessageReceipt
|
import net.mamoe.mirai.message.MessageReceipt
|
||||||
import net.mamoe.mirai.message.data.Message
|
import net.mamoe.mirai.message.data.Message
|
||||||
import net.mamoe.mirai.message.data.OfflineFriendImage
|
import net.mamoe.mirai.message.data.OfflineFriendImage
|
||||||
|
import net.mamoe.mirai.message.data.isContentNotEmpty
|
||||||
import net.mamoe.mirai.qqandroid.QQAndroidBot
|
import net.mamoe.mirai.qqandroid.QQAndroidBot
|
||||||
import net.mamoe.mirai.qqandroid.network.highway.postImage
|
import net.mamoe.mirai.qqandroid.network.highway.postImage
|
||||||
import net.mamoe.mirai.qqandroid.network.protocol.data.proto.Cmd0x352
|
import net.mamoe.mirai.qqandroid.network.protocol.data.proto.Cmd0x352
|
||||||
@ -72,6 +73,7 @@ internal class FriendImpl(
|
|||||||
@JvmSynthetic
|
@JvmSynthetic
|
||||||
@Suppress("DuplicatedCode")
|
@Suppress("DuplicatedCode")
|
||||||
override suspend fun sendMessage(message: Message): MessageReceipt<Friend> {
|
override suspend fun sendMessage(message: Message): MessageReceipt<Friend> {
|
||||||
|
require(message.isContentNotEmpty()) { "message is empty" }
|
||||||
return sendMessageImpl(this, message).also {
|
return sendMessageImpl(this, message).also {
|
||||||
logMessageSent(message)
|
logMessageSent(message)
|
||||||
}
|
}
|
||||||
|
@ -275,6 +275,7 @@ internal class GroupImpl(
|
|||||||
@OptIn(MiraiExperimentalAPI::class, LowLevelAPI::class)
|
@OptIn(MiraiExperimentalAPI::class, LowLevelAPI::class)
|
||||||
@JvmSynthetic
|
@JvmSynthetic
|
||||||
override suspend fun sendMessage(message: Message): MessageReceipt<Group> {
|
override suspend fun sendMessage(message: Message): MessageReceipt<Group> {
|
||||||
|
require(message.isContentNotEmpty()) { "message is empty" }
|
||||||
check(!isBotMuted) { throw BotIsBeingMutedException(this) }
|
check(!isBotMuted) { throw BotIsBeingMutedException(this) }
|
||||||
|
|
||||||
return sendMessageImpl(message, false).also {
|
return sendMessageImpl(message, false).also {
|
||||||
|
@ -25,6 +25,7 @@ import net.mamoe.mirai.message.MessageReceipt
|
|||||||
import net.mamoe.mirai.message.data.Message
|
import net.mamoe.mirai.message.data.Message
|
||||||
import net.mamoe.mirai.message.data.OfflineFriendImage
|
import net.mamoe.mirai.message.data.OfflineFriendImage
|
||||||
import net.mamoe.mirai.message.data.asMessageChain
|
import net.mamoe.mirai.message.data.asMessageChain
|
||||||
|
import net.mamoe.mirai.message.data.isContentNotEmpty
|
||||||
import net.mamoe.mirai.qqandroid.QQAndroidBot
|
import net.mamoe.mirai.qqandroid.QQAndroidBot
|
||||||
import net.mamoe.mirai.qqandroid.message.MessageSourceToTempImpl
|
import net.mamoe.mirai.qqandroid.message.MessageSourceToTempImpl
|
||||||
import net.mamoe.mirai.qqandroid.network.protocol.data.jce.StTroopMemberInfo
|
import net.mamoe.mirai.qqandroid.network.protocol.data.jce.StTroopMemberInfo
|
||||||
@ -54,6 +55,8 @@ internal class MemberImpl constructor(
|
|||||||
|
|
||||||
@JvmSynthetic
|
@JvmSynthetic
|
||||||
override suspend fun sendMessage(message: Message): MessageReceipt<Member> {
|
override suspend fun sendMessage(message: Message): MessageReceipt<Member> {
|
||||||
|
require(message.isContentNotEmpty()) { "message is empty" }
|
||||||
|
|
||||||
return (this.asFriendOrNull()?.sendMessageImpl(this, message) ?: sendMessageImpl(message))
|
return (this.asFriendOrNull()?.sendMessageImpl(this, message) ?: sendMessageImpl(message))
|
||||||
.also { logMessageSent(message) }
|
.also { logMessageSent(message) }
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,7 @@ abstract class Contact : CoroutineScope, ContactJavaFriendlyAPI(), ContactOrBot
|
|||||||
* @throws EventCancelledException 当发送消息事件被取消时抛出
|
* @throws EventCancelledException 当发送消息事件被取消时抛出
|
||||||
* @throws BotIsBeingMutedException 发送群消息时若 [Bot] 被禁言抛出
|
* @throws BotIsBeingMutedException 发送群消息时若 [Bot] 被禁言抛出
|
||||||
* @throws MessageTooLargeException 当消息过长时抛出
|
* @throws MessageTooLargeException 当消息过长时抛出
|
||||||
|
* @throws IllegalArgumentException 当消息内容为空时抛出 (详见 [Message.isContentEmpty])
|
||||||
*
|
*
|
||||||
* @return 消息回执. 可 [引用回复][MessageReceipt.quote](仅群聊)或 [撤回][MessageReceipt.recall] 这条消息.
|
* @return 消息回执. 可 [引用回复][MessageReceipt.quote](仅群聊)或 [撤回][MessageReceipt.recall] 这条消息.
|
||||||
*/
|
*/
|
||||||
|
@ -63,6 +63,7 @@ abstract class Friend : QQ(), CoroutineScope {
|
|||||||
* @throws EventCancelledException 当发送消息事件被取消时抛出
|
* @throws EventCancelledException 当发送消息事件被取消时抛出
|
||||||
* @throws BotIsBeingMutedException 发送群消息时若 [Bot] 被禁言抛出
|
* @throws BotIsBeingMutedException 发送群消息时若 [Bot] 被禁言抛出
|
||||||
* @throws MessageTooLargeException 当消息过长时抛出
|
* @throws MessageTooLargeException 当消息过长时抛出
|
||||||
|
* @throws IllegalArgumentException 当消息内容为空时抛出 (详见 [Message.isContentEmpty])
|
||||||
*
|
*
|
||||||
* @return 消息回执. 可进行撤回 ([MessageReceipt.recall])
|
* @return 消息回执. 可进行撤回 ([MessageReceipt.recall])
|
||||||
*/
|
*/
|
||||||
|
@ -145,6 +145,7 @@ abstract class Group : Contact(), CoroutineScope {
|
|||||||
* @throws EventCancelledException 当发送消息事件被取消时抛出
|
* @throws EventCancelledException 当发送消息事件被取消时抛出
|
||||||
* @throws BotIsBeingMutedException 发送群消息时若 [Bot] 被禁言抛出
|
* @throws BotIsBeingMutedException 发送群消息时若 [Bot] 被禁言抛出
|
||||||
* @throws MessageTooLargeException 当消息过长时抛出
|
* @throws MessageTooLargeException 当消息过长时抛出
|
||||||
|
* @throws IllegalArgumentException 当消息内容为空时抛出 (详见 [Message.isContentEmpty])
|
||||||
*
|
*
|
||||||
* @return 消息回执. 可进行撤回 ([MessageReceipt.recall])
|
* @return 消息回执. 可进行撤回 ([MessageReceipt.recall])
|
||||||
*/
|
*/
|
||||||
|
@ -139,6 +139,7 @@ abstract class Member : MemberJavaFriendlyAPI() {
|
|||||||
* @throws EventCancelledException 当发送消息事件被取消时抛出
|
* @throws EventCancelledException 当发送消息事件被取消时抛出
|
||||||
* @throws BotIsBeingMutedException 发送群消息时若 [Bot] 被禁言抛出
|
* @throws BotIsBeingMutedException 发送群消息时若 [Bot] 被禁言抛出
|
||||||
* @throws MessageTooLargeException 当消息过长时抛出
|
* @throws MessageTooLargeException 当消息过长时抛出
|
||||||
|
* @throws IllegalArgumentException 当消息内容为空时抛出 (详见 [Message.isContentEmpty])
|
||||||
*
|
*
|
||||||
* @return 消息回执. 可进行撤回 ([MessageReceipt.recall])
|
* @return 消息回执. 可进行撤回 ([MessageReceipt.recall])
|
||||||
*/
|
*/
|
||||||
|
@ -64,6 +64,7 @@ abstract class User : Contact(), CoroutineScope {
|
|||||||
* @throws EventCancelledException 当发送消息事件被取消时抛出
|
* @throws EventCancelledException 当发送消息事件被取消时抛出
|
||||||
* @throws BotIsBeingMutedException 发送群消息时若 [Bot] 被禁言抛出
|
* @throws BotIsBeingMutedException 发送群消息时若 [Bot] 被禁言抛出
|
||||||
* @throws MessageTooLargeException 当消息过长时抛出
|
* @throws MessageTooLargeException 当消息过长时抛出
|
||||||
|
* @throws IllegalArgumentException 当消息内容为空时抛出 (详见 [Message.isContentEmpty])
|
||||||
*
|
*
|
||||||
* @return 消息回执. 可进行撤回 ([MessageReceipt.recall])
|
* @return 消息回执. 可进行撤回 ([MessageReceipt.recall])
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user