Python Bot使用自定义表情符号

时间:2018-08-23 09:43:30

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

如何使我的机器人在任何不和谐的服务器中使用我的自定义表情符号。

@bot.command(pass_context=True)
async def ping(ctx):
    msg = "Pong :CustomEmoji: {0.author.mention}".format(ctx.message)
    await bot.say(msg)

示例: 如果我在server 1上上传了一些自定义表情符号,并且当我们在!pingserver 2或机器人可以访问的任何服务器中使用server 3命令(如上所述)时,应该使用自定义表情符号。 结果Pong with :CustomEmoji:

3 个答案:

答案 0 :(得分:2)

  

用于自定义表情符号的是<:emoji_name:emoji_id>。

     

您还可以通过Server.emojis和以下命令找到discord.Emoji实例。   然后将其转换为str。

https://github.com/Rapptz/discord.py/issues/390

我希望这能回答您的问题!

答案 1 :(得分:0)

对于动画类,您也可以<a:emoji_name:emoji_id>

答案 2 :(得分:0)

正如我们所知,每个不和谐机器人在使用表情时都有 nitro 特权。因此,机器人可以访问已添加到的所有服务器的任何表情符号。我所做的是使用全局表情字典为自己制作 API 转换器。

emojis=None

@bot.command(pass_context=True)
async def ping(ctx):
    global emojis
    if not emojis:
        emojis = {e.name:str(e) for e in ctx.bot.emojis}
    msg = "Pong :CustomEmoji: {0.author.mention}".format(ctx.message).replace(':CustomEmoji:',emojis['CustomEmoji'])
    await ctx.send(msg)