python - 如何通过执行机器人命令来修复错误?
问题描述
我正在为不和谐写一个机器人。我决定执行播放视频(音乐)的命令。以下代码段存在问题:
@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
解决方案
错误在
client.voice_clients(server)
在哪里调用列表对象client.voice_clients
(调用含义,您将其视为一个函数,这意味着您将它与括号一起使用)。
要查找特定服务器的语音客户端,请执行以下操作:
voice_client = discord.utils.find(lambda c: c.guild.id == server.id, client.voice_clients)
该find
命令对于这类东西非常有用。文件
推荐阅读
- firebase - Flutter firestore 插件无法通过 where 和 isEqualTo 的组合获取数据
- three.js - 将 three.js 复合对象添加到 A-Frame 中导致子对象意外闪烁
- r - 解析 R-Help 文件以获得闪亮的工具提示
- unity3d - Endless Runner 无限轨道生成 - Unity3D C#
- tfs - VSTS 错误:“发布构建工件失败并出现错误:无法创建目录‘{p}’
- cuda - Cuda 扫描 - 使用共享内存时,Debug 和 Release 模式下的结果不同
- compiler-errors - Ada:任务类型作为任务标记在它自己的正文中
- java - JTable 二维对象数组
- c++ - 将赋值运算符与 make_pair 方法一起使用会生成 CLion 警告
- vb.net - 使用 mqtt 连接到我的 aws iot