Задать вопрос
@Hacker2961

Бот банит по причине состоящей из 1 слова, как исправить?

Есть код на бан участника по пингу или айди:
@bot.command()
@commands.has_guild_permissions(ban_members=True)
async def ban(ctx, member:discord.User=None, reason =None):
     if member == ctx.message.author:
         await ctx.channel.send("Жаль, но ты не можешь забанить себя :(")
         return

     if reason == None:
         reason = "Причина бана не указана"

     message = f"Вы были забанены на сервере **{ctx.guild.name}** по следующей причине: \n{reason}."

     await member.send(message)
     await ctx.guild.ban(member, reason=reason)

     embed = discord.Embed(
        title = 'Успешно!',
        description = f'{member} забанен по причине {reason} модератором {ctx.author.mention}!',
        colour = discord.Colour.from_rgb(0, 255, 0)
    )
     await ctx.send(embed=embed)
    
@ban.error
async def cmderr27262682919625141(ctx, error):
     if isinstance(error, commands.errors.MissingPermissions):
         await ctx.send(':x: У вас недостаточно прав!')


Код полностью рабочий, ошибок нет, но когда я пишу !ban @участник причина
то бот банит с причиной состоящей из 1-ого слова причины, а дальше будто не видит. Как это исправить?
  • Вопрос задан
  • 145 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 2
@dreameddd
async def ban(ctx, member:discord.User=None, *, reason =None):
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
В кавычки причину возьмите
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы