【问题标题】:making a bot using discord.py to assign roles to members based on status message使用 discord.py 制作机器人,根据状态消息为成员分配角色
【发布时间】:2021-04-25 23:58:03
【问题描述】:

我想制作一个不和谐的机器人,它使用 discord.py 为状态消息包含名为“Testing”的字符串的用户分配一个名为“supporter”的角色。我无法找到获取状态消息内容的方法。

【问题讨论】:

  • 您的机器人是否启用了“存在意图”?
  • 请发布您正在处理的代码。如果您完全不知道您在代码中做什么,您的问题将无法回答。

标签: python discord discord.py


【解决方案1】:

为了实现你想要的,只需遍历所有成员通过

for member in guild.members:  

其中guild 是您要检查的公会对象。
然后得到每个成员的活动。如果活动不是无,您将需要检查。

for member in guild.members: 
    memberActivity = member.activity
    if not (memberActivity is None):
        nameOfActivity = memberActivity.name  

之后,您可以检查“测试”是否是活动的名称。如果是这样,分配角色:

for member in guild.members: 
    memberActivity = member.activity
    if not (memberActivity is None):
        nameOfActivity = memberActivity.name 
        if "Testing" in nameOfActivity:
            await member.add_roles(testingRole) 

testingRole 是您的测试角色的对象。

你需要有存在意图才能让它工作!

【讨论】:

  • 另外,你不需要检查每个成员,只需检查on_member_update中的单个成员,检查每个人肯定会在大型服务器中破坏你的机器人
  • 是的,那将是另一种选择。但是 OP 要求检查“其状态消息包含一个名为“Testing”的字符串”。对我来说,这听起来像是他现在想检查这个,而不是通过 on_member_update 事件:耸耸肩:
猜你喜欢
  • 2021-05-10
  • 2019-04-12
  • 2021-07-07
  • 1970-01-01
  • 1970-01-01
  • 2021-05-01
  • 2018-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多