首页 > 解决方案 > 如何通过执行机器人命令来修复错误?

问题描述

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

@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

标签: pythondiscorddiscord.py

解决方案


错误在

client.voice_clients(server)

在哪里调用列表对象client.voice_clients(调用含义,您将其视为一个函数,这意味着您将它与括号一起使用)。

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

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

find命令对于这类东西非常有用。文件


推荐阅读