如何通过执行机器人命令来修复错误?

时间:2020-03-12 17:32:13

标签: python discord discord.py

我正在写一个不和谐机器人。我决定实施该命令来播放视频(音乐)。以下代码段存在问题:

@client.command(pass_context=True)
async def play(ctx, url):
    channel = ctx.author.voice.channel
    await channel.connect()
    server = ctx.message.guild
    voice_client = client.voice_clients(server)#< An error occurs here
    player = await voice_client.create_ytdl_player(url)
    players[server.id] = player
    player.start()

即:discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: 'list' object is not callable

1 个答案:

答案 0 :(得分:1)

错误在

行中

client.voice_clients(server)

在调用列表对象client.voice_clients的地方(调用的意思是,您将其视为一个函数,意味着您将其与方括号一起使用)。

要查找特定服务器的语音客户端,请执行以下操作:

voice_client = discord.utils.find(lambda c: c.guild.id == server.id, client.voice_clients)

find命令对于这种东西非常有用。 documentation