#Basic Pycord Help (Quick Questions Only)
1 messages · Page 10 of 1
yeah i think that's just the order they appear in the internal command list
the default sort if you set sort=True is alphabetical
but you can pass in a custom function to sort them
how do I set .description for context menu commands?
i don't think they have one? im not sure
yeah since you'd never see them
but in exchange they have looser name restrictions
like capitals and spaces
yeah
like I have py desc = command.description if not desc: desc = "No description provided."
so they all just get "No description provided."
yeah
thanks Nelo, this has all been very helpful 🙂
is there a way to get the command input that caused an error in an error handler? speaking in the context of a global handler using ext.commands
i see kwargs is a thing but i don't understand how to use it
is it a prefix command?
or a slash command
prefix
all good

though to refer to your original find, ctx.kwargs does return a proper mapping of variables to arguments in the form of a dict
oh?
this may be more useful for longer commands or commands with more vague arguments, since you can check specific ones instead of having to guess from message content
makes sense
e.g. in the example posted above, the body variable is whatever python code i threw into it
thanks again!
all good
seting up bot on the hosting platform, and trying to get it to load the cogs folder but cant get the relative path FileNotFoundError: [Errno 2] No such file or directory: '/cogs' A3PO.py is the main file. any help on getting a relative directory
for filename in os.listdir('./cogs'):
if filename.endswith('.py'):
cog=filename[:-3]
bot.load_extension(f'cogs.{filename[:-3]}')
print(f'Loaded {cog}')
just do 'cogs'
small update on kwargs
it seems that just using ctx.args gets more results than kwargs, presumably due to what type of command it is and all but that's good for future reference
just used non filtered versions here out of laziness
123 was the actual input i used so
ah yeah, i suppose it depends on how your command is defined
args also includes self (if the command is in a cog, typically the bot object) and ctx (being the context), but you already have access to these elsewhere
yeah
so i guess that's all for me but this'll be nice for anyone else in the future
likely would need to be looked at in the docs for the kwargs vs args bit
on_command_error will work for / commands too?
@silver moat ?
@bot.slash_command(guild_ids=[XXX])
async def invite(ctx, options['id']):
inviteuser.invite(account, plex, sections, options['id'])
await ctx.send("Invited user with id {} to Plex server {}".format(options['id'], plex.friendlyName))
async def invite(ctx, options['id']):
^
SyntaxError: invalid syntax
what am i doing wrong here?
on_application_command_error
Well you are setting a value as a parameter
ty
how do i do it?
dont i want this?
You can't index a dict in your parameters
isnt that a list?
Sure
I don't think I understand what you're trying to do...
im trying to ask the user for their id
in the slash command
optionslist = ['id']
@bot.event
async def on_ready():
print(f"We have logged in as {bot.user}")
@bot.slash_command(guild_ids=[XXX])
async def invite(ctx, options=optionslist):
is this right?
Well just make a parameter id
how
Like a normal python function
so add id after ctx?
@bot.slash_command(guild_ids=[XXX])
async def invite(ctx, id: discord.Option(int, "ID of the user to invite")):```
Yes
it's already required unless you say it's not
You can check for exemples on pycord's GitHub :)
am i not qallowed to use id?
it's just a warning
you now have two variables named id in the same scope
you really need to learn basic python before writing a discord bot
i know
so go do that
im just scrapping this together because i need it asap
with github copilot doing half of it
at least read the guide and skim the docs then
@prisma flicker
Looking at the docs it doesn't really work the way i want to.
What i am trying to do is to check if there's a missing permission error.
Creating a global handler to check this
on_application_command_error
i said what i'm trying to do, checking that certain error if there's a missing permission
does it work the same?
nvm found out
nope nvm
what's the right event to check a missing permission for / commands
@prisma flicker u here?
on_application_command_error
what's confusing you?
the parameters they had, it works a bit different from a normal command that works with prefix
if it was error it would make a bit more sense in my head but i got it now
so you're good now?
yes x)
is this checking for users, bots, or both?
none, it checks for any application command error
yes but im doing it for missing permission
so u tryna say that the command misses permissions? 😂
ik its not sorted out of the list, its still in test progress
tryna find out how it works exactly
you should get rid of the return and do else: raise error
yes i seen in the example, will do
MissingPermissions is when the user is missing permissions from the commands.has_permissions check
what about the bot?
you want BotMissingPermissions
This check raises a special exception, BotMissingPermissions that is inherited from CheckFailure.

Oh awesome, thanks a lot guys
Use discord.Option
Here's the slash options example.
@fervent cradle ^
There's this bot that I'm interested in, called watchbot, I'm interested in how it doesn't get ratelimited, since it's watching 1000s of bots and checking the bots status every time, how do they do that if anyone knows
on_member_update also watches for presence changes
async def ar(ctx, word, emoji):
if f'{word}' in ctx.message.content.lower():
await ctx.message.add_reaction(f'{emoji}')
await ctx.send('a')``` i made this command and it works but how can i make it add the reaction every time someone has 'word' in their message and not just once?
what's wrong here:
if answer_1 == "":
UnboundLocalError: local variable 'answer_1' referenced before assignment```
form an if statement, use this count as your core method to compare with
basically this
Also use *
Can I have unicode emojis in the command description somehow?
How to pass regex rules
You have not defined the variable
also how to add this install button in your bot status
async def on_member_remove(member): print(f"{member.id} has left the server")
this isnt detecting when people leave
intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(intents=intents)
can someone send me https://github.com/Pycord-Development/pycord/tree/master/examples/views/button_roles.py the contetns,i think github is down https://pfp.is-a-stripper.xyz/sexy-man
Pycord, a maintained fork of discord.py, is a python wrapper for the Discord API - pycord/button_roles.py at master · Pycord-Development/pycord
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
thanks
?
can i use unicode emojis in command description
This is the pycord server, please ask in the discord.py server if you need help with discord.py
no
how can u add invitation button in my bot profile
The add to server button? I think your bot needs to be verified first, and then in the dev portal u can turn it on
Don't remember exactly where
check if the bot is public inside the discord application stuff
Doesn't have to be verified but yeah it's in the dev portal
ah ok thanks. I'll be looking to see if I can find it
i cant see the option
where is it
?
I'm not sure if I can post this here, it's kind of a general discord bot question. I'm trying to add an About Me to my bot and it just won't show up. I followed every tutorial and stackoverflow post I could find, but I did exactly as they said. I put it in the description field on the developer page, and clicked save. Reloading the page shows it's still there, so it's actually saving. I thought it could be server lag, so I waited. It's been 5 hours and nothing.
its a glitch bcs i can't see bots about me too. only on mobile i can so check your bot's about me on discord mobile version
and u should ask that in discord developers server not here
Ok, thanks :)
how do i send stickers?
Use commands group with invoke_without_context as True
give me a moment
i cant see this param here
is it not listed
also how can i make only 2 options available for 1 argument in my slash
this isn't possible
😦
you can use slash groups, but you can't invoke the original group by itself if it has any commands
it would be cool if it was possible
lets say you have the most important command in a category
then initializing the name of category would launch this main commands
lets say language command. choose either en or es
is it possible to make
well you can pass choices into options
but you don't need that
because you can localize command and option names and descriptions anyway
smth like that
discord.Option([discord.OptionChoice('en'),discord.OptionChoise('es')]
nvm fixed
what's this close thingy?
slash commands can be mentioned?
@bleak cloud type /close to close
if you want
but you dont want
since you didnt solve the issue
no, i meant that blue text
it looks same as @mention or #mention
i didn't know slash commands can be mentioned
how?
</command name:command id>
</like so:1234567890>
</wow thanks:1008344689428144187>
Is slash subcommand counts in the 100 commands limit ? Or only the the main command counts ?
pretty sure all subcommands count
My application does not respond even after having everywhere
await InteractionResponse.defer()
does view.wait() return when a button is pressed
you don't literally use InteractionResponse, it's interaction.response
oh XD
in a command, you can shorten this to ctx.defer()
is view.stop() called internally
ohhhh thank you!
not automatically no
would be rather cumbersome if views stopped whenever a button is pressed without user choice
you can just call it yourself in the callback
I found this, i think sub commands doesn't count in the main command limit
so when it times out stop is called
sort of
ok
i don't think this is accurate?
i've see that floating around but it doesn't seem to have any basis
there is one way to know
oh god
Copy paste the same command and changing the name
but anyway the docs only say
An app can have the following number of commands:
- 100 global CHAT_INPUT commands
- 5 global USER commands
- 5 global MESSAGE commands
CHAT_INPUT includes all levels of slash commands
hmmmm
this 100 limit is very low
There is only the main command in the integration tab in server settings
yeah but 62.5k is a very stupid number that doesn't actually make any sense
when you consider you can have a maximum of 50 integrations per server
your app would just crash
people just said 100*25*25 without actually verifying anything
Yes this is logic but i just wanted to know if it's possible to have like 110
(maybe i will eat my words)
Only one way to find out
on that note, if CHAT_INPUT is referring to top level commands then fair enough i'm wrong
i will create a new app with a few commands and 100 sub commands
and i will see if it's working
doesnt really work
still application doesnt respond
nothing in terminal
what's your actual code
then whatever command is causing it to not respond
in discord chat
give me a momen
i deleted my message nvm
how do i do something like
interaction = ctx.send_response(..., view=view)
await view.wait()
button = view.get_pressed_button() # what function do I use
await what_interaction.edit_original_message(..., view=new_view) # what interaction do I use
but inside the slash command not the callback
i had to do something like
class CustomView(View):
def __init__(self, *buttons):
super(CustomView, self).__init__(*buttons, timeout=60)
self.event = asyncio.Event()
self.current = None
self.interaction = None
self.bot = None
async def custom_wait(self, bot):
self.bot = bot
await self.event.wait()
if self.is_finished():
self.disable_all_items()
raise EndCommand
return self.interaction
class CustomButton(Button):
async def callback(self, interaction):
self.view.interaction = interaction
self.view.current = self
self.view.event.set()
and it still doesnt work
@slashGroupBot.command()
async def texy(self, ctx):
await ctx.defer.defer()
await ctx.respond('texy')
The application does not respond
😎
does interaction.edit_original_message need interaction.response.defer() to be called
no
so why does it not work without it
if i remove the defer it breaks
also does on_timeout trigger even if the view is replaced
well for one edit_original_message isn't actually a response
you should use interaction.response.edit_message
@cyan quail i'm done with the test, i created 100 sub commands and i still can add regular commands
fair enough then
That only count as 4 commands
because of the limit of 25 for each
And i even tried to add 25 more commands and all the commands works fine
?tag localization
>+++++++++++++++[<+++++++>-]<.>>++++++[<+++++++++++++++++>-]<.>
which datatype should i use for storing a guild_id in mysql?
I was using slash command groups and when I made it into a cog the cog is not loading
Nvm
It's client.load_extension() yea?
In the main file
idk whats wrong
I prefer using string (varchar)
and why?
Just a second. I am looking something up to make sure my facts are straight.
nevermind, I was thinking of something different. It looks like big int is the best
okay thank you guys!
Pycord, a maintained fork of discord.py, is a python wrapper for the Discord API - pycord/slash_cog_groups.py at master · Pycord-Development/pycord
I followed this but cog isn't loading
which size of bigint?
discord ids vary in length so you shouldn't limit the size.
using the exact code or modifying it?
Modifying it
can you open your own thread and post your code
Hm ok
Ok I made
I am trying to create a view with some buttons
What the buttons do depend on external parameters
Is there a way to pass them into the view?
For example I enter a command
/command param1 param2
I want the buttons to reply the contents of param1 and param2 when clicked
You can subclass discord.ui.View with buttons and pass the parameters you want into the view class itself.
class view1(discord.ui.View):
@discord.ui.button(label='button')
async def button_callback(self, button, interaction):
await interaction.response.send_message(response)
How should I pass in the parameters to this?
with __init__()
you make the init with the args you need and add them as attributes
and when you construct the view you pass it like view1(arg)
inside the class do
def __init__(self,param1):
self.param1 = param1
right?
Is there a way to force update slash commands using default_permissions?
When I do this it is telling me that the view object has no attribute "children" when I try to add that view to a message and send it
show code?
are you using pycharm by any chance
Because it shows that for me too but I just ignore it since it works anyways
for declaring the class
class view1(discord.ui.view):
def __init__(self,param1,param2,param3)
self.param1 = param1
self.param2 = param2
self.param3 = param3
@discord.ui.button(......[buttons below]
for sending the message
await message.reply('some string',view=view1)
no
you're not constructing the object
await message.reply('some string',view=view1(param1, param2, param3))
oh wait the section sending the message is actually
await message.reply('some string',view=view1(param1,param2,param3))
With it like this it gives the no attribute "children" exception
you still have to super ().__init__()
add that in, now works, thanks
can I have different styling for the buttons depending on the parameters?
or different enabled status depending on the input
no.
?
Whats the difference between default_permissions and default_member_permissions
How do I find a user by it's id?
guild.get_member
is there any difference?
you can resume from place you paused
and stop stops? idk how to explain more
import discord, json, os, random, asyncio, time, hostingserver
from discord.ext import commands,tasks
from datetime import datetime
from hostingserver import keep_alive
# imports things needed for bot (modules needed)
# bot token to activate bot
member = discord.Member
#client = discord.Client()
Game = discord.Game
Streaming = discord.Streaming
idle = discord.Status.idle
dnd = discord.Status.dnd
randomc = random.choice
intents = discord.Intents.default()
intents.presences = True
intents.members = True
client = commands.Bot(command_prefix=['m?', 'M?'], intents=intents, help_command=None, case_insensitive=True)
@client.event
async def on_ready():
await client.change_presence(status=idle, activity=discord.Game(f"Not up for service yet! | {round (client.latency * 1000)} ms | In {len(client.guilds)} Servers"))
print(f"logged into {client.user.name}")
@client.command()
async def help(ctx):
embed=discord.Embed(title="Hey There!\nMuzocco! doesnt have any commands yet! Come back soon!", color=discord.Color.green())
await ctx.reply(embed=embed)
``` why won't this work? (I just started using pycord)
No errors btw
which version?
is there a way to force end the play() function so it automaticaly runs the after= function?
?tag idw
man why are the bots dying
Idk
you know how to see the pycord version?
you know pip?
Yes
you can see the version with pip
So Missing access is basically a missing permission error
Just asking because the handler doesn't really seem to work.
and i am using this in order to set the perm for the / commands, i seen it in pycord application commands example
BotMissingPermissions is specifically for errors raised from the bot_has_permissions decorator
https://docs.pycord.dev/en/master/ext/commands/api.html#discord.ext.commands.bot_has_permissions
and MissingPermissions is for the has_permissions decorator; you can use this to verify if the user has the right permissions
https://docs.pycord.dev/en/master/ext/commands/api.html#discord.ext.commands.has_permissions
awesome, thanks a lot
if isinstance(error, commands.errors.BotMissingPermissions):
am i doing smth wrong? handler is not working
error message not being sent
commands.BotMissingPermissions
i tried that too
but uhh
doesn't work either.
what's the full error
.
and can you show your full error handler
Hastebin is a free web-based pastebin service for storing and sharing text and code snippets with anyone. Get started now.
i think it says dangerous file but it's because of the .py
look at your first else
i am
so the logic here is if the len of the list is > 1 then text should be permissions
else it will be permission
not that one
this is your code essentially ```py
if isinstance(error, commands.MissingPermissions):
...
else:
raise error
if isinstance(error, commands.errors.BotMissingPermissions):
...
else:
raise error```
Oh damn trust me i didn't notice
you want something more like py if isinstance(error, commands.MissingPermissions): ... elif isinstance(error, commands.errors.BotMissingPermissions): ... else: raise error
or just don't use else at all and assume you're always going to return beforehand
i will go with this
and do note since you made this an additional listener, your original error handler might still run separately
I know, u mean sending the messages twice if there's already an error handler in the command?
Well yes i know about this, that's why im taking care of the error handler at the end
i have just top_role checks and if guild_owner
uhm quick question
BotMissingPermissions returns a list.
how does it have no len?
even if it's 1
allgood
How can I get a user object from a username (i.e., user#0000)?
Pycord has a member converter
How can I stop the error from displaying in the Console?
try:
# your code
except:
pass```
Oh true thx xd
Whenever I stop the bot this error comes up, can I make it not show up anymore?
you should close your http connectors
How do I do it?
idk probably something like connection.close()?
How
You know basic python?
You can do it with pip show py-cord
Is it possible to have the button's appearance depend on external parameters without having to reconstruct the view every time the view is sent?
For example I run a command /command param1 param2 param3
The reply will contain a button which says param1 on it, with param2 as emoji and is disabled when param3 is true
import discord, json, os, random, asyncio, time, hostingserver
from discord.ext import commands,tasks
from datetime import datetime
from hostingserver import keep_alive
# imports things needed for bot (modules needed)
# bot token to activate bot
member = discord.Member
#client = discord.Client()
Game = discord.Game
Streaming = discord.Streaming
idle = discord.Status.idle
dnd = discord.Status.dnd
randomc = random.choice
intents = discord.Intents.default()
intents.presences = True
intents.members = True
client = commands.Bot(command_prefix=['m?', 'M?'], intents=intents, help_command=None, case_insensitive=True)
@client.event
async def on_ready():
await client.change_presence(status=idle, activity=discord.Game(f"Not up for service yet! | {round (client.latency * 1000)} ms | In {len(client.guilds)} Servers"))
print(f"logged into {client.user.name}")
@client.command()
async def help(ctx):
embed=discord.Embed(title="Hey There!\nMuzocco! doesnt have any commands yet! Come back soon!", color=discord.Color.green())
await ctx.reply(embed=embed)
``` why won't this work? (I just started using pycord)
Version 2.0.0
you need message content intent
intents.messages = True?
How can I reset any activity (such as listening, watching, streaming, ...) on my bot
As in completely remove it
Nvm I got it
Like make it change
From each
You'd use multiple task.loop for those
Will I be able to use buttons with discord.Client or do I have to use discord.Bot
discord.Bot i think
Yeah it wont work still
No, it's message_content
Is there a hard limit on the amount of bots that connect from the same IP?
Ok
No but they'll all share the same rate limits
how would i pass context to my button view?
right now i just have it inside of my command function
but i wanna make a persistent view with it
Why do you want to pass context to a view
idk if theres a better way to do this but im checking to see if whoever is interacting with the button is the command author and im also resetting the cooldown of the command
Set a view attribute
view = MyView()
await ctx.respond(view=view)
view.user = ctx.author
Then you access to it with self.user in your view class
I still didn't get the difference between e.g. fetch_member() and get_member()
If fetch_ takes an API call and sometimes even returns less data (fetch_guild()), in which cases should I use fetch_ instead of get_?
you should always try using get as to save an API call and only use fetch when get is not valid
trying to add a reaction to a message but still get this error
hooktest = Webhook(url)
embed = discord.Embed(description="Test")
mess = hooktest.send(embed=embed)
await mess.add_reaction(':thumbsup:')
await mess.add_reaction(':thumbsdown:')
await mess.add_reaction('👍')
AttributeError: 'NoneType' object has no attribute 'add_reaction'
But i am using
from dhooks import Webhook
What´s the actual way to send a webhook?
i tried it with
from discord import Webhook
but still the same
Anyone?
How do you pass a variable to button's label
What happened to discord.ext.tasks? It's telling me that it doesn't exist
ImportError: cannot import name 'tasks' from 'discord.ext' (unknown location)
nvm reinstalling fixed it
label="text"
Yeah but how do you pass from a command to button label
like /example text
and the button pops up with the text
if you put the button in the command you could to it
should i use lavalink or ffmpeg?
And is there any way to do it inside of the class?
Anyways I'll use inside of command then
is there a @command.guild_only() for slash commands?
its the same for slash commands
👍
the same like prefix commands
Its a bot side check and not a discord perms 2 check right?
I would say yes but Im not 100% sure
Can't get it working is there an official example for that
Probably it's my skill issue
create a button with discord.ui.Button(...) https://docs.pycord.dev/en/master/api.html#discord.ui.Button
then place it in a discord.ui.View(...) https://docs.pycord.dev/en/master/api.html#view using view.add_item https://docs.pycord.dev/en/master/api.html#discord.ui.View.add_item
thanks!
is there a way to get an ApplicationContext from a Button callback? i know it gives an Interaction
can you go Interaction to ApplicationContext?
does that defer automatically
do you mean the original context from a command, or do you want to create a new context?
do i have to manually check if it has been 3 seconds to call response.defer()
async def button_callback(self, interaction):
for child in self.children:
child.disabled = True
child.style = discord.ButtonStyle.secondary
button.style = discord.ButtonStyle.success
await interaction.response.edit_message(view=self)
A new context
I have an interaction from a button callback, but need an applicationcontext so I can ctx.edit()
interaction.edit_original_message
^
or interaction.response.edit_message
yes
Yeah I need edits after responding
alr
then use interaction.edit_original_message
Hello there Guys
I need some help
So there is a new thing in discord developer portal under URL generator , redirect ui or something which I am not able to select or do anything with it
And because of that I am not able to get invite link for my bot
Does anyone know the fix?
But I’m editing the response
So the user clicks a button,
App responds with 0%
App updates message to 10%
And I need files too. iirc edit original message didn’t work
is there a way to subclass View and call something when any button is clicked or select is selected
well if that doesn't work, do something like py x = await interaction.response.send_message(...) await x.edit_original_message(...) because response.send_message returns a new interaction
define interaction_check https://docs.pycord.dev/en/master/api.html#discord.ui.View.interaction_check
is there a neater way to separate the check from the processing tho
wdym
if you really want, interaction_check can technically act as a callback for all components in the view
not that i recommend it
i just want to store the interaction and component as an attribute of the view
the standard procedure for something like this would be instead to assign the same callback to each component
components are already in view.children
which one is the one that is interacted tho
oh
i mean you'd have to use either callback or interaction_check then, both take only the interaction
you should be using custom_id to identify what was pressed
with interaction_check the actual component cant be accessed
Hello there Guys
I need some help
So there is a new thing in discord developer portal under URL generator , redirect ui or something which I am not able to select or do anything with it
And because of that I am not able to get invite link for my bot
Does anyone know the fix?
This is all that it shows
what url is that?
oh i see
Yea
select these scopes
leave everything else blank
the heck
Ikr
idk what you've done because that definitely doesn't show up here
nor for me 🤣
I haven't done anything
It's my first time lookin at this
What is it?
if you want specific permissions, use the permissions generator and pass the number into the permissions= section of the url
Doing that shows this
you need to put your bot's user ID in there
I did
And the after captcha and all this thing comes
disable this
Thank you so much!
allgood
the button argument is not in the callback
does a view timeout stop view.wait()
Why when i press button, my bot regardless of adding reactions on message printing "Timeout!" ?
how i can do a wait_for on reaction add ?
@bot.listen()
async def on_interaction(interaction):
if interaction.custom_id == 'balance':
msg = await interaction.user.send("Hola!")
await msg.add_reaction('🥳')
try:
await bot.wait_for("reaction_add", timeout=10.0, check=lambda user: user == interaction.user)
print('Hola!')
await msg.delete()
except asyncio.TimeoutError:
print('Timeout!')
await msg.delete()
what permissions does a bot need to check when messages are deleted
view channel, probably message history if it's for older messages
yes
it's because your check is slightly incorrect; the check for reaction_add requires both reaction and user as per https://docs.pycord.dev/en/master/api.html#discord.on_reaction_add
luckily lambda works with multiple arguments; just separate them with a comma like a regular function
Is there any way to implement self inside of button callback (command)
why
Trying to disable all buttons once one of the buttons was clicked
can you show how you've implemented the buttons/views
Hi guys I made a new thread if anyone is willing to help ^^
https://discord.com/channels/881207955029110855/1008733412510683226
@bot.command()
async def button(ctx):
view = View()
search1 = Button(emoji=":grinning:", label="Button 1", style=discord.ButtonStyle.primary)
async def search1_callback(interaction):
search1.style = discord.ButtonStyle.success
await interaction.response.edit_message(view=view)
search1.callback = search1_callback
view.add_item(search1)
await ctx.send("Hi",view=view)
in object oriented programming, self refers to the object itself
Thanks
so if it's not in a class, you can refer to the object by its variable name
any way to respond with an ephemeral message when certain words are used in chat?
Probably 7th time asking, how do you get button from the interaction
I mean get the button u clicked on and then give new style
search1 = Button(emoji="😀", label=search[0], style=discord.ButtonStyle.primary)
search2 = Button(emoji="😀", label=search[1], style=discord.ButtonStyle.primary)
search3 = Button(emoji="😀", label=search[2], style=discord.ButtonStyle.primary)
async def search_callback(interaction):
if interaction.user == ctx.author:
for child in view.children:
child.disabled = True
search1.style = discord.ButtonStyle.secondary
#.style = discord.ButtonStyle.success
await interaction.response.edit_message(view=view)
else:
await interaction.response.send_message("That's not for you", ephemeral=True)
return False
search1.callback = search_callback
search2.callback = search_callback
search3.callback = search_callback
view.add_item(search1)
view.add_item(search2)
view.add_item(search3)
you still have to use custom_id
i did add them
search1 = Button(emoji="😀", custom_id="Search1", label=search[0], style=discord.ButtonStyle.primary)
then iterate through view.children and compare item.custom_id to interaction.custom_id
all good
also if you don't want to do the loop yourself, you can use utils.get py discord.utils.get(view.children, custom_id=interaction.custom_id)
nothing has changed
try my code and u will be understand what not working...
@bot.listen()
async def on_interaction(interaction):
if interaction.custom_id == 'balance':
msg = await interaction.user.send("Hola!")
await msg.add_reaction('🥳')
try:
await bot.wait_for("reaction_add", timeout=10.0, check=lambda reaction, user: user == interaction.user)
print('After reaction_add.')
await msg.delete()
except asyncio.TimeoutError:
print('Timeout!')
await msg.delete()
Item not found.
bruh
@meager mica there is .commands property inside your bot object
but its not documented somehow, or im blind
yes
There's also .walk_application_commands()
i put it right above bot.run and it only did one commmand for some reason
commands = main_bot.commands
for command in commands:
print(command)
main_bot.run(main_config.BOT_TOKEN)
that only does the not slash commands
the built in help command
^ try this
How can i edit a button after its pressed?
Update the view then edit the message with the new view
how can i access the view to update it? I am not using classes for views
Kinda hard to answer that without seeing your code
Kinda like this
(stuff)
button = discord.ui.Button(label="button")
button.callback = button_callback
view = discord.ui.View(button)
ctx.send(content="content", view=view)
async def button_callback(interaction):
#edit the button ```
you make the callback edit the button
first you construct the button
then you make the callback func
and do the edits you want there
and then outside of the func you declare the callback
button = discord.ui.Button(...)
async def callback(interaction):
...
button.callback = callback
how can I disable a button after a certain code had finished executing
how do i make the response to a slash command only viewable to the person who executed it?
make it ephemeral
you have ephemeral kwarg in .respond()
so it will be .respond(ephemeral=True)
thank you so much
you're welcome
even if i use on_message_delete and its the bot's own messages?
you still need to see the messages so yeah
if you don't have view_channel you can't access the channel at all
and im pretty sure read_message_history also affects uncached messages
so i left my bot in a vps and it worked until today only two commands work without me doing anything
is this only me
so I was merging by commands to slash with pycord and these commands have multiple wait_for() functions and they are asked in a series of steps, these functions work properly when they are a normal cmd. However, when merged to slash, only the first wait_for() works and the second one doesnt and just times out. Is there a reason why this is happening?
is there a way to get the description of the command aswell
the command has a description attribute
oh tysm
@cyan quail could i dm u? i wanna show you something, it's not about helping x)
is something new that i don't wanna post on this server because there may be someone that steals the idea haha
go for it i suppose, but i wouldn't worry about someone stealing it in all honesty
what would be proper linux file permissions for a bot's .env? I want to run it from a virtual environment but also don't want anyone else able to read the token
atm it is -rw-r--r-- as a default
Is this a @commands.command?
slash commands? make another slash command.
text commands, add it in the decorator aliases=["alias"]
How can I disable certain slash commands completely in private chat?
@commands.guild_only
I'm running into a strange issue where I have an option boolean for a slash command but the "True" and "False" options are not appearing and it takes in input as a string. Any suggestions?
ive seen lots of bots now that have things in the 'Apps' section. What exactly is this called? Does pycord have support for it? If so, how is it referenced in the docs?
context menus?
There are two types of Context Menus, message and user.
they are MessageCommand and UserCommand respectively
tysm!!
installing py-cord[speed] automatically speedups the code or i need to edit something?
it install extra dependencies which makes things faster
you need to enable them
how to enable?
each one has to be enabled individually
like what i need to do with code?
any command?
or just add py-cord[speed] in req.txt?
you need to look up documentation for orjson aiodns Brotil cchardet individually afaik
heey
isnt it ctx.guild.me?
idk
lets try it out
no
it is str
pls help
i need to check if bots role is higher
Guys, please help. I'm trying to catch a message from a user. But I always get an empty message. (the event itself works, but I always catch void)```py
import discord
from discord.ext import commands
intentss = discord.Intents.default()
intentss.messages = True
botik = commands.Bot(intents=intentss)
@botik.event
async def on_message(message):
print("ok?..")
if message.author != botik.user:
print("ok?..")
if message.content.startswith('!test'):
print("ok?..")
print(message.content)```
this code is outdated
and ugly (no offence)
Well, I'm just learning so objectively. And how should I write now?
import discord
from discord.ext import commands
intents = discord.Intents.default()
intents.messages = True
botik = commands.Bot(intents=intents)
@botik.event
async def on_message(message):
print('1')
if message.author != botik.user and message.content.startswith('!test'):
print('ok?..', message.content)
Check intents = ||проверь интенты||
You need message content intent
And if you're writing a brand new bot you should just use slash commands
I'm not writing a command. I know there is a slash! My problem is that when I receive the message itself, it is empty
Everything is no longer necessary. I realized my mistake
can my select menu have dynamically changing options?
Yes, messages will be empty without message content intent
You're free to edit the message and view whenever you want, so, yes
idk if i worded it properly but lets say i have a command /aaa {difficulty}, depending on the difficulty it gives different list of options which have varying lengths
where my list of options would be coming from something like number = ['one', 'two', 'three', 'four']
Yes you just send different options with each difficulty
Consider using a dict in that case if it makes sense
idk if it makes sense but i was going to try something like this
for n in number:
b.append(discord.SelectOption(label = n, description = 'a'))
Never mind I decided to update the page view to get the button out instead.
please help, I registered slash commands as in my other cogs, but it only shows 6 slash cmommands and not all 8. Ping me than pls 🙂
with_size vs with_format vs with_static_format
where's actual docs?
Represents a UI view.
This object must be inherited to create a UI within Discord.
.. versionadded:: 2.0
Parameters
-----------
*items: :class:`Item`
The initial items attached to this view.
timeout: Optional[:class:`float`]
Timeout in seconds from last interaction with the UI before no longer accepting input.
If ``None`` then there is no timeout.
Attributes
------------
timeout: Optional[:class:`float`]
Timeout from last interaction with the UI before no longer accepting input.
If ``None`` then there is no timeout.
children: List[:class:`Item`]
The list of children attached to this view.
disable_on_timeout: :class:`bool`
Whether to disable the view when the timeout is reached. Defaults to ``False``.
message: Optional[:class:`Message`]
The message that this view is attached to.
If ``None`` then the view has not been sent with a message.```
disable_on_timeout - this is not
but it's not
yes it is?
this is not
what do you mean that is not
discord/ui/view.py line 170
def __init__(self, *items: Item, timeout: Optional[float] = 180.0, disable_on_timeout: bool = False):```
although I have noticed it's in attributes and not parameters
but why i don't have so
probably added after 2.0
and don't upgrade in pypi?
Yes, I know that but I want to make that the slash commands are no longer displayed in the private chat, so that they are no longer suggested
use discord.guild_only
should work maybe
why does py-cord uninstall itself
why is view.message None when view.on_timeout is called
surely it should belong to a message
How do I add a timestamp to my embed like this?
Is there a way to ensure that only the user issuing a slash command can interact with any UI the bot responds with? Besides using ephemeral messages.
Found:python async def interaction_check(self, interaction: Interaction) -> bool: return interaction.user == self.__context.author
but it requires to store the context or at least the author in the View subclass 
And I also don't know how to proceed from there...
embed = Discord.Embed()
embed.set_footer("Deleted at")
embed.timestamp(timestamp)
bump
I don’t think that’s how it works..
You have to pass in Unix timestamp
Then yes it will work
Is there a limit for choice options in an slash command?
bump 2
does datetime.utcnow() not return the current timestamp?
bcz that timestamp is wrong
it shows 18:12 but my time was 14:12
Change region ig
what region
You're doing datetime.utcnow().timestamp() ye?
I’m doing:
e.timestamp = datetime.utcnow()
why is view.message None when view.on_timeout is called
Or do something like
tzone = timezone(timedelta(hours=1))
e.timestamp = datetime.now(tzone)
And
from datetime import datetime, timedelta, timezone
The timestamp() method returns a POSIX timestamp / seconds since the epoch (1970-01-01) which always refers to UTC.
The Problem: if you call the timestamp() method on a naïve datetime object, Python will assume that the datetime object holds local time.
Although the utcnow() in datetime.datetime.utcnow() might suggest otherwise, it gives you a naïve datetime object. That is, it does not "know" it's in UTC. Therefore, if you call the timestamp() method, Python assumes that the datetime object passed to the function is local time and calculates the timestamp as such. It is then not what you would get from time.time().
(from https://stackoverflow.com/a/62006588)
In order to get a timezone aware utc datetime object, use something like this:py from datetime import datetime, timezone def get_utc_now() -> datetime: return datetime.now(timezone.utc)
why is view.message None when view.on_timeout is called
tysm
What is the max length for letters in a modal?
the change presense, can it only be used during client events?
No, you can use it wherever
oh that's sick, ty for the quick answer!
You're welcome
How can I know the id of a voice channel of a user connected to that channel?
VoiceChannel.members gives you the member objects, so just use .id on those
sure,ty
yw
or memeber.voice
Hi everyone. What am I doing wrong here? I'm attempting to edit my message after I've used defer(), but I get Unknown Message or discord.errors.InteractionResponded: This interaction has already been responded to before:
await interaction.response.defer()
await interaction.message.edit(embed=Embed(title="Test",description="bb", color=Color.green()))
#await interaction.response.edit_message(embed=await create_embed())
Neither one of these methods (message.edit or response.edit_message) work. if I remove defer, it works, but in my context I need defer()
That return's their VoiceState
What message are you trying to edit?
Has the message already been sent?
yes it's an ephemeral response, I need to edit the embed from it
Is this within the callback of a component?
yep
try to use interaction.edit_original_message
I don't want to edit this one, but the response
Why am I getting an error with this type of datetime?
today = datetime.today()
time = today + timedelta(seconds = 2)
@tasks.loop(time=time, count=1)
async def blbla:
...
You haven't sent the response though?
You've just deferred it
What's the error?
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: TypeError: Expected datetime.time or a sequence of datetime.time for time, received <class 'datetime.datetime'> instead.
Well, when I remove defer() it works and edits the right message in this context. But in my context there is a bit of processing involved, but as soon as I add defer() it breaks
I think you've got to use datetime.time instead of datetime.datetime, meaning that you must supply the times of day you want it to run, not the exact date and time
So you're trying to edit the message sent when the command is invoked right?
correct
I will try
You might as well try this then
try to use interaction.edit_original_message
Ok, will try thanks
You're welcome
Cool that works. I really thought edit_original_message would edit the message I invoked the command on rather than the response
Ok, great!
👍 Support from this channel is great I've been stumped many times
and always get an answer
Is there a limit for choice options in an slash command?
wdym by choice options
in an slash command you can define which can be the choices the user can make for an specific parameter, my question is if is there any length limit for OptionChoice lists
25
thx
I thought that's what guild_only did
how do you check when a button is pressed? I tried interaction_check, but it's not working(I'm probably using it wrong)
the one in discord not the one in ext.commands
Can't you have a slash command group and prefixed command group of the same name? I'm getting this error:Exception has occurred: AttributeError (note: full exception trace is shown but execution is paused at: <module>) 'SlashCommandGroup' object has no attribute 'remove_command' File "/Users/{user}/.pyenv/versions/3.10.6/envs/venv-yadc/lib/python3.10/site-packages/discord/cog.py", line 257, in __new__ parent.remove_command(command.name) # type: ignore
Oh I'm defining both in the same Cog, as I'm currently migrating to slash commands.
How can I do a task in the background at a specific time passed by parameter?
nvm, I got it working
set the time kwarg to the datetime.time that you want it to happen at (or a list of multiple datetime.time if you want to have it happen multiple times per day)
I explain what I would like to do:
A command that does one thing, wait X time and do another, but I don't want that in that X time the bot is stopped. I don't know if @task.loopwould be correct, since I don't want it to be executed every X time, but only once in a given time. That determined time would be when the command has been executed + 2 seconds, 1 hour, etc... that is what I want by parameter.
Yeah so if you set time to a datetime.time equal to say 10:00 AM, it will only run at 10:00 AM each day
And how do I get that task.loop to start?
Because in the examples that I have seen to create a @task.loop I need the self.
So if you have this code:
@tasks.loop(...)
async def my_task(self):
...
You would start it with:
self.my_task.start()
So if its not in a cog, don't use self
Just don't supply self
So you would have something like this:
@tasks.loop(...)
async def my_task():
...
You would start it with:
my_task.start()
Thank you, I will try it now. Another thing, what do commands.Cog do? I have read the documentation but I can't figure it out.
how do I get the message a view is attached to from View.on_timeout (so no references to context)
I do this
@bot.slash_command(description='Al reformatorio! ⛓. Debe de existir el canal con el nombre: ⛓ Reformatorio ⛓')
@option("member", description="Quien se ha portado mal? 🤔")
async def reformatory(ctx, member: discord.Member):
# Mirar si tiene el rol de reformatorio o administrador
if (not ctx.author.guild_permissions.administrator) or (ctx.author.get_role(REFORMATORY_CHANNEL_ID) is None):
await ctx.respond(f'{ctx.author.mention} No tienes permisos para hacer eso! 🤔')
return
name_channel = "⛓ Reformatorio ⛓"
channel_reformatory = discord.utils.get(ctx.guild.voice_channels, name=name_channel)
current_channel = ctx.author.voice.channel
if channel_reformatory == None:
await ctx.respond(f'No existe el canal {name_channel}', ephemeral=True)
return
await member.move_to(channel_reformatory)
await ctx.respond(f'{member.mention} se ha movido al canal {name_channel} se ha portado mal 😡')
today = datetime.today()
# print_debug(today.time().gettimeofday())
print_debug(today.time().hour)
print_debug(today.time().minute)
print_debug(today.time().second)
print_debug(today.time().microsecond)
time_cdown = today + timedelta(seconds=10)
print_debug(time_cdown.time())
#time = time(today.time().hour, today.time().minute, today.time().second,today.time().microsecond, tzinfo=timezone.utc)
@tasks.loop(time=time(time_cdown.time().hour, time_cdown.time().minute, time_cdown.time().second, time_cdown.time().microsecond, tzinfo=timezone.utc), count=1)
async def countdown_reformatory():
await member.move_to(current_channel)
print(f"Finished {member.mention}")
countdown_reformatory.start()
But never prints finished
What exactly are you trying to do?
Is it like an afk timeout thing?
Anyway, you have to do countdown_reformatory.start()
But I don't believe that it will update the time_cdown every time, just when the decorator is created
More or less, like a punishment
So you might just have to have a task that runs every few seconds, and have a dict which you store users and when to move them, and then in that task you check if its time to move the user, and if it is, then you do move them
Ok ty
you're welcome
so when I use attachments as an option - where are the attachments uploaded?
ah figured it out
async def test(ctx):
for role in ctx.guild.roles:
if role == ctx.guild.default_role:
pass
else:
await role.delete()``` ``` raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: HTTPException: 400 Bad Request (error code: 50028): Invalid Role``` how do ifix this error?
Guild.default_role is @.everyone, so you can't delete it
thats why i set it to pass
Oh wait lol I didn't read your code properly
Do print(role.name) before you try to delete it
async def test(ctx):
for role in ctx.guild.roles:
if role == ctx.guild.default_role:
pass
else:
print(role.name)
``` ```Xenon
Dyno
Craig
news
ProBot ✨
Ear Tensifier
Ticket Tool
Previewer
Discobot
Lawliet
Luminous Nova
Dank Memer
MarriageBot
GiveawayBot
Emote Manager
OwO
Mudae
jailed
18+
16-17
13-15
female
male
pic
citizen
park random
Lean Sippers | Ban = Stripped
staff
Founder
Head Founder
Below
Above
God
Above God
Real Niggas
Co Owner
Owner
stain & nine
May<3
spawn
katana & xan
Helper
Server Managers
NewGen Owners
Yagami’s
!?
.
Top
kira & near
hi
$$$
hit
trusted
-
fio
Server Owner
hard
Mimu
Snitch
ServerStats
Quarantine
pluto
.gg/deathnote
bleed vanity
Wick Premium
Security Premium
negged
bleed
$
+
eren
legal```
it worked
printed every role besides @everyone
Add the role.delete below the print, i want to see which role causes the issue
i tried, same error and it didn't print any roles
Hm, try to use fetch_guild and then loop through the resulting guild
oh wait
its one role
Ignoring exception in command test:
Traceback (most recent call last):
File "/home/runner/FMFVOIF-nukebot-FNINOVJD/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 85, in wrapped
ret = await coro(*args, **kwargs)
File "main.py", line 20, in test
await role.delete()
File "/home/runner/FMFVOIF-nukebot-FNINOVJD/venv/lib/python3.8/site-packages/discord/role.py", line 373, in delete
await self._state.http.delete_role(self.guild.id, self.id, reason=reason)
File "/home/runner/FMFVOIF-nukebot-FNINOVJD/venv/lib/python3.8/site-packages/discord/http.py", line 254, in request
raise HTTPException(r, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50028): Invalid Role
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/runner/FMFVOIF-nukebot-FNINOVJD/venv/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 939, in invoke
await ctx.command.invoke(ctx)
File "/home/runner/FMFVOIF-nukebot-FNINOVJD/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 863, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "/home/runner/FMFVOIF-nukebot-FNINOVJD/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 94, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: HTTPException: 400 Bad Request (error code: 50028): Invalid Role```
Xenon
its not deleting because its a bot role
how do i make it ignore bot roles
Yeah that's probably the issue
You could just use a try: except
So that way you can continue deleting all the other roles except the ones that you aren't allowed to delete
i used except: pass and it woudn’t delete any roles
i need a if statement for bot roles
idk what i need to say though
Send code
Cuz this should work:
@bot.command()
async def test(ctx):
for role in ctx.guild.roles:
if role == ctx.guild.default_role:
pass
else:
try:
await role.delete()
except:
pass
You're welcome
``` is "members" the correct term for this?
Yeah it will return everyone in the guild
However if you don't have the members intent turned on it will only return the bot
when i want to await guild.create_scheduled_event(name, start_time, location)
what should i be passing location?
i tried a discord.TextChannel
and just the ID of the channel
traceback thingie
payload["entity_type"] = location.type.value
AttributeError: 'NoneType' object has no attribute 'value'```
hmm weird... i guess it might work since the text channel has a unique name
but what if it didnt? 🤔 seem bad
try:
await user.send('hi')
except:
pass```
this wont dm people and i dont get any errors
Make sure you have the memebrs intent enabled in your code and in the dev portal
Otherwise guild.members will just be the bot
how do I attach an audio file to ctx.respond?
file=discord.File("file_path")?
can you not use custom emojis in ephemeral messages?
its just showing as :emojiname: for me
would anyone know how I can save the mp3 files my bot has recorded from voice channel to a folder? I know how to send the mp3 recordings in a channel but I just want to save them to a folder
dumb question how do I edit a message sent with ctx.respond?
you can
message = await ctx.respond()
await message.edit()
thanks
that probably won't work, just do ctx.edit

is interaction the same like respond?
in a slash command
discord.commands.errors.ApplicationCommandInvokeError: Application Command raised an exception: TypeError: edit_original_message() takes 1 positional argument but 2 were given
await ctx.edit("text")``` 
content=
ah
you have to specify what you're editing
makes sense
oh, thats why this works ```py
@client.slash_command()
async def test(interaction: discord.Interaction):
await interaction.response.send_message("test")
welllll
you probably shouldn't do that because ideally you want ApplicationContext
if it works then fair enough but it may break later on in the command
if you have more logic anyway
was just testing some stuff ^^
i put <:emojiname:emojiid> but it doesnt work
which id do you use?
Hello. Trying out Pycord. Tried printing the members of a certain role in my guild.
There's 26 members. For whatever reason, it prints an empty array. I've double checked everything. Role name is spelled correctly. Same exact code works in Discord.py and prints out the correct member list, but in PyCord it fails.
In this code, guild is a global variable that's already been initialized.
config.GUILD_ID is just a reference to the guild ID in an external python file.
These variables are both equal to what they should be, tested.
@bot.slash_command(guild_ids=[config.GUILD_ID])
async def getmembers(ctx):
role = discord.utils.get(guild.roles, name="Example")
await ctx.respond(role.members)
do you have the members and guilds intents
The bot does, at least when I created it through the discordapp.com/developer page. Do I have to programmatically set those intents also?
which pycord version do you have?
Not sure, how do I check?
Just installed it today.
but you know basic python?
Yes.
pip show py-cord
Version 2.0.0 it seems
any error?
if anyone could help w saving the audio file the discord bot records from voice channel i will love u forever 
the emoji id
it works everywhere else but not in ephemeral message
from the link?
yes
yes
?tag intents
https://docs.pycord.dev/en/master/intents.html
import discord
from discord.ext import commands
# Get specific intents for fine control
intents = discord.Intents()
intents.emojis = True
intents.guilds = True
intents.messages = True # Required for prefix commands!
...
# Get all non-priveliged intents; this excludes presences, members and message_content
intents = discord.Intents.default()
# Set priveliged intents: these must be enabled on dev portal
intents.members = True
intents.presences = True
intents.message_content = True # Required for prefix commands >= 2.0.0b5
# Get all intents; all intents must be enabled on dev portal.
intents = discord.Intents.all()
# Apply intents when creating your bot
bot = commands.bot(prefix="?", intents=intents)
if you enabled all intents on the portal, you can use all()
otherwise, use default() and then set the others you have
Thank you!
That seemed to fix it.
all good
is there a way to send 2 embeds within one message?
yes
I tried to do it once, and it worked, but I can't seem to do it now..
would it be embeds=[Embed1,Embed2] ?
yeah
you can submit up to 10 embeds per message, but note there can be a maximum of 6000 characters across all embeds
Why does py-cord uninstall it self randomly
?tag noreplit
No tag noreplit found.
Hi, how can I hide commands from people who don't have permission to use them?
@discord.default_permissions(permissions)
it's pretty hard to help with replit because of how they operate
I don't see it in the API documentation?
i think docs documented how to implement the pip install on run
a quick google tells me that they allegedly uninstall packages to save space
Case solved lol
oh! thank you so much
there are free host that are very reliable like railway.app
I have not used it, however i believe it's squid uses it
just a squid
but you also should use ```py
@commands.has_permissions()
because people on mobile still can see the commands
even if it's just 2$/month, a paid host will be far more reliable than free services like replit, glitch or heroku
I just use my Raspberry Pi
definitely not perfect, many have their own issues, but the experience will at the very least be smoother
wumpus host gives free host and I had no issue, though rn it's locked due to out of resource (new users can't create server), however it'll be solved in 5 days or so. For me it works perfectly fine. 👍
rn it's locked due to out of resource
that's exactly the kind of issue im talking about
I got it thank you 🙂
because they have zero revenue from free users (or maybe they sell your data idk), they run into resource management issues and often get ratelimited
Or how to make it visible to users, but grayed out and not selectable?
they might work at some times, but 5 days of downtime isn't exactly good
there's a server that has 3 months or so uptime
greyed out and hidden are actually the same thing; discord changed from greying out to hiding
you can manage user, role and channel permissions from guild settings > integrations
my point isn't that they're horrible or you shouldn't use them, but rather they aren't reliable; i'm not gonna try to force you or switch or anything, it's just good to know the cons of free hosts
if user.status.name == 'idle':
user.status.name = abcd
abcd = ""
``` ``` raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: can't set attribute``` how can i do this?
what are you trying to do... change a user's status?
no 💀 its a ui command
so if their status name is "idle" i use a idle emoji instead of it just sending "idle"
then why are you trying to edit user.status.name
im trying to change what it displays
in the embed?
just change the value in the embed then
you're doing it in the wrong order
nah im not
i mean