将用户移动到消息作者的语音频道

Moving a user to the message author's voice channel

试图让我的 discord 机器人将用户移动到消息作者所在的语音频道。例如我写 !move @john 然后机器人会把 "john" 移到我的语音频道。

# command to move a user to current channel
@bot.command()
async def move(ctx,member:discord.Member=None):
    channel= discord.utils.get(ctx.guild.voice_channels)
    if not member:
        await ctx.send("Who am I trying to move? Use !move @user")
    await member.move_to(channel)

目前它移动用户,但只移动到服务器中的第一个语音通道。怎样才能把它移到作者的语音频道?

作者所在的VoiceChannel存储在ctx.author.voice.channel中。值得注意的是,.voice.channel 可以是 None,因此我们需要检查

@bot.command()
async def move(ctx,member:discord.Member=None):
    if ctx.author.voice and ctx.author.voice.channel:
        channel = ctx.author.voice.channel
    else:
        await ctx.send("You are not connected to voice!")
    if not member:
        await ctx.send("Who am I trying to move? Use !move @user")
    await member.move_to(channel)