我正在尝试创建一个命令,让机器人响应您的消息 (!big :emoji:) 并使用更大的表情符号。有没有办法做到这一点?
更新:有没有办法用所有表情符号来做到这一点,而不仅仅是自定义表情?
答案 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)