我正在写一个不和谐机器人。我决定实施该命令来播放视频(音乐)。以下代码段存在问题:
@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
答案 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