webentwicklung-frage-antwort-db.com.de

Python fügt benutzerdefinierte Reaktionen für Nachrichten hinzu

Ich möchte mehrere benutzerdefinierte Reaktionen für mehrere Befehle hinzufügen. Wenn wir Reaktionslisten hinzufügen, werden zufällige Reaktionen aus diesen Listen hinzugefügt. Also, wie geht das?.

from discord.utils import get

Füge Emoji nach Namen hinzu.

reactions = ['emoji_name_1', 'emoji_name_2', 'emoji_name_3']

@bot.command(pass_context=True)
async def ping1(ctx):
    msg = "Pong {0.author.mention}".format(ctx.message)
    reply = await bot.say(msg)
    for emoji_name in reactions:
        emoji = get(bot.get_all_emojis(), name=emoji_name)
        await bot.add_reaction(reply, emoji)

Fügen Sie Emoji nach ID hinzu.

reactions = ['a:abc:78768768768', 'a:def:768768766', 'a:ghi:878768787687']

@bot.command(pass_context=True)
async def ping2(ctx):
    msg = "Pong {0.author.mention}".format(ctx.message)
    reply = await bot.say(msg)
    for emoji in emojilist:
        await bot.add_reaction(reply, emoji)

zufällige Reaktion

reactions = ['a:abc:78768768768', 'a:def:768768766', 'a:ghi:878768787687']

@bot.command(pass_context=True)
async def ping2(ctx):
    msg = "Pong {0.author.mention}".format(ctx.message)
    reply = await bot.say(msg)
    emojiresult = random.shuffle(reactions)
    for emoji in emojiresult:
        await bot.add_reaction(reply, emoji)
4
Demotry

Sie müssen die von Ihnen gesendete Nachricht aufzeichnen und dann add_reaction für diese Nachricht aufrufen, nicht die message, die als Argument an on_message übergeben wurde.

from discord.utils import get

reactions = ['123', '456', '????']

@commands.command(pass_context=True)
async def ping(self, ctx):
    msg = "Pong {0.author.mention}".format(ctx.message)
    reply = await self.bot.say(msg)
    for emoji_id in reactions:
        emoji = get(ctx.server.emojis, name=emoji_id)
        await bot.add_reaction(reply, emoji or emoji_id)  
        # If emoji is None, then emoji_id is likely a unicode emoji
3
Patrick Haugh
for r in reactions:
    await bot.add_reaction(message, r)
0
Mehvix