繁体   English   中英

如何按名称而不是 ID 获取表情符号并将其添加到消息中? discord.py

[英]How to get a emoji by name, not ID and add it to the message? discord.py

我通过在 discord 中打印\emoji知道表情符号的名称,但是如何获取可以添加到消息中的表情符号?

我会使用 ID 和bot.get_emoji ,但是当我尝试通过右键单击->复制 ID 复制 ID 时,复制的 ID 是带有表情符号的消息的 ID。

await msg2.add_reaction(":bookmark_tabs:")

我也尝试通过discord.utils.get()来做到这一点,但这导致了错误

await msg2.add_reaction(discord.utils.get(bot.emojis, name = "bookmark_tabs"))
await msg2.add_reaction(discord.utils.get(bot.emojis, name = ":bookmark_tabs:"))
await msg2.add_reaction(discord.utils.get(bot.emojis, name = "<bookmark_tabs:>"))
await msg2.add_reaction(discord.utils.get(bot.emojis, name = "<:bookmark_tabs:>"))

所有这些都会导致错误:

Ignoring exception in on_raw_reaction_add
Traceback (most recent call last):
File "C:\Users\plays\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\client.py", 
line 312, in _run_event
await coro(*args, **kwargs)
File "C:\Users\plays\OneDrive\Рабочий стол\Python\bot2.py", line 172, in on_raw_reaction_add
await msg2.add_reaction(discord.utils.get(bot.emojis, name = "<bookmark_tabs:>"))
File "C:\Users\plays\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\message.py", 
line 927, in add_reaction
emoji = self._emoji_reaction(emoji)
File "C:\Users\plays\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\message.py", 
line 1014, in _emoji_reaction
raise InvalidArgument('emoji argument must be str, Emoji, or Reaction not 
{.__class__.__name__}.'.format(emoji))
discord.errors.InvalidArgument: emoji argument must be str, Emoji, or Reaction not NoneType.

bookmark_tabs它不是自定义表情符号,因此discord.utils.get将始终返回None ,您需要为其获取 unicode 。 简单地得到它\:emoji:发送它并复制消息。

unicode 的bookmark_tabs , 添加一个反应:

await message.add_reaction('📑')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM