【问题标题】:Giving discord members with a certain status a role赋予具有一定地位的不和谐成员角色
【发布时间】:2020-10-11 20:46:04
【问题描述】:

让我解释一下,所以我想给我的 discord 服务器上状态为 discord.gg/chilling 的每个人一个角色!

到目前为止,我想出了这个逻辑

@tasks.loop(minutes=1.0)
async def give_role():
    guild = discord.utils.get(client.guilds, name="TOG")
    role = discord.utils.get(client.guilds[0].roles, name="I Am Sexier")
    [member.add_roles(role) for member in guild.members if 'discord.gg/chilling' in member.activities[0].name]

give_role.start()

现在的问题是,我希望它一次又一次地迭代,但我想不出这样做的主意! 我这个网站充满了天才,所以有人有想法吗? 非常感谢:)

【问题讨论】:

  • member.status.name 不会返回我们所谓的不和谐状态,就像设置自定义状态一样。相反,它返回状态:dnd (Do not disturd), online, offline and idle
  • @Remi_Zacharias 并不是真的返回状态,我在我的用户状态命令 rn 中运行它
  • 当我做status = member.status.name然后打印状态时,这对我来说很奇怪,它只是返回那些dnd,在线离线等

标签: python python-3.x discord discord.py


【解决方案1】:

您可以为此使用tasks。任务基本上是重复您定期编写的代码。此外,您不能使用角色名称添加角色。你应该使用discord.utils.get

@tasks.loop(minutes=1.0)
async def give_role():
    guild = discord.utils.get(client.guilds, name="Your guild's name")
    role = discord.utils.get(guild.roles, name="Role's name")
    [member.add_roles(role) for member in guild.members if 'discord.gg/chilling' in member.activities[0].name]

然后你可以用give_role.start()开始你的循环。

编辑

要获取会员的CustomStatus,可以使用member.activities[0].name

【讨论】:

  • 我要试试这个!
  • 如何修复未定义的任务?
  • 我修复了未定义的任务,但是呃,不幸的是它不起作用
  • 有什么错误吗?此任务将每分钟运行一次。你能展示你的代码吗?
  • 您必须在on_ready() 函数上使用give_role.start()。也导入如下from discord.ext import tasks
猜你喜欢
  • 2020-12-05
  • 2021-06-16
  • 2021-10-11
  • 2020-11-22
  • 2021-11-02
  • 2021-02-16
  • 2018-10-22
  • 2019-11-16
  • 1970-01-01
相关资源
最近更新 更多