这是很新的。我一直在阅读readthedocs API参考资料以了解不和谐。这对我来说没什么意义。到目前为止我有
import os
import discord
#os.environ['targetID']
bot = discord.Client()
intents = discord.Intents.default()
intents.members = True
channel_id = os.environ['channelID']
voice_channel = bot.get_channel(channel_id)
async def on_ready():
print ("Ready")
channel_id = os.environ['channelID']
voice_channel = bot.get_channel(channel_id)
await voice_channel.connect()
#async def on_voice_state_update(Member, channel[None], channel['general']):
# print(client.member.id)
#move_to(None)
bot.run(os.environ['token'])
我们的目标是让机器人加入带有targetID
的用户加入的语音频道,但我在让机器人加入频道时遇到了麻烦。
on_voice_state_update是你需要的。当服务器上发生语音状态更改时,将调用此事件,包括
>
成员加入语音频道。
成员离开语音频道。
一个成员自动静音或耳聋。
成员被公会管理员静音或耳聋。
此函数接受3个参数,更新发生的成员、之前的状态和之后的状态。触发此事件时,检查member.id==target_member.id
。如果是这样,那么等待after.channel.connect()
您还应该添加检查,如果机器人还没有在这个通道和其他东西,但这应该指出你在正确的方向
基于Nathan Marotte的回答,我将提供一个代码示例。
您可以使用on_voice_state_update功能来检查成员所在的频道。
因此,请查看以下代码:
@bot.event
async def on_voice_state_update(member, before, after):
targetID = bot.get_user(TargetIDHere)
if before.channel is None and after.channel is not None and member.id == targetID.id: # Condition that must be fulfilled
await member.voice.channel.connect() # Connect to the channel
要解释代码中的不同功能,请执行以下操作:
之前。channel is None
=检查用户是否不在频道中/不在频道中。
之后。channel is not None
=检查用户加入的频道,然后授予角色。
成员。id==targetID。id
=检查成员是否存在。加入匹配项的id
targetID。id。
我试图制作一个不和谐机器人,当被召唤时,它将加入作者所在的语音频道。 这是我所拥有的: 当我加入语音频道并键入命令时,我收到以下错误:
我正在尝试让我的discord机器人连接到一个语音频道,目前如下所示: 基本上,当他们发送消息时,我希望它加入消息作者的语音频道“-skip”,然后我的机器人加入,在聊天中说-p scotland forever,然后离开。我收到一条错误消息,说“频道”未定义或“连接”未定义,我尝试了几种不同的方法,我想我只是没有导入插件或其他东西,这可能是我的问题,但我知道应该使用什么插件。任何帮助都将不胜感激
我希望我的不和谐机器人加入语音频道。但是我遇到了一个问题,每当我想让它加入风投时,什么都不会发生——甚至没有错误。我尝试过SO/Git的其他解决方案,但没有一个适合我(下面有一个)。 编辑:解决了!问题是:没有不和。已安装py[语音]模块。解决方案:
我正在努力让我的机器人进入语音频道,我已经阅读了这里的很多帖子,但没有一篇能够解决我的问题,我正在尝试让我的机器人复制yt视频的声音,但它甚至没有加入,我不知道该怎么办,下面是代码:
我只是想做一个简单的方法,让我的不和谐机器人加入一个频道。我已经看了多个线程,其中一些已经过时,因为它们是在discord.py迁移到v1.0之前。我已经使用type()和dir()来检查通道是什么类型,并查看它有什么方法。我将其与discord.py的API进行了比较,我发现一个问题是dir()创建了一个名为的字段,但是API显示对象有一个名为方法。感谢所有的帮助!:)
我正在做一个简单的不和谐机器人,node.js.我让它运行并响应,但我不能召唤它到语音频道这是我使用的代码 它总是转到“加入语音频道”消息,即使我在语音频道。