【问题标题】:Discord (app) and Discord.py appear to have different 'mention' criteriaDiscord (app) 和 Discord.py 似乎有不同的“提及”标准
【发布时间】:2021-11-18 13:56:52
【问题描述】:

我正在编写一个机器人并尝试创建一个函数来检查字符串是否提及有效的服务器用户。

def validUser(string):
    for guild in bot.guilds:
        for user in guild.members:
            if user.mention == string:
                return True
    return False

当我添加一些打印语句以找出它为什么不起作用时,我意识到一些很奇怪的事情。当您从应用程序中的消息中提及时,它采用“”的形式。但是,当您使用 user.mention 时,它会执行“”。当手动输入不和谐时,两者都可以工作,但它们显然与我的功能不兼容。当然,还有其他方法可以使此功能正常工作,但现在我对为什么会发生这种情况以及是否有办法让它......不发生很感兴趣。

【问题讨论】:

  • 什么是string 你能举个例子说明你是怎么得到它的吗?考虑阅读Message.mentions

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


【解决方案1】:

但现在我对为什么会发生这种情况很感兴趣

Discord docs 持有答案。这取决于您是通过用户名还是服务器昵称来提及用户。

User                <@USER_ID>
User (Nickname)     <@!USER_ID>

如果你想解决这个问题,你可以使用regex,它允许额外的!。根据您的用例,您可以使用Converter(用于命令参数)或查看Message.mentions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-25
    • 2021-06-18
    • 2021-04-25
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    相关资源
    最近更新 更多