【问题标题】:Creating an alarm system: make sure member has a certain role创建警报系统:确保成员具有一定的角色
【发布时间】:2022-01-18 06:30:54
【问题描述】:

我正在尝试为我朋友的服务器制作一个机器人,他希望我创建一个警报系统。我无法让这个成员在 if 语句中实际工作

我的代码:

@commands.command(aliases=['an'])
async def attacknorth(self, ctx, member:discord.Member):
    guild = ctx.guild
    alarmRole = discord.utils.get(guild.roles, name="Alarm Owner")

    if member == alarmRole:
        await ctx.send("North kingdom has alarm role")
    else:
        await ctx.send("They dont have alarm role")

【问题讨论】:

  • 我假设成员 具有 角色,但您正在检查成员是否 等于 与角色...
  • 也许首先使用print() 来查看变量中的内容。它被称为"print debuging"。也许你比较错误的值。
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: python discord discord.py


【解决方案1】:

正如 John Gordon 在 cmets 中提到的,您正在检查成员是否等于角色,而不是成员是否具有角色。您可以使用discord.Member.roles 属性,即list,并检查警报所有者角色是否此列表中。请查看下方修改后的代码。

@commands.command(aliases=['an'])
async def attacknorth(self, ctx, member:discord.Member):
    guild = ctx.guild
    alarmRole = discord.utils.get(guild.roles, name="Alarm Owner")

    if alarmRole in member.roles:
        await ctx.send("North kingdom has alarm role")
    else:
        await ctx.send("They don't have alarm role")

有用的链接

【讨论】:

  • 非常感谢,对我有很大的帮助!
  • @Wep 如果此答案对您有所帮助,请按此答案的赞成和反对票下方的勾号按钮,将其作为您问题的答案 ?
猜你喜欢
  • 2020-12-05
  • 2021-06-29
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-08
  • 2021-11-17
相关资源
最近更新 更多