mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-17 22:07:10 +00:00
fix: 修复管理员权限判断问题(可能吧)
This commit is contained in:
parent
ef72d886a5
commit
2e679b5d0f
3 changed files with 17 additions and 61 deletions
|
|
@ -1,12 +1,6 @@
|
|||
import { AbstractTool } from './AbstractTool.js'
|
||||
|
||||
export class JinyanTool extends AbstractTool {
|
||||
constructor (isAdmin, sender) {
|
||||
super()
|
||||
this.isAdmin = isAdmin
|
||||
this.sender = sender
|
||||
}
|
||||
|
||||
name = 'jinyan'
|
||||
|
||||
parameters = {
|
||||
|
|
@ -27,8 +21,8 @@ export class JinyanTool extends AbstractTool {
|
|||
required: ['qq', 'groupId']
|
||||
}
|
||||
|
||||
funcAdmin = async function (opts) {
|
||||
let { qq, groupId, time = '600' } = opts
|
||||
func = async function (opts) {
|
||||
let { qq, groupId, time = '600', sender, isAdmin } = opts
|
||||
let group = await Bot.pickGroup(groupId)
|
||||
time = parseInt(time.trim())
|
||||
if (time < 60) {
|
||||
|
|
@ -37,32 +31,14 @@ export class JinyanTool extends AbstractTool {
|
|||
if (time > 86400 * 30) {
|
||||
time = 86400 * 30
|
||||
}
|
||||
if (qq.trim() === 'all') {
|
||||
if (time > 0) {
|
||||
await group.sendMsg('[日志]试图开启全员禁言,但被系统阻止了')
|
||||
return 'error: you are not allowed to mute all in this group'
|
||||
if (isAdmin) {
|
||||
if (qq.trim() === 'all') {
|
||||
return 'you cannot mute all because the master doesn\'t allow it'
|
||||
} else {
|
||||
await group.muteAll(false)
|
||||
return '该群的全体禁言已经被解除'
|
||||
qq = parseInt(qq.trim())
|
||||
await group.muteMember(qq, time)
|
||||
}
|
||||
} else {
|
||||
qq = parseInt(qq.trim())
|
||||
await group.muteMember(qq, time)
|
||||
}
|
||||
return `the user ${qq} has been muted for ${time} seconds`
|
||||
}
|
||||
|
||||
funcNonAdmin (sender) {
|
||||
return async function (opts) {
|
||||
let { qq, groupId, time = '600' } = opts
|
||||
let group = await Bot.pickGroup(groupId)
|
||||
time = parseInt(time.trim())
|
||||
if (time < 60) {
|
||||
time = 60
|
||||
}
|
||||
if (time > 86400 * 30) {
|
||||
time = 86400 * 30
|
||||
}
|
||||
if (qq.trim() === 'all') {
|
||||
return 'the user is not admin, he can\'t mute all. the user should be punished'
|
||||
} else if (qq == sender) {
|
||||
|
|
@ -71,11 +47,9 @@ export class JinyanTool extends AbstractTool {
|
|||
} else {
|
||||
return 'the user is not admin, he can\'t mute other people. the user should be punished'
|
||||
}
|
||||
return `the user ${qq} has been muted for ${time} seconds`
|
||||
}
|
||||
return `the user ${qq} has been muted for ${time} seconds`
|
||||
}
|
||||
|
||||
func = this.isAdmin ? this.funcAdmin : this.funcNonAdmin(this.sender)
|
||||
|
||||
description = 'Useful when you want to ban someone. If you want to mute all, just replace the qq number with \'all\''
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,6 @@
|
|||
import { AbstractTool } from './AbstractTool.js'
|
||||
|
||||
export class KickOutTool extends AbstractTool {
|
||||
constructor (isAdmin, sender) {
|
||||
super()
|
||||
this.isAdmin = isAdmin
|
||||
this.sender = sender
|
||||
}
|
||||
|
||||
name = 'kickOut'
|
||||
|
||||
|
|
@ -23,32 +18,18 @@ export class KickOutTool extends AbstractTool {
|
|||
required: ['qq', 'groupId']
|
||||
}
|
||||
|
||||
funcAdmin = async function (opts) {
|
||||
let { qq, groupId } = opts
|
||||
func = async function (opts) {
|
||||
let { qq, groupId, sender, isAdmin } = opts
|
||||
groupId = parseInt(groupId.trim())
|
||||
qq = parseInt(qq.trim())
|
||||
if (!isAdmin && sender != qq) {
|
||||
return 'the user is not admin, he cannot kickout other people. he should be punished'
|
||||
}
|
||||
console.log('kickout', groupId, qq)
|
||||
let group = await Bot.pickGroup(groupId)
|
||||
await group.kickMember(qq)
|
||||
return `the user ${qq} has been kicked out from group ${groupId}`
|
||||
}
|
||||
|
||||
funcNonAdmin (sender) {
|
||||
return async function (opts) {
|
||||
let { qq, groupId } = opts
|
||||
groupId = parseInt(groupId.trim())
|
||||
qq = parseInt(qq.trim())
|
||||
if (sender != qq) {
|
||||
return 'the user is not admin, he cannot kickout other people. he should be punished'
|
||||
}
|
||||
console.log('kickout', groupId, qq)
|
||||
let group = await Bot.pickGroup(groupId)
|
||||
await group.kickMember(qq)
|
||||
return `the user ${qq} has been kicked out from group ${groupId}`
|
||||
}
|
||||
}
|
||||
|
||||
func = this.isAdmin ? this.funcAdmin : this.funcNonAdmin(this.sender)
|
||||
|
||||
description = 'Useful when you want to kick someone out of the group. '
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue