дискорд python бот - как отправить сообщение не используя on_message - PullRequest
0 голосов
/ 02 мая 2020

Я делаю дискотечный python код бота, что если я отреагирую на смайлики, бот отправит сообщение на канал.

async def on_reaction_add(reaction, user):
    if (reaction.emoji == '\N{VICTORY HAND}'):
        await message.channel.send('hello')

Но я не могу отправить сообщение ... (Я ужасен в Engli sh .. извините)

1 Ответ

0 голосов
/ 02 мая 2020

Несколько вопросов для рассмотрения.

  1. Попробуйте использовать on_raw_reaction_add вместо on_reaction_add для захвата всех реакций сообщений, а не только кэшированных.
  2. Для сравнения смайликов вы можете использовать python emoji.demojize(), чтобы получить текстовое представление смайликов. pypi emoji 0.5.4 . Discord не видит смайликов победных рук как '\ N {VICTORY HAND}', это просто: V :. Если вы наведите курсор мыши на него, вы увидите.
  3. Чтобы отправить сообщение, вам необходимо установить канал.

Попробуйте:

import emoji

@client.event
async def on_raw_reaction_add(payload):
    if emoji.demojize(str(payload.emoji)) == ':victory_hand:':
        channel = client.get_channel(payload.channel_id)
        await channel.send('hello')
...