Message
Message
TOKEN = "MTM1NzM1ODkxNTIyMTcyMTE2OA.Gou8Kv.vraNC9NLWfjfTFeRcduJgpvukagQDaz59Odu4o"
CHANNEL_ID = 1358812489986347040
intents = discord.Intents.default()
intents.invites = True
intents.members = True
intents.guilds = True
intents.presences = False
intents.messages = True
user_invites = {}
previous_members = set()
def cargar_cuentas():
try:
with open("NuevoArhcivo.txt", "r", encoding="utf-8") as f:
return [line.strip() for line in f.readlines()]
except FileNotFoundError:
return []
def guardar_cuentas(cuentas):
with open("NuevoArhcivo.txt", "w", encoding="utf-8") as f:
f.write("\n".join(cuentas))
@bot.event
async def on_ready():
print(f"Bot {bot.user} is online.")
await actualizar_invites()
print("Invites cache updated.")
channel = bot.get_channel(CHANNEL_ID)
if channel:
embed = discord.Embed(
title="\U0001F381 Get Your Fortnite Account!",
description="Invite friends to the server and claim an account!",
color=0xA87DC2
)
embed.set_image(url="https://i.imgur.com/93paRjv.png")
view = AccountView()
await channel.send(embed=embed, view=view)
@bot.event
async def on_member_join(member):
global user_invites, previous_members
guild = member.guild
if member.id in previous_members:
print(f"{member.name} ha vuelto a unirse. No se contará la invitación.")
return
await actualizar_invites()
inviter_id = None
previous_members.add(member.id)
if inviter_id:
if inviter_id not in user_invites[guild.id]:
user_invites[guild.id][inviter_id] = 0
user_invites[guild.id][inviter_id] += 1
print(f"{member.name} fue invitado por {inviter_id}. Ahora tiene
{user_invites[guild.id][inviter_id]} invitaciones.")
class AccountView(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
if invites <= 0:
await interaction.response.send_message("You don't have enough invites
to claim an account.", ephemeral=True)
return
cuentas = cargar_cuentas()
if not cuentas:
await interaction.response.send_message("No accounts available right
now.", ephemeral=True)
return
cuenta = random.choice(cuentas)
cuentas.remove(cuenta)
guardar_cuentas(cuentas)
user_invites[interaction.user.guild.id][interaction.user.id] -= 1
await interaction.response.send_message(f"Here is your Fortnite account:
`{cuenta}`", ephemeral=True)
@discord.ui.button(label="Check Invites", style=discord.ButtonStyle.secondary)
async def check_invites(self, interaction: discord.Interaction, button:
discord.ui.Button):
"""Muestra cuántas invitaciones tiene el usuario."""
invites = await obtener_invitaciones(interaction.user)
await interaction.response.send_message(f"You have {invites} invites. Keep
inviting to claim more accounts!", ephemeral=True)
bot.run(TOKEN)