如题,日志:
代码:
import { Context, Schema } from 'koishi'
export const name = 'simple-kick'
export interface Config {}
export const Config: Schema<Config> = Schema.object({})
export function apply(ctx: Context) {
ctx.command('kick <bot:user>', '踢出用户', { authority: 4 })
.option('permanent', '-p')
.action(async ({ session, options }) => {
ctx.logger('simple-kick').info(`kicking ${session.selfId}`)
if (options.permanent) {
await session.bot.kickGuildMember(session.guildId, session.selfId, true)
} else {
await session.bot.kickGuildMember(session.guildId, session.selfId, false)
}
return `已踢出 ${session.selfId}`
})
}
以及同样的代码在telegram中的错误:
2 个赞
@itzdrli ,您在kick自己嘛(
设置了参数,但是好像只接受了 _
(argv)中的session
, options
,没有接受 @ 的人(bot: user
)。
session.selfId
是bot(接受指令的账号)自己。
在.action(
中花括号右边加一个,bot
,将所有session.selfId
替换为bot
,再逝世(
4 个赞
emm好像还是有问题
import { Context, Schema } from 'koishi'
export const name = 'simple-kick'
export interface Config {}
export const Config: Schema<Config> = Schema.object({})
export function apply(ctx: Context) {
ctx.command('kick <bot:user>', '踢出用户', { authority: 4 })
.option('permanent', '-p')
.action(async ({ session, options}, bot) => {
ctx.logger('simple-kick').info(`kicking ${session.selfId}`)
if (options.permanent) {
await session.bot.kickGuildMember(session.guildId, bot, true)
} else {
await session.bot.kickGuildMember(session.guildId, bot, false)
}
return `已踢出 ${session.selfId}`
})
}
2 个赞
斯你怎么调用的, tg @ 人?
onebot这边 user 参数类型应该是获取到
onebot:qid
这样的 ,tg实现问题?你判断一下平台名,然后字符串切片(bot.slice(左边,长度)
)
还有bot这个名字不太好(
你可以改成 banuser
(替换,包括ctx.command
里的
2 个赞
onebot和tg都有错误,我截tg单纯是因为日志好截(
onebot的错误日志得开debug日志:
2 个赞
你传入了错误的参数,kick 第一个参数是 userId,你传进去的是 guildId。翻译成人话就是「你想要把一个群聊踢出群聊」。
2 个赞
虽然但是你好像记反了()
但是如果我先写guildId的话,又会出现群聊不存在
2 个赞
先写guildId可能没问题,你试着分割一下bot变量
bot.split(‘:’)[1]
3 个赞
shigma
12
口误,我是说你二参数是 userId,你写的 selfId,意思是踢自己
3 个赞