Python 如何检查是否有人加入了Discord中的语音频道,然后向某人发送dm

Python 如何检查是否有人加入了Discord中的语音频道,然后向某人发送dm,python,discord,discord.py,Python,Discord,Discord.py,我想做的是,如果有人加入一个特定的语音频道,我会得到一个DM。我是一个新的编码(只有很少的经验),所以我必须使用互联网。我的代码是来自互联网的组合。我只是让它在有人加入时在控制台中打印一些东西 @bot.event 语音状态更新时的异步定义(成员、之前、之后): targetID=bot.get_用户(747390765428113418) 如果before.channel为无,after.channel为非无: 打印(“已加入成员”) 为了澄清,我想把这个消息发送给myslef,你就快到了。

我想做的是,如果有人加入一个特定的语音频道,我会得到一个DM。我是一个新的编码(只有很少的经验),所以我必须使用互联网。我的代码是来自互联网的组合。我只是让它在有人加入时在控制台中打印一些东西

@bot.event
语音状态更新时的异步定义(成员、之前、之后):
targetID=bot.get_用户(747390765428113418)
如果before.channel为无,after.channel为非无:
打印(“已加入成员”)

为了澄清,我想把这个消息发送给myslef,你就快到了。要向自己发送消息,必须执行
discord.Member.send()
。您还需要获取成员对象,因为
get\u user
方法返回的是用户而不是成员

targetID=member.guild.get_member(747390765428113418)#从guild获取成员
wait targetID.send(f“{member.ntify}已加入VC{after.channel.ntify}”)

这将发送给您在代码中指定的ID为
747390765428113418的用户。

A稍微更改了您的代码:

@bot.event
async def on_voice_state_update(member, before, after):
    if before.channel is None and after.channel is not None: #Checking member is joined (not left) from voice channel
        await member.send("Your message") #Sending message

您是否试图向自己或加入VC的人发送消息?@bot.event async def on_voice_state_update(member,before,after):targetID=member.guild.get_member(747390765428113418)#从guild获得成员wait targetID.send(f“{member.ention}已加入VC{after.channel.ention}”)这是我现在的代码,但我得到了这个错误:下一个注释是因为字符限制忽略了更新回溯中的异常(最近一次调用):文件“C:\Python39\lib\site packages\discord\client.py”,第343行,在运行事件中等待coro(*args,**kwargs)文件“C:\Python39\DarkBot\HaDebot.py”,第107行,在on_voice_state_update wait targetID.send(f“已加入VC”)AttributeError:“非类型”对象没有属性“发送”