如何让我的discord.py 机器人使用自定义表情符号?

问题描述 投票:0回答:5

如何让我的机器人在任何不和谐服务器中使用我的自定义表情符号?

@bot.command(pass_context=True)
async def ping(ctx):
    msg = "Pong :CustomEmoji: {0.author.mention}".format(ctx.message)
    await bot.say(msg)

示例: 如果我在服务器 1 上上传一些自定义表情符号,并且当我们在服务器 2 或服务器 3 或机器人可以访问的任何服务器中使用

!ping
命令(如上所述)时,它应该使用自定义表情符号。

结果:

Pong with :CustomEmoji:

python python-3.x discord discord.py
5个回答
20
投票

来自https://github.com/Rapptz/discord.py/issues/390

这是

<:emoji_name:emoji_id>
用于自定义表情符号。

您还可以通过Server.emojis找到discord.Emoji实例, 然后将其投射到 str。


8
投票

也适用于您所做的动画

<a:emoji_name:emoji_id>


2
投票

首先,您需要将表情符号添加到您的(在机器人可以访问的服务器上)服务器。 添加后,输入表情符号名称,例如 ->“:myemoji:” 在表情符号之前输入一个反斜杠 ->(此处为反斜杠):myemoji: 并发送消息。 当你发送消息时,你可能会看到这样的东西 -> “<:bahn:874911228361854996>”,你可以直接在机器人消息中使用它 示例:

await ctx.send(" my custom emoji <:bahn:874911228361854996>")

0
投票

众所周知,每个不和谐机器人在使用表情时都拥有硝基特权。因此,机器人可以访问它已添加到的所有服务器的任何表情符号。我所做的就是使用全局表情字典为自己制作一个 API 转换器。

emojis=None

@bot.command(pass_context=True)
async def ping(ctx):
    global emojis
    if not emojis:
        emojis = {e.name:str(e) for e in ctx.bot.emojis}
    msg = "Pong :CustomEmoji: {0.author.mention}".format(ctx.message).replace(':CustomEmoji:',emojis['CustomEmoji'])
    await ctx.send(msg)

0
投票
@bot.event
async def on_reaction_add(reaction, user):

    if reaction.emoji.id == emoji_id:
        await reaction.message.delete()

重要提示:更改 emoji_id,它会删除消息

© www.soinside.com 2019 - 2024. All rights reserved.