Как заставить моего бота удалить сообщение, если оно содержит определенное слово? - PullRequest
0 голосов
/ 19 января 2020

Хорошо, я пытаюсь создать фильтр для своего бота, но не слишком сложный. У меня есть это:

@bot.event
async def on_message(ctx,message):
    if 'fuck' in Message.content.lower:
        Message.delete()

Но выдает ошибку:

    Ignoring exception in on_message
Traceback (most recent call last):
  File "C:\Users\user\AppData\Local\Programs\Python\Python38-32\lib\site-packages\discord\client.py", line 270, in _run_event        
    await coro(*args, **kwargs)
TypeError: on_message() missing 1 required positional argument: 'message'

Не могли бы вы, ребята, помочь мне?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 19 января 2020

Обработчик событий on_message получает только один объект Message, а не объект Context.

1 голос
/ 19 января 2020

Как вы можете видеть здесь , нужно ожидать функцию удаления. Что я также заметил в вашем коде, так это то, что вы пишете с заглавной буквы message, когда аргумент переданной функции строчный.

@bot.event
async def on_message(message):
    if 'fuck' in message.content.lower:
        await message.delete()

Теперь это должно работать.

...