#General Help
1 messages · Page 14 of 1
Do I use a counter or something in the check?
my pycord isnt working
at all
i do import discord
and its jsut an error
ive reinstaslled etc
and nothing works
what error
that theres no module named discord
well
That's where limit= goes
not quite, limit is the maximum amount
checks can force the actual purge to be lower than the limit you set
do you know why??
what command did you use to install it
ive tried many
pip install py-cord
[y -3 -m pip install -U py-cord
you're probably mixing up python versions
what python version are you trying to run your bot on
async def info(ctx):
embed=discord.embed(title="Bot Info", description="Hello! Here is some useful infomation about me.\n I run through slash commands and i am created by jack. here is my commands \n /ip - Sends our minecraft SMP IP \n /ping - Stats of the bot \n /nick - Used to change someones nickname \n /say - Sends a message of your choice through the bot \n /bean - Fake bans someone \n /dm - dms anyone your chosen message through the bot", color=discord.Color.blue())``` Why am i getting 'Invaild interaction slash command' or something cant renember the full name of the error
how do i start fresh
ive got 3.10 and 3.8 installed
what are you trying to run your bot on
guys how do i make inputs in slash cmds?
@commands.slash_command(name="embed", description="Sends a nice looking customisable embed", guild_ids=[guild_id])
async def sendembed(self, ctx, title: discord.Option(discord.SlashCommandOptionType.string), content: discord.Option(discord.SlashCommandOptionType.string)):
just gives me an error
Anyone know?
how do i find that out @crimson coral
at the top of your bot's file
run this py import sys print(sys.version)
before anything else
ok
add the line
await ctx.respond(embed=embed)
You aren't doing anything with the embed!
helper, any idea?
do py -3.8 -m pip install py-cord==2.0.0rc1
from discord.commands.core import slash_command
from discord.ext.commands import Cog
from discord.commands import Option
class ACog(Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(guild_ids=[Guild_ID], description="Foobar")
async def foo(self, ctx, bar: Option(str)):
await ctx.respond(bar)
def setup(bot):
bot.add_cog(ACog(bot))
Sorry i have this forgot to copy and paste it heres the correct code
async def info(ctx):
embed=discord.embed(title="Bot Info", description="Hello! Here is some useful infomation about me.\n I run through slash commands and i am created by jack. here is my commands \n /ip - Sends our minecraft SMP IP \n /ping - Stats of the bot \n /nick - Used to change someones nickname \n /say - Sends a message of your choice through the bot \n /bean - Fake bans someone \n /dm - dms anyone your chosen message through the bot", color=discord.Color.blue())
await ctx.send(embed=embed)```
what error
try ctx.respond
^
all good
ExtensionFailed: Extension 'cogs.fun' raised an error: TypeError: issubclass() arg 1 must be a class
ctx.respond is required in slash command
geh what version are you on
I keep trying stuff like that then it dosent work but ill try again
ah lemme try! tysm
py 3.10 and latest pycord py-cord==2.0.0rc1
don't use SlashCommandOptionType, just use str
Can you send entire code?
me?
yeah we need some more context
Changed it to this, I now get 'Application did not respond'
kk lemme try what Arrakis just sent, if it don't work ill send
oh misread the code
it's discord.Embed
(though do keep the ctx.respond)
thanks
okay, it seems like reloading a cog dosen't update slash cmds
yeah i did have respond at first, I changed to send to try fix it
Hey, How would i put my commands into a folder then seperate command files each? Just makes it cleaner but dont know how id connect them up
Cogs
Is it possible to send a modal from a prefixed command without using an interaction from a view to send the modal?
look into cogs https://guide.pycord.dev/extensions/commands/cogs
Cogs, often known as modules or extensions, are used to organize commands into groups. This is useful
No idea what this is lol
thanks
Becuase in the examples, thats how they do it
nope, you'd have to use a component to send it
huh hold on
ty\
can you show where? await ctx.send_modal(modal) only works in slash commands
Pycord, a maintained fork of discord.py, is a python wrapper for the Discord API - pycord/modal_dialogs.py at master · Pycord-Development/pycord
In the examples, Can i change each file from for eg, greetings.py to ban.py and in main file i change it to bot.load_extension('cogs.bans')
how do i make an input a user mention?
slash cmd
Yes but load_extension('cog.ban') since filename is ban.py
do you mean the last command? that still uses a button to send the modal
Option(discord.Member)
Do i need to copy and paste
bot.load_extension('cogs.greetings') each time in main file for each file i make?
Yes
it's generally done with a loop
Yeah thats what I was saying. I was wondering if you could just directly send the modal?
nope, it requires an interaction
Oh ok thanks for your help
all good
Wym?
you just have a list of your cog names
then for cog in cogs... and you know the rest
so, bot.load_extension('cogs.greetings', 'cogs.bans')
nono a for loop
Sorry, Can you repeat im confused
for cog in cogs:
bot.load_extension(cog)```
for filename in os.listdir('.'):
if filename.endswith('.py'):
bot.load_extension(F'Cog.{filename[:-3]}')
👀
or that i guess yeah
What way is better out the 2?
the latter works if you always want to load every cog in a folder
yeah
So here do i change filename with my folder name or?
then it checks every folder with .py
and uses that
No it checks current folder for all Python files
If you only want to load Cogs for certain files, then use Nelo's method
alr
from discord.ext import commands
class Greetings(commands.Cog): # create a class for our cog that inherits from commands.Cog
# this class is used to create a cog, which is a module that can be added to the bot
def __init__(self, bot): # this is a special method that is called when the cog is loaded
self.bot = bot
``` Do i add this for each file at the top? (Obviously change greetings to the correct word)
oh mb
You need
def setup(bot):
bot.add_cog(ACog(bot))
at the bottom of each file with a Cog
async def sendsuggestion(self, ctx, suggestion: str, image_url: str = None):
how do i add required=False in this?
Where you replace ACog with the Cog name
? that's the right cog format
Alright, In my main.py do i need to change class Greetings to anything to meet my commands
use discord.Option for your arguments
e.g. if you want image_url to be optional, do image_url: discord.Option(str, "Image Link", default=None)
setting default automatically makes it optional
e
Sorry I misread earlier
ahh tysm!
In main.py you only need to load the cogs by using bot.load_extension(cog), for each file you will need
class ACog(commands.Cog):
def __init(self, bot):
self.bot = bot
# Code here
def setup(bot):
bot.add_cog(ACog(bot))
So every slash command file in cogs folder i have
def __init(self, bot):
self.bot = bot
(My command code)
def setup(bot):
bot.add_cog(ACog(bot))```
Yes
thanks
---------------------
---------------------
Ignoring exception in on_connect
Traceback (most recent call last):
File "/home/container/.local/lib/python3.10/site-packages/discord/client.py", line 382, in _run_event
await coro(*args, **kwargs)
File "/home/container/.local/lib/python3.10/site-packages/discord/bot.py", line 1042, in on_connect
await self.sync_commands()
File "/home/container/.local/lib/python3.10/site-packages/discord/bot.py", line 644, in sync_commands
registered_guild_commands[guild_id] = await self.register_commands(
File "/home/container/.local/lib/python3.10/site-packages/discord/bot.py", line 529, in register_commands
registered = await register("bulk", data, _log=False)
File "/home/container/.local/lib/python3.10/site-packages/discord/http.py", line 359, in request
raise HTTPException(response, data)
discord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In 2: Application command names must be unique
Cog : Listeners.py Loaded
Cog : Server.py Loaded
Cog : Fun.py Loaded
Cog : Listeners.py Loaded
Cog : Admin.py Loaded
Cog : Info.py Loaded
---------------------
Connected to Discord!
---------------------
it dosen't tell which cog
or cmd
def__init(self, bot):
self.bot = bot
@bot.slash_command(name="ping", description="Info about bot")
async def ping(ctx):
await ctx.send(f'My ping is ' + format(round(bot.latency, 1)))
def setup(bot):
bot.add_cog(ACog(bot))```
Indent for self.bot = bot
done
Indent command code
So that it's in the class
Unindent setup(bot) so it's outside the class
Have i indented too far
Yes command code should be in the class but not in init
What, sorry so it should be in the class but not in the class???
lol i think ive confused myself
He said not in the init
anyone?
i mean you can do it by process of elimination right
class ACog(commands.Cog):
def __init(self, bot):
self.bot = bot
@bot.slash_command(name="ping", description="Info about bot")
async def ping(ctx):
await ctx.send("The str here")
def setup(bot):
bot.add_cog(ACog(bot))
just look through your list and see which of your cogs isn't there
all 6 of of them are there!
Hmm, I was wondering, is there any way to mention the Text in Voice channel? Or do I just meniton the Voice Channel?
You didn't import Pycord stuff
Like the text in the text channel of a vc?
You don't use @bot.slash_command
You import slash command from discord.ext and use that
Yeah
from discord*
from discord.commands import slash_command
class ACog(command.Cog):
def __init(self, bot):
self.bot = bot
@command.slash_command(name="ping", description="Info about bot")
async def ping(ctx):
await ctx.send("The str here")
def setup(bot):
bot.add_cog(ACog(bot))``` I have no errors anymore just wanna check this is right
Oh ill update to slash_command
class ACog(slash_command.Cog):
def __init(self, bot):
self.bot = bot
@slash_command(name="ping", description="Info about bot")
async def ping(ctx):
await ctx.send("The str here")
def setup(bot):
bot.add_cog(ACog(bot))```
the text-in-voice channel has the same ID, so no
it'd be the regular voice channel mention
from discord.commands import slash_command
from discord.ext.commands import Cog
class ACog(Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(name="Ping"):
# code
Oh I see
Thanks
at least the library does support them
any idea?
Why do i get bot is not defined, Should i add bot = Discord.bot or smth]
thanks!
also indentation
at await ctx?
you should catch the exception and override the error logic when loading
e.g py try: self.load_extension(cog) print(f'loaded {extension}') except Exception as e: print(f'failed to load {extension}') traceback.print_exc() or something like that, you might have your own preferences for errors
File "C:\Users\jackd\Documents\Felbcord Py\main.py", line 18, in <module>
for cog in cogs:
TypeError: 'module' object is not iterable``` ```for cog in cogs:
bot.load_extension(cog)```
ahh tysm
what is cogs
yeah but what did you define it as
near the top*
uhhh
is that wrong?
My folder is named cogs and i have a list of cogs i want to load of my command files
so did you define this list
I dont think i did, no
ok lets go with the alternative method suggested earlier
this?
yep, needs some changes though
since you're loading from another folder called cogs, we want os.listdir("cogs")
and in load_extension, you want cogs.{filename[:-3]}
if i changed the folder to commands, would i change cogs to commands right
yeah
Btw this its created a __ pycache__ folder in my commands folder, that normal?
yeah you can ignore it
alright
Btw thanks for all the help :D
all good
Sorry to bother you again, I had 2 peices of the same code in the ping.py and in my main file from before i added all this, Then removed from my old file because when running /ping it ran the reply twice.. now it dosent show the slash command at all
@crimson coral
any1 else know?
how do i add options for a slash cmd?
Hey how can I check if the bot has the necessary rights to kick or ban a user?
by this i mean
/server {server} and for {server} there are fixed values which can be chosen ex proxy lobby
Anyone know?
choices kwarg
takes a list of the matching type
max 25 elements
you can also provide a list of OptionChoice to allow code to have an internal value to refer to
Why is this happening?
How do I run a function every time a command is run in a cog?
I remember that there is some method that you can have in a cog that will run before a command is run it that cog
@command.before_invoke iirc
Anyone? Sorry its been a while and rly wanna sort it i cant see why it isnt working
ok thank you
How do I get last n messages in a channel?
b!rtfm pyc channel.history
is it possible to register the same command name for different guilds but the option choices are different
each guild needs their own instance of the command
How can you make a slash command cog
Hey, Are you able to help me?
here
?tag ex
Bot examples: https://github.com/Pycord-Development/pycord/tree/master/examples
Slash command/context menu examples: https://github.com/Pycord-Development/pycord/tree/master/examples/app_commands
Buttons, dropdowns example: https://github.com/Pycord-Development/pycord/tree/master/examples/views
try re-registering the commands as a guild command then as a global command
How would i do that?
make it a guild command by adding the guild_ids attribute
oh my bad I didnt see the file
async def ping(self, ctx):
await ctx.send(f'My ping is ' + format(round(self.bot.latency, 1)))``` Where do i add it here
name, description, guild_ids
So i add guild_id="guild id would be here"
guild_ids=[ids]
theyre ints too dont forget
bot = commands.Bot(command_prefix='!', intents=discord.Intents.all(), debug_guilds=[965533467557371944,933803468815204372,964126154774679582]) Ive got this in my main file, is this the same thing?
yes, but sometimes, discord is weird
Would i have to remove the debug guilds part?
no
after i restart my bot after adding the code, what next?
Just remove the same code?
yes
Done this, The slash command still dosent show
what py-cord version
Is it not connecting the folder right or what?
async def ping(self, ctx):
await ctx.send(f'My ping is ' + format(round(self.bot.latency, 1)))```
```for filename in os.listdir('commands'):
if filename.endswith('.py'):
bot.load_extension(F'commands.{filename[:-3]}')```
2.0.0
?
have you tried reading the docs
?
Yes my first attempt
well, you can get the guild and do await guild.fetch_member(bot.user.id)
and from that, you get bot as a member object
E
But that just picks out the bot, doesn't it?
and then from that member object, you can get
https://docs.pycord.dev/en/master/api.html#discord.Member.guild_permissions
the bot's permissions
@slow dome this is rly annoying I can't figure it out
ok thanks
:(
you can do Guild.me to get the member object of your bot without any api calls
Here is a discord.py issue, but it also exists on pycord (did the same before finding this out and i use pycord) Will it get fixed?
How can I get all the reactions from a message? And with list of members that reacted on it?
What does the member object do for me?
Thanks btw
the exact same things as ClientUser but more
Anyone?
@crimson coral Any idea how to fix it? The slash command dosent show up... (Im asking you because u helped at first)
callback = discord.SlashCommand(
func=self.custom_command_callback,
name=name,
callback=self.custom_command_callback,
)```
async def custom_command_callback(self, ctx):
print("test")
await ctx.respond("test")```
discord.errors.ExtensionFailed: Extension 'modules.cogs.fun' raised an error: ClientException: Callback for one command is missing "context" parameter.
anyone know why its giving missing context error

are you loading the extension in on_ready?
Im not
where are you loading it
Just below my bot = commands.Bot(command_prefix=! ect
cant be bothered typing it all
did you invite the bot with applications.commands scope
I did
All my other slash commands that are still in my main file work
@crimson coral ?
can you show the full cog file
sure 1 sec
from discord.ext.commands import Cog
class ACog(Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(name="ping", description="Sends bot ping")
async def ping(self, ctx):
await ctx.send(f'My ping is ' + format(round(self.bot.latency, 1)))
def setup(bot):
bot.add_cog(ACog(bot))```
ah....
i think you're still misunderstanding
the command has to be inside the ACog class
with your current indentation, it's outside
it should be inline with def __init__
Well it works now after doing this but sends the ctx.respond part twice so sends 'my ping is 0.1'
twice
@crimson coral ?
hmm
for one it should be ctx.respond here
I keep forgetting that
do you have a second ping command somewhere?
I dont, I removed it from my main file
well try that change first
alr
anyone
Yep it still sends twice
have you restarted the bot?
yep
first... may i ask why you would subject yourself to this horror
I restart every time i make a change to the code?
ah right, was just checking
alr
custom command per guild 
cause the command name will be stored in a db and loaded for that guild on bot load
Is there any way to see who added my bot to their server?
So any ideas why its sending twice? I have double checked theres no other ping command.
hmm
don't think so no
Ok thanks
can you show your full main py file
Ill use a paste.gg if thats ok
sure
would it not be easier to iterate through your commands and assign their guild_ids before the bot connects?
no because the command name isnt hardcoded
hmm
the callback is however
i think you're better off forming it via application_command instead
How can I get all the reactions from a message? And with list of members that reacted on it?
message.reactions
await reaction.users()
Here message is supposed to be an object of a message right?
it might be best for you to investigate commands.core yourself and find a solution that works for you, i could try come up with one myself but chances are it wouldn't be in the implementation you want
https://github.com/Pycord-Development/pycord/blob/master/discord/commands/core.py
Or even better, navigate to discord.commands.core.py via https://github.dev/Pycord-Development/pycord/ or in your own IDE
When I try to respond after a modal submission I always get: 404 Not Found: Unknown Interaction
class Submit_Answer(discord.ui.Modal):
def __init__(self, bot, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.bot = bot
self.add_item(discord.ui.InputText(label="Your Answer"))
async def callback(self, interaction:discord.Interaction):
await interaction.response.defer()
print("callback executed")
embed = discord.Embed(title="Your Modal Results", color=discord.Color.random())
embed.add_field(name="First Input", value=self.children[0].value, inline=False)
await interaction.response.send_message(embeds=[embed])
yes hold on
ok sry
I saw rapptz did this for prefix commands and it worked
Slash commands just wanna be different

well they kinda have to be 
it probably won't be too different, but just enough to be annoying lol
How would you think to do it?
Inherit application command and add a custom implementation for invoke()?
my train of thought was to see what the @slash_command decorator does
def application_command(self, **kwargs):
"""A shortcut decorator that invokes :func:`command` and adds it to
the internal command list via :meth:`~.Bot.add_application_command`.
.. versionadded:: 2.0
Returns
--------
Callable[..., :class:`ApplicationCommand`]
A decorator that converts the provided method into an :class:`.ApplicationCommand`, adds it to the bot,
then returns it.
"""
def decorator(func) -> ApplicationCommand:
result = command(**kwargs)(func)
self.add_application_command(result)
return result
return decorator```
it makes more sense in the file context
having trouble finding an issue... are you maybe running the bot in multiple instances at once?
Wym? I dont think so.
like maybe there's an instance of the bot running somewhere else that you forgot to turn off
hold up
Oh ive finaly got it, I had another terminal open in vs code that still had the bot running
sorry for wasting ur time, but thanks :D
all good
also hopefully im not annoying u xd, I have a command so
/nick (member) (name) but how would i make it change it to a variable so it changes to 1 specfic name
well
this is your current code py @bot.slash_command(name = "nick", description = "Change nickname of a user") async def nick(ctx, member: discord.Member,*,name)
so you can just remove *,name and set it to whatever you want
in the member.edit
can you remove the defer
Also happens after removing the defer
If I leave the defer there, I get the error where the interaction.defer is
so in member.edit(name= name) do i put like name="test" for example
oh i see now lol
as of rc1, modal requires title=
(it always required a title anyway, but it's now a kwarg instead of first argument)
yeah pretty much
alr thanks
await interaction.followup.send_modal(Submit_Answer(self.bot, title="Submit Your Answer (ONLY LOWERCASE)"))
i already had this, but its not working
raise errors.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'commands.say' raised an error: ClientException: Cog named 'ACog' already loaded``` (when trying to add another command file/cog)
its the same with response
are you not getting any errors..?
change your cog class names
well with the followup i did haha
I just tried some random things hoping it would work xD
with .response.modal I get the unknown interaction
can you show the full command code
oh right you made a post, we can continue there
I did so and got smth about GUILD_INDEX_UPDATE like unknown event
uhhhhhhhhh
.....
Any ideas?
from discord.ext.commands import Cog
class SayCog(Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(name="say", description="Repeats input")
async def say(ctx, message):
if ctx.author.guild_permissions.read_messages:
await ctx.send(message)
def setup(bot):
bot.add_cog(SayCog(bot))```
added the code that initiates the modal in the post
so i managed to actually get the command class to be made
but now im running into the command not being registered 
hey at least you're getting close... haha....
can you show the exact error you got
I am not at my laptop now but I'll send it tomorrow
Btw I don't seem to get any errors anymore, just application did not respond
eyy nice
def __init__(self, bot: "DiscordBot"):
self.bot = bot
@commands.Cog.listener()
async def on_ready(self):
print(f"{__name__} loaded.")
for name in ("one", "two", "three"):
# discord.SlashCommand
print(inspect.signature(self.custom_command_callback).parameters)
callback = commands.slash_command(name=name)(self.custom_command_callback)
callback.callback = self.custom_command_callback
self.bot.add_application_command(callback) # s
# loop = asyncio.get_event_loop()
await self.bot.register_commands([callback], force=True)
print(self.bot.get_application_command("one"))
async def custom_command_callback(self, ctx, *args, **kwargs):
print("test")
await ctx.respond("test")```
**kwargs is required for some reason
but other than that
it works

...oh well if it aint broke
well it did
the wonders of discord
it didnt want to work in __init__
cause the bot user wasnt registered
it was raising attribute error
fixed kwargs being required
by just forcing options to be an empty list

now hopefully theres no pycord update that breaks this

laughs in potential command rewrites
well we can worry about that if it actually happens
@crimson coral
Question, does role.edit() create a new role based on the old roles parameters and delete the old one therefore giving the new role a different id or just change the role keeping the same id?
It edits a role
Question: Trying to create a ticketing system, i have a channel set as a template with all the roles issued. My plan is to clone it with a new name and add the user to its permissions. My only problem is idk how to add the user to its perms. Any help with that?
Basically u want user to have perms on creation of channel?
b!rtfm pyc create channel
No results found when searching for create channel in pyc
for bridge commands, is it only possible to get prefix commands context only no matter what called the command
instead of slash or prefix
@ancient gazelle
#default_role basically refers to @everyone
# guild.me affects the person aka you
perms= {
guild.default_role: discord.PermissionOverwrite(read_messages=False),
guild.me: discord.PermissionOverwrite(send_messages=True)
}
channel = await guild.create_text_channel(f'{ctx.author.name}', overwrites=perms)
I don't want the user to have perms of creating a channel.
example?
wdym?
Basically in the clone channel i want to add them as they can see it and send messages to it. Which they won't be able to in the clone channel.
workflow:
- clone template channel
- add them to cloned channel
- delete clone channel at the end?
Yes.
why
that isnt a really effective way. what if someone deletes the clone channel?
plus cloned channels do nothing except copy permissions which u can get the bot to set
Okay so i am basically creating a private entry system for an audience that isn't really discord savvy.
I just want to welcome them in a private channel and have a few details pop in.
And if they need any help, the mods will see to it.
Makes sense? @desert dagger
so you want them to have a new channel with info and private contact with mod
Cloning channel isnt gonna be useful. cloned channels do not contain the content inside it
you can easily do this:
- Slash command or button
- creates a channel where only them and staff see
- Embed messages are sent in channel
- staff are opt pinged
- close button system
Yes. Ik that i can send the messages anyway to the cloned ones.
why cant you ^^
Can you help me with this?
with what i said you can do or what ur doing?
If nothing else I just want a private channel that just says welcome to the server.
I couldn't find a documentation with the name clone! Maybe you used to command wrong? Correct Usage: <prefix>rtfm <docs> [<term>] (eg. b!rtfm py cool)
List of Documentations you can search:
python
pycord
discord.py
yarsaw
nextcord
disnake
b!rtfm pyc clone
https://docs.pycord.dev/en/master/api.html?highlight=guild only#discord.TextChannel.clone
https://docs.pycord.dev/en/master/api.html?highlight=guild only#discord.AuditLogDiff.overwrites
@ancient gazelle documents to help you clone and do permissions
i cant help you sorry
you have choices param in discord.Option
check examples of creation slash commands in github repo, i think there was an thing with discord.Option
jishaku==2.3.2 @sudden path
how do before invoke hooks work
They are called right before the command is invoked.
So when all checks have passed and the command is ready to be invoked.
The context is passed as a argument.
Commands can be hooked on different levels
For that look here https://docs.pycord.dev/en/master/search.html?q=before+invoke
so for example if i retrieve data from my database in the pre-hook, can i pass that data to the command callback
Yeah. 2.3 2
you can assign the data to the context and read it from the command yes
Maybe try and reinstall pycord
Do you have a file named discord?
?tag install
-
Uninstall
discord.pyor any other forks of discord.py you might have with the namespacediscord.
python -m pip uninstall discord.py discord -y -
Install
py-cord
python -m pip install py-cord
Installing other builds:
Note: You need to have git installed. Use !git to find out how to install git.
Updating the module to Alpha (unstable):
pip install -U git+https://github.com/Pycord-Development/pycord
Updating to release candidate:
pip install py-cord==2.0.0rc1
Oh ok
if i have a command that needs the sender to have role 1 to use that gives button otions to approve or deny something , can i have it so only someone with role 2 can approve it?
like on button interaction if they have role
guys i'm using replit but everytime i have to uninstall discord.py
and reinstall pycord
Use vs code
but then i can't host it
You can just host it off your pc it's easy
okay
The docs tell you how
ok uhm how do i install pycord from vs code?
Go to terminal and type pip install pycord==2.0.0
Hi, is there any way to add the Server Booster role for Slash Commands?
I can't find it when I got to Server Settings > Integrations
is it possible to use interaction.user to get their roles?
i.e. interaction.user.roles
I guess so, but I only want to show the commands to Server Boosters
does anyone know the code for useravatar command?
because it doesn't work for me, i guess i dont know it lol
Anyone here knowing how to use discord SSO login in a website?
Everytime when a reaction is removed and the bot gets the emoji that has been removed, emoji.animated is coming as False even if the emoji is animated. How do I fix this issue?
2.0.0rc1*
Hi, could somebody explain me what Role.is_bot_managed() checks and when it returns True?
Whether the role is associated with a bot.
As in, the role that gets created when you add a bot.
Ok, thank you.
Is there a way to disable a select when timed out on View class? (Since timed out function don't get nothing)
how do I make selectable options for a slash cmd, instead of takin input
make a timeout callback
ye how do i add the choices one
put in a list of Option choices: https://docs.pycord.dev/en/master/api.html#discord.OptionChoice
server: discord.Option(str, choices=["test", "test2"] )
would this work?
oh nvm
uhh
i don't get it, could you send me an example
server: discord.Option(str, choices=[OptionChoice(...), OptionChoice(...)] )
also new input_type layout:
str = server :disco......
and remove the str in parameter
Thank you very much!
it gives error around OptionChoice
any idea?
removed str
u got too much bracketrs
anyone?
I'm using the on_raw_reaction_remove event
is there a way to edit a ctx.respond msg?
when u respond get the return value
potato = await ctx.respond("bla bla bla")
potato.edit("BLA BLA BLA")
that dosen't work.
AttributeError: 'Interaction' object has no attribute 'edit'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/container/.local/lib/python3.10/site-packages/discord/bot.py", line 993, in invoke_application_command
await ctx.command.invoke(ctx)
File "/home/container/.local/lib/python3.10/site-packages/discord/commands/core.py", line 357, in invoke
await injected(ctx)
File "/home/container/.local/lib/python3.10/site-packages/discord/commands/core.py", line 134, in wrapped
raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: AttributeError: 'Interaction' object has no attribute 'edit'
kk
how exaclly do i use it? await edit_original_message ?
ah kk
await e.edit_original_message(content="test123eee", ephemeral=True)
FIXED IT
WORKS
daamn tysmm
btw does await guild.system_channel.send(embed=embed) send embed to a system_channel?
commands.Greedy doesnt work with slash commands? 
it's just that if I have on_interaction in my code, slash_commands doesn't work
well greedy doesn't really mesh with slash commands because of how literal arguments are
from discord.ext.commands import Cog
class sayCog(Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(name="say", description="Repeats input")
async def say(ctx, message):
if ctx.author.guild_permissions.read_messages:
await ctx.send(message)
def setup(bot):
bot.add_cog(sayCog(bot))``` Hey nelo, About yesterday i dont have any errors in console, The command just does not show
it's fine, just try to understand how the format works
yeah
Also, for slash commands isnt better to use ctx.respond?
your command async def say is a class function just like def __init__, so it should be inline with it
And in cogs you need self also in the command function
yeah
What is the difference between ctx.send and ctx.respond, all i know is respond is better in slash commands
alr
ctx.send still works, but you get a private msg, like if i rememebr correctly the interaction has failed something like that
respond is an interaction response and is required in slash commands
alright
send is just a general function to send a message to the channel
Btw, I fixed the ident but it shows although i get 'Application did not respond'
remember self as well
you should be seeing these errors in your console
Im not, I have logging setup i just see all the info about servers like id and all that (spam lmao)
I added self, I still get application did not respond (I know that it gives that error after 3s of not being able to respond but cant see why)
use, ctx.respond()
I have
from discord.ext.commands import Cog
class sayCog(Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(name="say", description="Repeats input")
async def say(self,ctx, message):
if ctx.author.guild_permissions.read_messages:
await ctx.respond(message)
def setup(bot):
bot.add_cog(sayCog(bot))```
@crimson coral
Hello?
I think my args are wrong..
the message bit
from discord.ext.commands import Cog
class sayCog(Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(name="say", description="Repeats input")
async def say(self, ctx, message):
if ctx.author.guild_permissions.read_messages:
await ctx.respond(message)
def setup(bot):
bot.add_cog(sayCog(bot))``` Why isnt my bot responding?
how do i make a custom status with guild_members
what is the function
to get the server members
read the docs
There isnt any mate

nice
couldnt find it
ik
yeah but
idk how to get guild members
bruh
from discord.commands import slash_command
from discord.ext.commands import Cog
class IpCog(Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(name = "ip", description = "Sends SMP IP")
async def ip(ctx):
embed=discord.Embed(title="SMP IP", description="The server ip is 51.222.130.213:25580 and the port is 25580", color=discord.Color.blue())
embed.set_author(name="ignfoolish",url="(removed as inv link)",icon_url="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSe8Pq3771AeTs6c3kLBB589dmfERKVecUzPA&usqp=CAU")
await ctx.send(embed=embed)
def setup(bot):
bot.add_cog(IpCog(bot))``` It says no setup function??
ctx.respond for a slash command
and (self, ctx)
bru forgot again
thanks
i am very forgetful
these commands are before i was told to have self and respond
Extension 'commands.bean' has no 'setup' function. same error
check indentation and parentheses
also here
I have
Anyone able to help?
I cant figure it out
hm
Are buttons implemented yet?
-
Uninstall
discord.pyor any other forks of discord.py you might have with the namespacediscord.
python -m pip uninstall discord.py discord -y -
Install
py-cord
python -m pip install py-cord
Installing other builds:
Note: You need to have git installed. Use !git to find out how to install git.
Updating the module to Alpha (unstable):
pip install -U git+https://github.com/Pycord-Development/pycord
Updating to release candidate:
pip install py-cord==2.0.0rc1
cheers
install the release candidate
Ive checked indents ect, cant find anything :(
code here
cheers
What do i put in requirements.txt just? pycord==2.0.0rc1
i believe so yes
alright cheers could you link the docs for me please
just came from dpy to try pycord
is this code in the file called bean?
No
uh
from discord.commands import slash_command
from discord.ext.commands import Cog
class FakeBan(Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(name="bean", description="Fake bans someone")
async def bean(ctx, member: discord.Member,*,reason):
if ctx.author.guild_permissions.administrator:
await member.send('You have been banned from the felbcord! \n Join here )
await member.send(reason)
await member.ban()
await member.unban()
await ctx.respond('I have fake banned them', ephemeral=True)
def setup(bot):
bot.add_cog(FakeBan(bot)) ``` this is my bean/fakeban command
it had a link in the msg so it deleted lol
well there is your problem lol
your setup function is inside your class
must be outside
bru
forgot to remove inv again 1 sec
from discord.commands import slash_command
from discord.ext.commands import Cog
class IpCog(Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(name = "ip", description = "Sends SMP IP")
async def ip(self, ctx):
embed=discord.Embed(title="SMP IP", description="The server ip is 51.222.130.213:25580 and the port is 25580", color=discord.Color.blue())
embed.set_author(name="ignfoolish",url="",icon_url="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSe8Pq3771AeTs6c3kLBB589dmfERKVecUzPA&usqp=CAU")
await ctx.respond(embed=embed)
def setup(bot):
bot.add_cog(IpCog(bot))``` is this right
no
outside of the class
import discord
from discord.commands import slash_command
from discord.ext.commands import Cog
class IpCog(Cog):
def __init__(self, bot):
self.bot = bot
@slash_command(name = "ip", description = "Sends SMP IP")
async def ip(self, ctx):
embed=discord.Embed(title="SMP IP", description="The server ip is 51.222.130.213:25580 and the port is 25580", color=discord.Color.blue())
embed.set_author(name="ignfoolish",url="",icon_url="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSe8Pq3771AeTs6c3kLBB589dmfERKVecUzPA&usqp=CAU")
await ctx.respond(embed=embed)
def setup(bot):
bot.add_cog(IpCog(bot))```
and its the bean file you needd to modify
this file has nothing wrong
the reason why this command aint working is because you got an error when loading in your bean file
so this file was not loaded either
oh
oh i see it already
if i knew to look there i would have saw it straight away :/ sorry
@slender lintel , My commands such as say, ip ect are just responding with application did not respond?
?
wdym by that
so if i run, /say or /ip it says 'Application did not respond'
are you using ctx.respond?
Yes
embed.set_author(name="ignfoolish",url="",icon_url="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSe8Pq3771AeTs6c3kLBB589dmfERKVecUzPA&usqp=CAU")```
In here why do you have url=""?
I don't think the url should be blank
The author (ofc) then the url but i removed url because its a discord invite
thats why it deleted before
ah
try making sure you run the command at least 2 times
sometimes the first command doesnt respond
alr
I think i see my issue 1 sec
ERROR: Could not find a version that satisfies the requirement pycord==2.0.0rc1 (from versions: 0.0.1, 0.1.0, 0.1.1)
ERROR: No matching distribution found for pycord==2.0.0rc1
py-cord
py-cord==2.0.0rc1
is it possible for some server to require that the developer of the bot has 2 factor authentication enable ?
yes
Sorted it, I removed the IP command from main file cause i hadnt removed it yet and say i fixed too, :D ty for the help
np
oh and if it is not the case the bot jsut wont be able to join, or it will throw errors ?
well, both, but the errors won't show in your console, but in discord itself when someone tries to invite it
I see thank you !
What should i do for bot.getchannel? if i indent it i just get errors
ok so you are in a class
and you forgot self, ctx
also you need to do self.bot.get_channel(int(channel_id))
alright thanks
Btw for cogs i heard i dont need to restart my bot after updating my commands, how does that work?
by making a reloading function
How would i do that? Is there docs to help on that part?
uh yes
I believe in the pycord guide
it teaches this
let me find it
well I cant find it ill jsut write it here ig
@client.command
async def reload(ctx, extension):
bot.unload_extention(f"cogs.{extension}")
bot.load_extension(f"cogs{extension}")```
thats a simple way of reloading cogs
put that in your main.py
alright (ive changed client to bot)
I get this error when running the command
raise ApplicationCommandInvokeError(exc) from exc
discord.errors.ApplicationCommandInvokeError: Application Command raised an exception: AttributeError: 'nickCog' object has no attribute 'author'
@slender lintel ?
you forgot self
🤦♂️ omg how forgetful am i
Btw ive added self but the command dosent update on discord? I added the reload function
oh well its a slash command
i think you ened to sync the commands
with bot.sync_commands
so add boy.sync where?
idk how to use those tho
i never really used a reload functionmyself
aalr
I don't recommend reload cogs with slash commands
it tends to... break
Oh okay
so restart when i update commands?
await ctx.respond(f'My ping is ' + format(round(self.bot.latency, 1)) \n f'I am in' + len(list(bot.servers))) I am getting the error bracket was not closed. but i cant see where?
await bot.process_commands() is it possible to only update register a command, so the other commands are registered, but i register a custom one for a certain server through this
Hey, how i can the content of message seen?
I have tried: await interaction.response.send_message(f"{interaction.message}") but not working.
by interaction.message.content come a error..
await interaction.original_message()
(when i add an ) to just after it)
await ctx.respond(f'My ping is ' + (round(self.bot.latency, 1)) \n f'I am in' + len(list(bot.servers))) there
I still get ( was not closed
smh
Then come a error..
Ignoring exception in modal <extensions.Modal.Reports object at 0x0000020068654EE0>:
Traceback (most recent call last):
File "C:\Users\zReaxrYT\PycharmProjects\Discord\venv\lib\site-packages\discord\ui\modal.py", line 217, in dispatch
await value.callback(interaction)
File "C:\Users\zReaxrYT\PycharmProjects\Discord\extensions\Modal.py", line 133, in callback
message = await interaction.original_message()
File "C:\Users\zReaxrYT\PycharmProjects\Discord\venv\lib\site-packages\discord\interactions.py", line 284, in original_message
data = await adapter.get_original_interaction_response(
File "C:\Users\zReaxrYT\PycharmProjects\Discord\venv\lib\site-packages\discord\webhook\async_.py", line 211, in request
raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10015): Unknown Webhook
await ctx.respond(f'My ping is {round(self.bot.latency, 1)} \n I am in {len(list(bot.servers)))}')
interaction.original_message() returns what you responded with
yeah but this is not working?
So if you didn't respond with anything, it will not get an actual message
?
learn python smh
it's true. This is simple string formatting
what message's content are you trying to get
So I have created a context menu and as soon as you press this button a modal appears in this modal you should enter a text, I now want the text of the message (context menu) and the message in the modal (I already have).
-_-
so it's a message context menu
yes
well, doesn't that context menu come with a message paramter
i have this but..
I have already made it so that the message comes but how should I connect it to the modal?
how are you implemeting the modal
wait
Modal:
class Reports(discord.ui.Modal):
def __init__(self, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.add_item(discord.ui.InputText(label=f"📛› Report",
placeholder="give a reason.", required=True,
style=discord.InputTextStyle.long, min_length=8))
async def callback(self, interaction: discord.Interaction):
await interaction.response.send_message(self.children[0].value)
Context Menu:
@message_command(name="Tests")
async def tests(self, ctx, message: discord.Message):
modal = Reports(title="Report")
await ctx.send_modal(modal)
I mean how i can connect this?
modal:
class Reports(discord.ui.Modal):
def __init__(self, message, *args, **kwargs) -> None:
self.message = message
super().__init__(*args, **kwargs)
context menu:
@message_command(name="Tests")
async def tests(self, ctx, message: discord.Message):
modal = Reports(message=message,title="Report")
await ctx.send_modal(modal)
and you should be able to access the modal with self.message
Ups.. Sry, yeah its working, thanks ❤️
np
Hey, @slash_command(name="ban", description="Bans a member") async def ban(self, ctx, member: discord.Member,*,reason): if ctx.author.guild_permissions.administrator: await member.ban() await member.send(reason) channel = bot.get_channel() await channel.send('hello') await ctx.respond('I have banned them') I have a similar issue here for bot.get_channel (trying to log a ban after banning someone)
bot is not defined
self.bot
oh alr, so would i add self. every time i try do smth like this in a cog?
well you defined bot as self.bot = bot
so yes
alr
I get the error iscord.errors.ApplicationCommandInvokeError: Application Command raised an exception: Forbidden: 403 Forbidden (error code: 50013): Missing Permissions the bot literaly has admin?
^
well, if the person the bot wants to ban is above/on the bot in roles, then yes, it is missing permissions.
oh yeah i forgot thats a thing lmao
I do, The docs wont have anything about what i just said lmao
me having to read the name of that emoji to understand it 💀
Saving asyncio.Locks in a weakref dict for every user? to free up space once it is out of use.
Good or bad could there be any caveats ?
Your thoughts ?
btw i have started learning it on w3schools
Is there a way to have a script executed upon receiving a webhook push/post? Essentially trying to kick certain users in a role every 7 days. The webhook will send a message every 7 days and I want the bot to see that request and execute the script after
is on_message not enough?
Would it be fine if I made the message just nothing tho?
Like ""
Don't really need the message, just need it to run every 7 days
Use a task loop
Tyty
does anyone know
Hey created a slash command and need to mention a server member but it doesnt let me mention a user: py @bot.slash_command() async def register(ctx, member: discord.Member = None): await ctx.respond("Registering {}".format(member.name))
I just don't get why its not working
Anyone know what the max hours I can set for py @tasks.loop(hours = ?) is?
Why would you want something to run so infrequently?
Don't need the max, just want to execute once every 7 days. Tho idk if the hours are allowed to go that high
Basically a weekly purge of users with a certain role
I'm sure you can set it to 7 days
But at that point, you'll most likely want to check the datetime with a shorter loop
true
I don't think they're expected to live that long to be honest
So I'd recommend not doing that
hmm, how else can I go about having it run every 7 days tho?
member.mention
thanks
Could I maybe have it run after getting the current date then seeing if it's been 7 days since it was last updated? Tho idk how to make a function run like that without having to restart the bot every time. Actually, I could run it everyday and it would be fine? Is that something more reasonable?
Yeah, that sounds more reasonable, maybe store the last time it run (easily in a small file), then check the time in an hourly function
mhm true, can do. tyty
Hm
To mention someone use
<@(user id)>
so for example
@bot.slash_command(name='register', description='e')
async def register(ctx,member: discord.Member = None):
then ur bit
or just member.mention
I'm a bit confused on what does it mean when it says children on here, can someone please explain
also what variable example would you normally substitute in the param
if i have a command that does a bunch of stuff with the inputted arguments, can i use them during button interaction?
i.e.```py
class View(discord.ui.View):
@discord.ui.button(label="Approve", style=discord.ButtonStyle.green)
async def button_callback(self, button, interaction):
guild = bot.get_guild(ID)
role = guild.get_member(interaction.user.id).get_role(ROLEID)
if role is None:
await interaction.response.send_message("No perms to interact")
else:
discordID = player.id
robloxuser = bloxlink(discordID)
embed = discord.Embed(title = f'{player.name}', description = f'<@{discordID}> : {robloxuser} added to {team}', color = discord.Color.blue())
sheets(robloxuser, team, tmz)
await interaction.response.edit_message(content = None, embed=embed , view=None)
and my command is /team player, team, tmz
?tag ex
Bot examples: https://github.com/Pycord-Development/pycord/tree/master/examples
Slash command/context menu examples: https://github.com/Pycord-Development/pycord/tree/master/examples/app_commands
Buttons, dropdowns example: https://github.com/Pycord-Development/pycord/tree/master/examples/views
ok for some reason, i literally can't make a slash command with any options
pretty much
im in a cog, and when i make it with 2 options, it errors that it cant take more than 3 args
when i make it with 1 option, the option doesnt even show
Show code
from discord.commands import ( # Importing the decorator that makes slash commands.
slash_command,
Option
)
from discord.ext import commands
import discord
from modules.handlers.EmbedHandler import genEmbed
from discord import option
class creategroup(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def creategroup(self, ctx, groupname: Option(str, "Group name e.g. Helper"), perms: Option(str, "Permissions", "Please put the permissions you would like, seperated by commas. Choices: kick,ban")):
await ctx.respond(embed=genEmbed(title="Group Creation",description="Creating group... Please Wait..."))
def setup(bot):
bot.add_cog(creategroup(bot))
when i make it with 1 option, the option doesnt show at all and it just sends the embed
when i make it with 2 Options, it errors
but when both args arent options it works
but still then the options arent passed through
one sec let me see how I made one
alright thanks
from discord.commands import ( # Importing the decorator that makes slash commands.
slash_command,
Option
)
from discord.ext import commands
import discord
from modules.handlers.EmbedHandler import genEmbed
class creategroup(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def creategroup(
self, ctx,
groupname: Option(str, "Group name e.g. Helper"),
perms: Option(str, "Permissions", #"Please put the permissions you would like, seperated by commas. Choices: kick,ban" I don't think you can have 2 descriptions in here)
):
await ctx.respond(embed=genEmbed(title="Group Creation",description="Creating group... Please Wait..."))
def setup(bot):
bot.add_cog(creategroup(bot))```
oh, i thought you could add a description
Permisions
is the description
wait
hm
hm wierd
i added those
and yet
it still doesnt show
wait no you are right
nah i was wrong
xD
confused
oh ok
but now my quesdtion is
when i try to run the command
theres no args
well there is definetly a name attribute
and description
so idk
hm
wierd
idk
i dont error anymore
but now
whats the / for hm
maybe add that
where
adding a / throws invalid syntax
from discord.commands import ( # Importing the decorator that makes slash commands.
slash_command,
Option
)
from discord.ext import commands
import discord
from modules.handlers.EmbedHandler import genEmbed
class creategroup(commands.Cog):
def __init__(self, bot):
self.bot = bot
@slash_command()
async def creategroup(
self, ctx,
groupname: Option(str, "Group name e.g. Helper"),
perms: Option(str, "Permissions", /, "Please put the permissions you would like, seperated by commas. Choices: kick,ban")):
await ctx.respond(
embed=genEmbed(
title="Group Creation",
description="Creating group... Please Wait..."
))
def setup(bot):
bot.add_cog(creategroup(bot))```
oh
ok
hmmm
@slender lintel do you want to try a different way in creating options?
its using decorators
whats what i was just doing there xD
o lol
sorry idk whats wrong with the code
looks fine to me
still doesnt add them
still doesnt add the args tf
wait maybe if i specify the guild id
try accessing the slash commadn thru a dm
it registers faster there
HM
ok
i got an error
now i added the guild id
discord.errors.HTTPException: 405 Method Not Allowed (error code: 0): 405: Method Not Allowed
uh where did dyou add dit
@slash_command(guild_ids=[982688378946486292])
uhh
so it doesnt work when i specify a guild id but it works when i dont tf
maybe try and reinstall pycord
ok
so
in dms
it has the args
nd now it has the args in my server
so i just had to spam restart the bot
oh so basically it just wasnt registered :P
still when i specify the guild id
i get a 405 method not allowed
Ignoring exception in on_connect
Traceback (most recent call last):
File "C:\Users\Rio\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 382, in _run_event
await coro(*args, **kwargs)
File "C:\Users\Rio\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 1147, in on_connect
await self.sync_commands()
File "C:\Users\Rio\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\bot.py", line 770, in sync_commands
await self._bot.http.bulk_upsert_command_permissions(self._bot.user.id, guild_id, guild_cmd_perms)
File "C:\Users\Rio\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\http.py", line 359, in request
raise HTTPException(response, data)
discord.errors.HTTPException: 405 Method Not Allowed (error code: 0): 405: Method Not Allowed
Can you have multiple awaits to perform something, so like I wanted my button to get disabled and send a modal at the same time is that possible?
yes
well its basically combining stuff
how are you doing it rn?
let me give an example ig
well I thought of doing it in an if statement but that didn't work since the one before already executed
@slash_command()
async def func_name(self, ctx):
button = Button(label="oisuykhasja")
view = View(button)
async def callback(interaction):
button.disabled=True
#Create Modal Here
#send modal same way as you send the button
button.callback = callback
await ctx.respond("randommessage here", view=view)```
@languid hollow
This is mine currently
button callback only requires the interaction parameter
you sure?
I mean I want to disable the button upon callback and at the same time it sends the modal
I mean it works fine for me for some reason
so it disables but it jsut doesnt send the modal?
yes it disables & changes colour but when I want to send in the modal it gives the error
whats the error
discord.errors.InteractionResponded: This interaction has already been responded to before
so I'd replace the await with follow up?
one sec reading docs
oh I'll try that
what I did was just lowered the timeout to 1 sec
and then the time_out function would kick it though Thanks for the help!
is there any way to edit an interaction.response.edit_message
if i have a button clicked, then a long function happen, i have to put interaction.response.defer() right?
Yes
i.e.
await interaction.response.defer()
# a bunch of stuff
await interaction.response.edit_message(content = None, embed=embed , view=None)
how do I reply to the message without mentioning the user?
mention_author=False
I see, thank you
So, some of the bots are not showing up properly because they're not cached on my PC
but when I tag them myself, they get cached and appear normally
Is there a way to like, force the bots to get cached on the user's end so that they appear normally?
Its a discord problem

