有没有办法查看嵌入中是不是提到了成员?
Posted
技术标签:
【中文标题】有没有办法查看嵌入中是不是提到了成员?【英文标题】:Is there a way to see if a member is being mentioned in the embed?有没有办法查看嵌入中是否提到了成员? 【发布时间】:2021-10-25 04:15:09 【问题描述】:我正在使用 discord.py,我试图从命令中获取成员对象,当按下按钮时,它会编辑消息并显示用户 mod 日志数据。我让它工作了,但是以一种奇怪的方式,它在消息中对人进行 ping,然后事件检查是否有 ping(交互)我想知道是否有办法查看嵌入内容提及而不是 interaction.message.mentions
是否有类似的东西用于嵌入而不是message
?提前致谢!
@client.command()
async def modlogs(ctx, member: discord.Member):
main=discord.Embed(title=" ", description=f"ctx.author.mention please use the buttons below to navigate member.mention's modlogs.", color=0x76dba8)
main.set_author(name=f"member", icon_url = member.avatar_url)
ram_member = member
await ctx.send(f"member.mention",
embed = main,
components=[[
Button(style=ButtonStyle.blue, label="Warnings", custom_id= "blue"),Button(style=ButtonStyle.blue, label="Kicks", custom_id= "red"),Button(style=ButtonStyle.blue, label="Bans", custom_id= "green")
]],
)
@client.event
async def on_button_click(interaction):
print(interaction.message)
if interaction.message.mentions:
if (interaction.message.mentions.__len__() > 0):
for member in interaction.message.mentions:
if collection2.count_documents("_id": member.id) == 0:
embed1=discord.Embed(description=f"member.mention has no warnings!", color=0xff0000)
embed1.set_author(name="Error")
else:
【问题讨论】:
【参考方案1】:获取消息
Msg = await Bot.get_message(channel, id)
获取嵌入
查看 [this question][1] 的第一个答案。Emb = discord.Embed.from_data(Msg.embeds[0])
获取字段
看看[这个问题][2]的答案。for field in Emb.fields:
print(field.name)
print(field.value)
获取描述
查看 [this question][3] 的第一个答案。Des = Emb.description
搜索提及
>>> Member.mention in Des
True
搜索提及
提及以 ```@!``` 开头并以 ```>``` 结尾。 因此,您可以使用此事实将提及项搜索到字符串中(Embed.description 返回字符串类型对象)。 像这样:Men = Des[Des.find("<@!"):Des.find(">")]
UserID = int(Men[3:])
Member = ctx.fetch_user(UserID)
链接
-
Discord.py get message embed
How to align fields in discord.py embedded messages
discord.py Check content of embed title
How do I mention a user using user's id in discord.py?
总结
我想它会起作用的。【讨论】:
好吧,这真的行不通,因为我正在尝试获取“会员”,所以我无法真正搜索“会员”的描述 @ECO3X10C,您是否需要从嵌入描述中的提及中获取成员对象,对吗?让我编辑我的答案 是的,我需要从嵌入描述中获取。以上是关于有没有办法查看嵌入中是不是提到了成员?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法使用Microsoft.SharePoint.Client命名空间与其他用户创建新的列表项
有没有办法查看当前 UIViewController 是不是从另一个 UIViewController 的解雇中出现