Goshujin
@Goshujin
Я только начал изучать Python, не бейте.

Бот выдает сразу 2 warn, как исправить?

Хотел сделать очень простую систему предупреждений, при вносе в json бот дает сразу 2 warn, при повторе начисляет нормально. Прошу помочь с исправлением дублирования первого предупреждения.
Код:
@Bot.command()
async def warn(ctx, member: discord.Member, reason):
    mem = ctx.message.author
    if get(mem.roles, id = 824262219423678515):
        await ctx.message.delete()
        with open("D:\\UsersWarns.json", 'r') as f:
            warns = json.load(f)
        async def UserAdd_Warn1(warns, user):
            if not user in warns:
                warns[user] = {}
                warns[user]['User_Warns'] = 1
                emb = discord.Embed(title = f'{member.display_name}#{member.discriminator} Выдано предупреждение.', color = 0xff0000)
                emb.add_field(name="Модератор",value=ctx.message.author.mention,)
                emb.add_field(name="Пользователь",value=member.mention,)
                emb.add_field(name="Причина",value=reason,)
                emb.set_thumbnail(url="https://i.imgur.com/K2GwJCd.png")
                emb.set_footer(text = f"ID: {member.id} → {ctx.message.created_at.strftime('[%d.%m.%Y %H:%M:%S]')}")
                await ctx.send(embed = emb)
        await UserAdd_Warn1(warns, str(member.id))
        async def UserAdd_Warns(warns, user, User_Warns):
            warns[user]['User_Warns'] += User_Warns
        await UserAdd_Warns(warns, str(member.id), 1)
        with open("D:\\UsersWarns.json", 'w') as f:
            json.dump(warns, f)
    
    else:
        pass
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Сначала вызвали функцию UserAdd_Warn1, которая делает User_Warns = 1
Потом вызвали функцию, которая делает User_Warns += 1
1+1=2

Решение? не вызывать вторую функцию
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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