fix: tool permission

This commit is contained in:
ikechan8370 2024-12-31 13:02:18 +08:00
parent f6ce6dcec5
commit 1149f34070
2 changed files with 10 additions and 2 deletions

View file

@ -16,6 +16,7 @@ import { EditCardTool } from '../utils/tools/EditCardTool.js'
import { JinyanTool } from '../utils/tools/JinyanTool.js' import { JinyanTool } from '../utils/tools/JinyanTool.js'
import { KickOutTool } from '../utils/tools/KickOutTool.js' import { KickOutTool } from '../utils/tools/KickOutTool.js'
import { SetTitleTool } from '../utils/tools/SetTitleTool.js' import { SetTitleTool } from '../utils/tools/SetTitleTool.js'
import {SerpTool} from '../utils/tools/SerpTool.js'
export class bym extends plugin { export class bym extends plugin {
constructor () { constructor () {
@ -117,6 +118,9 @@ export class bym extends plugin {
new WebsiteTool(), new WebsiteTool(),
new WeatherTool() new WeatherTool()
] ]
if (Config.azSerpKey) {
tools.push(new SerpTool())
}
if (e.group.is_admin || e.group.is_owner) { if (e.group.is_admin || e.group.is_owner) {
tools.push(new EditCardTool()) tools.push(new EditCardTool())
tools.push(new JinyanTool()) tools.push(new JinyanTool())

View file

@ -24,7 +24,7 @@ export class EditCardTool extends AbstractTool {
description = 'Useful when you want to edit someone\'s card in the group(群名片)' description = 'Useful when you want to edit someone\'s card in the group(群名片)'
func = async function (opts, e) { func = async function (opts, e) {
let { qq, card, groupId } = opts let { qq, card, groupId, isAdmin } = opts
qq = isNaN(qq) || !qq ? e.sender.user_id : parseInt(qq.trim()) qq = isNaN(qq) || !qq ? e.sender.user_id : parseInt(qq.trim())
groupId = isNaN(groupId) || !groupId ? e.group_id : parseInt(groupId.trim()) groupId = isNaN(groupId) || !groupId ? e.group_id : parseInt(groupId.trim())
@ -41,7 +41,11 @@ export class EditCardTool extends AbstractTool {
logger.error('获取群信息失败,可能使用的底层协议不完善') logger.error('获取群信息失败,可能使用的底层协议不完善')
} }
logger.info('edit card: ', groupId, qq) logger.info('edit card: ', groupId, qq)
await group.setCard(qq, card) if (isAdmin) {
await group.setCard(qq, card)
} else {
return 'the user is not admin, he can\'t edit card of other people.'
}
return `the user ${qq}'s card has been changed into ${card}` return `the user ${qq}'s card has been changed into ${card}`
} }
} }