提供的信道必须是一个话音信道。 误差move_member(The channel provid

2019-09-29 08:23发布

import discord
from discord.ext import commands
from discord.ext.commands import Bot
import asyncio
import time

bot = commands.Bot(command_prefix='$')

@bot.event
async def on_ready():
print ("Ready")

@bot.command(pass_context=True)
async def Move(ctx):
    #channel to move to '414543063575429131'
    #user to move '192361974053470208'
    await bot.move_member('192361974053470208', '414543063575429131')
    print("done")


bot.run("token_here")

这是我的代码,但我当我尝试将它给我的错误,用户“提供的通道必须是语音信道。”

我知道机器人的作品,因为我有一些简单的命令前面,将较早回复邮件,他们工作得很好。

我是新来的Python和不和谐的机器人,所以我真的不知道该怎么办。 任何帮助表示赞赏。

Answer 1:

信道参数move_member必须是一个Channel对象,不只是信道ID。 这是中提到的文档move_member

你不能在传递Object ,而不是一个Channel在这个函数对象。

@bot.command(pass_context=True)
async def move(ctx):
    destination = '414543063575429131'
    user = '192361974053470208'
    await bot.move_member(ctx.message.server.get_member(user), bot.get_channel(destination)) 
    # The get_member doesn't look to be strictly necessary, but it doesn't hurt
    # and improves readability
    print("done")


文章来源: The channel provided must be a voice channel. error with move_member