我希望我的机器人在使用已定义的功能键入+ playtest时播放特定的歌曲(+ play) 但是我说一个错误
“ Discord.ext.commands.errors.CommandInvokeError:命令引发了 异常:TypeError:'Command'对象不可调用“
除此命令外,整个代码都可以正常工作 我想知道ctx.invoke是否启用传递参数吗?或者我只是错过了一些东西
这是我的简短代码
import os
import re
#for all files in current directory
for f in os.listdir('./'):
#if the first 7 chars are numbers
if re.search('[0-9]{7}',f):
lead_int = int(f.split('_')[0])
#if the leading integer is less than 100
if lead_int < 100:
# rename this file with leading integer + 100
os.rename(f,'%07d_%s'%(lead_int + 100,f.split('_')[-1]))
答案 0 :(得分:5)
ctx.invoke确实允许传递参数,但是需要以不同于您习惯的方式处理参数(function(params)
必须在调用中显式显示参数(例如param = 'value'
),并且命令必须是命令对象。
这就是调用命令的方式:
@commands.command()
async def playtest(self, ctx):
await ctx.invoke(self.bot.get_command('play'), query='hi')