InsideDarkWeb.com

discord.py - | Ошибка в clear после проверки прав |

Написал команду clear для бота в дискорде. Для работы требует наличие прав manage_messages, если пользователь имеет это право, то команда соответственно выполняется (проверено), но если пользователь этого права не имеет, вместо того, чтобы написать об этом, выдает ошибку в консоль и все

@client.command( pass_context = True )
@commands.has_permissions( manage_messages = True )
async def clear( ctx, amount = 1 ):
    await ctx.channel.purge( limit = 1 )
    await ctx.channel.purge( limit = amount )
@clear.error
async def clear_error( ctx ):
    author = ctx.message.author
    await ctx.message.purge( limit = 1 )
    await ctx.send( f'{ author.mention }, у Вас недостаточно прав для использования этой команды!' 'n' 'Недостающее право: Управлять сообщениями' )

Пробовал как-то использовать это все через if/elif/else, но не смог понять, как все равно записывать проверку наличия прав

2 Answers

@clear.error
async def clear_error(ctx, error):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send(f'{ctx.author.name}, вы не указали пользователя')
    elif isinstance(error, MissingPermissions):
        await ctx.send(f'{author.mention}, у Вас недостаточно прав для использования этой команды!nНедостающее право: Управлять сообщениями')

Answered by PolyTex18 on November 15, 2021

Вы не указали "error" в аргументах функции clear_error и пропустили условие, при котором выполняется код ошибки. Вот исправленный код ошибки:

@clear.error
async def clear_error(ctx, error):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send(f'{ctx.author.name}, вы не указали пользователя')
        await ctx.message.purge(limit = 1)
        await ctx.send( f'{author.mention}, у Вас недостаточно прав для использования этой команды!nНедостающее право: Управлять сообщениями')

Answered by Нuкuma on November 15, 2021

Add your own answers!

Related Questions

Ask a Question

Get help from others!

© 2021 InsideDarkWeb.com. All rights reserved.