Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import discord, json, datetime, random, requests
- from discord.ext import commands
- from discord import app_commands, ui
- from discord.app_commands import Choice
- client = commands.Bot(command_prefix="!", intents=discord.Intents.all())
- client.remove_command("help")
- tree = client.tree
- rosec = "nostealing"
- db = "D:/nUSA/PDS/Bot/db.json"
- logs = "D:/nUSA/PDS/Bot/logs.txt"
- class Colours:
- class Brand:
- red = 0xBC3131
- blue = 0x2E3E60
- gray = 0x383838
- class Logs:
- red = 0xF1CACC
- orange = 0xFFD2BA
- yellow = 0xFDF2CF
- green = 0xBAE2CE
- blurple = 0xD9D2E8
- def precheck():
- async def thecheck(interaction : discord.Interaction):
- actorid = isconnected(interaction.user)
- if not actorid:
- await interaction.response.send_message(embed=discord.Embed(title="Command Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like you've connected your **roblox** account"), ephemeral=True)
- return False
- actorrank = iscommand(actorid)
- if actorrank == None:
- await interaction.response.send_message(embed=discord.Embed(title="Command Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like you're in the group"), ephemeral=True)
- return False
- return True
- return app_commands.check(thecheck)
- def historylog(actorid, userid, timestamp, action, txtaction):
- userid = str(userid)
- with open(db, "r+") as f:
- data = json.load(f)
- if userid in data["history"]:
- data["history"][userid]["employment"][timestamp] = action
- else:
- data["history"][userid] = {
- "employment": {
- timestamp: action
- },
- "packages": {
- "total": 0
- }
- }
- f.seek(0)
- f.truncate()
- json.dump(data, f, indent=4)
- with open(logs, "a") as f:
- f.write(f"[{timestamp}] {txtaction}" + "\n")
- #roblox
- def getuser(user):
- if isinstance(user, int):
- user = json.loads(requests.get(f"https://users.roblox.com/v1/users/{user}").text)
- if "errors" in user:
- return None
- else:
- user = json.loads(requests.post("https://users.roblox.com/v1/usernames/users", json={"usernames": [user], "excludeBannedUsers": True}).text)
- if not user["data"]:
- return None
- user = user["data"][0]
- return user
- def getmugshot(userid):
- pic = json.loads(requests.get(f"https://thumbnails.roblox.com/v1/users/avatar-headshot?userIds={userid}&size=720x720&format=Png&isCircular=false").text)["data"][0]["imageUrl"]
- return pic
- #returns roid
- def isconnected(discorduser):
- with open(db, "r+") as f:
- data = json.load(f)
- if str(discorduser.id) in data["connections"]:
- return data["connections"][str(discorduser.id)]
- return False
- #returns whether in group and if command
- def iscommand(userid):
- user = [el for el in json.loads(requests.get(f"https://groups.roblox.com/v1/users/{userid}/groups/roles").text)["data"] if el["group"]["id"] == 16367093]
- if user:
- if user[0]["role"]["rank"] >= 30:
- return (True, user[0]["role"])
- else:
- return (False, user[0]["role"])
- else:
- return None
- @client.event
- async def on_ready():
- print(f"Packages now online with {round(client.latency * 1000)}ms ping.")
- @tree.command(name="link", description="Link your Roblox and Discord", guilds=[discord.Object(1145424590152151091)])
- async def link(interaction : discord.Interaction, username : str):
- with open(db, "r+") as f:
- data = json.load(f)
- if str(interaction.user.id) in data["connections"]:
- await interaction.response.send_message(embed=discord.Embed(title="Link Error", colour=Colours.Brand.red, description="Uh-oh, it looks like you've already connected your Roblox & Discord together\nIf you believe this is a mistake or wish to unlink your accounts, use the `/unlink` command"), ephemeral=True)
- return
- user = getuser(username)
- if not user:
- await interaction.response.send_message(embed=discord.Embed(title="Link Error", colour=Colours.Brand.red, description="Uh-oh, it looks like the username you entered is not a valid __Roblox__ account"), ephemeral=True)
- userid = user["id"]
- colours = ["black", "blue", "brown", "green", "orange", "purple", "red", "white", "yellow"]
- animals = ["sheep", "cow", "pig", "dog", "cat", "fish", "panda", "rabbit"]
- code = f"{random.choice(colours)} {random.choice(animals)} {random.choice(colours)} {random.choice(animals)} {random.choice(colours)} {random.choice(animals)}"
- #Create View
- class ConfirmButton(discord.ui.View):
- #Setup View
- def __init__(self, *, clicked=False, timeout=180):
- #Globalise
- super().__init__(timeout=timeout)
- self.value = None
- #Add button to view
- @discord.ui.button(emoji="✔", label="Done", style=discord.ButtonStyle.green)
- #Button onclick function
- async def donebutton(self, button : discord.ui.Button, interaction : discord.Interaction):
- self.value = True
- self.stop()
- confirmChange = ConfirmButton()
- await interaction.response.send_message(embed=discord.Embed(title="Link Code", colour=Colours.Brand.gray, description=f"Set your Roblox **About** section to;```\n{code}\n```If the code ends up being tagged, just click \"Dismiss message\" and try the command again").set_footer(text="This prompt will expire after 3 minute"), view=confirmChange, ephemeral=True)
- await confirmChange.wait()
- if confirmChange.value:
- user = getuser(user["id"])
- if code not in user["description"]:
- await interaction.edit_original_response(embed=discord.Embed(title="Link Error", colour=Colours.Brand.red, description=f"Uh-oh, it looks like you haven't put in the correct code.\nTry again"), view=None)
- return
- mugshot = getmugshot(user["id"])
- await interaction.edit_original_response(embed=discord.Embed(title="Link Success", colour=Colours.Brand.blue, description=f"You have successfully connected {interaction.user.mention} to `{username}`").set_thumbnail(url=json.loads(requests.get(f"https://thumbnails.roblox.com/v1/users/avatar-headshot?userIds={user['id']}&size=720x720&format=Png&isCircular=false").text)["data"][0]["imageUrl"]), view=None)
- with open(db, "r+") as f:
- data = json.load(f)
- data["connections"][str(interaction.user.id)] = user["id"]
- f.seek(0)
- f.truncate()
- json.dump(data, f, indent=4)
- else:
- await interaction.edit_original_response(embed=discord.Embed(title="Link Error", colour=Colours.Brand.red, description=f"3 Minute link timer expired"), view=None)
- @tree.command(name="unlink", description="Unlink your Roblox and Discord", guilds=[discord.Object(1145424590152151091)])
- @precheck()
- async def unlink(interaction : discord.Interaction, username : str):
- with open(db, "r+") as f:
- data = json.load(f)
- del data["connections"][str(interaction.user.id)]
- f.seek(0)
- f.truncate()
- json.dump(data, f, indent=4)
- await interaction.response.send_message(embed=discord.Embed(title="Unlinked", colour=Colours.Brand.blue, description="Your Roblox and Discord accounts have successfully been unlinked"), ephemeral=True)
- @tree.command(name="submit", description="Submit packages", guilds=[discord.Object(1145424590152151091)])
- @precheck()
- async def submit(interaction : discord.Interaction, amount : int, startsc : str, endsc : str):
- user = str(isconnected(interaction.user))
- timestamp = datetime.datetime.now().strftime("%m/%d/%Y %H:%M:%S")
- with open(db, "a") as f:
- data = json.load(f)
- if user in data["history"]:
- data["history"][user]["packages"][rntime] = {
- "amount": amount,
- "startsc": startsc,
- "endsc": endsc,
- "verified": False
- }
- else:
- data["history"][user] = {
- "employment": {},
- "packages": {
- "total": 0,
- rntime: {
- "amount": amount,
- "startsc": startsc,
- "endsc": endsc,
- "verified": False
- }
- }
- }
- f.seek(0)
- f.truncate()
- json.dump(data, f, indent=4)
- mugshot = getmugshot(user)
- submitchannel = client.get_channel(1159248926684221571)
- await submitchannel.send(embed=discord.Embed(title=user, colour=Colours.Brand.blue, description=f"{timestamp}\n{amount}\n[{startsc}]({startsc})\n[{endsc}]({endsc})").set_thumbnail(url=mugshot))
- await interaction.response.send_message(embed=discord.Embed(title="Package Submission", colour=Colours.Brand.blue, description="Your packages have successfully been submitted").set_thumbnail(url=mugshot), ephemeral=True)
- @tree.command(name="approve", description="Approve packages", guilds=[discord.Object(1145424590152151091)])
- @precheck()
- async def approve(interaction : discord.Interaction, msgid : int):
- try:
- packages = await interaction.channel.fetch_message(msgid)
- except Exception as e:
- await interaction.response.send_message(embed=discord.Embed(title="Approve Packages Error", colour=Colours.Brand.red, description=f"Uh-oh, it looks like we ran into the following error;```\n{e}\n```"), ephemeral=True)
- return
- if packages.author.id != 1143679506842931231 or not packages.embeds:
- await interaction.response.send_message(embed=discord.Embed(title="Approve Packages Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like that message is a package submission"), ephemeral=True)
- info = packages.embeds[0]
- userid = info.title
- timestamp = info.description.split("\n")[0]
- amount = info.description.split("\n")[1]
- actorid = isconnected(interaction.user)
- actorname = getuser(actorid)["name"]
- await interaction.response.send_message(embed=discord.Embed(title="Packages Approved", colour=Colours.Brand.blue, description=f"`{username}`'s `{amount}` packages have been approved"), ephemeral=True)
- with open(db, "r+") as f:
- data = json.load(f)
- data["history"][userid]["packages"][timestamp]["verified"] = actorid
- data["history"][userid]["packages"]["total"] += amount
- f.seek(0)
- f.truncate()
- json.dump(data, f, indent=4)
- user = getuser(userid)["name"]
- with open(logs, "r+") as f:
- f.write(f"[{timestamp}] {user} ({userid}) {amount} PACKGES APPROVED BY {actorname} ({actorid})\n")
- action = app_commands.Group(name="action", description="Everything related to performing group actions")
- action = app_commands.guilds(discord.Object(1145424590152151091))(action)
- tree.add_command(action)
- @action.command(name="hire", description="Hire a user")
- @precheck()
- @app_commands.choices(rank = [
- Choice(name="Manager", value="40"),
- Choice(name="Supervisor", value="30"),
- Choice(name="Senior Delivery Driver", value="20"),
- Choice(name="Delivery Driver", value="17"),
- Choice(name="Trainee Delivery Driver", value="15")
- ])
- @app_commands.choices(division = [
- Choice(name="Management", value="Mgmt"),
- Choice(name="Human Resources", value="HR"),
- Choice(name="Delivery", value="Dlvry")
- ])
- async def hire(interaction : discord.Interaction, user : str, rank : Choice[str]=None, division : Choice[str]=None, notes : str=None):
- #actor checks
- actorid = isconnected(interaction.user)
- actorname = getuser(actorid)["name"]
- actorrank = iscommand(actorid)
- if not actorrank[0]:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like you can do that"), ephemeral=True)
- return
- #checks
- user = getuser(user)
- if not user:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like that user exists"), ephemeral=True)
- return
- userid = user["id"]
- username = user["name"]
- #code
- embed = discord.Embed(
- title="PDS Business Actions",
- colour=Colours.Logs.green,
- description=f"**User Hired**\n`{username}` has been **hired** into the business."
- )
- mugshot = getmugshot(userid)
- embed.set_thumbnail(url=mugshot)
- embed.set_footer(text=interaction.user.nick, icon_url="https://cdn.discordapp.com/emojis/1165632658492100748.webp?size=96&quality=lossless")
- if not rank:
- class rank:
- name = "Trainee Delivery Driver"
- value = "15"
- embed.add_field(name="Rank", value=rank.name, inline=False)
- if not division:
- class division:
- name = "Delivery"
- value = "Dlvry"
- embed.add_field(name="Division", value=division.name, inline=False)
- if notes:
- embed.add_field(name="Notes", value=notes, inline=False)
- actionchannel = client.get_channel(1145424593213988967)
- actionlink = await actionchannel.send(embed=embed)
- actionlink = actionlink.jump_url
- await interaction.response.send_message(embed=discord.Embed(title="Action Hire Successful", colour=Colours.Brand.blue, description=f"User has successfully been hired\n{actionlink}"), ephemeral=True)
- log = {
- "hired": {
- "rank": rank.name,
- "division": division.name
- }
- }
- if notes:
- log["hired"]["notes"] = notes
- log["hired"]["by"] = actorid
- timestamp = datetime.datetime.now().strftime("%m/%d/%Y %H:%M:%S")
- historylog(actorid, userid, timestamp, log, f"{username} ({userid}) HIRED BY {actorname} ({actorid}) AS {rank.name} IN {division} EXTRA {notes}")
- el = requests.post(f"https://groups.roblox.com/v1/groups/16367093/join-requests/users/{userid}", cookies={".ROBLOSECURITY": rosec})
- el = requests.post(f"https://groups.roblox.com/v1/groups/16367093/join-requests/users/{userid}", cookies={".ROBLOSECURITY": rosec}, headers={"x-csrf-token": el.headers["x-csrf-token"]})
- if rank.name == "Trainee Delivery Driver":
- return
- roleId = {"40": 100735232, "30": 100735223, "20": 100735217, "17": 91563673, "15": 101369050}[rank.value]
- el = requests.patch(f"https://groups.roblox.com/v1/groups/16367093/users/{userid}", data={"roleId": roleId}, cookies={".ROBLOSECURITY": rosec})
- el = requests.patch(f"https://groups.roblox.com/v1/groups/16367093/users/{userid}", data={"roleId": roleId}, cookies={".ROBLOSECURITY": rosec}, headers={"x-csrf-token": el.headers["x-csrf-token"]})
- @action.command(name="rank", description="Rank a user")
- @precheck()
- @app_commands.choices(rank = [
- Choice(name="Manager", value="40"),
- Choice(name="Supervisor", value="30"),
- Choice(name="Senior Delivery Driver", value="20"),
- Choice(name="Delivery Driver", value="17"),
- Choice(name="Trainee Delivery Driver", value="15")
- ])
- async def rank(interaction : discord.Interaction, user : str, rank : Choice[str], notes : str=None):
- #actor checks
- actorid = isconnected(interaction.user)
- actorname = getuser(actorid)["name"]
- actorrank = iscommand(actorid)
- if not actorrank[0]:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like you can do that"), ephemeral=True)
- return
- #user checks
- user = getuser(user)
- if not user:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like that user exists"), ephemeral=True)
- return
- userid = user["id"]
- username = user["name"]
- userrank = iscommand(userid)
- if userrank[0] == None:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like that user is employed in PDS"), ephemeral=True)
- return
- #vars
- actorrankrank = actorrank[1]["rank"]
- userrankrank = userrank[1]["rank"]
- userrankname = userrank[1]["name"]
- #code
- if actorrankrank <= userrankrank:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description=f"Uh-oh, you can't change the rank of a user that has the same or a higher rank than you"), ephemeral=True)
- return
- if actorrankrank <= int(rank.value):
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description=f"Uh-oh, you can't rank someone to the same or a higher rank than yours"), ephemeral=True)
- return
- mugshot = getmugshot(userid)
- embed = discord.Embed(
- title="PDS Business Actions",
- colour=Colours.Logs.green,
- description=""
- )
- embed.set_thumbnail(url=mugshot)
- embed.set_footer(text=interaction.user.nick, icon_url="https://cdn.discordapp.com/emojis/1165632658492100748.webp?size=96&quality=lossless")
- promotion = None
- if int(rank.value) > userrankrank:
- promotion = True
- embed.description=f"**User Promoted**\n`{username}` has been **promoted** in the business."
- else:
- promotion = False
- embed.colour=Colours.Logs.red
- embed.description=f"**User Demoted**\n`{username}` has been **demoted** in the business."
- embed.add_field(name="Current", value=rank.name, inline=False)
- embed.add_field(name="Previous", value=userrankname, inline=False)
- if notes:
- embed.add_field(name="Notes", value=notes, inline=False)
- actionchannel = client.get_channel(1145424593213988967)
- actionlink = await actionchannel.send(embed=embed)
- actionlink = actionlink.jump_url
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Successful", colour=Colours.Brand.blue, description=f"User rank has successfully been logged\n{actionlink}"), ephemeral=True)
- log = {
- "ranked": {
- "beforerank": userrankname,
- "afterrank": rank.name,
- "type": {"True": "Promotion", "False": "Demotion"}[str(promotion)]
- }
- }
- if notes:
- log["ranked"]["notes"] = notes
- log["ranked"]["by"] = actorid
- timestamp = datetime.datetime.now().strftime("%m/%d/%Y %H:%M:%S")
- historylog(actorid, user["id"], timestamp, log, f"{username} ({userid}) { {'True': 'PROMOTED', 'False': 'DEMOTED'}[str(promotion)]} BY {actorname} ({actorid}) FROM {userrankname} TO {rank.name} EXTRA {notes}")
- roleId = {"40": 100735232, "30": 100735223, "20": 100735217, "17": 91563673, "15": 101369050}[rank.value]
- el = requests.patch(f"https://groups.roblox.com/v1/groups/16367093/users/{userid}", data={"roleId": roleId}, cookies={".ROBLOSECURITY": rosec})
- el = requests.patch(f"https://groups.roblox.com/v1/groups/16367093/users/{userid}", data={"roleId": roleId}, cookies={".ROBLOSECURITY": rosec}, headers={"x-csrf-token": el.headers["x-csrf-token"]})
- @action.command(name="warn", description="Warn a user")
- @precheck()
- @app_commands.choices(warntype = [
- Choice(name="Verbal", value="Vrbl"),
- Choice(name="Record", value="Rcrd")
- ])
- async def warn(interaction : discord.Interaction, user : str, warntype : Choice[str], notes : str):
- #actor checks
- actorid = isconnected(interaction.user)
- actorname = getuser(actorid)["name"]
- actorrank = iscommand(actorid)
- if not actorrank[0]:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like you can do that"), ephemeral=True)
- return
- #user checks
- user = getuser(user)
- if not user:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like that user exists"), ephemeral=True)
- return
- userid = user["id"]
- username = user["name"]
- userrank = iscommand(userid)
- if userrank == None:
- await interaction.response.send_message(embed=discord.Embed(title="Action Warn Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like that user is employed in PDS"), ephemeral=True)
- return
- #vars
- userrank = iscommand(userid)
- actorrankrank = actorrank[1]["rank"]
- userrankrank = userrank[1]["rank"]
- #code
- if actorrankrank <= userrankrank:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description=f"Uh-oh, you can't warn a user that has the same or a higher rank than you"), ephemeral=True)
- return
- mugshot = getmugshot(userid)
- embed = discord.Embed(
- title="PDS Business Actions",
- colour=Colours.Logs.orange,
- description=f"**User Warned**\n`{username}` has been **warned** in the business."
- )
- embed.set_thumbnail(url=mugshot)
- embed.set_footer(text=interaction.user.nick, icon_url="https://cdn.discordapp.com/emojis/1165632658492100748.webp?size=96&quality=lossless")
- embed.add_field(name="Type", value=warntype.name, inline=False)
- embed.add_field(name="Notes", value=notes, inline=False)
- actionchannel = client.get_channel(1145424593213988967)
- actionlink = await actionchannel.send(embed=embed)
- actionlink = actionlink.jump_url
- await interaction.response.send_message(embed=discord.Embed(title="Action Warn Successful", colour=Colours.Brand.blue, description=f"User warn has successfully been logged\n{actionlink}"), ephemeral=True)
- log = {
- "warned": {
- "type": warntype.name
- }
- }
- if notes:
- log["warned"]["notes"] = notes
- log["warned"]["by"] = actorid
- timestamp = datetime.datetime.now().strftime("%m/%d/%Y %H:%M:%S")
- historylog(actorid, user["id"], timestamp, log, f"{username} ({userid}) {warntype.name} WARNED BY {actorname} ({actorid}) FOR {notes}")
- @action.command(name="term", description="Terminate a user")
- @precheck()
- @app_commands.choices(termtype = [
- Choice(name="Honourable", value="Hnrbl"),
- Choice(name="General", value="Gnrl"),
- Choice(name="Dishonourable", value="Dshnrbl"),
- Choice(name="Blacklist", value="Blklst")
- ])
- async def term(interaction : discord.Interaction, user : str, termtype : Choice[str], notes : str):
- #actor checks
- actorid = isconnected(interaction.user)
- actorname = getuser(actorid)["name"]
- actorrank = iscommand(actorid)
- if not actorrank[0]:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like you can do that"), ephemeral=True)
- return
- #user checks
- user = getuser(user)
- if not user:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like that user exists"), ephemeral=True)
- return
- userid = user["id"]
- username = user["name"]
- userrank = iscommand(userid)
- if userrank == None:
- await interaction.response.send_message(embed=discord.Embed(title="Action Term Error", colour=Colours.Brand.red, description="Uh-oh, it doesn't look like that user is employed in PDS"), ephemeral=True)
- return
- #vars
- actorrankrank = actorrank[1]["rank"]
- userrankrank = userrank[1]["rank"]
- #code
- if actorrankrank <= userrankrank:
- await interaction.response.send_message(embed=discord.Embed(title="Action Rank Error", colour=Colours.Brand.red, description=f"Uh-oh, you can't terminate a user that has the same or a higher rank than you"), ephemeral=True)
- return
- embed = discord.Embed(
- title="PDS Business Actions",
- colour=Colours.Logs.red,
- description=f"**User Terminated**\n`{username}` has been **terminated** from the business."
- )
- mugshot = getmugshot(userid)
- embed.set_thumbnail(url=mugshot)
- embed.set_footer(text=interaction.user.nick, icon_url="https://cdn.discordapp.com/emojis/1165632658492100748.webp?size=96&quality=lossless")
- embed.add_field(name="Type", value=termtype.name, inline=False)
- embed.add_field(name="Notes", value=notes, inline=False)
- actionchannel = client.get_channel(1145424593213988967)
- actionlink = await actionchannel.send(embed=embed)
- actionlink = actionlink.jump_url
- await interaction.response.send_message(embed=discord.Embed(title="Action Term Successful", colour=Colours.Brand.blue, description=f"User term has successfully been logged\n{actionlink}"), ephemeral=True)
- log = {
- "terminated": {
- "type": termtype.name
- }
- }
- if notes:
- log["terminated"]["notes"] = notes
- log["terminated"]["by"] = actorid
- timestamp = datetime.datetime.now().strftime("%m/%d/%Y %H:%M:%S")
- historylog(actorid, userid, timestamp, log, f"{username} ({userid}) {termtype.name} TERMINATED BY {actorname} ({actorid}) FOR {notes}")
- el = requests.delete(f"https://groups.roblox.com/v1/groups/16367093/users/{userid}", cookies={".ROBLOSECURITY": rosec})
- el = requests.delete(f"https://groups.roblox.com/v1/groups/16367093/users/{userid}", cookies={".ROBLOSECURITY": rosec}, headers={"x-csrf-token": el.headers["x-csrf-token"]})
- @client.command()
- @commands.check(lambda ctx : ctx.author.id == 301014178703998987)
- async def connect(ctx):
- await tree.sync()
- await tree.sync(guild=discord.Object(1145424590152151091))
- client.run("nostealing")
- #nostealing
Advertisement
Add Comment
Please, Sign In to add comment