#discord-bots
1 messages Β· Page 61 of 1
you ever use a webhook?
Yea
Alright. So a service I am using is sending something to my discord server using a webhook.
The data it is sending is in the form of a json file.
I was given a shared_secret so I assume thats to authenticate.
But I can't figure out how to authenticate π¦
or how to get the json file..
Why r u even authenticating manually tho
listen i am trying to learn this
we can do 1 thing at a time yo
like. how to first get the data i want.
You able to help me or not?
I mean, u r sending requests to the api to get the JSON right?
I thought the purpose of the service sending to my webhook was so I didnt need to query their website..
Or, the line where u do webhook.send or smth, u can do msg = webhook.send and the msg will be the Message object the webhook sends
The service is sending to the discord webhook..
So when I go to a discord channel, I go to integrations and create a new webhook, I take that URL and give it to the service. then they send the data to that url
I want to pull whatever data it is sending
Can I get the link to the API? Also, u should consider sending the requests manually then
Okay... Just send the requests yourself and access response.json and do whatever you want with it
You've not really been of much help. Since I dont understand anything about web hooks you've basically asked the same questions over and over again.
Which is annoyingly frustrating. All I want is to grab the webhook data that is being sent to my discord server and I cant seem to figure it out
Dude, I literally told you. Send the requests to the API yourself using aiohttp, then access response.json, and u have the JSON that way. Then, use your webhook object to send the JSON
As simple as it gets
I'm not sending anything using the webhook. The service is sending to me using the webhook
I supply them a URL to my channel webhook (Using the integrations in discord).
And they send the data to me..
Or at least suppose to..
That's what I'm saying... DON'T do that and instead use aiohttp and send requests to that service yourself
No. I can't due to rate limits, it's better if they're sending the data to me.
without me making a request to their api
Then you're probably out of luck
Hi im new on
Hi
from discord.ext import command
commands*
VS is annoying. run it through cmdline
What you use
I use vscode to code everything then coz vs doesnt pick up all my packages I run my bots through cmd line
So if anyone gives a shit I got everything to work properly.. y9 and The Master...
That's... vsc

what π¬
Β―_(γ)_/Β―
does anyone know how to give give a description to these..
heres an example
!d discord.ext.commands.command
@discord.ext.commands.command(name=..., cls=..., **attrs)```
A decorator that transforms a function into a [`Command`](https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.Command "discord.ext.commands.Command") or if called with [`group()`](https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.group "discord.ext.commands.group"), [`Group`](https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.Group "discord.ext.commands.Group").
By default the `help` attribute is received automatically from the docstring of the function and is cleaned up with the use of `inspect.cleandoc`. If the docstring is `bytes`, then it is decoded into [`str`](https://docs.python.org/3/library/stdtypes.html#str "(in Python v3.10)") using utf-8 encoding.
All checks added using the [`check()`](https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.check "discord.ext.commands.check") & co. decorators are added into the function. There is no way to supply your own checks through this decorator.
description=
TheMaster did you see my fixed code above as well i got it working fully
Yeah I saw. Definitely the way u are currently using is not ideal but I guess the ideal way just is not working
You used discord webhooks before?
I'll explain the situation and see if you can help me.
A service I am using, uses webhooks and sends to the discord webhooks (right click a channel -> settings -> integrations -> webhooks, take that URL)
It is suppose to send a json file.
I was given a secret key.
Can you help me access all this? I dont want to constantly query the websites api and webhooks are suppose to alleviate that.
i mean.. i get no errors now... it throws the type in a message idiot if i dont put one in... and sends the normal message fine.... so id say its working without errors...
i geuss maybe its not ideal but i figured id post my working code
Could you possibly send rhe link for the docs for that website
i mean.. if it works.. it works right?
I dont see how that'd help but I guess..
https://www.battlemetrics.com/developers/documentation
https://learn.battlemetrics.com/article/47-webhooks
About Webhooks A webhook allows you to send a HTTP POST request from our server to yours. You can send a JSON or plain text request to a URL of your choosing. W
Yep I guess
i mean its working flawless now for what i intend for it to do so..
Ok so the way they are using webhooks is to send it to ur own web server
So i cant use discord at all? I have to use their api anyway?
It will not directly interact with discord webhooks
You can also use web sockets. There may be a good library that will make this easy but Iβm not sure.
any examples anyone could show me?
of what?
adding descriptions to the image i showed before
aahh i feel like I should just use the API like normal..
to commands?
yes that would be the best
i know how to add descriptions to the commands its the attributes underneath
@faint lightwhoa hi
in the @commands.command() do @commands.command(help='My Description')
where it says no description given
nah
i forgot how exactly it is done so searching for an example
if i do !help addxp it will show the Add xp for a skill if i do !help command addxp it shows the rest name, skill,amount - no description given
isnt that how you give a command a description?
i was curious how to add descriptions to those
!d discord.ext.commands.parameter
discord.ext.commands.parameter(\*, converter=..., default=..., displayed_default=...)```
A way to assign custom metadata for a [`Command`](https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#discord.ext.commands.Command "discord.ext.commands.Command")'s parameter.
New in version 2.0.
Examples
A custom default can be used to have late binding behaviour.
```py
@bot.command()
async def wave(ctx, to: discord.User = commands.parameter(default=lambda ctx: ctx.author)):
await ctx.send(f'Hello {to.mention} :wave:')
its smth like this```py
"""
Options
name: str
some descr
"""```
thats for app commands
oh
Want to add a description to an ext.commands command's argument?
β οΈ This is not for App/hybrid commands, use @app_commands.describe(...) for that instead (?tag optiondescription)
Use the desciption= kwarg in commands.parameter:```py
from discord.ext.commands import Context, parameter
tip: there is an alias named "param", you can import and use that instead of "parameter"
@..command(...)
async def say(ctx: Context, message: str = parameter(description="What should I say?")):
# need to add a default? you can do that using the default= kwarg
# parameter(description="What should I say?", default=None)
...
**Docs:** https://discordpy.readthedocs.io/en/stable/ext/commands/api.html#discord.ext.commands.parameter
Argument descriptions show up in the default help command, they default to "No description provided" in there if none is provided.
You can also change the "No description provided" to anything you want using the `default_argument_description` kwarg in `commands.DefaultHelpCommand` and pass that to the `help_command` kwarg in the Bot constructor.
**Docs:** https://discordpy.readthedocs.io/en/stable/ext/commands/api.html#discord.ext.commands.DefaultHelpCommand.default_argument_description
here's what i got from dpy server
You know he's serious coz he used the icon.
im confused
async def addxp(self, ctx, name: str = parameter(description="Name of the person!") etc etc etc):
whats so confusing in ```py
@command()
async def foo(ctx, bar: str = commands.param(description="uwu")): ...
command not defined
im faster, touch grass
spaces..
str not defined as well
no
yas
ney
You horse?
how is he gonna unimport str to prove that str is not defined
smh
i dont get it..
not the interpreter but you linter will cry if you are able to override builtins namespace
gg
im sorry im noob as shit..
SyntaxVirror: 'yomama' is shadowing a built-out name
wth
of course its pylance
^
__import__("builtins").print = not_print
π
Oh ok didnt read
import it as console.log
im not that of a monster
printf
puts
println!
echo
bruh you read my mind
π
HEY!! π good news
youd better say nothing
sudo rm -r nova
that would be good new
I got a webserver. \o/
idk how this works but if it works it works. \o/
kek
!tag itworks
still NFI how this shit works for my webserver..
So it needs to be able to receive the post requests as specified in the docs
According to my friend, the VPS we're using is also a webserver. But I connect to it using remote connection. It's basically a virtual machine.
So idk how to send stuff to it xD
No Freaking Idea
Same
!d aiohttp.web
The page contains all information about aiohttp Server API:
You should get started with this
the whole problem screams XY to me ngl
std::cout <<
I have the idea bro, telling it's full form.
Okay. So I need to create a webserver on my vps so I have a 'url'?
iirc you can do
open(1).write("Hello World!")
Just start a tcp socket or whatever on the virtual machine and done!!
not in c++
c# is better System.Console.WriteLine
i never said it was in cpp...?
well it was cpp in the message you replied to...?
System.out.println better
In cpp should U use this or printf
You see how the codeblock has the py prefix
Language of coffee snorters
who craes
craes
I think your english teacher would care
i dnot heva one
I think we all knew that
kek im also bad at my spelling
@ everyone
stlli i tihnk my eignlish is gud for 13 oy
printf, that looks like crap
at 13 i already knew 3 languages, english Spanish and love language ||ask your mom||
Yo voy dormir con tu madre
printf over cout π
so you don't have to >> for formatting strings
The only person youre going to sleep with is my dog
outside
Scotty doesnt know..
Me gusta perros
you were translating so long
thats not the translation
El tienes google translate
im not language learner, i juts know english enough to speak on it and im fine with it
me after not using my native language thats spanish: π
donde esta mi gato
ΠΊΡΡΡΠΎ
El gato very sexo wa mou shindeiru
if i used my spanish you probably cant translate it due to so much slang
Gatos es muy mal
hello
hello
el gato
Google translate es muy intelegente
: at the end
Im running the wrong file ig
no lo dudo kek
maybe
gilipollas afuera de nuevo
Tu esponol es mal
kek
It is the @unkempt canyon source code
Tu espaΓ±ol*π
Mi esponal es bueno/buena
lmao
can we talk in #help-orange ?
you can
there is config
you cand
sin niranja
who said you can't π³
big config
there is a guide at the website and it has separate config file
if you have poetry and eyes youre fine
youll have to write it urself iirc
I used it but Im running the wrong file ig
how do I change the cd on replit
im too drunk for this shit i was just trying to figure out how to make descriptions now
fml
Thanks for all the help especially. TheMaster and y9
π
can you help me too?
I wouldnt recommend what youre doing
if im using wait_for within a discord bot, can i put a list under the acceptable content list?
ie i have this rn
confirm_msg = await bot.wait_for('message', check=lambda m: m.content.lower() in [atarglock, etarglock, 'other']
etarglock atm just = ['e1']
Copying advanced code to have a bot that is customized for this specific server seems like a bad idea, even if youre going to customize/change it by the impression of your problem it looks like it wont be so easy.
bro there is a guide for people to do it, please help me
A guide to setting up and configuring Bot.
its a pretty generic code i didnt do anything crazy
bro
i only copied error_handler.py and not even fully, just a little bit, since im using slash commands etc ethfjsofajgs
they provided a separate config file for our local server
The past two replies are so confusing as theyre giving me information i dont need nor want
we're gonna fill ur brain with useless information
The whole point is useless and irrelevant
does anyone know if its possible for this code to check within a list ?
or if not, how i could work it so that it accepts an input if it is within said lists
it looks correct to me, as the expression passed to the lambda object returns bool
then how come it wont accept something that is within one of those lists as an input ?
you can use not
!e
print(1 not in [2, 3])
@primal token :white_check_mark: Your 3.11 eval job has completed with return code 0.
True
the expression returns True as the int isnt in the list, is that what you wanted or am i getting confused with what youre looking for?
im wanting it to return true if it is in the list
the issue however
confirm_msg = await bot.wait_for('message', check=lambda m: m.content.lower() in [atarglock, etarglock, 'other']
is that atarglock and etarglock r lists too
and its within those lists i cant seem to get the check to work with
i know for a fact that etarglock == ['e1']
as i printed it the line prior to check
when i type e1 however
so youre trying to check if the message content is in the list that has nested lists?
i believe thats correct
i want it to check within atarglock and etarglock
so yes within nested lists
you can use * to unpack both of the lists into that parent list and check that list
u mean like
confirm_msg = await bot.wait_for('message', check=lambda m: m.content.lower() in [*atarglock, *etarglock, 'other']
?
yeah
ohhh
@primal token :white_check_mark: Your 3.11 eval job has completed with return code 0.
[1, 2, 3, 4]
i think *etarglock is more readable in my code; lemme test it rq
well it wouldnt work as you have a string inside of the list
Anyone know how to do voice to text from a vc with a bot?
it wont work
knowing what id be trying to do, what would you suggest ?
either way sum returns the summed object so no need to cast it into a list and sum should only be used if nesting container types of the same type thats being nested and provided
Step 1 would be to properly receive audio from discord, which few python wrappers do
what the problem
!intents
Using intents in discord.py
Intents are a feature of Discord that tells the gateway exactly which events to send your bot. By default discord.py has all intents enabled except for Members, Message Content, and Presences. These are needed for features such as on_member events, to get access to message content, and to get members' statuses.
To enable one of these intents, you need to first go to the Discord developer portal, then to the bot page of your bot's application. Scroll down to the Privileged Gateway Intents section, then enable the intents that you need.
Next, in your bot you need to set the intents you want to connect with in the bot's constructor using the intents keyword argument, like this:
from discord import Intents
from discord.ext import commands
intents = Intents.default()
intents.members = True
bot = commands.Bot(command_prefix="!", intents=intents)
For more info about using intents, see the discord.py docs on intents, and for general information about them, see the Discord developer documentation on intents.
Read the tag
intents = intents
WHERE TO WRITE
it tells you in the 3rd line of your error
read above
Yeah there is an open source thing but its in java ππππππ
If you do not understand you may not be ready to make a discord bot.
You can make your own !!
had a bit of fiddling to do, but this worked! tyvm; ive been trying to get this part of my func working for wayyy too long '-'
Probably not !!
seems like a lot of work
so bad server @eager sorrel
There are a few dpy forks which have voice recv functionality but they are kinda unstable .. you can try them
Just because you cannot read what an embed says, it doesn't mean the server is bad 
intents = discord.Intents.all()
literally all you needed to do
!d discord.Intents.all
classmethod all()```
A factory method that creates a [`Intents`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Intents "discord.Intents") with everything enabled.
Well they left because couldn't read this message
probably doesn't understand it
since ur a beginner lemme tell u something
dont use replit
Yeah lol
use an actual hosting service & and an actual code editor
Unless you only wanna run it for 10 min at a time
or use a script and still get 30m downtimes
^^ vouch i use aws to host my bot
Same
usually averages 16-20 ms
he left
@scarlet sorrel i added a feature to my bot yesterday. its basically custom embed reactions. it worked fine but when i changed the reactions it broke
do u have any idea why that could happen?
keeps hitting me with the error unknown emoji or some shit
no
The bot has to be in a server with it
Did you change the id of what its trying to send everywhere its mentioned in the code?
wdym
Like if the id of the emoji is mentioned multiple times change all of them
oh
i don't store the emoji id
i store the emoji name in the db & add it as a reaction
should i use id instead of name
Yes 100%
alr ill try when i get on pc
so store the emoji id fetch the emoji using its id & add it as a reaction?
reaction, user = await bot.wait_for('reaction_add', check=check)```
Thanks, this fixed it.
how to make webhook? when ppl vote my bot on topgg i want it to send a message in specific channel id
!d discord.Webhook
class discord.Webhook```
Represents an asynchronous Discord webhook.
Webhooks are a form to send messages to channels in Discord without a bot user or authentication.
There are two main ways to use Webhooks. The first is through the ones received by the library such as [`Guild.webhooks()`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Guild.webhooks "discord.Guild.webhooks"), [`TextChannel.webhooks()`](https://discordpy.readthedocs.io/en/latest/api.html#discord.TextChannel.webhooks "discord.TextChannel.webhooks") and [`VoiceChannel.webhooks()`](https://discordpy.readthedocs.io/en/latest/api.html#discord.VoiceChannel.webhooks "discord.VoiceChannel.webhooks"). The ones received by the library will automatically be bound using the libraryβs internal HTTP session.
The second form involves creating a webhook object manually using the [`from_url()`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Webhook.from_url "discord.Webhook.from_url") or [`partial()`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Webhook.partial "discord.Webhook.partial") classmethods.
For example, creating a webhook from a URL and using [aiohttp](https://docs.aiohttp.org/en/stable/index.html "(in aiohttp v3.8)"):
no
what
show code
figure it out on ur own
@client.command()
async def letter(ctx, member: discord.Member = None):
for member in ctx.guild.members:
try:
for role in ctx.guild.roles:
if role.name == member.name[0] and role.name == member.name[0] not in member.roles:
await member.add_roles(role)
print(f'{member.name} has been given the {role.name} role.')
else:
print(f'{member.name} does not have the {role.name} role.')
pass
except Exception as e:
print(e)
pass
I have made roles from A to Z, And I want to give all the members the role that there name starts with, But I don't know why it's not working
why are u doing role.name == member.name[0] twice
idk
anyone have?
don't be a skid
@client.command()
async def letter(ctx, member: discord.Member = None):
for member in ctx.guild.members:
try:
for role in ctx.guild.roles:
if role.name == member.name[0] and role.name not in member.roles:
await member.add_roles(role)
print(f'{member.name} has been given the {role.name} role.')
else:
print(f'{member.name} does not have the {role.name} role.')
pass
except Exception as e:
print(e)
pass
then ima search on github -_-
so you're basically adding a role to every member who doesn't have the role in the server
Was that a question or?
confirmation
@bot.command()
async def buttontest(ctx):
button = Button(label="click me",style=ButtonStyle.blurple)
async def button_callback(interaction):
await interaction.response.send_message("Hello!")
button.callback = button.callback
myview = View(timeout=180)
myview.add_item(button)
await ctx.send("button",view=myview)
``` idk why but it half works and half not, the message has a button but when i click on it nothing happens, any idea?
no error
I have made roles from A to Z, And I want to give all the members the role that there name starts with, But I don't know why it's not working
add try & except to catch the error
also don't add buttons in the command
subclass buttons/select menus
always subclass them
(nextcord)
Okay thanks
np
?
also
ur doing view = myview
it should be view = myview()
yes?
forgot the ()
oh ok thanks :)
okay
@client.command()
async def letter(ctx, member: discord.Member = None):
for member in ctx.guild.members:
for role in ctx.guild.roles:
if role in member.roles:
continue
if member.name[0] == role.name:
if role in member.roles:
continue
else:
await member.add_roles(role)
Will this work?
I have made roles from A to Z, And I want to give all the members the role that there name starts with, But I don't know why it's not working
try it
@client.command()
async def letter(ctx, member: discord.Member = None):
for member in ctx.guild.members:
for role in ctx.guild.roles:
if role in member.roles:
continue
if member.name[0] == role.name:
if role in member.roles:
print(f'{member.name} already has the {role.name} role.')
continue
else:
try:
await member.add_roles(role)
print(f'{member.name} has been given the {role.name} role.')
except Exception as e:
print(e)
continue
I did this and nothing happens
what's the error
No error
add a try & except
@client.command()
async def letter(ctx, member: discord.Member = None):
for member in ctx.guild.members:
for role in ctx.guild.roles:
if role in member.roles:
pass
if member.name[0] == role.name:
if role in member.roles:
print(f'{member.name} already has the {role.name} role.')
pass
else:
try:
await member.add_roles(role)
print(f'{member.name} has been given the {role.name} role.')
except Exception as e:
print(e)
pass
I did this, But it only printed the ones that already have the role
@client.command()
async def letter(ctx, member: discord.Member = None):
for member in ctx.guild.members:
try:
for role in ctx.guild.roles:
try:
if role in member.roles:
pass
try:
if member.name[0] == role.name:
try:
if role in member.roles:
print(f'{member.name} already has the {role.name} role.')
pass
else:
await member.add_roles(role)
print(f'{member.name} has been given the {role.name} role.')
except Exception as e:
print(e)
except Exception as e:
print(e)
except Exception as e:
print(e)
except Exception as e:
print(e)
I know this is weird and no body does this, BUT I DON'T GET ANY ERROR
Idk Buddy.
Holy except
How to hire a dev to make a discord bot?
Hire me lmao
What is the query
how can i make a if in buttons like if he presses β‘οΈ the message edits to an other page but if he presses β¬ οΈ the message edits to an other page too?
Ah I am sorry, I am just asking for a platform where I can hire .
I tried fiver but no luck most of them don't know anything
SQL
DM me
Cursor doesn't come out of vacuum yk
What query do you execute with that cursor
I don't see it in this code
What the heck is that string
With SQL query
It's f-string using % formatting and for some reason you are also trying to use SQL placeholders
It should be like this
await cursor.execute("SELECT role_id FROM reactionroles WHERE guild_id = $1 AND msg_id = $2 AND emoji = $3", (...))```
Also is this asyncpg or aiosqlite
Idk about its syntax but it shouldn't be too different from this
Ok sorry
Can also use ?
And it's more used actually
Yeah, for SQL languages
Example
await cursor.execute("SELECTΒ *Β FROMΒ blacklistΒ WHEREΒ user_id=?",Β (user_id,))
No need of an f string, and just use ? for where the variable will go
how can i do this without it giving me errors?
what the ide says?
can anybody teach me python?
try to restart the ide
if you run the code you get an error?
!resources
The Resources page on our website contains a list of hand-selected learning resources that we regularly recommend to both beginners and experts.
!indent
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
bro zeffo
pls solve my problem
!paste
Pasting large amounts of code
If your code is too long to fit in a codeblock in Discord, you can paste your code here:
https://paste.pythondiscord.com/
After pasting your code, save it by clicking the floppy disk icon in the top right, or by typing ctrl + S. After doing that, the URL should change. Copy the URL and post it here so others can see it.
Fix ur indentation
i tried
Send ur full code
https://paste.pythondiscord.com/urazuwagim
with this error code
discord.ext.commands.errors.CommandNotFound: Command "welcome" is not found
can anyone help me?
@vocal snow can you help?
Is this dpy 2.0
pip show discord.py
Hello how can i install PIPENV? om win
@bot.command()
async def help1(ctx):
hi = Button(label="β¬
", style=ButtonStyle.blurple)
subscribe = Button(label="β‘", style=ButtonStyle.blurple)
async def hi_callback(interaction):
await interaction.message.edit("test")
async def hi2_callback(interaction):
await interaction.message.edit("test1")
hi.callback = hi_callback
hi2.call = hi2_callback
myview = View(timeout=180)
myview.add_item(hi)
myview.add_item(hi2)
await ctx.send("help", view=myview)```
import discord
btw hi zeffo
What
how are you
How are you loading the extension file
wdym
Not how you're importing the library
I am doing good ty
nice
Send everything in a paste, I'll see what's wrong with the indents
(!paste)
my whole code???
Yes
!paste
Pasting large amounts of code
If your code is too long to fit in a codeblock in Discord, you can paste your code here:
https://paste.pythondiscord.com/
After pasting your code, save it by clicking the floppy disk icon in the top right, or by typing ctrl + S. After doing that, the URL should change. Copy the URL and post it here so others can see it.
in vscode it shows normal???
U probably mixed spaces and tabs
@vocal snow how can i use dpy 2.0
pip install -U discord.py
async def help1(ctx):
hi = Button(label="β¬
", style=ButtonStyle.blurple)
subscribe = Button(label="β‘", style=ButtonStyle.blurple)
async def hi_callback(interaction):
await interaction.message.edit("test")
async def subscribe_callback(interaction):
await interaction.message.edit("test1")
hi.callback = hi_callback
subscribe.callback.call = subscribe_callback
myview = View(timeout=180)
myview.add_item(hi)
myview.add_item(subscribe)
await ctx.send("help", view=myview)```
Bro
yes?
Your async def callback is overindented
why
Wdym why?
And everything else under that
Lol
btw you dont use these callbacks anywhere
nop
You canβt do that
No
but that is not what he wants
He has to indent everything under the subscribe line once
except bot.run
Yes basically
Ye
oh okay thanks
https://paste.pythondiscord.com/urazuwagim @silk fulcrum no one has been able to help me with this
I get the error
welcome isnβt a command
discord.ext.commands.errors.CommandNotFound: Command "welcome" is not found
what are you doing? I mean what command are you issuing
.welcome to show the welcome commands
why is it a group?
Ok thanks
async def help1(ctx):
hi = Button(label="β¬
", style=ButtonStyle.blurple)
subscribe = Button(label="β‘", style=ButtonStyle.blurple)
async def hi_callback(interaction):
await interaction.message.edit("test")
async def subscribe_callback(interaction):
await interaction.message.edit("test1")
hi.callback = hi_callback
subscribe.callback.call = subscribe_callback
myview = View(timeout=180)
myview.add_item(hi)
myview.add_item(subscribe)
await ctx.send("help", view=myview)
``` can someone indent it for me? i still cant get it :(
Sry
see, intents like this go after a function definition or something like for, while, e.t.c
like yours
but you don't have anything like that
From async def hi_callback to the last line act like your copy and pasting but instead, donβt, press βshift tabβ
But bot.run shouldnβt be indented
Thanks :D
Np
await edit(*, content=..., embed=..., embeds=..., attachments=..., suppress=False, delete_after=None, allowed_mentions=..., view=...)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Edits the message.
The content must be able to be transformed into a string via `str(content)`.
Changed in version 1.3: The `suppress` keyword-only parameter was added.
Changed in version 2.0: Edits are no longer in-place, the newly edited message is returned instead.
Changed in version 2.0: This function will now raise [`TypeError`](https://docs.python.org/3/library/exceptions.html#TypeError "(in Python v3.10)") instead of `InvalidArgument`.
The message that sent this interaction.
For my knowledge it does
oh sry
components interactions yeah
hey 9047064c7ec960627a11743bfa49b0af3e8dd702ef771cec3e908b5cd28b477e how are you?
what do i do?
i've tried to uninstall an reinstall and it doesnt work
use discord.py2.0
what's your problem
if you have got free time
send the code
I am trying to add a currency system on my discord server
my coding skills are not good enough
if you see
it can be better for you
you need a database
I created it
it's like economy commands right?
ok so lemme see
me too can i copy ?
can anyone tell me why it gets underlined ?
self is not defined
but isnt it defined like 3 lines above
yes in that method
different scopes
u need to have self as first parameter of all normal methods
i made a discord bot that can stream any movie in vc
@glad cradle will you help me?
maybe? First lemme se your code
I can explain that first
someone must type +claim
if he didn't type before
else code will work and it will take messeage author's Id
and it will add infos into mainbank.json
this part is working
are you using a json file as a database? π
:(((
π’
my old friend said that too
bro just come to screen share
let me show you with voice chat
rn I can't
if you're self hosting or if you're using an host you can just use a database
it's much more better than a json file
Hi! I was trying to make an embed command:
@bot.command(
name='test',
description='test'
)
async def clear(ctx):
embedVar = Embed(title="test", description="test")
await ctx.send(embedVar)```
But i get this error:
```TypeError: _Context.send() got an unexpected keyword argument 'embed'```
@bot.command()
async def unban(ctx, user: disnake.User = None):
if user == None:
await ctx.send(f'Poprawne uΕΌycie komendy: `?unban (ID uΕΌytkownika)`')
else:
await ctx.guild.unban(user)
embed = disnake.Embed(title="UΕ»YTKOWNIK ODBANOWANY!", description=f"PomyΕlnie odbanowano uΕΌytkownika!\nNick: **{user.mention}**", colour=0x00ff08)
await ctx.send(embed = embed)
bans = await ctx.guild.bans()
if user is not bans:
await ctx.send("nie ma go")```
how to answer if the user is not in the list of banned users?
ok
it wont send the command
@glad cradle
lemme read
await ctx.send(embed=embed)
k
just use a try except block
what?
try:
await ctx.guild.unban(user)
...
except discord.NotFound:
...
# the user is not banned
ok this is my code please help: https://srcshare.io/6309ebc9fcb76945bf16f5ef
Easily share your source code with other developers.
ok
ok
u know whats wrong?
π€¦
wut?
all code is wrong
what did i do wrong here, liek... why is it marked red
80%
i mean isnt notification defined
notifications*
hey, why are you importing discord if you use interactions.py
i thought that it would work then lol
basic Bot example https://github.com/Rapptz/discord.py/blob/master/examples/basic_bot.py
- notifications also doesnt work
just do for notification in get_notifications()
you don't use two libraries in same code, remove discord from there
@glad cradle this:?
@bot.command()
async def unban(ctx, user: disnake.User = None):
if user == None:
await ctx.send(f'Poprawne uΕΌycie komendy: `?unban (ID uΕΌytkownika)`')
else:
await ctx.guild.unban(user)
embed = disnake.Embed(title="UΕ»YTKOWNIK ODBANOWANY!", description=f"PomyΕlnie odbanowano uΕΌytkownika!\nNick: **{user.mention}**", colour=0x00ff08)
await ctx.send(embed = embed)
try:
await ctx.guild.unban(user)
except disnake.NotFound:
await ctx.send("nie ma go na liΕcie!")```
ok
also doesnt change a thing
no lmao, read your code
what index
user login
what's the return type of get_notifications
it should be a list of dict right?
def get_notifications():
users = get_users(config["watchlist"])
streams = get_streams(users)
notifications = []
for user_name in config["watchlist"]:
if user_name not in online_users:
online_users[user_name] = datetime.utcnow()
if user_name not in streams:
online_users[user_name] = None
else:
started_at = datetime.strptime(streams[user_name]["started_at"], "%Y-%m-%dT%H:%M:%SZ")
if online_users[user_name] is None or started_at > online_users[user_name]:
notifications.append(streams[user_name])
online_users[user_name] = started_at
return notifications
i dont know what is wrong
help
whatβs the problem stritix
how to answer if the user is not in the list of banned users?
you are treating get_notifications as a list of dictionaries but it is only a list
wdym by answer?
can't you see that you have 2 unban calls?
if user not ound ctx.send("not found)
maybe formatting works
... means add your code below (the embed code and other shit)
try to print out notifications
as you can see it's a list
yes ?
so why you're trying to do notification[key]?
try:
await ctx.guild.unban(user)
except disnake.NotFound:
await ctx.send("user is not banned!")```
@slate swan
I'm sorry I didn't knew they changed it, you have to change it from py await ctx.send(embed=embedVar) to py await ctx.send(embeds=embedVar)
embeds?
because notification should include a lot it gets from twitch, such as username, userid etc
if im not wrong
try:
await ctx.guild.unban(user)
await ctx.send("ds")
except disnake.NotFound:
await ctx.send("user is not banned!")```
π€¦
your indentation is messed up
it depends if your list contains dict or if it contains simple items
where?
except
i dont have any error
now it's right
and it should work?
it should
you're using disnake
yes
and?
@glad cradle
@bot.command()
async def unban(ctx, user: disnake.User = None):
if user == None:
await ctx.send(f'Poprawne uΕΌycie komendy: `?unban (ID uΕΌytkownika)`')
else:
await ctx.guild.unban(user)
embed = disnake.Embed(title="UΕ»YTKOWNIK ODBANOWANY!", description=f"PomyΕlnie odbanowano uΕΌytkownika!\nNick: **{user.mention}**", colour=0x00ff08)
await ctx.send(embed = embed)```
this unban command correct working
try:
await ctx.guild.unban(user)
await ctx.send("ds")
except disnake.NotFound:
await ctx.send("user is not banned!")```
i have problem only with this one
if a user is already banned, it wont ban them again
unbanned*
that's unban command π
slow
it should raise NotFound
I am building a rps game in discord.py So.. How can I check the button selected by the user and work according to it?
this is my code
and if i use command ?unban [ID] and this user is not banned i want ctx.send("he is not banned")
@bot.command()
async def rps(ctx):
random_rps=[":paper:", ":sissors:", ":dsrock:"]
rps_choice = random.choice(random_rps)
rbutton= Button(emoji=":dsrock:")
pbutton= Button(emoji=":paper:")
sbutton= Button(emoji=":sissors:")
view = View()
view.add_item(rbutton)
view.add_item(pbutton)
view.add_item(sbutton)
await ctx.send("Choose your Move\n**in 3secs**", view=view)
what's the issue
except disnake.NotFound:
await ctx.send("user is not banned!")```
this code not work
@bot.command()
async def unban(ctx, user: disnake.User = None):
if user == None:
await ctx.send(f'Poprawne uΕΌycie komendy: `?unban (ID uΕΌytkownika)`')
else:
await ctx.guild.unban(user)
embed = disnake.Embed(title="UΕ»YTKOWNIK ODBANOWANY!", description=f"PomyΕlnie odbanowano uΕΌytkownika!\nNick: **{user.mention}**", colour=0x00ff08)
await ctx.send(embed = embed)
try:
await ctx.guild.unban(user)
await ctx.send("ds")
except disnake.NotFound:
await ctx.send("user is not banned!")```
smh, errors?
.
you are banning someone and passing an object to the ban method wich is None, do check this if you have a ban command
pls help me too
Hi(sorry for bad english)
i ask in swaspy servre how to store python dicrionary and they say txt file is good idea ??
they are wrong, you should be using a proper database
hmm i think i will use the txt file
just use a json file in that case, the json module automatically handles everything for you
Hi
Mongo is good, but for saving locally, go for JSON file, like Ashley said
yes i am using json and txt.file now
Not txt file ;-;
,
But still... txt file, seriously?!
d = { # dicarionary
1: 2,
'swas': 'py'
}
import json
json.dump(d, open('file.txt', 'w')) # writes the dicartionary to file
import json # imports the json
with open('file.txt', 'r') as f:
dictionaray = json.load(f) # gets dicatiaroary from txt file
print(dictionaray)
and use w+ mode
yiss i am dump file and then load file
stream????? π³
how?
bots can stream??
...
and breaking lots of copyright laws!
Hi i wanted to make an clear <amount> command but its not responding
@bot.command(
name="clear",
description="Clear specific amount of messages",
options=[
interactions.Option(
type=interactions.OptionType.INTEGER,
name="amount",
description="How many messages you want to delete",
required=True,
)
]
)
async def clear(ctx, amount: int):
await ctx.channel.delete(limit=amount)```
Error:
```TypeError: Channel.delete() got an unexpected keyword argument 'limit'```
use purge not delete
ok
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...
ok thanks
@bot.slash_command()
async def embed(ctx, tytul):
embed = disnake.Embed(title = tytul, description="Embed Description", colour=0xF0C43F)```
Hm
tytul
how to make simple embed creator command?
You need slash commands/flags for that
what is embed crator comand
How do I check if the type of a function is generator
/embed [title]
!embed title="this" description="that"
crator
maybe u can use modal and stuffs
Wym
funcs are never generators
AttributeError: 'CommandContext' object has no attribute 'purge' it still doesnt work
type of function?
generator?
funcs are.... Callables
im if it returns a generator
@silk fulcrum can you explain it to me
Awaitable
a function that has yield
it is method of TextChannel not CommandContext
/embed [title] [description]
ok..
an example:
def f():
for i in range(12):
yield i
f()
Out[18]: <generator object f at 0x0000019FC80AC040>
type(f())
Out[19]: generator
Do you want to annote the return type?
now I want to check if it returns a generator
so what do i have to put instead of ctx.purge(limit=amount)
no its just for the unitests
!d collections.Generator
No documentation found for the requested symbol.
class collections.abc.Generator```
ABC for generator classes that implement the protocol defined in [**PEP 342**](https://www.python.org/dev/peps/pep-0342) that extends iterators with the [`send()`](https://docs.python.org/3/reference/expressions.html#generator.send "generator.send"), [`throw()`](https://docs.python.org/3/reference/expressions.html#generator.throw "generator.throw") and [`close()`](https://docs.python.org/3/reference/expressions.html#generator.close "generator.close") methods. See also the definition of [generator](https://docs.python.org/3/glossary.html#term-generator).
New in version 3.5.
This should be what u r looking for
lemme try it
maybe something in inspect lib
They can use isinstance and collections.abc.Generator
!d inspect.isgenerator
inspect.isgenerator(object)```
Return `True` if the object is a generator.
Damn, python never fails to amaze me
@meager chasm what do i have to put instead of ctx.purge(limit=amount)
Abc means abstract class right?
so much work u r making that poor man do
yes
ctx.channel.purge bro
Never knew about something like that
ctx.purge also works
Nvm
for some reason I wasnt able import that
but this worked
uhhh i forget ctx.send(embed = embed)
lol
TypeError: Channel.purge() got an unexpected keyword argument 'limit' err
which lib ur using
And what version
ok
aha this is even better inspect.isgeneratorfunction(f)
inspect has everythjing βΊοΈ
apparently yes ?
The return type is a generator
That function probably checks for the return type lemme see
if it has yield, its different than just returning a generator
def f():
return 1
def g():
yield 1
here f and g are both function
but f() is int and g() is generator
But the return type is a generator type
and next(g()) is int
f and g are Callables
you might be right
isinstance(f(), Generator)
Out[33]: True
isinstance(f, Generator)
Out[34]: False
future: <Task finished name='discord-ui-view-timeout-183d2f8f17396132103875690f8a9e54' coro=<settings_document_admin_buttons.on_timeout() done, defined at c:\Discord\Maja Projekt\MajaSystem\modules\setup\buttons.py:24> exception=AttributeError("'settings_document_admin_buttons' object has no attribute 'message'")>
Traceback (most recent call last):
File "c:\Discord\Maja Projekt\MajaSystem\modules\setup\buttons.py", line 28, in on_timeout
await self.message.edit(view=self)
AttributeError: 'settings_document_admin_buttons' object has no attribute 'message'```
@nextcord.ui.button(label="Delete the Role", style=nextcord.ButtonStyle.danger)
async def del_admin_role(self, button, interaction):
embed=nextcord.Embed(description=f"{config.DiscordTic} The role has been successfully removed!", colour=config.grΓΌn)
button = self.children[0]
button.disabled = True
button.style = nextcord.ButtonStyle.grey
await interaction.response.edit_message(embed=embed, view=self)
await self.unset_admin_role(interaction)
async def on_timeout(self):
eb = self.children[0]
eb.disable = True
eb.style = nextcord.ButtonStyle.grey
await self.message.edit(view=self)```
how are u sending the view
in a other file
show how u are sending it πΏ
where u r defining self.message?
await interaction.response.send_message(embed=error, view=settings_document_admin_buttons(interaction, settings_data_admin), ephemeral=True)
view = settings()
view.message = await interaction.response.send_message()
u need a message attr for that u have to assign a message object to the view with a message attr which u will be using in on_timeout
so i must do it in the file where i am sending the view right?
view_e = settings_document_admin_buttons(interaction, settings_data_admin)
view_message = await interaction.response.send_message(embed=error, view=view_e, ephemeral=True)```
so ig?
and now?
run it
should i not change something in the on_timeout?
no
Task exception was never retrieved
future: <Task finished name='discord-ui-view-timeout-b81cfd2501e31a87ca674178f25d5fdc' coro=<settings_document_admin_buttons.on_timeout() done, defined at c:\Discord\Maja Projekt\MajaSystem\modules\setup\buttons.py:24> exception=AttributeError("'settings_document_admin_buttons' object has no attribute 'message'")>
Traceback (most recent call last):
File "c:\Discord\Maja Projekt\MajaSystem\modules\setup\buttons.py", line 28, in on_timeout
await self.message.edit(view=self)
AttributeError: 'settings_document_admin_buttons' object has no attribute 'message'```
mhh
ites view_e.message
u wrote view_message
token
("xxxxxxxxxxx")
bot.run(token)``` why did this happened
view_e = settings_document_admin_buttons(interaction, settings_data_admin)
view_message = await interaction.response.send_message(embed=error, view=view_e, ephemeral=True)
^ This is cog.py
async def on_timeout(self):
eb = self.children[0]
eb.disable = True
eb.style = nextcord.ButtonStyle.grey
await self.message.edit(view=self)
^This is buttons.py```
@shrewd apex
so i must use self.view_message.edit()?
Hi
df goin on with my code how can i fix it
i cannot follow you
token = ("BOT Token Here")
client.run(token)
why the parentheses
Yes
and why even use a variable
to store the token
Ashley
@shrewd apex
@nextcord.ui.button(label="Delete the Role", style=nextcord.ButtonStyle.danger)
async def del_admin_role(self, button, interaction):
embed=nextcord.Embed(description=f"{config.DiscordTic} The role has been successfully removed!", colour=config.grΓΌn)
button = self.children[0]
button.disabled = True
button.style = nextcord.ButtonStyle.grey
await interaction.response.edit_message(embed=embed, view=self)
await self.unset_admin_role(interaction)
async def on_timeout(self):
eb = self.children[0]
eb.disable = True
eb.style = nextcord.ButtonStyle.grey
await self.message.edit(view=self)```
This is buttons.py
So rude
what rude
import discord
from discord.ext import commands
from discord import Button, ButtonStyle
client = commands.Bot(command_prefix=commands.when_mentioned_or('!'))
@client.command()
async def buttons(ctx):
msg_with_buttons = await ctx.send('iakw rin bahala dito', components=[[
Button(label="ikaw",
custom_id="bahala",
style=ButtonStyle.red),
Button(label="ikaw",
custom_id="pud bahala",
style=ButtonStyle.green),
]])
def check_button(i: discord.Interaction, button):
return i.author == ctx.author and i.message == msg_with_buttons
interaction, button = await client.wait_for('button_click', check=check_button)
msg = f"You just pressed{button.custom_id} the thing"
await interaction.respond(msg)
it would be better if someone else explains i am outside rn so can't explain thoroughly
print(__import__("discord").__version__)
I want to create a Bot all like that
Tha ye crazy
One liner
u can ask ashley she's smort
skill issue
nova is more
They should add async lambda
I guess we all agree on that
I am just a man with mediocre knowledge.
nice
They should add async lambda
and this is cog.py
@nextcord.slash_command(name="setup-administrator-role", description=f"Set the highest role. (Owner or moderator role recommended)", guild_ids=[config.TESTGUILD])
async def _setup_administrator_role(self, interaction: nextcord.Interaction, role: nextcord.Role = SlashOption(name="role", description="Please select a role (Owner or moderator role recommended)")):
if interaction.user.id == interaction.guild.owner.id:
if entry_true is not None:
if interaction.guild.id == entry_true["_id"]:
if "admin_id" in entry_true:
error = nextcord.Embed(title=f"{config.DiscordErrorEmoji} The Guild has already a Administrator Role.", description="Please delete the old one if you want to set a new one.",
colour=config.rot)
view_e = settings_document_admin_buttons(interaction, settings_data_admin)
view_message = await interaction.response.send_message(embed=error, view=view_e, ephemeral=True)
return
else:
...
elif interaction.guild.id != entry_true["_id"]:
...
elif entry_true is None:
...
if interaction.user.id != interaction.guild.owner.id:
... ```
For one liner people
join the organization nova
Which one
python
is there no way to do async lambda?
How
idk
who can help me?
No
What
@shrewd apex @shrewd apex
shouldn't async call some dunder methods?
he is outside
dont care
What does that mean
lmao, what's the issue
Ashley help him bro
edit the message in on_timeout
!d help
help([object])```
Invoke the built-in help system. (This function is intended for interactive use.) If no argument is given, the interactive help system starts on the interpreter console. If the argument is a string, then the string is looked up as the name of a module, function, class, method, keyword, or documentation topic, and a help page is printed on the console. If the argument is any other kind of object, a help page on the object is generated.
Note that if a slash(/) appears in the parameter list of a function when invoking [`help()`](https://docs.python.org/3/library/functions.html#help "help"), it means that the parameters prior to the slash are positional-only. For more info, see [the FAQ entry on positional-only parameters](https://docs.python.org/3/faq/programming.html#faq-positional-only-arguments).
This function is added to the built-in namespace by the [`site`](https://docs.python.org/3/library/site.html#module-site "site: Module responsible for site-specific configuration.") module.
Truly an underrated function π«
nothing
I've read rn that you can emulate async lambda with an async generator
That's crazy
I am too dumb to understand that perhaps
!d discord.ui.Button
class discord.ui.Button(*, style=<ButtonStyle.secondary: 2>, label=None, disabled=False, custom_id=None, url=None, emoji=None, row=None)```
Represents a UI button.
New in version 2.0.
Is there some sample code
yes wait a moment
the code
I am about to feel overwhelmed
key=lambda x: (await somefunction(x) for _ in '_').__anext__()
that's what I found
and a error
you can do it like so
class MyView(ui.View):
message: discord.Message
async def on_timeout(self) -> ...:
await self.message.edit(...)
''' and in your command'''
@bot.command()
async def no(ctx: commands.Context) -> None:
view = MyView()
view.message = await ctx.send("yes", view=view) #because the `send` method returns a Message object
#bot-commands
That's so stupid lol π«
But yes whatever async lambda ig!!
I can't understand the for _ in '_' what's the point?
how does "lol" and "π«" even relate
to make it generator
Please help im trying to add reactions to a message but i get error: https://srcshare.io/630a0afb9c4c72b72c0e5fc9
comprehension bro
They do bro.
nice
ah true
thats my command
It's a generator expression bro
nice, and
π no
[i for i in my ass] is comprehension!!
@nextcord.slash_command(name="setup-administrator-role", description=f"Set the highest role. (Owner or moderator role recommended)", guild_ids=[config.TESTGUILD])
async def _setup_administrator_role(self, interaction: nextcord.Interaction, role: nextcord.Role = SlashOption(name="role", description="Please select a role (Owner or moderator role recommended)")):
if interaction.user.id == interaction.guild.owner.id:
if entry_true is not None:
if interaction.guild.id == entry_true["_id"]:
if "admin_id" in entry_true:
error = nextcord.Embed(title=f"{config.DiscordErrorEmoji} The Guild has already a Administrator Role.", description="Please delete the old one if you want to set a new one.",
colour=config.rot)
view_e = settings_document_admin_buttons(interaction, settings_data_admin)
view_message = await interaction.response.send_message(embed=error, view=view_e, ephemeral=True)
return
else:
...
elif interaction.guild.id != entry_true["_id"]:
...
elif entry_true is None:
...
if interaction.user.id != interaction.guild.owner.id:
... ```
thats my command
jeez
(i for i in my ass) is generator comprehension!!
Whats the best way to store discord user specified variables such as points or other things inside a class in a database so that after I restart the bot the created instances arent gone?
bro that's crazy!!
Please help im trying to add reactions to a message but i get error: https://srcshare.io/630a0afb9c4c72b72c0e5fc9
Easily share your source code with other developers.
ass generator...
i am installing garuda linux dragonized onb my laptop!!
is there all okay in the command?
why
it lokks so cool
Why not arch or something popular bro
That looks so good
have you tried UwU os?
wtf
Lemme show mine hehe
it's called UwUntu
Please help im trying to add reactions to a message but i get error: https://srcshare.io/630a0afb9c4c72b72c0e5fc9
HELP ME!!!
Forgor
@slate swan ?
That's a dashboard!!
Yus
neovim
gotta check that out
I meant the second photo!
i will probabkly use neovim
That's great!
if i can figure out to transgfer my vsc theme
I didn't get that but exactly!
Yes pls
is it that good?
Isn't it await ctx.message.add_reaction
Yes
!d discord.Message.add_reaction
await add_reaction(emoji, /)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Adds a reaction to the message.
The emoji may be a unicode emoji or a custom guild [`Emoji`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Emoji "discord.Emoji").
You must have the [`read_message_history`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Permissions.read_message_history "discord.Permissions.read_message_history") permission to use this. If nobody else has reacted to the message using this emoji, the [`add_reactions`](https://discordpy.readthedocs.io/en/latest/api.html#discord.Permissions.add_reactions "discord.Permissions.add_reactions") permission is required.
Changed in version 2.0: `emoji` parameter is now positional-only.
Changed in version 2.0: This function will now raise [`TypeError`](https://docs.python.org/3/library/exceptions.html#TypeError "(in Python v3.10)") instead of `InvalidArgument`.
!d discord.Interaction.message
The message that sent this interaction.
no, it's a library
from what I understand
Are interaction and context same
Arch
no
no
garuda is arch based !!
Back in the day things were so simple bro
Ooo?
@grim oar can you help me? ahsley is gone
yes i can finally be arch man βΊοΈ
Sorry I don't know crap about interaction stuff now
Why not the main distro :(
yea but garuda dragonized is like KDE Plasma fork and it look very nice.
ohh ok same f
πΏarch is crux based
DEs are bad!!
this chat has been transformed into a Linux chat
They consume too much memory, run neofetch
yes because u have potato computer which cannot run them
