当前位置: 首页 > 知识库问答 >
问题:

移动会员到语音通道discord.py

充高扬
2023-03-14

我搜索了整个Stack Overflow,发现了很多关于如何将一个或所有成员移动到语音频道的问题,但答案不符合我的需要,当我尝试让他们看看我是否可以更改它们以满足我的需要时,他们不起作用。

在我的不和谐服务器上,如果你加入了一个名为加入创建频道的语音频道,我希望我的机器人制作一个这样命名的语音频道: f'{成员}的频道',然后自动将该人移动到该频道。我可以让机器人通过使用等待克隆(名称,原因)来制作频道,但出于某种原因,我无法让机器人将成员移动到语音频道。

这就是我目前的情况:

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,说“Client”没有属性“move_member”move_member是我每次搜索答案时在堆栈溢出上看到的。最初我有:

await move_to(person_to_move, channel_to_move_person_to_move_to)

这就是我在不和谐py API留档中发现的。然而,错误在于它给了我一个名称错误,说“move_to”没有定义。

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

共有1个答案

巢睿
2023-03-14

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

channel = discord.utils.get(guild.text_channels, name = f"{member}'s channel")
await member.move_to(channel)
 类似资料:
  • 所以,我试图发出一个命令,当你说这个命令时,提供一个语音频道的名称和名称,将你提到的成员移动到该语音频道。我对此做了一些研究,但仍然无法使其工作。 现在,当我使用语音频道“Music”(也就是“d!move[提及]Music”)尝试该命令时,它会将“Moved[member]返回null”返回到控制台,当然,不会移动成员。它似乎可以找到我提到的成员,但找不到语音频道。任何帮助都将不胜感激。谢谢

  • 键入命令后(如果键入命令的人在语音频道中),它会将同一语音呼叫中的每个成员移动到不同的语音呼叫。到目前为止,我已经尝试使用各种代码,但我不确定如何返回给定vc中的每个成员(键入命令的人) > 如何检查输入命令的人是否在语音通话中? 如何返回给定VC中的所有成员? 如何将所有成员批量移动到新的给定频道?

  • 这是我命令的代码部分!虽然只有这一部分我不能很好地理解!我正试图让机器人在队列结束后离开! 它说和工作只是让机器人离开语音通道是我无法解决的问题!我尝试了以下方法: 编辑:

  • 我正在制作一个不和谐机器人来跟踪在语音频道上花费的时间,但我想知道我是如何做到的,它不计算在某个频道上的成员的时间,比如afk频道。 这是我现在正在使用的事件

  • 首先我很抱歉我的英语不好。我正在开发一个不和谐的音乐机器人,我想添加一个功能,让机器人在与语音频道断开连接之前停留30秒(当空闲=所有音乐结束时没有播放更多) 但我想让它立即与语音通道断开,并在使用“停止”命令时结束一切 当它播放完一段音乐后,等待30秒,然后断开连接,好吗!但问题是:如果有人在等待30秒时使用“播放”命令,它会播放他的音乐曲目,但在30秒后它会剪切所有内容(即使第二首曲目没有结束

  • 我目前正在制作一个音乐不和谐机器人。我的问题是在命令的第一行:即使用户在语音频道中,语音频道也被标记为未定义,并且bot返回“您必须在语音频道中才能使用此命令”