你如何让机器人使用自定义表情符号添加反应?

时间:2018-02-26 05:38:54

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

我正在尝试使用discord.py版本0.16.12添加自定义表情符号作为对邮件的反应,我无法使其正常运行。这是我正在使用的代码:

@bot.event
async def on_message(message):
    if message.content.find(':EmojiName:'):
        await bot.add_reaction(message, '<:EmojiName:#EmojiID#>')

我也尝试将表情符号id作为类似于discord.js (message, '#EmojiID#')的字符串传递。我是否应该将add_reaction函数传递给表情符号对象?如果是这种情况,我如何从get_all_emojis函数中找到特定的表情符号对象?

2 个答案:

答案 0 :(得分:4)

您可以使用效用函数discord.utils.get来获取相应的Emoji object

from discord.utils import get

@bot.event
async def on_message(message):
    # we do not want the bot to reply to itself
    if message.author == bot.user:
        return
    if ':EmojiName:' in message.content:
        emoji = get(bot.get_all_emojis(), name='EmojiName')
        await bot.add_reaction(message, emoji)

答案 1 :(得分:1)

人们没关系,伙计们,我明白了。你必须传递表情符号对象本身。为了后人的缘故,这是我最终使用的代码:

async def on_message(message):
if message.content.find(':EmojiName:'):
    for x in client.get_all_emojis():
        if x.id == '#EmojiID#':
            return await client.add_reaction(message, x)