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机器人的新手,所以我真的不知道该怎么做。任何帮助表示赞赏。
答案 0 :(得分:0)
move_member
的频道参数必须是Channel
个对象,而不仅仅是频道ID。这在documentation for move_member
@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")