Discord Bot 嵌入自定义表情符号

Posted

技术标签:

【中文标题】Discord Bot 嵌入自定义表情符号【英文标题】:Discord Bot Embed Custom Emoji 【发布时间】:2019-07-23 01:32:05 【问题描述】:

我正在创建一个 python discord bot,它将以嵌入格式输出消息。

我已向 discord 服务器添加了一些自定义表情符号,并希望在嵌入消息中使用这些表情符号。

我希望它看起来像这样 https://imgur.com/a/ezUJXoQ 除了使用的表情符号将是自定义表情符号而不是不和谐的默认表情符号。

我还希望表情符号位于“描述”字段中。自定义表情符号在标题中工作正常,但在“描述”中不起作用。

 embed = discord.Embed(title="Here is the **title**! <:emoji1:52342365738338334>", color=0x24045b, description="Here is the emoji again! <:emoji1:52342365738338334>"

【问题讨论】:

【参考方案1】:

获取代表您的自定义表情符号的 Emoji 对象是最简单的,然后使用它来构建您的字符串

from discord.utils import get

@bot.command(pass_context=True)
async def respond(ctx):
    emoji = get(ctx.message.server.emojis, name="emoji1")
    embed = Embed(title=f"Here is the **title**! emoji", color=0x24045b, description=f"Here is the emoji again! emoji")
    await bot.say(embed=embed)

这是一个调试命令,您可以使用它来获取有关您的表情符号的信息

from discord import Embed, Emoji
from discord.ext.commands import Bot

bot = Bot(command_prefix='!')

@bot.command(pass_context=True)
async def debug(ctx, emoji: Emoji):
    embed = Embed(description=f"emoji: emoji", title=f"emoji: emoji")
    embed.add_field(name="id", value=repr(emoji.id))
    embed.add_field(name="name", value=repr(emoji.name))
    await bot.say(embed=embed)

bot.run("token")

!debug :emojiname: 在不和谐中调用它,它应该会为您提供有关该表情符号的信息。如果没有,那么您可能正在尝试使用不存在的表情符号,或者您的机器人看不到(通常表情符号必须来自调用命令的服务器/正在发布响应到)

【讨论】:

这不起作用。每一个输出都只是用括号打印出 emoji_name 。我在 'name="emoji1" 中尝试了 3 个不同的表情符号 ID。我试过 'emoji_name'、':emoji_name:' 和 '<:emoji_name:248286363862>' 你是否在字符串的开头包含了f 我删除了 f 因为我认为这是一个错字。我将重新添加 f。另外,我应该使用什么表情符号名称 ID? name 是表情符号的名称(您输入不和谐以使其显示的内容)。您也可以通过 id="1234" 与您的 id 一起使用 id。 我尝试只输入名称,然后只输入 ID,然后尝试 ID 和名称,每个结果都给了我表情符号应该在的位置“无”

以上是关于Discord Bot 嵌入自定义表情符号的主要内容,如果未能解决你的问题,请参考以下文章

嵌入中的 Discord.py 和表情符号

Discord bot 动画表情符号无法获取并用作反应

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

nodejs discord bot - 带有由表情符号分隔的单词的消息

Discord.py 机器人不响应自定义表情符号

如何让 Discord 机器人在 on_message 中使用自定义表情符号响应消息