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

Discord.py会员加入特定频道时的消息

锺离飞尘
2023-03-14

下午好

我再次有一个关于不和谐蟒蛇机器人的问题。所以我想做一些支持脚本之类的东西。我的想法是给所有的支持者写一个命令,如果他们值班的话,保存在一个json文件中。这没问题,但我的问题是,我希望用户在连接到一个名为“支持室”的特定语音频道时,收到多少支持者在值班。有人知道我如何写一个脚本,当一个成员加入这个特定的语音频道时,他会收到一条信息,例如:member.send(“你现在在支持室”。请等到支持者移动你。)

@bot.command()
async def on_member_join(member):
    for channel in bot.get_all_channels():
        if channel.name == 'Support-Room':
            await member.send(''You are now in the Support-Room. Please wait till a Supporter moves you.')

这是我尝试过的,但不起作用:(

共有1个答案

孟福
2023-03-14

混合事件和bot命令不是它的工作方式。使用事件是解决方案。我们必须在语音状态更新中使用名为的事件,有关更多信息,请参阅文档。

请查看以下代码:

@bot.event
async def on_voice_state_update(member, before, after):
    channel = before.channel or after.channel

    if channel.id == VoiceChannelID: # Insert voice channel ID
        if before.channel is None and after.channel is not None: # Member joins the defined channel
            await member.send("Your text here.") # Send a DM to the member who joined

我们做了什么?

  • 检查了他以前所在的频道,现在在
  • 已检查连接的通道是否与定义的通道匹配
  • 如果频道正确,则向用户发送消息

 类似资料:
  • 我试图制作一个不和谐机器人,当被召唤时,它将加入作者所在的语音频道。 这是我所拥有的: 当我加入语音频道并键入命令时,我收到以下错误:

  • 我在学习不和谐。py和我想让机器人发送嵌入的消息,就像。(@user已加入!)当用户加入特定的语音频道(如music.vc)时,仅在特定的文本频道加入(音乐频道) 像这样 当用户加入时 还 当用户离开时

  • 结果 狙击在X频道发送的消息,而不是不和谐公会内的所有频道。也就是说,它应该只跟踪该通道中的消息删除(由其ID标识),并且只响应命令。我这里的当前代码狙击了不和谐公会内发送的每一条消息。 问题 我如何狙击在X通道而不是整个公会发送的消息? 我主要打算在一个行会中运行这个机器人。然而,如果需要的话,它可以扩展到多个公会,那就太好了。 到目前为止,我的代码如下。

  • 我希望我的Discord机器人在成员加入频道时向他们致意。我一直找不到在这种情况下触发的事件。我试过我的客户。UserJoined=MyMethod 谢谢,如果我能提供更多的信息,请告诉我。 编辑:建议的链接实现了用户加入事件,该事件似乎仅在新成员加入频道时触发。我需要每次有人登录频道时触发的东西,即使是现有成员。

  • 这是很新的。我一直在阅读readthedocs API参考资料以了解不和谐。这对我来说没什么意义。到目前为止我有 我们的目标是让机器人加入带有的用户加入的语音频道,但我在让机器人加入频道时遇到了麻烦。

  • 我搜索了整个Stack Overflow,发现了很多关于如何将一个或所有成员移动到语音频道的问题,但答案不符合我的需要,当我尝试让他们看看我是否可以更改它们以满足我的需要时,他们不起作用。 在我的不和谐服务器上,如果你加入了一个名为加入创建频道的语音频道,我希望我的机器人制作一个这样命名的语音频道: f'{成员}的频道',然后自动将该人移动到该频道。我可以让机器人通过使用等待克隆(名称,原因)来制