【问题标题】:Send animated emoji through dms discord.py通过 dms discord.py 发送动画表情符号
【发布时间】:2021-07-22 21:09:06
【问题描述】:

我见过很多不和谐的机器人使用动画表情符号来攻击我。我了解如何在服务器中发送动画表情符号,因为表情符号在服务器中。但是他们怎么能用动画表情符号给我发短信呢?我想在用户进行验证时发送 dm,机器人回复 dm 说:“您已通过验证!”带有表情符号。

@bot.command()
async def verify(ctx):
    helpembed=discord.Embed(title="Verification", url=" ", description="You have been verified!", color=discord.Color.blue())
    await ctx.author.send(embed=helpembed)

【问题讨论】:

  • 每个表情符号都有一个 id。这就是 discord 的区别所在,即使多个服务器具有相同的命名表情符号,或者您想从那里的另一台服务器发送表情符号。一旦你有了那个 id - discordpy.readthedocs.io/en/latest/…
  • 机器人可以从他们所在的服务器发送任何表情符号。他们就像使用 nitro 的用户一样,他们可以从任何服务器发送表情符号,包括动画,在任何地方。您需要做的就是拥有一个机器人所在的服务器,其中包含一个动画表情符号,然后使用 h4z3 刚刚提到的 id 方法将其发送到 dms。
  • 好的,这是正确的 id 方法吗? @bot.command() async def verify(ctx): emoji = bot.get_emoji('786276426839752714') await ctx.author.send(emoji)
  • @saaasaa id 应该是整数而不是字符串

标签: python discord discord.py


【解决方案1】:

Discord 对自定义和动画表情符号使用特殊模式(就像它对频道提及和用户提及所做的那样)。

animated_emoji = "<a:emoji_name:emoji_id>"
custom_emoji = "<:emoji_name:emoji_id>"

如果您有表情符号 ID,这将适用于自定义和动画表情符号: (client.get_emoji)

emoji = bot.get_emoji(emoji_id)
await ctx.send("Hello! {}".format(emoji))

如果你有它的名字表情符号来自的公会:(utils.get, guild.emojis)

from discord import utils

emoji = utils.get(guild.emojis, name="my emoji name")
await ctx.send("Hello! {}".format(emoji))

参考资料:

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 2020-10-31
    • 2019-06-02
    • 2019-08-01
    • 1970-01-01
    • 2011-10-24
    • 2020-07-15
    • 2018-09-02
    • 2020-09-10
    相关资源
    最近更新 更多