对于有相同问题的任何人,您可以在下面查看所有评论,但这是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。我知道这个问题之前已经发布过,但是其他帖子上的解决方案对我不起作用...
答案 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
提取相关数据以进行操作。