不和谐机器人如何在不和谐重写中加入语音频道?

问题描述

我想让我的 discord 机器人在我输入 !join 时连接到我所在的语音频道.我试图用下面的代码来做,但我得到了这个错误:bot: 'Bot' 的 BotInstance 没有 'voice_client_int' memberpylint(no-member)

I want to make my discord bot to connect to the voice channel I am when I type !join. i have tried to do it with the following code but i got this error: bot: BotInstance of 'Bot' has no 'voice_client_int' memberpylint(no-member)

我发现我的代码与 rewrite discord 版本不兼容.

i found that my code is not compatible with the rewrite discord version.

@bot.command(pass_context = True)
async def join(ctx):
        channel = ctx.message.author.voice.voice_channel
        await bot.join_voice_channel(channel)
@bot.command(pass_context = True)
async def leave(ctx):
        server = ctx.message.server
        voice_client = bot.voice_client_int(server)
        await voice_client.disconnect()

有人可以帮我吗?


解决方案

如迁移页面所述,在重写版本中,语音连接现在是 VoiceChannel 模型的一种方法.pass_context 也被弃用,因为现在总是传递上下文.

As stated in the migrating page, in the rewrite version, the voice connection is now a method of the VoiceChannel model. The pass_context is also deprecated as context is now always passed.

现在看起来像这样:

@bot.command()
async def join(ctx):
    channel = ctx.author.voice.channel
    await channel.connect()
@bot.command()
async def leave(ctx):
    await ctx.voice_client.disconnect()

当然,这个过于简化的版本缺少错误处理.

Of course this oversimplified version lacks error handling.

相关文章