如何让机器人能够显示来自任何服务器的任何表情符号的链接

时间:2021-03-21 02:37:28

标签: discord.py

所以这个命令有效,但...

    @commands.command()
    async def se(self, ctx, emoji: discord.Emoji):
        await ctx.send(f"**Name:**Illdo this later **Link:**{emoji.url}")

它仅适用于机器人所在服务器的表情符号。 有谁知道如何使它能够获得任何服务器表情符号的链接?即使机器人不在其中 如果你愿意,我也需要帮助显示表情符号的名称

我想要的东西是

enter image description here 谢谢!

1 个答案:

答案 0 :(得分:1)

您需要获取表情符号的 id 并制作 url 本身

您可以通过某个 id 获取它的 split(),并且您还需要检查它是否具有动画效果,以便我们可以相应地使用 .gif.png

代码如下:

@commands.command()
async def se(self, ctx, *, msg):
    _id = msg.split(":") # split by ":"
    if "<a" == _id[0]: # animated emojis structure <a:name:id>
        ext = "gif"
    else:
        ext = "png" # normal emojis structure <name:id>
    e_id = _id[2].split(">")[0].strip()# get the id
    # url for a emoji is like this, try yourself if you want to check by manually copying any emoji's url
    url = f"https://cdn.discordapp.com/emojis/{e_id}.{ext}"
    await ctx.send(f"**Name**: :{_id[1]}: **Link**: {url}")