️ 优化代码

This commit is contained in:
yeyang
2023-03-17 01:41:14 +08:00
parent c1dce57776
commit 7cb32c22b3
2 changed files with 39 additions and 30 deletions

View File

@@ -414,20 +414,8 @@ export class GroupAdmin extends plugin {
// 获取禁言列表
async Mutelist (e) {
let mutelist = await ga.getMuteList(e.group_id)
if (!mutelist) return e.reply('还没有人被禁言欸(O∆O)')
let msg = []
for (let i of mutelist) {
let Member = e.group.pickMember(i)
let { info } = Member
msg.push([
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${info.user_id}`),
`\n昵称:${info.card || info.nickname}\n`,
`QQ${info.user_id}\n`,
`群身份:${common.ROLE_MAP[info.role]}\n`,
`禁言剩余时间:${common.getsecondformat(Member.mute_left)}`
])
}
let msg = await ga.getMuteList(e.group_id, true)
if (!msg) return e.reply('还没有人被禁言欸(O∆O)')
common.getforwardMsg(e, msg)
}
@@ -447,9 +435,10 @@ export class GroupAdmin extends plugin {
Reg[2] = common.translateChinaNum(Reg[2] || 1)
// 确认清理直接执行
if (Reg[1] == '确认清理') {
if (!e.group.is_admin && !e.group.is_owner) return e.reply(ROLE_ERROR, true)
let msg = ga.clearNoactive(e.group_id, Reg[2], Reg[3])
return e.reply(msg)
if (!e.group.is_admin && !e.group.is_owner) {
return e.reply(ROLE_ERROR, true)
}
return e.reply(await ga.clearNoactive(e.group_id, Reg[2], Reg[3]))
}
// 查看和清理都会发送列表
let page = common.translateChinaNum(Reg[5] || 1)
@@ -457,9 +446,14 @@ export class GroupAdmin extends plugin {
if (msg?.error) return e.reply(msg.error)
// 清理
if (Reg[1] == '清理') {
if (!e.group.is_admin && !e.group.is_owner) return e.reply(ROLE_ERROR, true)
if (!e.group.is_admin && !e.group.is_owner) {
return e.reply(ROLE_ERROR, true)
}
let list = await ga.noactiveList(e.group_id, Reg[2], Reg[3])
e.reply(`本次共需清理「${list.length}」人,防止误触发\n请发送:#确认清理${Reg[2]}${Reg[3]}没发言的人`)
e.reply([
`本次共需清理「${list.length}」人,防止误触发\n`,
`请发送:#确认清理${Reg[2]}${Reg[3]}没发言的人`
])
}
common.getforwardMsg(e, msg)
}
@@ -473,8 +467,8 @@ export class GroupAdmin extends plugin {
if (/^#?确认清理/.test(e.msg)) {
if (!e.group.is_admin && !e.group.is_owner) return e.reply(ROLE_ERROR, true)
e.reply('我要开始清理了哦,这可能需要一点时间٩(๑•ㅂ•)۶')
let msg = await ga.BatchKickMember(e.group_id, list.map(item => item.user_id))
return e.reply(msg)
let arr = list.map(item => item.user_id)
return e.reply(await ga.BatchKickMember(e.group_id, arr))
}
// 清理
if (/^#?清理/.test(e.msg)) {

View File

@@ -22,11 +22,23 @@ export default new class {
* @param {Number} groupId 群号
* @return {Array}
*/
async getMuteList (groupId) {
async getMuteList (groupId, info = false) {
let list = await this.getMemberMap(groupId, true)
let mutelist = list.filter(item => Bot.pickGroup(groupId - 0).pickMember(item).mute_left != 0)
let groupObj = Bot.pickGroup(groupId - 0)
let mutelist = list.filter(item => groupObj.pickMember(item).mute_left != 0)
if (_.isEmpty(mutelist)) return false
return mutelist
if (!info) return mutelist
return mutelist.map(item => {
let Member = groupObj.pickMember(item)
let { info } = Member
return [
segment.image(`https://q1.qlogo.cn/g?b=qq&s=100&nk=${info.user_id}`),
`\n昵称:${info.card || info.nickname}\n`,
`QQ${info.user_id}\n`,
`群身份:${common.ROLE_MAP[info.role]}\n`,
`禁言剩余时间:${common.getsecondformat(Member.mute_left)}`
]
})
}
/**
@@ -37,11 +49,7 @@ export default new class {
async releaseAllMute (groupId) {
let mutelist = await this.getMuteList(groupId)
if (!mutelist) return false
for (let i of mutelist) {
await Bot.pickGroup(groupId - 0).muteMember(i, 0)
await common.sleep(2000)
}
return true
return Promise.all(mutelist.map(item => Bot.pickGroup(groupId - 0).muteMember(item, 0)))
}
/**
@@ -87,7 +95,7 @@ export default new class {
let list = await this.noactiveList(groupId, times, unit)
if (!list) return false
list = list.map(item => item.user_id)
return await this.BatchKickMember(groupId, list)
return this.BatchKickMember(groupId, list)
}
/**
@@ -333,6 +341,13 @@ export default new class {
return time == 0 ? `✅ 已把「${Memberinfo.card || Memberinfo.nickname}」从小黑屋揪了出来(。>∀<。)` : `已把「${Memberinfo.card || Memberinfo.nickname}」扔进了小黑屋( ・_・)ノ⌒●~*`
}
/**
* @description: 踢群成员
* @param {Number} groupId 群号
* @param {Number} userId 被踢人
* @param {Number} executor 执行人
* @return {*}
*/
async kickMember (groupId, userId, executor) {
let group = null
try { group = Bot.pickGroup(Number(groupId), true) } catch (err) { return err.message }