{discord.py} Удаление определенного c сообщения от указанного c пользователя - PullRequest
0 голосов
/ 26 мая 2020

Я хочу удалить конкретное c сообщение от указанного c пользователя с помощью discord.py Идентификатор пользователя: 462616472754323457 Сообщение, которое он не может отправить: lmao Итак, если он отправляет lmao, оно удаляет сообщение и отправьте "Вы не можете этого сделать <@ 462616472754323457>

Ответы [ 2 ]

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

Вы можете использовать событие on_message, которое запускается при отправке сообщения.

@bot.event
async def on_message(message):
    await bot.process_commands(message) # add this if also using command decorators
    if message.author.id == 462616472754323457 and "lmao" in message.content.lower():
        await message.delete()
        await message.channel.send(f"You can't do that, {message.author.mention}")

Ссылки:

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

Попробуйте discord.TextChannel.purge.

@client.event
async def on_message(message):
    if len(await message.channel.purge(limit=200, check=lambda x: ('lmao' in x.content.strip().lower()) and x.author.id == 462616572754323457)) > 0:
        await message.channel.send('You are not allowed to do that, <@462616572754323457>')

Учитывая, что бот находится в автономном режиме, бот проверит 200 сообщений перед текущим сообщением и удалит все сообщения из 462616572754323457 и иметь в содержимом 'lmao'. (Вы можете улучшить это, используя re.)

...