делаю в своем боте систему инвайтов ( ну я думаю вы видели таких ботов как InviteLogger и тд ), когда я создал свою ссылку, бот не считает инвайты и + не пингует того кто пригласил, честно уже не знаю что делать, надеюсь кто-то поможет.
Суть вопроса в том чтобы сделать так когда чел создал свою ссылку и пригласил друга, ему засчитывались инвайты и его пинговало, код ниже.
Вот картинка, ник NUKED, создал ссылку под акком NUKED, пригласил ElezthemDev, пишет что ElezthemDev пригласил себя и 0 инвайтов.
А вот и код
@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)
С базой данных код выше, но с бд всё ок.