Discord.py мероприятие модерации

#python #events #discord #discord.py #bots

Вопрос:

 @client.event
async def on_message(message):
    if message.content.startswith('Some bad word'):
        guild = ctx.guild
        await message.channel.send(f'%s, ou, you said bad word. I have to mute you for 1 hour.')
        mutedRole = discord.utils.get(guild.roles, name='Muted')
        await member.add_role(mutedRole)
        await asyncio.sleep(3600)
        await member.remove_roles(mutedRole)

 

Всем привет! Я не могу создать событие, которое отключает участника, написавшего плохое слово в чате, потому что on_message не принимает аргументы member, ctx и т.д. Что мне делать, чтобы создать это событие «Модерации»?

Ответ №1:

Пожалуйста, взгляните на документы, message там есть все, что вам нужно. Вы можете заменить ctx.guild на message.guild и member на message.author .

https://discordpy.readthedocs.io/en/master/api.html ?выделить =сообщение #разногласие.Сообщение

 guild = message.guild
await message.channel.send(f'%s, ou, you said bad word. I have to mute you for 1 hour.')
mutedRole = discord.utils.get(guild.roles, name='Muted')
await message.author.add_role(mutedRole)
await asyncio.sleep(3600)
await message.author.remove_roles(mutedRole)