#discord-bots
1 messages Β· Page 33 of 1
there isn't any ctx in slash commands so how are you sending it?
no need for try
wait we need try
interaction based context?
lbyl vs eafp π
that's how hybrid commands work
so hard
it so hard
No
then me see it so hard
Ok
ah hybrid command, not just a slash ocmmand
yeah
well even in slash command you can do Context.from_interaction
I unblocked you when the mod came
Rude
block me
Please say you tried the code
sure
ok π
could you just raise the error and see? Or print it's type()
good he blocked me
try:
print(int(message.content))
except:
print('error')
NotFound π³
i think thats because of delete_after kwarg if thats not wrapped for interactions properly, lemme check the src
quotes
3 errorerrors
Probably indention
I also thought about that, but if im not super dumb it doesnt affect
me fix errors
Now work?
o it work
well after NotFound I think it's delete_after
lol thanks for everyone that die here :)
bruh
No problem
yes
i can give him nitro bc he dead
F
others just tolled
i gift you 5 month nitro this why i not give you nitros any more
O in text it say error but in number it not
great great
unblocked you
can you try removing the delete _after and try
because the method to delete an interaction response and a normal message are different
You're really desperate for that nitro
discord/ext/commands/context.py lines 872 to 879
if self.interaction.response.is_done():
msg = await self.interaction.followup.send(**kwargs, wait=True)
else:
await self.interaction.response.send_message(**kwargs)
msg = await self.interaction.original_response()
if delete_after is not None and not (ephemeral and self.interaction is not None):
await msg.delete(delay=delete_after)```
i dont mind a free nitro
ah so they do check that
i need to read dpy codebase again so much has changed !
wait i got it
master do you
- run the command
- send the message with delete _after
- purge the channel?
didnt help
master π©
because that may be the reason of your error, the message is getting deleted and thus returning NotFound
5head
waht
just found it funny that sarth is calling you master
:))
master is a big bren so why not
That's not the only time they called someone master I think
1, 3, 2
e bullying me ;/ and gift nitro ;(
:)) is bullying now guys
:)))))
they are sending the amount of deleted messages so purge needs to happen first !
it not
i can gift you nitro rn
Lmao
he wont
You really know how to manipulate conversations
well then your command invocation gets deleted, and thus the interaction is lost...
but i will not bc you start bullying me :(
in past
10 mins ago
oh hm im dumb
oh... what?
me learn code after read it but before me dumb
how can slash command invocation be deleted
try it and see
trywhatandsee
what else could NotFound mean in context of a slash command
running your command, does the command invocation stay or get deleted
well, then why when I do like /clear 5
and did it purge the messages?
yes
Do u get anything in ur console?
no
Disable error handler so u get full traceback
beep boop baap(
howdiscord.errors.NotFound: 404 Not Found (error code: 10062): Unknown interaction
Defer
like this? Sorry, I didnt ever use defer i dont understand what is it for
Put the defer at the top of the command
ok
thankuuu it worked, also what does defer do tho? Bot is thinking? that's what it does?
ctx with app commands π
hybrid*
then it's ok
It u donβt respond within 3 seconds then discord deleted the interaction
ohh i see
So you defer it which makes it say bot is thinking
Thx for everyone who help me and i sorry :)
!d discord.InteractionResponse.defer
await defer(*, ephemeral=False, thinking=False)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Defers the interaction response.
This is typically used when the interaction is acknowledged and a secondary action will be done later.
This is only supported with the following interaction types...
defer extend the duration of the interaction to 15min instead of 3sec
Yes
I have a bot and the application but how do I put it in vscode so I can code it
discord.py btw
Thanks
that tutorial is only for disnake nd nextcord...
Yes I saw, is there any for vscode
IDE doesnt matter, library does and I don't think there's any good tutorial with dpy really (I did create one but anyways uhhh I could link it to you but there's a few loopholes)
How did you learn programming then?
Oh
But is there just a simple quick tutorial telling me how to put my bot in vscode and make it run
I don't need a tutorial on commands and everything
I just don't know how to put it in vscode
What does that mean, vscode is just a text editor
this is all I have -> https://gist.github.com/Ash-02014/426ec7974f705303a2363c739dd82309
hope it helps, if you got any queries, you can ask about them here
You don't need it to run your code
Like how to connect it
.
Connect it to what
cuz I can't just make a new file and say "print ("hello world")" and expect it to be connected to the bot
Ty
Don't tell me that the gist is a whole lot worse than it should be 'cause I know 
channel2 = await guild.create_text_channel(f"ticket-{payload.member.name}", category=category, overwrites=overwrites)
if channel2.id:
if str(payload.emoji) in ["β"]:
print('test')``` it this ok?
try?
looks fine to me
i already tried it and it doesnt work
thats why i asked π
error?
also if you're mentioning the category, might as well just use the category to create the channel too
!d discord.CategoryChannel.create_text_channel
await create_text_channel(name, **options)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
A shortcut method to [`Guild.create_text_channel()`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Guild.create_text_channel "discord.Guild.create_text_channel") to create a [`TextChannel`](https://discordpy.readthedocs.io/en/latest/api.html#discord.TextChannel "discord.TextChannel") in the category.
theres a lot of people using my bot
and my bot is getting rate limited because of that
how can i prevent it?
Make a command timeout maybe
are you using replit by any chance?
i do
almost all of them have timeouts
well then bad news, its not the users who are making your bot ratelimited, its replit.
I think replit works on a joined ip, so everyone who uses replit sends a request from same ip
but i bought yearly plan and i dont want to lose my money
isnt there any way to fix it?
@gusty shard
guys what this error mean Traceback (most recent call last): File "C:\Users\Ibrah\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\client.py", line 466, in _run_event await coro(*args, **kwargs) File "c:\Users\Ibrah\Desktop\Discord Bot\main.py", line 54, in on_message await message.delete() File "C:\Users\Ibrah\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\message.py", line 806, in delete await self._state.http.delete_message(self.channel.id, self.id) File "C:\Users\Ibrah\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\http.py", line 711, in request raise NotFound(response, data) discord.errors.NotFound: 404 Not Found (error code: 10008): Unknown Message
and es me nitro
i need to host over 20+ bots at the same time because of my job
i can do that without any problem on replit
why is it giving errors on a basic gamble bot
that message you are trying to delete does not exist
The problem is with replit. Imagine all the people using replit, and they all send a request to the discord api. That is so much that IP, which is only one IP gets ratelimited.
dang
have you ever tried linode?
can i host multiple bots with it
what ?
What job requires that and where do i sign up.
im coding and hosting selfbots 
Bruh
that makes so much money on telegram
You know selfbots are against ToS
telegram is not caring it ig
im doing it since 2020 and nothing happend yet
Right, it doesn't it the only thing close to it is spamming.
You'd need to setup a VPS, if you earn that much money I think a proper VPS is pretty valid.
that's how you do not support the community, more like a rusty user/traitor to your own service. People make efforts to serve you the best, and all you do is break the terms they granted permission to use the app with. Reasons we'll never have a good community ever.
I can't express my hate towards people who break the laws or even just for so called "fun"
I never said that it is for fun specifically but ok
we are making the advertising for coins
The thing is ash that it's allowed their TOS is so short it fits in one page.
i know some people making thousands from it
any service
they need a bigger page then π€£
anyways, back on topic 
i want to make so the chat in minecraft shows in a channel in a dc server is this possible
yes
Can someone please tell me why this doesn't work
@neonnix.command
async def developer(ctx):
channel = neonnix.get_channel(1007993775840309298)
embed = discord.Embed(title=f"{ctx.mention}'s Developer Request", description="Wants to become a developer")
await channel.send(embed=embed)
plugins are hard
yes. if the server that is hosting the ip has an API or can be scraped
.command()
iirc there is already a plugin made for it.
even easier if it's ur own server
nevermind it works
Thanks!
what's neonix
just ask someone to screenshare 
can you explain this message π
no not like that
So basically you need a discord plugin that acts like an API.
basically she meant if u can access the content in chat
if i send hi in the mc server the bot sends hi with my name in the dc server
nice thx
Right so I recommend using sudo for that.
/sudo <player> c:Hello World!
just add a plugin to the server like Panda suggested, there's loads of it
its a bedrock server btw
eww
i was just gonna ask what debian gonna do here
π
thanks
imagine using bedrock when you can use the java version
java x bedrock
speechless
The whole reason for bedrock is to not use plugins.
not even my server
my Minecraft knowledge is 0 so not able to appreciate u PPL commenting
imagine free nitro(
I suddenly forgot everything, let panda enjoy
no python Minecraft π
Valid response.
I HAVE nitro, thanks 
I'm π
zu?
well... ok.. i probably got nothing to say
π€¨
nobpdy gets your token
anyways, looks nice
my motive
why would someone get it in first place π
copy cat 
nice
π
nitro is 10k in my country

are you in russia?
ur country currency value lowπ
...
its growing now it was like 15k before and now its 7k
π π
me Indian too...
so 10k or 7k?
really?
Is 125.58 dollar.

I mean if you instantly buy the 1 year plan it's expensive yeah.
well, 100 dollars is 7k in my country too
brave?
it's 82 in mine
125.59*
discord surprisingly accurate 9999.99 sus
lol]
who their sales manager chose such a perfect amount
π
,
100 in our country is 102.64 USD
100.42 in mine is 121 USD
nice?
74 bucks 1usd
100 in mine is 1.61 usd
Pepsi 40 bucks chips 10 bucks
less than a dollar
ok, start talking about inflation rates now and we are getting warned or shushed together
nice
shhh
p!shhh
p :XD:
without the p
p
where inflation only inflation anywhere is gasoline
!shhh
!shh but okay
why not shhh
/shh
+2 mins
No you can do as many h as you want lol
mhm
interval is based on hs
shh is 4 mins, shhh is 6
reason why financial careers are a great failure
the number of hs determine the amount of minutes and you just pinged a mod
ping
nice?
Unable to convert 'shh' to valid command, tag, or Cog.
Unable to convert 'sh' to valid command, tag, or Cog.
Dynamic command
error handler
Wot
!src shhh
Unable to convert 'shhh' to valid command, tag, or Cog.
!source [source_item=None]
Can also use: src
Display information and a GitHub link to the source code of a command, tag, or cog.
!src hush
Silence the current channel for duration minutes or forever.
!source unhush
Unsilence the given channel if given, else the current one.
this is shhh
shhhhhhh
which state you live asher
from threading import Thread
app = Flask('')
@app.route('/')
def home():
return "Hello. I am alive!"
def run():
app.run(host='0.0.0.0',port=8080)
def keep_alive():
t = Thread(target=run)
t.start()
why is okimii offline, is he stealing my cat again?
Ask ash they seem close
karnataka
@slate swan 
u might as well ask city directly π
HEAD
show me some respect, jeez 
This is a discord bot server sir.
thats up timer robot pinging
full adress please
π
Since when did you expected respect in this channel 

since it is not dpy server
Aren't you the same guy that cited the "do not ask anything if you cannot do ...".
well im not complete denying to ask something, but it would be really helpful
π π
and btw this doesnt change that this is not dpy server
I have a question
Permission to speak.
CREATE ROLE Ashley;
GRANT Ashley PERMISSIONS None;

also what is this language
why even bother creating
client.run("token")
class client(commands.client):
def init():
return super().init(intents=commands.Intents(True))
client = client()
import nextcord
import disnake
from discord.ext import commands
@client.cmd()
async def mycmd():
await client.send_message_to_user("hello")```
why not working
This looks fine to me
commands.client
but it give error
what error?
'client' not defined
hmmm... really weird
how to fix?
consider checking you deleted the bot, regenerated token 666 times and installed thecatapi.discord
no fixing that code more broken than all Jamie Oliver resturant put together
ok wait
wait I didnt create the bot
how to create bot
ok enough shitposting
why
How do I fix this error
in _actual_conversion
raise BadArgument('Converting to "{}" failed for parameter "{}".'.format(name, param.name)) from exc
discord.ext.commands.errors.BadArgument: Converting to "discord.member" failed for parameter "member".
i was searching for random site where you can click button
discord.Member
discord.****M****ember
Oh, so its just a capitalization thing
missing one requirement
π΄
knowledge of reading the docs
common sense and reading abilityπ
Gained another year
UwU in discord terms u old discord uncleπ
really funny, I'm dying laughing
all the commands look trash :)
wha happened
lmao
I
know it is a lot more shitty than it should be but okay
am too lazy to apply any amount of brain
How do I add options to my slash commands in discord.py v2?
thanks panda
you dont 
What do you mean by options? Pretty vague.
like when doing /ban
same as in usual commands
/ban <user> <duration> <reason>?
async def ban(interaction, member, duration, reason):
...
easy as that
@slate swan π
no
reload the page kitty
with options to choose from
spotted it before you did
nothing
skill issue
skill problem
what
why group capital in one and smol in another discrimination between g'sπ
can you help
wdym by option to choose from?
like when doing /ban you can choose for what time
async def user_ban(self, interaction: Interaction, member: Member, duration: int = None, decimal: Literal["Years", "Days", "Hours", "Minutes", "Seconds"] = None, reason: str = None) -> None
I'd prob do this.
duration, decimal π
that's using interactions.py not dicord.py v2
It avoids user being users.
own Time subclass via calendar π
No this is valid dpy v2
what would be th eimport statements?
from typing import Literal
from discord import Interaction, Member
just use this very reliable
People can still fuck this up.
how π
then those people don't deserve to live on earth shame on them
Less typing as well.
For the int you can also use range to limit the max
π§
oh dpy has them i made my own π
this is RoboDanny...
I wanted to tell u but I didn't want to ruin the moment after you tried to pypi your own package for 7 tries.
lmao
;-;
AttributeError: __name__
Thats not from my code
it is
logging get logger
Well I can't do anything with this.
!traceback
Please provide the full traceback for your exception in order to help us identify your issue.
While the last line of the error message tells us what kind of error you got,
the full traceback will tell us which line, and other critical information to solve your problem.
Please avoid screenshots so we can copy and paste parts of the message.
A full traceback could look like:
Traceback (most recent call last):
File "my_file.py", line 5, in <module>
add_three("6")
File "my_file.py", line 2, in add_three
a = num + 3
TypeError: can only concatenate str (not "int") to str
If the traceback is long, use our pastebin.
File "C:\Users\Admin\PycharmProjects\Snap\venv\lib\site-packages\discord\commands\core.py", line 638, in _parse_options
option = Option(option, "No description provided")
File "C:\Users\Admin\PycharmProjects\Snap\venv\lib\site-packages\discord\commands\options.py", line 75, in __init__
_type = SlashCommandOptionType.from_datatype(input_type)
File "C:\Users\Admin\PycharmProjects\Snap\venv\lib\site-packages\discord\enums.py", line 657, in from_datatype
if datatype.__name__ in ["Member", "User"]:
File "C:\Users\Admin\AppData\Local\Programs\Python\Python39\lib\typing.py", line 706, in __getattr__
raise AttributeError(attr)
AttributeError: __name__
Process finished with exit code 1
Since when are the crying about that.
?
Replace the literal with this -> https://discordpy.readthedocs.io/en/latest/interactions/api.html?highlight=choice#discord.app_commands.choices
AttributeError: module 'discord' has no attribute 'app_commands'
2.0.0b4```
wtf am I doing wrong
Are you working in a venv?
Did you install the git version there?
Ye
Could you check over at package control?
wdym
Scroll till you see discord.py
done
What version does it have?
Click on "Add Package" then "From version control" insert https://github.com/Rapptz/discord.py and click ok
but now my slash commands aren't working
Then you are using/ combining other libraries with eachother.
Did you use 3th libraries before?
no
How where they working before then? Since 1.7.3 doesn't have anything related to slash.
Okay, do you have a clue as to why they aren't working?
nope...
Did you get a traceback or just not loading?
I got traseback
Could you paste it here?
Traceback (most recent call last):
File "C:\Users\Admin\PycharmProjects\Snap\Final2\main-slash.py", line 28, in <module>
bot = commands.Bot()
TypeError: __init__() missing 1 required positional argument: 'command_prefix'
Ah yeah in 2.0 command prefix is required, if you don't want any prefix you will need to switch to Client.
Inside Client Intents is now a required kwarg.
Hmm okay
I don't see an issue so I'll gladly ignore that plus light mode ew
!src mute
Temporarily mute a user for the given reason and duration.
isnt it required in 1.7.3 too?
ye it has always been required, intents is just a required arg in Client and Bot on 2.0
intents are required in 2.0
import random
from discord.ext import commands
import timewrap
TOKEN = "e"
client = commands.Bot(command_prefix=';')
@client.event
async def on_ready():
print(f'{client.user} is on')
@command(aliases=["mute"])
@ensure_future_timestamp(timestamp_arg=3)
async def tempmute(
self, ctx: Context,
user: UnambiguousMemberOrUser,
duration: t.Optional[Expiry] = None,
*,
reason: t.Optional[str] = None
) -> None:
"""
Temporarily mute a user for the given reason and duration.
A unit of time should be appended to the duration.
Units (βcase-sensitive):
\u2003`y` - years
\u2003`m` - monthsβ
\u2003`w` - weeks
\u2003`d` - days
\u2003`h` - hours
\u2003`M` - minutesβ
\u2003`s` - seconds
Alternatively, an ISO 8601 timestamp can be provided for the duration.
If no duration is given, a one hour duration is used by default.
"""
if not isinstance(user, Member):
await ctx.send(":x: The user doesn't appear to be on the server.")
return
if duration is None:
duration = await Duration().convert(ctx, "1h")
await self.apply_mute(ctx, user, reason, expires_at=duration)
client.run(TOKEN)
:(
error - File "main.py", line 15
@ensure_future_timestamp(timestamp_arg=3)
^
IndentationError: unexpected indent
ξΊ§
KeyboardInterrupt
?
That happends when you copy something you'd need to de-indent it.
how
!indention
Indentation
Indentation is leading whitespace (spaces and tabs) at the beginning of a line of code. In the case of Python, they are used to determine the grouping of statements.
Spaces should be preferred over tabs. To be clear, this is in reference to the character itself, not the keys on a keyboard. Your editor/IDE should be configured to insert spaces when the TAB key is pressed. The amount of spaces should be a multiple of 4, except optionally in the case of continuation lines.
Example
def foo():
bar = 'baz' # indented one level
if bar == 'baz':
print('ham') # indented two levels
return bar # indented one level
The first line is not indented. The next two lines are indented to be inside of the function definition. They will only run when the function is called. The fourth line is indented to be inside the if statement, and will only run if the if statement evaluates to True. The fifth and last line is like the 2nd and 3rd and will always run when the function is called. It effectively closes the if statement above as no more lines can be inside the if statement below that line.
Indentation is used after:
1. Compound statements (eg. if, while, for, try, with, def, class, and their counterparts)
2. Continuation lines
More Info
1. Indentation style guide
2. Tabs or Spaces?
3. Official docs on indentation
Temporarily mute a user for the given reason and duration.
Isn't ensure_future_timestamp from annotations?
πΏ
Speaking from experience this command is around 300/400 lines if you grab everything that's needed.
These days a slash command does the same with 20/30 lines
ctrl z incoming
Hey can someone help me add choices to my slash commands. Iβm using discord.py
5/10 if you use timeout.
@pearl shoal you'd better do timeout and not care about anything
tempmute?
Thanks
300-400 is too much for a mute π
how many command prefixes and you have per bot?
As many characters that this text box allows.
where it matter discord now slashing commands
kek message content is going to become privelaged intent π
I don't see why you would need it tbh.
prefix commands duh
wait actually what does that mean
so if I have bot = commands.Bot(command_prefix='/')
i can create another one of these or does it need to be in the same line?
means p!ping won't work /ping will also @bot ping will also work
It means after August 31, 2022 you would need permission from Discord to get message content if your bot is verified.
ohkay
why error
bot.command()
async def purge(ctx, howmany: int):
message = ctx.message.id
for i in range(howmany):
await message.delete()
bot.run(token)
await channel.purge(limit=100)
``` π
!d discord.TextChannel.purge
await purge(*, limit=100, check=..., before=None, after=None, around=None, oldest_first=None, bulk=True, reason=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Purges a list of messages that meet the criteria given by the predicate `check`. If a `check` is not provided then all messages are deleted without discrimination.
You must have the [`manage_messages`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Permissions.manage_messages "discord.Permissions.manage_messages") permission to delete messages even if they are your own. The [`read_message_history`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Permissions.read_message_history "discord.Permissions.read_message_history") permission is also needed to retrieve message history.
Changed in version 2.0: The `reason` keyword-only parameter was added.
Examples
Deleting botβs messages...
where would i put it π
ping the server, by using keep alive
you use uptime?
hm
weird
you can use github and Heroku
what doesnt work with it?
you added on github?
@commands.has_permissions(kick_members=True)
@async def mute(ctx, member : discord.Member):
muted_role = ctx.guild.get_role(1008014989979815987)
await member.add_roles(muted_role)
await ctx.send(f'{member.mention} was muted')
@client.command(aliases=['um'])
@commands.has_permissions(kick_members=True)
@async def mute(ctx, member : discord.Member):
muted_role = ctx.guild.get_role(1008014989979815987)
await member.remove_roles(muted_role)
await ctx.send(f'{member.mention} was unmuted')
error - File "main.py", line 16
@async def mute(ctx, member : discord.Member):
^
SyntaxError: invalid syntax
whats import timewrap ?
nothng
tell pwes
reload the page
I havent used it in a long time so I am unsure sorry
I think you have to add buildpack from your app on heroku
dont use replit and heroku
Nah you can use heroku if you don't have any other choice but be ready for its own problems
Is that requirements.txt?
Don't put that second line in there, add buildpack from the site
heroku buildpacks:set heroku/python
There's a command line option too apparently, run that ^
adding python isnt even required explicitly, if you create a python it'll simply add a python interpreter to it 
async def announce(ctx, member : discord.Member, *, message = None):
if message == None:
return
else:
embed = discord.Embed(title= "Announcement!", description=message, color = discord.color.Blue)
embed.set_footer(name=f'Announced by {member.mention}', inline = True)
await ctx.send(embed=embed)
```error - Ignoring exception in command announce:
Traceback (most recent call last):
File "/home/runner/Plague/venv/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 939, in invoke
await ctx.command.invoke(ctx)
File "/home/runner/Plague/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 855, in invoke
await self.prepare(ctx)
File "/home/runner/Plague/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 789, in prepare
await self._parse_arguments(ctx)
File "/home/runner/Plague/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 697, in _parse_arguments
transformed = await self.transform(ctx, param)
File "/home/runner/Plague/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 552, in transform
return await self.do_conversion(ctx, converter, argument, param)
File "/home/runner/Plague/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 505, in do_conversion
return await self._actual_conversion(ctx, converter, argument, param)
File "/home/runner/Plague/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 451, in _actual_conversion
ret = await instance.convert(ctx, argument)
File "/home/runner/Plague/venv/lib/python3.8/site-packages/discord/ext/commands/converter.py", line 195, in convert
raise MemberNotFound(argument)
discord.ext.commands.errors.MemberNotFound: Member "tslo" not found.
!src announce
Unable to convert 'announce' to valid command, tag, or Cog.
!source [source_item=None]
Can also use: src
Display information and a GitHub link to the source code of a command, tag, or cog.
any help?
no member "tslo" found for you
async def announce(ctx, *, message = None):
if message == None:
return
else:
embed = discord.Embed(title= "Announcement!", description=message)
embed.set_footer(name= (f'Announced by {ctx.author}'), inline = True)
await ctx.send(embed=embed)
error = Ignoring exception in command announce:
Traceback (most recent call last):
File "/home/runner/Plague/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 85, in wrapped
ret = await coro(*args, **kwargs)
File "main.py", line 54, in announce
embed.set_footer(name= (f'Announced by {ctx.author}'), inline = True)
TypeError: set_footer() got an unexpected keyword argument 'name'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/runner/Plague/venv/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 939, in invoke
await ctx.command.invoke(ctx)
File "/home/runner/Plague/venv/lib/python3.8/site-packages/discord/ext/commands/core.py", line 863, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "/home/runner/Plague/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: TypeError: set_footer() got an unexpected keyword argument 'name'
Pretty sure it's text=
If only comprehensive documentation that told you about the parameter name and type existed, so we wouldn't have to guess!
whats the difference between lavalink and youtubedl
lavalink is an independent webserver, youtubedl is a python package. Both of them violate Youtube's Terms of Service so can't help with them here
!ytdl applies to lavalink as well
Per Python Discord's Rule 5, we are unable to assist with questions related to youtube-dl, pytube, or other YouTube video downloaders, as their usage violates YouTube's Terms of Service.
For reference, this usage is covered by the following clauses in YouTube's TOS, as of 2021-03-17:
The following restrictions apply to your use of the Service. You are not allowed to:
1. access, reproduce, download, distribute, transmit, broadcast, display, sell, license, alter, modify or otherwise use any part of the Service or any Content except: (a) as specifically permitted by the Service; (b) with prior written permission from YouTube and, if applicable, the respective rights holders; or (c) as permitted by applicable law;
3. access the Service using any automated means (such as robots, botnets or scrapers) except: (a) in the case of public search engines, in accordance with YouTubeβs robots.txt file; (b) with YouTubeβs prior written permission; or (c) as permitted by applicable law;
9. use the Service to view or listen to Content other than for personal, non-commercial use (for example, you may not publicly screen videos or stream music from the Service)
@commands.cooldown(1,10,commands.BucketType.user)
@bot.command(aliases=["cf", "yazitura", "yazΔ±tura"])
async def yt(message, secim:str, sayi:int):
id = str(message.author.id)
if id in data:
if data[id]['cash'] < sayi:
await message.reply("You dont have that much money.")
elif sayi <= data[id]['cash']:
sonucstr = ["heads", "tails"]
sonuc = random.choice(sonucstr)
if secim[0].lower() == sonuc[0].lower():
if data[id]['inv']['boosts']['boost'] == 5:
data[id]['cash'] += sayi * 6
embed=discord.Embed(title=f"SonuΓ§ {sonuc} geldi",color=0xfbff00)
embed.add_field(name=f"You won {sayi} :pcoin:.", value=f"You got extra {sayi*5} :pcoin: with level 5 boost.", inline=True)
await message.reply(embed=embed)
elif data[id]['inv']['boosts']['boost'] == 4:
sayi2 = sayi/2
data[id]['cash'] += sayi * 2 + sayi2
embed=discord.Embed(title=f"Coin lands on {sonuc}",color=0xfbff00)
embed.add_field(name=f"You won {sayi} :pcoin:.", value=f"You got 4 extra {sayi + sayi2} :pcoin: with level 4 boost", inline=True)
await message.reply(embed=embed)
else:
embed=discord.Embed(color=0xfbff00)
embed.add_field(name=f"Coin lands on {sonuc}.", value=f"You won :pcoin:.", inline=True)
else:
embed=discord.Embed(color=0x740202)
embed.add_field(name=f"Coin lands on {sonuc}.", value=f"You lost :pcoin:.", inline=True)
await message.reply(embed=embed)
data[id]['cash'] -= sayi
with open("values.json", "w") as f:
json.dump(data,f,indent=4)
else:
await message.reply("You dont have an accout yet")
@yt.error
async def yt_error(ctx, error):
if isinstance(error, commands.CommandOnCooldown):
await ctx.reply('wait `{e:.1f}` sec.'.format(e = error.retry_after))```
i dont know why but user always wins
the sonuc is always being equal to the secim
can somebody help me please?
can we send a msg like a embed and after that there is a ping?
like pinging the users?
yes
i wanna ping everyone as its an announcement cmd
i need help
so
im making a add role command and i want it to ad d arole to a user just a single one b ut idk how to make it work ive tried so many things
@client.group(invoke_without_command=True)
async def help(ctx):
embed=discord.Embed(title="Help Commands", color=Color.green)
embed.add_field(name="Mderation", value="!help Moderation", inline=True)
embed.add_field(name="Other", value="!help other", inline=True)
embed.add_field(name="Neutral", value="!help Neutral", inline=True)
embed.set_footer(text="For a more in-depth explination on each command, simply type `!help <command>` (replace <command> with the command you want help with)")
await ctx.send(embed=embed)```
nothing is being sent, why?
@app_commands.command(name="premium", description="premium role")
async def premium(self, interaction: discord.Interaction,member: discord.Member):
if interaction.user.guild_permissions.ban_members == True:
embed = discord.Embed(description=f"premium has been added to {member.mention}",color=color.color)
await interaction.response.send_message(embed=embed)
``` this is the cmd
Where's the part where you're adding a role
await ctx.send(embed=embed)
There is no ctx
?
imma add it after it sends the before it sends the emebed
we cant do pings ib embed
try ctx.channel.send instead of ctx.send
then add the everyone ping after embed
how
await message.channel.send(embed=embed)
await message.channel.send("@everyone")```
lol
anyone?
thanks
if you want to make it delete the @everyone after ping you can add delete_after
. trying to make it give a role
didn't work
make sure the bot has perms
hm
You're not adding a role, like Zeffo said, so obviously the user won't get a role added to them
ik, i need help setting it up?
didnt work
Setting what up? It should just be a simple function call
ik i tried it it didnt owkr for me
What did you try and how did it not work for you?
can we send a msg like a embed and after that there is a ping?
is there a way to pass state to discord's oauth2 and redirect the user to specific uri endpoint after authorizing himself?
how do you create that reaction thing for discord bots, when you click the reaction you can get custom roles or something else
The Oauth2 flow is stateless, unfortunately
damn
!src autorole
Unable to convert 'autorole' to valid command, tag, or Cog.
!source [source_item=None]
Can also use: src
Display information and a GitHub link to the source code of a command, tag, or cog.
search on_reaction
help pls
have you tried what i told you?
i just want to redirect the user to SAME endpoint after authorizing himself
can you send the whole code
Sure can:
embed = discord.Embed(...)
await ctx.send(guild.default_role.mention, embed=embed)
This pings everyone, and then sends the embed in the same message
It's on_reaction_add
so that's not possible Robin?
Though this only works for cached messages, so on_raw_reaction_add may be a better alternative
isnt ctx.send("@everyone") doing the same thing?
There's only one endpoint you are redirected to after authorization, not sure what you mean by "same"
it showing undefined name guild
Sure, but I prefer using the library's methods and properties
Right, guild has to be an actual discord.Guild instance
say i'm on address: localhost:3000/<guild_id> and then do the oauth2 process and then send the user back to /<guild_id>
it's so sad ffs
Ah. No, that's not possible I'm afraid
But it should just be a minor nuisance rather than a major functionality problem
Though, erm, if you're laying out your site properly.. how would you get to localhost:3000/<guild_id> without first authorizing yourself with Oauth2?
so python.default.role.mention
?
python.default.role 
uuuh Im suddenly getting this error...
Exception has occurred: AttributeError 'client' object has no attribute 'tree'
class client(commands.Bot):
def __init__(self):
intents = discord.Intents.default()
intents.members = True
super().__init__(
command_prefix ='.',
intents = intents,
owner_id = 394138910508449792,
application_id = os.getenv('BOT_ID'))
self.synced = False
async def setup_hook(self) -> None:
self.session = aiohttp.ClientSession()
target_dir = Path.cwd() / 'cogs'
for cog in target_dir.rglob('*.py'):
await self.load_extension(f'cogs.{cog.parent.name}.{cog.stem}')
await cltree.sync(guild=discord.Object(770698123915165747))
self.synced = True
print('All commands are now synced.')
async def on_ready(self):
await self.change_presence(
status=discord.Status.online,
activity=discord.Activity(type=discord.ActivityType.watching,
name=f'{len(self.guilds)} servers! | g!help'))
print(f'Logged in as {self.user} (ID:{self.user.id})')
aclient = client()
cltree = aclient.tree
load_dotenv()
aclient.run(os.getenv('TOKEN'))
I know that it shouldn't be named client...
No, you need to have a discord.Guild instance. Be that ctx.guild, interaction.guild, or obtain it somehow from any event
!resources perhaps learning a bit more python could help? Knowing the difference between a class and it's instance is quite important to using discord.py
The Resources page on our website contains a list of hand-selected learning resources that we regularly recommend to both beginners and experts.
Well no, obviously not. You're not defining it anywhere
The tree variable
You can't use it if you haven't defined it
I don't used discord.py anymore, but I just pulled up the docs, it's part of commands.Bot
commands.Bot does have a default built in tree, yes. If you're using client, you'll have to do it manually
he's using bot, just not naming it that way :/
Ah right, just noticed. Thought it was client due to the naming
oh yeah sorry
Which version are you on?
I added this at the end but maybe I should have mentioned
discord.py or python
oh I found the error
i moved the code to another folder
and its not initiating the .venv, so its using an old d.py version
lel
That would explain it
thanks haha
yw ig? xD
and I should probably change client to bot
please xD
Bot, not bot
yeah
how do you get a discord bot to edit its own messages
bot has to take message obj and then use edit method
my on_message event don't let my commands work
make sure you process_commands
the code?
make it a listener
!d discord.ext.commands.Bot.process_commands
await process_commands(message, /)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
This function processes the commands that have been registered to the bot and other groups. Without this coroutine, none of the commands will be triggered.
By default, this coroutine is called inside the [`on_message()`](https://discordpy.readthedocs.io/en/latest/api.html#discord.on_message "discord.on_message") event. If you choose to override the [`on_message()`](https://discordpy.readthedocs.io/en/latest/api.html#discord.on_message "discord.on_message") event, then you should invoke this coroutine as well.
This is built using other low level tools, and is equivalent to a call to [`get_context()`](https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.Bot.get_context "discord.ext.commands.Bot.get_context") followed by a call to [`invoke()`](https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.Bot.invoke "discord.ext.commands.Bot.invoke").
This also checks if the messageβs author is a bot and doesnβt call [`get_context()`](https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.Bot.get_context "discord.ext.commands.Bot.get_context") or [`invoke()`](https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.Bot.invoke "discord.ext.commands.Bot.invoke") if so.
Changed in version 2.0: `message` parameter is now positional-only.
everytime I use what I have it always gives me the error: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'coroutine' object has no attribute 'edit'
ty
You're probably forgetting to await something
It'd be very helpful if we can see the code
The Code is for my reporting system
@neonnix.command()
async def report(ctx, Member: discord.Member, reason):
message = ctx.send(f"Reporting Member {Member}")
await message
channel = neonnix.get_channel(1007993775840309298)
embed = discord.Embed(title=f"{Member} Has been reported by {ctx.message.author}", description=f"Reason For: {reason}\nRank of Member Reporting: {ctx.message.author.top_role}\nRank of Reported Member: {Member.top_role}")
await channel.send(embed=embed)
await neonnix.change_presence(activity=discord.Streaming(name='Discord', url='https://www.twitch.tv/neonnix_live'))
await asyncio.sleep(5)
await message.edit(content="Reported Member")
await message
wouldn't be better to use @bot.listen() instead of @bot.event()?
I've never seen anyone do that. Why not just await ctx.send(...)?
oh wrong reply
ngl, didn't even know you can do awaits like that xD
message = ctx.send(f"Reporting Member {Member}")
await message
this only sends the message. To get the actual message you'll have to do something like
message = ctx.send(f"Reporting Member {Member}")
actual_message = await message
which is not very nice at all
The better alternative would be to do this:
message = await ctx.send(...)
await message.edit(...)
message = ctx.send(f"Reporting Member {Member}") await message okay
this hurts
my brain go melt
You can, similar to higher order functions/first class functions. You can pass around coroutines just like that
Useful for things like callbacks
random question: what is this?
how is it even possible?
It's very possible
what
Like I mentioned, higher order functions work for coroutines as well
won't ctx.send(..) raise an error?
thank you
!e
async def coroutine():
...
print(type(coroutine()))
@sick birch :white_check_mark: Your 3.11 eval job has completed with return code 0.
001 | <string>:3: RuntimeWarning: coroutine 'coroutine' was never awaited
002 | RuntimeWarning: Enable tracemalloc to get the object allocation traceback
003 | <class 'coroutine'>
Aside from that warning, you can see it's type
!e ```py
async def func():
print('yeah, it's async cus yes')
do = func()
await do```
@silk fulcrum :x: Your 3.11 eval job has completed with return code 1.
001 | File "<string>", line 5
002 | SyntaxError: 'await' outside function
woops
Top level await when
lol
well it doesnt raise an error at do = func()
so that is possible
python are you crazy?
It's nothing crazy, I assure you
isn't it kinda like making a func then calling it later?
i understand smth like py if smth: strategy = ctx.send else: strategy = ctx.reply await strategy(content)
but not that
cause you ain't awaiting it, its just the coro object
kinda yeah, that account was distracting so i just disabled it :p
@gleaming anvil :white_check_mark: Your 3.11 eval job has completed with return code 0.
001 | <string>:2: RuntimeWarning: coroutine 'foo' was never awaited
002 | RuntimeWarning: Enable tracemalloc to get the object allocation traceback
003 | <class 'function'> <class 'coroutine'>
the difference between those two things
async def order(ctx):
if ctx.channel.name.startswith("ticket") == True :
TheChoice = await ctx.send ("**Please choose one from our services\nVPS : :red_circle:\nRDP : :green_circle:\nMTA : :yellow_circle: **")
TheEmoji = discord.Client.get_emoji(self ,id=919399790410866689)
await TheChoice.add_reaction(TheEmoji)```
what's the error ?
u tell
File "main.py", line 23, in order
TheEmoji = discord.Client.get_emoji(self ,id=919399790410866689)
NameError: name 'self' is not defined```
Hi, i have adiscord.py 2.0 issue:
SLash command works, but still says "Application did not respond" but it did respons, what can i do?
but why?
you sent a message not a response
so
Ohw
it use the client instantiated instance is ur bot instance here
so what can i do?
remove self
so it's bot.get_emoji()
ok
How can i make him think it did respond?
what's your bot object here use that
You are developing a bot in dutch π
The most cursed language on the planet.
@tree.command(name = "ad_leaderboard", description = "Leaderboard-embed", guild = discord.Object(id = 979395371992240198))
async def self(interaction: discord.Interaction, pagina: int):
p = 0
p = pagina
p = p - 1
e = levelLeaderboard(p)
if e is None:
await interaction.channel.send("Er ging iets mis. Oepsie!")
else:
await interaction.channel.send(embed=e)```
HAhahah π
why u name it selfπ
You listening to cursed dutch music
It need to talk to a different function
Django wagner is good.
def levelLeaderboard(p):
global cursor
cursor.execute("SELECT id, lvl, xp FROM Users ORDER BY xp DESC")
users = cursor.fetchall()
embed = discord.Embed(title='ADTG XP Leaderboard, page ' + str(p + 1), color=discord.Color.green())
i = 0;
i = i + 10 * p
p = (p+1) * 10
if i >= len(users):
embed = discord.Embed(title="Zoveel pagina's hebben we niet.", color=discord.Color.red())
return embed
while i < p and i < len(users):
text = "level: " + str(users[i][1]) + ", total xp: " + str(users[i][2])
if (client.get_user(users[i][0])):
name = client.get_user(users[i][0]).name
print(name)
embed.add_field(name=name, value=text, inline=False)
else:
embed.add_field(name="Onbekend", value=text, inline=False)
i = i + 1
return embed```
This one
and pagina sus π
Mwaah
await interaction.response.send_message()
''' or '''
await interaction.response.defer()
await interaction.edit_original_response(...)
Says the one using global π
π€
sync db
global cursor
While loop
But can i fix the not responding issue?
what's wrong with while loopπ
await interaction.response.send_message()
''' or '''
await interaction.response.defer()
await interaction.edit_original_response(...)
I don't like while loops.
ok
same
You have to defer since it takes too long. Either do that or optimize the code.
Hmm okey
π€
Also are you not using an async module for sqlite?
Fixed it
nice
π
In stead of: await interaction.channel.send i did: await interaction.response.send_message
@hard hinge Checking out your website and... about me, Ik vindt is not grammatically correct.
Mb, it's needs still a look for the grammar π
jeez, panda chill
Ah, it;s isn't a issue, feedback always welcome ;P
I'm just pointing out 
grammatically*
I highly recommend making the connection globally available. If this is sqlite I also recommend closing the cursor after the command is done.
It's MySQL db π
Check!
close() right?
Ah, well then you are in for a treat... Python doesn't really offer great support for Mysql since it's meant for websites. Since Discord bots are in a async environment it's best to make as much as possible async. An async database module does increase performance.
Yes or you can use a context manager.
With... buttons?
yes
Hmm okey, interesting!
MySQL isnt even recommended for bots
https://github.com/Rapptz/discord.py/tree/master/examples
Rapptz offers a great set of examples, be cautious tough these are examples not meant to be copied.
I'm using disnake
Disnake offers the same in their repository.
It's inside the root named "examples".
disnake discord nextcord replace names and u will be fine 99.99% of the time
A few of them were me π
And I think most are community made
Hence the caution 
pfft
that was like epic plot twist
i have filed a report and moderator action will be taken 
πΆ β°οΈ
cya panda π
what should I use to get the translations for slash cmd localizations
An API preferably.
ok thanks. i was probably gonna use that but it would take a long time cause ratelimits
Well tbh there aren't any good free api's
yeah i looked a lot
It does make sense since it's not a lightweight task.
don't have what i need
i originally used google translate but it figuired out im a bot
You also look like a bot to me.
u could use a lib ig
all are just wrappers for apis
so i guess ill do that
i saw that
i keep forgetting my packages
that's yours?
use this pretty nice stuff
no
well i only looked at google but i didnt notice the 10 others
,
thanks
i ain't got patience to make wrapper for so many APIs i just use ready made ones
Also uses an api/ paid api for upgrade.
why what happened it translated your name wrongπ
didnt even try + dont wanna try
use the Google or deepl engine it's free
deep_translator/deepl.py lines 28 to 32
"""
@param api_key: your DeeplTranslator api key.
Get one here: https://www.deepl.com/docs-api/accessing-the-api/
@param source: source language
@param target: target language```

oop
yeah api key is free
ohk
Yeah and severely limited.
deepl has few translations better than Google
can someone help me make a give role cmd?
thats why i still recommend deepl in few cases
country wise yes not available in my region
tbf for 6 bucks a month you get unlimited translations but who uses translations anyways.
can someone help me make a give role cmd?
!d discord.Member.add_roles
me
await add_roles(*roles, reason=None, atomic=True)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Gives the member a number of [`Role`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Role "discord.Role")s.
You must have the [`manage_roles`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Permissions.manage_roles "discord.Permissions.manage_roles") permission to use this, and the added [`Role`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Role "discord.Role")s must appear lower in the list of roles than the highest role of the member.
wdym?
api key to get u have to be in specific regions
where they provide services
await member.add_roles([role for role in guild.roles])
i wanna give them a role in a srrver using the role name
What if there are 2 roles with the same name?
!d discord.utils.get
discord.utils.get(iterable, /, **attrs)```
A helper that returns the first element in the iterable that meets all the traits passed in `attrs`. This is an alternative for [`find()`](https://discordpy.readthedocs.io/en/latest/api.html#discord.utils.find "discord.utils.find").
When multiple attributes are specified, they are checked using logical AND, not logical OR. Meaning they have to meet every attribute passed in and not one of them.
To have a nested attribute search (i.e. search by `x.y`) then pass in `x__y` as the keyword argument.
If nothing is found that matches the attributes passed, then `None` is returned.
Changed in version 2.0: The `iterable` parameter is now positional-only.
Changed in version 2.0: The `iterable` parameter supports [asynchronous iterable](https://docs.python.org/3/glossary.html#term-asynchronous-iterable "(in Python v3.10)")s...
im not good w reading docs π
You didn't even try or you read crazy fast.
Sounds like you've got some learning to do
Click on the blue link on top of the embed to see more info.
Do the run command works for accounts tokens or just bots ?
Self botting is against Discord's terms of service
Ah ok
emojis make it so you can easily see the amount of votes but i like buttons cause they look better
@app_commands.command(name="premium", description="premium role")
async def premium(self, interaction: discord.Interaction,member: discord.Member):
if interaction.user.guild_permissions.ban_members == True:
Role = discord.utils.get(member.guild.roles, name="premium")
await self.client.add_roles(member, Role)
embed = discord.Embed(description=f"premium has been added to {member.mention}",color=color.color)
await interaction.response.send_message(embed=embed)```
error
Traceback (most recent call last):
File "/home/runner/donate/venv/lib/python3.8/site-packages/discord/app_commands/commands.py", line 655, in _do_call
return await self._callback(self.binding, interaction, **params) # type: ignore
File "/home/runner/donate/cogs/config.py", line 54, in premium
await self.client.add_roles(member, Role)
AttributeError: 'Bot' object has no attribute 'add_roles'
You would use your member argument as an instance of the Member class does have such an attribute, if youre looking to add a role to your bot it would be Guild.me which you can get an instance of a guild object with Interaction.guild.
im adding it to a mem ber
well then you would use the member argument and not your bot
(add_roles is a method of Member, not Bot)
Didn't we just provide help?
i dont get it, kinda get it but not rlly
Reading the documentation would clear it all up
!d discord.Member.add_roles this is how you add role to a member
await add_roles(*roles, reason=None, atomic=True)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Gives the member a number of [`Role`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Role "discord.Role")s.
You must have the [`manage_roles`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Permissions.manage_roles "discord.Permissions.manage_roles") permission to use this, and the added [`Role`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Role "discord.Role")s must appear lower in the list of roles than the highest role of the member.
so this is really all i need?
To add roles, yes
why was interaction.edit_original_message() changed to interaction.edit_original_response()?
Can the bot be ran on an account ?
its against discord TOS
It is, that's why it's not allowed
Because it edits the original response
makes sense π
Me and @smoky cedar (sorry for ping) had this issue a while ago
It took us a solid 10 minutes to figure out that edit_original_message did in fact, edit the response
bruh
@tree.command(name = "ad_leaderboard", description = "Leaderboard-embed", guild = discord.Object(id = 979395371992240198))
I need this, but then for all the server the bot is in, how can i do that? π
Because, for example, how would you edit_original_message of a slash command?
There is no original message that the interaction originated from, similar to how a button or a select menu originates from a message
right
please explain
What do you mean?
Remove guild = discord.Object(id = 979395371992240198) for it to be a global command
o
Ah right, thanks you very mutch β€οΈ
was about to ask if he needed that π
I appriciate (idk how to write it) very mutch! π
No worries, I get what you mean π
The entire group doesnβt work though
Without the t
Thanks
lmao
how do I make the bot send an embed message?
what library?
if "lol" in message.content.lower():
with open("lol.txt", "w+") as f:
f.write(f"{message.content}\n")
f.close()
print("lolreceived")
it keeps overlapping
idk
so ur not using disocord py, nextcord....
im using discordpy
ok
!d discord.Embed
class discord.Embed(*, colour=None, color=None, title=None, type='rich', url=None, description=None, timestamp=None)```
Represents a Discord embed.
len(x) Returns the total size of the embed. Useful for checking if itβs within the 6000 character limit.
bool(b) Returns whether the embed has any data set.
New in version 2.0.
x == y Checks if two embeds are equal.
New in version 2.0...
for example a = discord.Embed()
then a.add_field(name=)
@scarlet widget https://cog-creators.github.io/discord-embed-sandbox/ embed generator (code will be generated below)
thanks
why did it "``" π³
what does url mean
url where?
wdym
url is if you wanna make it clickable into link
@scarlet widget see blue text on this
url for title
How does it know what channel to send it to
are you making a command?
channel = bot.get_channel(channelid)
No I just want the bot to send an embed
await channel.send(embed=em)

