如何让我的机器人在 discord.py 上使用更大版本的表情符号回复?

时间:2021-07-29 03:10:58

标签: discord.py

我正在尝试创建一个命令,让机器人响应您的消息 (!big :emoji:) 并使用更大的表情符号。有没有办法做到这一点?

更新:有没有办法用所有表情符号来做到这一点,而不仅仅是自定义表情?

2 个答案:

答案 0 :(得分:0)

您只需获取自定义不和谐表情符号的网址,或使用 Twitter 表情符号 api 获取默认表情符号的图像

@bot.command()
async def emoji(ctx, emoji: Union[discord.Emoji, discord.PartialEmoji, str]):
    """Post a large size emojis in chat."""
    if not isinstance(emoji, str):  # if it is a custom discord emoji
        d_emoji = cast(discord.Emoji, emoji)
        ext = "gif" if d_emoji.animated else "png"
        url = d_emoji.url
        filename = f"{d_emoji.name}.{ext}"
    else:  # use the twitter emoji api
        try:
            cdn_fmt = "https://twemoji.maxcdn.com/2/72x72/{codepoint:x}.png"
            url = cdn_fmt.format(codepoint=ord(str(emoji)))
            filename = "emoji.png"
        except TypeError:
            return await ctx.send("That doesn't appear to be a valid emoji")
    try:  # read it with BytesIO so you dont need to save the image
        async with aiohttp.ClientSession() as session:
            async with session.get(url) as resp:
                image = os.BytesIO(await resp.read())
    except Exception:
        return await ctx.send("That doesn't appear to be a valid emoji")
    file = discord.File(image, filename=filename)
    await ctx.send(file=file)

答案 1 :(得分:-1)

您可以使用指定为 discord.Emoji 的参数来创建命令,这仅适用于自定义表情符号。

如果使用默认表情符号,你会得到

exception discord.ext.commands.errors.EmojiNotFound: Emoji "?" not found.

这是一个使用 Emoji.url 发送的示例

@bot.command()
async def big(ctx, emoji: discord.Emoji = None):
    if emoji:
        await ctx.send(emoji.url)