Discord.py - Как я могу вызвать команду в событии? - PullRequest
0 голосов
/ 20 апреля 2020

Итак, я пытаюсь создать событие в discord.py, где всякий раз, когда пользователь упоминает / пингует бота, он что-то говорит. Приведенный ниже код работает без ошибок, однако единственный способ, которым это будет работать, - это если мой префикс команды находится в сообщении.

Для моего бота префикс "/", поэтому всякий раз, когда я упоминаю бота с " / "в сообщении это что-то скажет. И если я решу просто упомянуть бота, бот не отвечает. Я почти уверен, что это как-то связано с последней строкой кода, но я не знаю, как решить эту проблему.

@client.event
async def on_message(message):
    if client.user.mention in message.content.split():      
        await message.channel.send('You mentioned me!')
    else:
        await client.process_commands(message)

Код написан на Python 3.7.4.

Буду признателен за любую помощь!

1 Ответ

1 голос
/ 20 апреля 2020

Когда кто-то упоминает пользователя, бот читает <@userid>. Поэтому, если вы хотите использовать функцию on_message, вам нужно включить

if '<@bot/user id>' in message.content:
        await message.channel.send('hi')

Вы также можете сделать что-то вроде ...

if bot.user in message.mentions:
            await message.channel.send('hi')
...