Этот вопрос закрыт для ответов, так как повторяет вопрос Почему не показывает ник человека который пригласил пользователя на сервер в discord.py?
@Rizzener

Как проверить сколько человек пригласил на сервер discord?

Хочу сделать проверку на приглашения на дискорд сервер
Нужно сделать такую проверку как работает бот InviteTracer
То есть если у пользователя больше 3х приглашений и он не получал промокод то ему бот выдаст промокод
Нужно что бы пользователи были разные что бы не было абуза + если игрок вышел после приглашения то его не защитает

import discord
import random

intents = discord.Intents.default()
intents.typing = False
intents.presences = False
intents.members = True
intents.dm_messages = True

client = discord.Client(intents=intents)

def generate_promo_code():
characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
return ''.join(random.choice(characters) for _ in range(7))

def check_user_promocode(user_id):
with open('used_promocodes.txt', 'r') as file:
for line in file:
if str(user_id) in line:
return True
return False

@client.event
async def on_ready():
print('Бот успешно запущен')

@client.event
async def on_message(message):
if isinstance(message.channel, discord.DMChannel):
if message.content.startswith('!promo'):
guild = client.get_guild(1209801600974200862)
member = guild.get_member(message.author.id)
if member:
invites = await guild.invites()
for invite in invites:
if invite.inviter.id == member.id:
if invite.uses >= 3:
if not check_user_promocode(message.author.id):
promocode = generate_promo_code()
await message.author.send(f'Вы получили промокод: {promocode}')
with open('used_promocodes.txt', 'a') as file:
file.write(f'{message.author.id} ({message.author.name}) >>> {promocode}\n')
return
else:
await message.author.send('Вы уже получили промокод')
return
await message.author.send('Для получения пригласите 3 или более людей')
else:
if message.content.startswith('!promo'):
await message.channel.send('Эту команду можно использовать только в личных сообщениях!')

client.run('')
  • Вопрос задан
  • 80 просмотров
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы