尝试使用discord.py bot在语音通道之间移动用户

时间:2020-08-01 00:44:37

标签: python discord.py

对于有相同问题的任何人,您可以在下面查看所有评论,但这是TD; DR::首先,我获得了想要的频道并将其保存到变量中,然后我得到了消息的作者,最后我使用了move_to代码。

async def moveplayer(ctx): channel = bot.get_channel(738705076557709392) member = ctx.message.author await member.move_to(channel)

我真的很喜欢编码,但是我并不是最擅长的。最近,我一直在尝试更好地使用python做一些对我有帮助的事情,而不是有趣的基于文本的游戏。我现在想做的是,当使用特定命令时,我希望该机器人将用户从一个语音通道转移到另一个语音通道。我一直试图在stackoverflow和Internet的其余部分中找到解决方案,但是我遇到的所有事情对我来说都行不通。以下是我已经尝试过的一些方法。我也尝试使用client = discord.Client()而不是bot = commands.Bot(command_prefix='hp!'),但似乎没有任何作用。

@bot.command(name='moveme')
@commands.has_role('HpBotAccess')
async def moveplayer(*ctx,**message):
    voiceChannel = bot.get_channel(738704912912744450)
    await client.move_to(message.author, voiceChannel.id)
@bot.command(name='moveme')
@commands.has_role('HpBotAccess')
async def moveplayer(message):
    channel = discord.utils.find(lambda x: x.name == 'Vibin 3', message.server.channels)
    await client.move_member(message.author, channel)
@bot.command(name='moveme')
@commands.has_role('HpBotAccess')
async def moveplayer(message):
    await move_to(716193638433947690)

我也尝试阅读文档,但我不太了解它们,因此以上正是我尝试从其他文章/文档中尝试的内容。如果您有解决方案或可以帮助我,请发布它!谢谢!

P.S。我知道这个问题之前已经发布过,但是其他帖子上的解决方案对我不起作用...

1 个答案:

答案 0 :(得分:0)

我有一个函数可以在discord.py机器人上执行类似的操作。我认为您的问题是您需要致电member.move_to(channel)。例如,我的机器人执行以下操作

channel = client.get_channel({channel ID here}) 
# channel now holds the channel you want to move people into

member = client.get_member({user_id of person to move})
#member now holds the user that you want to move

await member.move_to(channel)

您需要在move_to类上使用member,并且它将channel作为参数。您需要使用client提取相关数据以进行操作。