优化发好友群聊消息,消息为空后可单独发送,以支持更多消息类型

This commit is contained in:
yeyang
2024-06-02 20:43:21 +08:00
parent df41b8be3f
commit 512a2c49a0

View File

@@ -14,15 +14,15 @@ export class SendMsg extends plugin {
rule: [ rule: [
{ {
reg: FriendsReg, // 发好友 reg: FriendsReg, // 发好友
fnc: "SendFriendMsg" fnc: "sendFriendMsg"
}, },
{ {
reg: GroupMsgReg, // 发群聊 reg: GroupMsgReg, // 发群聊
fnc: "SendGroupMsg" fnc: "sendGroupMsg"
}, },
{ {
reg: GroupListMsgReg, // 发群列表 reg: GroupListMsgReg, // 发群列表
fnc: "SendGroupListMsg" fnc: "sendGroupListMsg"
} }
] ]
}) })
@@ -36,7 +36,7 @@ export class SendMsg extends plugin {
* 发好友 * 发好友
* @param e * @param e
*/ */
async SendFriendMsg(e) { async sendFriendMsg(e) {
if (!common.checkPermission(e, "master")) return if (!common.checkPermission(e, "master")) return
let regRet = FriendsReg.exec(e.msg) let regRet = FriendsReg.exec(e.msg)
@@ -57,20 +57,38 @@ export class SendMsg extends plugin {
if (!e.message[0].text) e.message.shift() if (!e.message[0].text) e.message.shift()
if (e.message.length === 0) return e.reply("❎ 消息不能为空")
if (!bot.fl.get(Number(qq))) return e.reply("❎ 好友列表查无此人") if (!bot.fl.get(Number(qq))) return e.reply("❎ 好友列表查无此人")
if (e.message.length === 0) {
e._qq = qq
e._bot = bot
this.setContext("_sendFriendMsgContext")
e.reply("⚠ 请发送需要发送的消息\n可发送#取消’进行取消")
return
}
await bot.pickFriend(qq).sendMsg(e.message) await bot.pickFriend(qq).sendMsg(e.message)
.then(() => e.reply("✅ 私聊消息已送达")) .then(() => e.reply(`${qq} 私聊消息已送达`))
.catch(err => common.handleException(e, err, { MsgTemplate: "❎ 发送失败\n错误信息为:{error}" })) .catch(err => common.handleException(e, err, { MsgTemplate: "❎ 发送失败\n错误信息为:{error}" }))
} }
async _sendFriendMsgContext(e) {
if (this.e.msg === "#取消") {
this.finish("_sendFriendMsgContext")
return this.e.reply("✅ 已取消")
}
const { _bot, _qq } = e
_bot.pickFriend(_qq).sendMsg(this.e.message)
.then(() => this.e.reply(`${_qq} 私聊消息已送达`))
.catch(err => common.handleException(this.e, err, { MsgTemplate: "❎ 发送失败\n错误信息为:{error}" }))
this.finish("_sendFriendMsgContext")
}
/** /**
* 发群聊 * 发群聊
* @param e * @param e
*/ */
async SendGroupMsg(e) { async sendGroupMsg(e) {
if (!common.checkPermission(e, "master")) return if (!common.checkPermission(e, "master")) return
let regRet = GroupMsgReg.exec(e.msg) let regRet = GroupMsgReg.exec(e.msg)
@@ -85,26 +103,44 @@ export class SendMsg extends plugin {
bot = Bot[botId] bot = Bot[botId]
} else { } else {
bot = this.Bot bot = this.Bot
} };
if (!/^\d+$/.test(gpid)) return e.reply("❎ 群号不合法") if (!/^\d+$/.test(gpid)) return e.reply("❎ 群号不合法")
if (!e.message[0].text) e.message.shift() if (!e.message[0].text) e.message.shift()
if (e.message.length === 0) return e.reply("❎ 消息不能为空")
if (!bot.gl.get(Number(gpid))) return e.reply("❎ 群聊列表查无此群") if (!bot.gl.get(Number(gpid))) return e.reply("❎ 群聊列表查无此群")
if (e.message.length === 0) {
e._gpid = gpid
e._bot = bot
this.setContext("_sendGroupMsgContext")
e.reply("⚠ 请发送需要发送的消息\n可发送#取消’进行取消")
return
}
await bot.pickGroup(gpid).sendMsg(e.message) await bot.pickGroup(gpid).sendMsg(e.message)
.then(() => e.reply("✅ 群聊消息已送达")) .then(() => e.reply(`${gpid} 群聊消息已送达`))
.catch((err) => common.handleException(e, err, { MsgTemplate: "❎ 发送失败\n错误信息为:{error}" })) .catch((err) => common.handleException(e, err, { MsgTemplate: "❎ 发送失败\n错误信息为:{error}" }))
} }
async _sendGroupMsgContext(e) {
if (this.e.msg === "#取消") {
this.finish("_sendGroupMsgContext")
return this.e.reply("✅ 已取消")
}
const { _bot, _gpid } = e
await _bot.pickGroup(_gpid).sendMsg(this.e.message)
.then(() => this.e.reply(`${_gpid} 群聊消息已送达`))
.catch((err) => common.handleException(this.e, err, { MsgTemplate: "❎ 发送失败\n错误信息为:{error}" }))
this.finish("_sendGroupMsgContext")
}
/** /**
* 发群列表 * 发群列表
* @param e * @param e
*/ */
async SendGroupListMsg(e) { async sendGroupListMsg(e) {
if (!common.checkPermission(e, "master")) return if (!common.checkPermission(e, "master")) return
let regRet = GroupListMsgReg.exec(e.msg) let regRet = GroupListMsgReg.exec(e.msg)