提供的频道必须是语音频道。 move_member错误

时间:2018-02-17 23:53:02

标签: python discord discord.py

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和discord机器人的新手,所以我真的不知道该怎么做。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

move_member的频道参数必须是Channel个对象,而不仅仅是频道ID。这在documentation for 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")