0% found this document useful (0 votes)
14 views3 pages

Message

This document contains a Discord bot implementation that manages user invitations and allows users to claim Fortnite accounts based on their invites. It includes functionalities for tracking invites, loading and saving account data, and responding to user interactions through buttons. The bot updates invite information when members join and provides feedback to users about their invite counts and account claims.

Uploaded by

robloxmk12
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views3 pages

Message

This document contains a Discord bot implementation that manages user invitations and allows users to claim Fortnite accounts based on their invites. It includes functionalities for tracking invites, loading and saving account data, and responding to user interactions through buttons. The bot updates invite information when members join and provides feedback to users about their invite counts and account claims.

Uploaded by

robloxmk12
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

import discord

from discord.ext import commands


import random
import asyncio

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

bot = commands.Bot(command_prefix="!", intents=intents)

user_invites = {}
previous_members = set()

async def actualizar_invites():


global user_invites
for guild in bot.guilds:
invites = await guild.invites()
user_invites[guild.id] = {invite.code: (invite.inviter.id, invite.uses) for
invite in invites}

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

old_invites = user_invites.get(guild.id, {}).copy()

await actualizar_invites()

new_invites = user_invites.get(guild.id, {})

inviter_id = None

for invite_code, (inviter, uses) in new_invites.items():


if invite_code in old_invites:
old_uses = old_invites[invite_code][1]
if uses > old_uses:
inviter_id = inviter
break

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.")

async def obtener_invitaciones(user):


return user_invites.get(user.guild.id, {}).get(user.id, 0)

class AccountView(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)

@discord.ui.button(label="Get Account", style=discord.ButtonStyle.primary)


async def get_account(self, interaction: discord.Interaction, button:
discord.ui.Button):
invites = await obtener_invitaciones(interaction.user)

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)

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy