Discord.py 如何检查用户';在另一台服务器上的角色?

Discord.py 如何检查用户';在另一台服务器上的角色?,discord.py,Discord.py,让函数检查特定服务器上的角色,但该函数应该由pm发送到bot,因此我不能在[role.id for role in message.author.roles]中使用“role code” 我该怎么办 还需要向特定服务器发送消息 有关职能: async def on_message(message): if '%attented' in message.content: if "561055432748302336" in [role.id for role in mess

让函数检查特定服务器上的角色,但该函数应该由pm发送到bot,因此我不能在[role.id for role in message.author.roles]中使用“role code” 我该怎么办

还需要向特定服务器发送消息

有关职能:

async def on_message(message):
    if '%attented' in message.content:
        if "561055432748302336" in [role.id for role in message.author.roles]:
            msg = message.content.split(' ')
            author = message.author
            await client.send_message(client.get_channel('560679934209687552'), str(author) + ' has attented a ' + msg[2] + '\nScreenshot:' + msg[1] + '/n***To approve screenshot react with :HYPERS: to dissaprove react with :FeelsBadMan:***')

您可以使用这两种方法来实现此目的

@bot.event
异步def on_消息(消息):
对于bot.server中的i:
对于i.roles中的x:
如果x.id==“角色id”:#这也可以通过x.name==“name”通过name完成
等待bot.send_消息(discord.Object(id='channelid'),'themessage')
等待bot.process_命令(msg)
@命令(pass\u context=True)
异步定义角色(msg):
对于bot.server中的i:
对于i.roles中的x:
如果x.id==“角色id”:#您也可以通过x.name按名称执行此操作
等待bot.send_消息(discord.Object(id='channelid here'),“要发送的消息”)
@机器人事件
添加时的异步定义(emote,用户):

如果emote.emoji=='您可以使用这两种方法来实现此目的

@bot.event
异步def on_消息(消息):
对于bot.server中的i:
对于i.roles中的x:
如果x.id==“角色id”:#这也可以通过x.name==“name”通过name完成
等待bot.send_消息(discord.Object(id='channelid'),'themessage')
等待bot.process_命令(msg)
@命令(pass\u context=True)
异步定义角色(msg):
对于bot.server中的i:
对于i.roles中的x:
如果x.id==“角色id”:#您也可以通过x.name按名称执行此操作
等待bot.send_消息(discord.Object(id='channelid here'),“要发送的消息”)
@机器人事件
添加时的异步定义(emote,用户):

如果emote.emoji=='我应该是服务器id吗?另外,如果您告诉我,我是否可以找到一条使用部分文本的消息,而不使用on_消息或消息id,我将非常感激?基本上,我需要在一篇帖子中添加一个反应(该帖子有一个与之相关联的用户名,例如“BlacktarSalmon”3635已参加活动)后,它会对先前发布的另一篇帖子作出反应(例如“BlacktarSalmon”3635已参加这些活动)?这是因为我正在使用另一个通道进行数据存储编辑:刚刚意识到我需要服务器id的位置,但我的第二个问题仍然存在stands@JonSalman,我已经编辑了答案,请让我知道你的意思。第一个答案是否定的,但是最后一个,我很确定这就是我需要的。最后一个只扫描指定通道中的消息还是缓存中的消息?它扫描通过
logs\u from
函数中的
limit=22
参数指定通道内的消息量它是否从最新扫描到最旧?e、 g.最新的是1还是相反?我应该是服务器id吗?另外,如果您告诉我,我是否可以找到一条使用部分文本的消息,而不使用on_消息或消息id,我将非常感激?基本上,我需要在一篇帖子中添加一个反应(该帖子有一个与之相关联的用户名,例如“BlacktarSalmon”3635已参加活动)后,它会对先前发布的另一篇帖子作出反应(例如“BlacktarSalmon”3635已参加这些活动)?这是因为我正在使用另一个通道进行数据存储编辑:刚刚意识到我需要服务器id的位置,但我的第二个问题仍然存在stands@JonSalman,我已经编辑了答案,请让我知道你的意思。第一个答案是否定的,但是最后一个,我很确定这就是我需要的。最后一个只扫描指定通道中的消息还是缓存中的消息?它扫描通过
logs\u from
函数中的
limit=22
参数指定通道内的消息量它是否从最新扫描到最旧?e、 g.最新的是1,还是相反?