⚡️ 优化代码
This commit is contained in:
@@ -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)) {
|
||||
|
||||
@@ -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 }
|
||||
|
||||
Reference in New Issue
Block a user