@LxneSamurai

Как сделать сообщение при отсутствии упоминания юзера?

Делаю варн систему, а именно застрял на анварнах (снятие предупреждений)
Всё работает, кроме условия, если упоминание пользователя отсутсвует.
Уже и так, и сяк код крутил - не хочет

Вот сам код на анварн:
@bot.command(aliases=['uw', 'unwarn'])
    @commands.has_permissions(manage_messages=True)
    async def unwarning(ctx, member: discord.Member=None, unit=None):    
        logs=bot.get_channel(айди канала)
        await ctx.message.delete() 


        #Embeds
        emb1=discord.Embed(timestamp=ctx.message.created_at, colour=discord.Color.from_rgb(47, 49, 54))
        emb1.set_author(name=member.name, icon_url=member.avatar_url )
        emb1.set_footer(text="{}".format(ctx.author.name), icon_url=ctx.author.avatar_url, )
        emb1.add_field(name='♢ С пользователя снято 1 предупреждение.', value="Будьте внимательны в следующий раз и прочтите <#айди канала>")
       
        emb1r=discord.Embed(timestamp=ctx.message.created_at, colour=discord.Color.orange())
        emb1r.set_author(name=member.name, icon_url=member.avatar_url )
        emb1r.set_footer(text="{}".format(ctx.author.name), icon_url=ctx.author.avatar_url, )
        emb1r.add_field(name='♢ Пользователь имеет предупреждение #1', value="Вы хотите снять больше предупреждений, чем имеет пользователь на данный момент.")

        emb2=discord.Embed(timestamp=ctx.message.created_at, colour=discord.Color.from_rgb(47, 49, 54))
        emb2.set_author(name=member.name, icon_url=member.avatar_url )
        emb2.set_footer(text="{}".format(ctx.author.name), icon_url=ctx.author.avatar_url, )
        emb2.add_field(name='♢ С пользователя снято 2 предупреждения.', value="Будьте внимательны в следующий раз и прочтите <#айди канала>")

        emb2r=discord.Embed(timestamp=ctx.message.created_at, colour=discord.Color.orange())
        emb2r.set_author(name=member.name, icon_url=member.avatar_url )
        emb2r.set_footer(text="{}".format(ctx.author.name), icon_url=ctx.author.avatar_url, )
        emb2r.add_field(name='♢ Пользователь имеет предупреждение #2', value="Вы хотите снять больше предупреждений, чем имеет пользователь на данный момент.")

        emb3=discord.Embed(timestamp=ctx.message.created_at, colour=discord.Color.from_rgb(47, 49, 54))
        emb3.set_author(name=member.name, icon_url=member.avatar_url )
        emb3.set_footer(text="{}".format(ctx.author.name), icon_url=ctx.author.avatar_url, )
        emb3.add_field(name='♢ С пользователя снято 3 предупреждения.', value="Будьте внимательны в следующий раз и прочтите <#айди канала>")

        embu=discord.Embed(timestamp=ctx.message.created_at, colour=discord.Color.orange())
        embu.set_author(name=member.name, icon_url=member.avatar_url )
        embu.set_footer(text="{}".format(ctx.author.name), icon_url=ctx.author.avatar_url, )
        embu.add_field(name='♢ Укажите кол-во предупреждений.', value="Я не могу снять все предупреждения!")

        embm=discord.Embed(timestamp=ctx.message.created_at, colour=discord.Color.orange())
        embm.set_author(name=member.name, icon_url=member.avatar_url )
        embm.set_footer(text="{}".format(ctx.author.name), icon_url=ctx.author.avatar_url, )
        embm.add_field(name='♢ Укажите пользователя.', value="Я не могу снять предупреждения с того, о ком вы подумали, но кого не написали :(.")

        embm1=discord.Embed(timestamp=ctx.message.created_at, colour=discord.Color.orange())
        embm1.set_author(name=member.name, icon_url=member.avatar_url )
        embm1.set_footer(text="{}".format(ctx.author.name), icon_url=ctx.author.avatar_url, )
        embm1.add_field(name='♢ Укажите пользователя.', value="Вы не можете снять предупреждения с себя!")


        await ctx.channel.purge(limit=0)    

        #Roles
        warn1r=ctx.guild.get_role(айди роли)
        warn2r=ctx.guild.get_role(айди роли)
        warn3r=ctx.guild.get_role(айди роли)

#Action
        if member:
           if member == ctx.author:
             await ctx.send(embed=embm1)
           else:
            if unit == "1":
              if warn1r in member.roles:
                await member.remove_roles(warn1r)
              elif warn2r in member.roles:
                await member.remove_roles(warn2r)
                await member.add_roles(warn1r)
              elif warn3r in member.roles:
                await member.remove_roles(warn3r)
                await member.add_roles(warn2r)
              await ctx.send(embed=emb1, delete_after=10)
              await logs.send(embed=emb1)

            elif unit == "2":
              if warn1r in member.roles:
                await ctx.send(embed=emb1r, delete_after=10)
              elif warn2r in member.roles:
                await member.remove_roles(warn2r)
                await ctx.send(embed=emb2, delete_after=10)
                await logs.send(embed=emb2)
              elif warn3r in member.roles:
                await member.remove_roles(warn3r)
                await member.add_roles(warn1r)
                await ctx.send(embed=emb2, delete_after=10)
                await logs.send(embed=emb2)
 
            elif unit == "3":
              if warn1r in member.roles:
                await ctx.send(embed=emb1r, delete_after=10)
              elif warn2r in member.roles:
               await ctx.send(embed=emb2r, delete_after=10)
              elif warn3r in member.roles:
               await member.remove_roles(warn3r)
               await ctx.send(embed=emb3, delete_after=10)
               await logs.send(embed=emb3)
            else:
              await ctx.send(embed=embu, delete_after=10)
            if member is None:
              await ctx.send(embed=embm, delete_after=10)
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
SoreMix
@SoreMix
yellow
Отступы. Проверка на None вложена в первый блок if
6259daa9bca34048470341.jpeg

И получается
if member:
    ....
    if member is None:
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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