将成员移至语音频道discord.py

时间:2020-09-02 16:13:25

标签: python python-3.x discord discord.py

我在整个Stack Overflow上进行了搜索,发现了很多问题,人们问如何将一个或所有成员移动到语音通道,但是答案不符合我的需求,当我尝试尝试查看是否可能我可以更改它们以满足我的需求,但它们没有用。

在我的不和谐服务器上,如果您加入了一个名为“加入”的语音通道以创建通道,我希望我的机器人创建一个这样的语音通道:f'{member} s channel',然后自动将人员移动到该通道中。我可以使用await clone(名称,原因)让该漫游器创建频道,但由于某种原因,我无法使该漫游器将成员移动到语音信道中。

这是我目前所拥有的:

import discord
import datetime


client = discord.Client()


@client.event
async def on_voice_state_update(member, before, after):
    if str(after.channel) == 'Join to create channel':
        if str(after) != str(before):
            await after.channel.clone(name=f'{member}s channel')
            person_to_move = member
            channel_to_move_person_to_move_to = client.get_channel(f'{member}s channel')
            await client.move_member(person_to_move, channel_to_move_person_to_move_to)

每当我运行这段代码时,我都会得到一个AttributeError,说“客户端”没有属性“ move_member” move_member是我每次搜索答案时都会在Stack Overflow上看到的东西。最初我有:

await move_to(person_to_move, channel_to_move_person_to_move_to)

在不和谐的py API文档中找到了什么。但是,那里的错误是它给了我一个NameError,说“ move_to”未定义。

任何信息都会有所帮助。我错过了一件小事还是做错了?谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用成员对象移动人员。

channel = discord.utils.get(guild.text_channels, name = f"{member}'s channel")
await member.move_to(channel)