Elezthem
@Elezthem
17 лет, плохое зрение...

Как сделать чтобы инвайт считался тому кто по своей ссылке пригласил человека?

делаю в своем боте систему инвайтов ( ну я думаю вы видели таких ботов как InviteLogger и тд ), когда я создал свою ссылку, бот не считает инвайты и + не пингует того кто пригласил, честно уже не знаю что делать, надеюсь кто-то поможет.
Суть вопроса в том чтобы сделать так когда чел создал свою ссылку и пригласил друга, ему засчитывались инвайты и его пинговало, код ниже.

Вот картинка, ник NUKED, создал ссылку под акком NUKED, пригласил ElezthemDev, пишет что ElezthemDev пригласил себя и 0 инвайтов.image.png

А вот и код

@bot.event
async def on_member_join_2(member):
    chann = None
    guild = member.guild
    total = 0

    cursor.execute('''
        SELECT channel_id FROM settings WHERE guild_id = ?
    ''', (guild.id,))
    result = cursor.fetchone()

    if result:
        channel_id = result[0]
        chann = bot.get_channel(channel_id)

    for invite in await guild.invites():
        if invite.inviter.id == member.id:
            total += invite.uses

    cursor.execute('''
        INSERT OR REPLACE INTO invites (user_id, total_invites)
        VALUES (?, ?)
    ''', (member.id, total))

    conn.commit()

    if chann:
        embed = nextcord.Embed(
            title='Leafy InviteLogger',
            description=f'{member.mention} join the server!\n\n Invited him {member.mention}\n Total invitations {total}',
            colour=0x2b2d31
        )

        embed.set_footer(text='https://elezthem.w3spaces.com/')

        await chann.send(embed=embed)


@bot.command()
@commands.has_permissions(administrator=True)
async def set_channel(ctx, channel: nextcord.TextChannel):
    """
    `.set_channel #channel`
    """
    if ctx.author.guild_permissions.administrator:
        cursor.execute('''
            INSERT OR REPLACE INTO settings (guild_id, channel_id)
            VALUES (?, ?)
        ''', (ctx.guild.id, channel.id))

        conn.commit()
        await ctx.send(f'The invitation registration channel is set to {channel.mention}')
    else:
        await ctx.send('You do not have permission to run this command.')


@bot.command()
async def invites(ctx, member: nextcord.Member = None):
    """
    `.invites @user`
    """
    if member is None:
        user = ctx.author
    else:
        user = member

    cursor.execute('''
        SELECT total_invites FROM invites WHERE user_id = ?
    ''', (user.id,))
    
    result = cursor.fetchone()

    if result is not None:
        total_invites = result[0]
    else:
        total_invites = 0

    embed = nextcord.Embed(
        title='Leafy InviteLogger',
        description=f"\n**User**: {user.mention}\n\nTotal number of **invited** users: ``{total_invites}``",
        colour=0x2b2d31
    )

    await ctx.send(embed=embed)


С базой данных код выше, но с бд всё ок.
  • Вопрос задан
  • 300 просмотров
Решения вопроса 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Исправить опечатки в коде.
Ты не для того человека считаешь и не того человека выводишь в Embed
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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