#discord-bots

1 messages ยท Page 1015 of 1

slate swan
#

its basic py

#

base of async programming

heady sluice
#

this guy way talking inappropriately about 2.0 the last time aswell

slate swan
#

not the first time

brave forge
#

installed a new one discord.py and here is such a mistake what to do ?

  bot.load_extension(f'cogs.{filename[:-3]}')
RuntimeWarning: Enable tracemalloc to get the object allocation traceback```
slate swan
#

bro

#

^

#

read the traceback

abstract kindle
#

I'm confused on how to use followups with interactions

slate swan
abstract kindle
#

Can someone explain. Basically, I'm trying to have 2 different embeds send after a user clicks a button

slate swan
#

!d disnake.Interaction.send

unkempt canyonBOT
#

await send(content=None, *, embed=..., embeds=..., file=..., files=..., allowed_mentions=..., view=..., components=..., tts=False, ephemeral=False, delete_after=...)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).

Sends a message using either [`response.send_message`](https://docs.disnake.dev/en/latest/api.html#disnake.InteractionResponse.send_message "disnake.InteractionResponse.send_message") or [`followup.send`](https://docs.disnake.dev/en/latest/api.html#disnake.Webhook.send "disnake.Webhook.send").

If the interaction hasnโ€™t been responded to yet, this method will call [`response.send_message`](https://docs.disnake.dev/en/latest/api.html#disnake.InteractionResponse.send_message "disnake.InteractionResponse.send_message"). Otherwise, it will call [`followup.send`](https://docs.disnake.dev/en/latest/api.html#disnake.Webhook.send "disnake.Webhook.send").

Note

This method does not return a [`Message`](https://docs.disnake.dev/en/latest/api.html#disnake.Message "disnake.Message") object. If you need a message object, use [`original_message()`](https://docs.disnake.dev/en/latest/api.html#disnake.Interaction.original_message "disnake.Interaction.original_message") to fetch it, or use [`followup.send`](https://docs.disnake.dev/en/latest/api.html#disnake.Webhook.send "disnake.Webhook.send") directly instead of this method if youโ€™re sending a followup message.
slate swan
#

its the same thing as discordpy. just use the embeds kwarg

abstract kindle
#

when I do followup.send it says unknown webhook

slate swan
#

it takes in a list of embed objects

#

knowledge

abstract kindle
#

@brave forge It literally says you need to await the coroutine

slate swan
#

the traceback would give you knowledge

slate swan
abstract kindle
#

Sure

slate swan
#

it raised a NotFound exception i suppose?

abstract kindle
#

Yeah

boreal ravine
#

chill

slate swan
# abstract kindle Yeah

thats weird because the method should start a webhook and im not sure how that would raise an error

abstract kindle
#
Ignoring exception in view <AcceptChallenge timeout=180 children=1> for item <Button style=<ButtonStyle.success: 3> url=None disabled=False label='Accept?' emoji=None row=None>:
Traceback (most recent call last):
  File "/Users/ellalbrys/PycharmProjects/EconomyDiscordBot/venv/lib/python3.10/site-packages/discord/ui/view.py", line 413, in _scheduled_task
    await item.callback(interaction)
  File "/Users/ellalbrys/Dropbox/Mac/Documents/GitHub/EconomyDiscordBot/Cogs/DebuggingCommands.py", line 59, in challenger_accept
    await interaction.followup.send(embed=participants[key], view=RPSButtons(entitled_user=key))
  File "/Users/ellalbrys/PycharmProjects/EconomyDiscordBot/venv/lib/python3.10/site-packages/discord/webhook/async_.py", line 1539, in send
    data = await adapter.execute_webhook(
  File "/Users/ellalbrys/PycharmProjects/EconomyDiscordBot/venv/lib/python3.10/site-packages/discord/webhook/async_.py", line 211, in request
    raise NotFound(response, data)
discord.errors.NotFound: 404 Not Found (error code: 10015): Unknown Webhook
slate swan
#

it does raise an error yes but it doesnt show how

boreal ravine
abstract kindle
#

line is ```py
await interaction.followup.send(stuff...)

boreal ravine
slate swan
#

because hes been in these channels being toxic to most regulars here and not reading basic tracebacks that say it all which i literally helped him even after he said i should shut up

abstract kindle
#

Lol sorry to bug okimii, but could you take a look at the thing i sent above

slate swan
#

its weird to me honestly let me check src

#

as said

abstract kindle
#

Like I don't have to create a webhook to use a follow up

slate swan
#

You have issues with migrating to 2.0 especially the cog loading part.

slate swan
abstract kindle
#

Okay, that's what I thought

slate swan
#

yeah

#

Taking time and the ambition to look at the page will help you a lot.

#

Of course if you don't read it or try anything, it won't help you.

abstract kindle
#

Oh yeah I remember switching all my cogs to async

#

A little confusing since I'm still learning python lol

slate swan
#

The migration page explains everything in details on how it works

#

More than this we can't do.

#

if you would just read the traceback๐Ÿ˜”

#

Maybe don't be so offensive in your messages?

boreal ravine
slate swan
#

As OI previously said, more than this detailed description of the changes we cannot do.

slate swan
abstract kindle
#

Read his name lol

slate swan
#

It doesn't matter. Your way of talking is offensive and makes people not want to help you.

abstract kindle
#

There is nothing wrong with the site. It actually shows you exactly how to switch your cogs over to async

#

So that you don't run into errors like the one you're getting

boreal ravine
slate swan
#

The site gives more information, with examples, than anyone can give

slate swan
#

Simply take the time to read it, and apply it to your code.

vocal snow
#

๐Ÿฟ

abstract kindle
#

So uhh, anyone know why I can't send a followup to my interaction

slate swan
abstract kindle
#

No worries, just asking around

slate swan
#

cheers ๐Ÿป

#

As I've said multiple times more detailed than that it's not possible. They have examples, look at them.

#

If you really don't understand anything - you should start by learning more Python before doing a bot. Since as you can see it's not made for newcomers as it can be quite complex depending on your knowledge.

#

More than that we unfortunately can't do.

heady sluice
#

the only thing that was like this for me are paginators

slate swan
#

Yerlikaya with the drip๐Ÿ˜ณ

heady sluice
#

why are you cussing in every message

slate swan
#

"i know this language" bro the traceback has the solution for your problem ๐Ÿ‘๏ธ๐Ÿ‘๏ธ

boreal ravine
slate swan
#

sifte and yerlikaya reading the traceback๐Ÿ˜ณ

#

and btw it needs to be in a coroutine!

#

or else it would raise something like this await cannot be used outside of a coroutine

#

Hence the migration tutorial/guide with clear examples.

#

yep

#

which can be done when you subclass the bot class and just use setup_hook or just create a task

#

Anyways it's 1am, time to do some other stuff CS_popcorn

slate swan
#

wdym by one team btw?

#

huh

#

oh

#

wdym = what do you mean

#

what teams?

#

yeah im a bit confused

#

show code

#

You need to enable the message content intent both in code and the developer portal.

#

oh right

#

Consider using slash commands though.

#

!d discord.Intents.message_content

unkempt canyonBOT
#

Whether message content, attachments, embeds and components will be available in messages
which do not meet the following criteria:

โ€ข The message was sent by the client

โ€ข The message was sent in direct messages

โ€ข The message mentions the client...

slate swan
#

i forgot that change in 2.0

slate swan
abstract kindle
#

Anyone have a guide on optional parameters for slash commands

slate swan
#

yeah why use bitwise or

abstract kindle
#

dpy

slate swan
#

whats a XOR

#

XOR is ^

#

ah

#

| is a bitwise OR

#

yeah

#

~ is bitwise NOT

#

what

#

thats something i didnt know haha

#

!e
x = 10
print(~x)

unkempt canyonBOT
#

@slate swan :white_check_mark: Your eval job has completed with return code 0.

-11
slate swan
abstract kindle
#

That for me?

slate swan
#

yeah

slate swan
#

and what does it do that it returns negative 11

#

!rule 4

unkempt canyonBOT
#

4. Use English to the best of your ability. Be polite if someone speaks English imperfectly.

slate swan
#

10 in binary is 1010
~1010 -> -(1010+1) -> -1011 -> -11 in decimal

brave forge
#

๐Ÿ–•

slate swan
slate swan
# brave forge ๐Ÿ–•

<@&831776746206265384> The user has been toxic for the past hour(s) I've sent a report but now it's going too far.

#

like jeez thats allot of knowledge in that mind

slate swan
hollow quarry
#

!mute 419481276765175808 12h Take a break. Please stop being rude.

unkempt canyonBOT
#

:incoming_envelope: :ok_hand: applied mute to @brave forge until <t:1651404121:f> (11 hours and 59 minutes).

slate swan
#

The ~ returns the complement of the number in case you're interested in the magic

#

thats cool

#

like what?

#

sure

hybrid ravine
#

!discord.history

slate swan
#

!d discord.TextChannel.history

unkempt canyonBOT
#

async for ... in history(*, limit=100, before=None, after=None, around=None, oldest_first=None)```
Returns an [asynchronous iterator](https://docs.python.org/3/glossary.html#term-asynchronous-iterator "(in Python v3.10)") that enables receiving the destinationโ€™s message history.

You must have [`read_message_history`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.read_message_history "discord.Permissions.read_message_history") permissions to use this.

Examples

Usage...
slate swan
#

im slow

#

If that's what you're searching for

hybrid ravine
slate swan
supple thorn
#

Use your member object

#

Try it again

#

Why put ctx.author in a member variable

#

Also you use your object that you have

#

Not the default one

slate swan
#

how would i see if an imae is present in a message?

supple thorn
unkempt canyonBOT
slate swan
#

to add to that

#

you can get the first attachment in the message with message.attachments[0]

rare saddle
#

How to display an error that the button is obsolete and no longer works?

slate swan
#

which is a string with the media type (MIME) of the attachment

#

e.g 'image/jpeg'

abstract kindle
#

How would I return a variable from an interaction

#

Like if a button is clicked, how would I set a variable to be true and then check for that variable

supple thorn
abstract kindle
#

Does anyone know how to return a variable from a button callback?

#

Like if there are 3 buttons and each has a number, how would I update a variable to be equal to the number of the button

silver wolf
pallid mango
#

so im trying to create a way to send a message depending on the number i send after my initial command

#

basically, if i send ".base ci+op" i want it to send a custom message, if i send ".base ext" i want it to send a dif message

#

but for the life of me i cannot think of how to do it, on_message just keeps popping into my head and its not really what im looking for

slate swan
#

just use if, elif and else statements or just use commands which are better

pallid mango
#

yea i wanna use commands but i dont really know how to setup if i saw ci+op for it to send a completely dif thing

ebon island
#

It doesn't seem like VoiceClient.is_paused is correctly reflecting whether the audio is paused or not, any ideas?

#

while audio is playing it is evident that it is hitting the NOT case for is_paused meaning it indicates that it is not paused

boreal ravine
#

Your operating system failed to retry the network connection, causing it to time out. This problem can happen when there is a faulty network adapter, slow wired links, or weak signals.

#

Please be patient

jovial dock
#

shoudln't this send one of them instead of the whole list or did i do a stupid?

jovial dock
cobalt jacinth
#

does discord components require intents ?

jovial dock
#

be patient

#

someone'll figure it out, i can't help ya though, idk what it even is

#

you're fine

ebon island
#

What are you trying to do Natixe?

boreal ravine
jovial dock
#

I was saying that you didn't do anything wrong, not if you you were doing good, sorry for the confusion

ebon island
#

The "in" keyword does not work how you think it works

dusky pine
#

just have to override __contains__, i think

ebon island
#

I think it treats strings as a list if I'm not mistaken

dusky pine
#

Yeah it does

#

Wait no, it doesn't

#

in for a string check for substrings

ebon island
#

I'd be more likely to try a string method like .contains() iirc

dusky pine
#

also if "http" in s: checks if it is a link, which contradicts the print statement

jovial dock
#

?

dusky pine
#

no you don't have to do that

#

just change in to not in

ebon island
#

yep per docs using in keyword is a fine solution

#

and if you're trying to prevent http links as pydis says not in is the way

jovial dock
#
async def meme(ctx):
 list = ['https://preview.redd.it/h3t4aac5vi981.jpg?width=640&crop=smart&auto=webp&s=f750bf1529363da544dc7cb7b6dfe008427fe7c5', 'https://preview.redd.it/x8h3nisq7j981.jpg?width=640&crop=smart&auto=webp&s=b347113c4726232525b7ea14c72182488640707c', 'https://cdn.discordapp.com/attachments/505507861724659714/928035898694701056/Screenshot_20220104-152253_Discord.jpg', 'https://cdn.discordapp.com/attachments/923407458095996928/927350325759864932/4ubzo6dmtc981.png', 'https://cdn.discordapp.com/attachments/923407458095996928/926202129260093440/video1.mp4', 'https://cdn.discordapp.com/attachments/505507861724659714/928037256894242876/f158fe3c2372a0d5b789f932d6eeb74831182e31b53c91ef85afe7f2d4caa563_1.png', 'https://cdn.discordapp.com/attachments/200710164934819840/928011190020485130/271086585_10221444521844836_6814480215424879651_n.png', 'https://cdn.discordapp.com/attachments/505507861724659714/928037675070550046/0858ec920e21e5777e6079558515a14f814ad672.png', 'https://cdn.discordapp.com/attachments/923407458095996928/926202081277276160/video0_1.mov', 'too bad,die']
 await ctx.reply(random.choice(list))``` shouldn't that send just one  instead of the whole list, it keeps sending the list instead and im not sure how to fix it
dusky pine
#

Replace "http" in link with "http" not in link

jovial dock
#

command so that my bot sends out one of the links in the list when you say "!meme"

dusky pine
ebon island
#
s = "https://mdrr.tki.com"

if "http" not in s:
    print("Message is clear !")
dusky pine
#

rename list to list_

jovial dock
#

or both

ebon island
#

list is a really bad name for a list, as pydis mentioned it overrides the list class in python

#

you should use descriptive names

#

more detail is better than less detail

jovial dock
ebon island
#

use names that if you had to pick yours out of a list of many different variables you'd know what it is and does at a glance

dusky pine
jovial dock
#

thx

ebon island
#

I know, it's still important to follow good coding practices, especially not overriding a basic datatype like list inadvertently

#

you'll save yourself a lot of trouble if you just always name things well even if it's just for you and friends

#

also, better to learn to be better, you might not know this but Software Engineers make $$$$ if you can do it well ๐Ÿ˜‰ might as well start practicing now haha

jovial dock
ebon island
#

even LIST is not a great name, it doesn't really follow naming conventions for python

#

you could call it meme_list or something

#

even that is better

#

because at least you know what kind of list it is, or what the list is intended to contain

jovial dock
dusky pine
#

walk?

ebon island
#

well all the same, better to learn to do it well and reap the rewards ๐Ÿ™‚ Names are an easy change, just make it a habit that you name things descriptively

jovial dock
#

I will

ebon island
#

Is it working now btw? Just to double check

dusky pine
#

oh

ebon island
#

What does it do or say Natixe?

dusky pine
#

what's the output

jovial dock
ebon island
#

Awesome ๐Ÿ™‚

#

That code works

#

I just tested it on my end Natixe, it does what you intended it to do lol

#

!e ```python
s = "https://mdrr.tki.com"

if "http" not in s:
print("Message is clear !")
else:
print('sadface hyperlink')

unkempt canyonBOT
#

@ebon island :white_check_mark: Your eval job has completed with return code 0.

sadface hyperlink
ebon island
#

!e ```python
s = "htt://mdrr.tki.com"

if "http" not in s:
print("Message is clear !")
else:
print('sadface hyperlink')

unkempt canyonBOT
#

@ebon island :white_check_mark: Your eval job has completed with return code 0.

Message is clear !
slate swan
boreal ravine
#

!rule 7

unkempt canyonBOT
#

7. Keep discussions relevant to the channel topic. Each channel's description tells you the topic.

slate swan
#

I mean, if you jus write http the message is gonna be detected as a link holding message

ebon island
#

We were just taking their code and demonstrating how to make it do what they intended

slate swan
#

its better to
if any(word in message.content.lower() for word in ("https://", "http://")): ...

boreal ravine
#

you didn't set a db attribute to MyBot

#
class H:
    ...

H.db = ...
#

show

ebon island
#

before I head to sleep, anyone have any idea why VoiceClient.is_paused is returning false even when the audio is paused?

boreal ravine
#

not you

#

wrong reply

ebon island
#

Will do, thanks ๐Ÿ™‚

#

technically a disnake issue, I'll throw it on disnake git

boreal ravine
#

ig you call bot.db before it's been set?

buoyant zodiac
#

can i restart my bot w jishaku?

jovial dock
#

it says this, but i don't have another command that says help

brisk dune
silver wolf
# jovial dock

the lib comes with a default help command. do bot.remove_command("help"). that should fix it

brisk dune
#

!d discord.ext.commands.Bot.help_command

unkempt canyonBOT
slate swan
#

just set it to None

silver wolf
#

for the kwargs option

brisk dune
#

Basically, when instantiating your bot, just do bot = discord.ext.commands.Bot(help_command=None, command_prefix="whatever", ...)

silver wolf
#

yeah

brisk dune
#

np

slate swan
#

btw is that exception new?

jovial dock
#

hwat

slate swan
#

because a while back i remember the commands would just overwrite each other

boreal ravine
boreal ravine
slate swan
#

ctx.add_reaction() not working on 2.0 is it changed?

boreal ravine
boreal ravine
slate swan
boreal ravine
#
message.add_reaction(...)
stiff gorge
#

how much time will this take ?

discord.ext.commands.errors.CommandInvokeError: Command raised an exception: HTTPException: 429 Too Many Requests (error code: 0): You are being blocked from accessing our API temporarily due to exceeding our rate limits frequently. Please read our docs at https://discord.com/developers/docs/topics/rate-limits to prevent this moving forward.
boreal ravine
#

1~ hour for it to wear off

buoyant zodiac
boreal ravine
#

use subprocess/sys/os

slate swan
#

I'm quite confused, I keep getting discord.errors.ClientException: ffmpeg was not found. within my tmux session

#

Although I have pip installed it and imported it

paper sluice
#
getattr((bot:=getattr(__import__("importlib").import_module("discord.ext.commands"),'Bot')(command_prefix='^',intents=getattr(__import__('discord'),'Intents').all())), 'command')(name='quack')(lambda ctx:(await ctx.send('quack')for _ in '_').__anext__())

๐Ÿ—ฟ

boreal ravine
slate swan
boreal ravine
#

ffmpeg is something you need to install on a website

boreal ravine
slate swan
#

why'd it let me pip install it then

boreal ravine
#

because someone made a package called ffmpeg

slate swan
#

yeah and thats what i was using

boreal ravine
#

cool, but that's not what you're supposed to install

slate swan
#

and how would I install it that in a vps

heavy folio
#

you can use sys.exit tho

boreal ravine
heavy folio
#

i dont have the exit codes rn but you can try searching

boreal ravine
heavy folio
#

idk i use sys.exit

sullen pewter
#

Are there any dpy 2.0 tutorials?

slate swan
boreal ravine
#

yeah ig

slate swan
#

I never use linux so I got no clue about the commands

#

does ctx.voice_client.stop() work?

#

How do I check if the channel im in is in a certain category when doing acommand

paper sluice
#

i think it is

slate swan
#

How can I stop bot voice?

sullen pewter
#

How to assign a role on an interaction?

torn sail
unkempt canyonBOT
torn sail
#

!d discord.Guild.get_role

unkempt canyonBOT
#

get_role(role_id, /)```
Returns a role with the given ID.

Changed in version 2.0: `role_id` parameter is now positional-only.
sullen pewter
#

ty

slate swan
#

can I use atrribute errors for an error handler

#
  b = bot.get_channel(933866247760793611)
  print(b.id)
  if discord.CategoryChannel.name == b.name:
    await ctx.send('work')
  else:
      print('not correct category')
#

why wont this work

sullen pewter
#

!d await interaction.add_roles(role)

slate swan
#

x

unkempt canyonBOT
#

In order to work with the library and the Discord API in general, we must first create a Discord Bot account.

Creating a Bot account is a pretty straightforward process.

slate swan
#

U already have that

slate swan
#

but why doesnt it work

#

Error?

slate swan
#

That's wrong code

#

i get no error it just prints not correct category even tho its in the right one

slate swan
#

What do u want?

#

i want this scommand to only weork in certain categories

slate swan
#

Wait I'll send u the code

#

ok

brisk dune
slate swan
brisk dune
#

Just wondering...

slate swan
#

Ok

brisk dune
#

Because you could've been comparing a text-channel name to a category-channel name

slate swan
#

yeah i tried id as well and it didnt work

#
  b = bot.get_channel(933866247760793611)
  print(b.id)
  if ctx.channel.category.id == b.id:
    await ctx.send('work')
  else:
      print('not correct category')โ€Š

``` ig not sure
#

ok lemme try that

#

B is a channel right

#

B is a channel in that category

#

Any one

#

no b is the category

#

yes now it works

#

thanks bro

#

I edited

supple thorn
#

What's the problem

slate swan
#

thanks very much @slate swan

slate swan
supple thorn
#

Sadge

slate swan
supple thorn
#

Second too late to steal glory

slate swan
#

..

brisk dune
slate swan
#

๐Ÿ˜”

supple thorn
brazen raft
#

Have you forgotten setting up the message content privileged intent

brisk dune
#

Bruh after wondering for like 10 minuets why I was getting a KeyError with a bridgecommand, I realized my command's name parameter was capitalized (no-no in slash commands)

supple thorn
#

Oh well technically commands do internally use on_message events

#

Enable it

#

!d discord.Intents.message_content

unkempt canyonBOT
#

Whether message content, attachments, embeds and components will be available in messages
which do not meet the following criteria:

โ€ข The message was sent by the client

โ€ข The message was sent in direct messages

โ€ข The message mentions the client...

brisk dune
brisk dune
#

when I ctrl-c to exit my bot

#

and I don't think it has KeyboardInterrupt in it...

torn sail
#

ctrl c is KeyboardIntertupt

supple thorn
brisk dune
brisk dune
torn sail
#

Oh lol I read it wrong

brisk dune
# supple thorn You didn't await something?
@tasks.loop(seconds=30)
async def logs_dumper(self):
    _parent_dir = os.path.abspath(os.getcwd())
    async with aiofiles.open((_parent_dir + os.sep + "log.txt"), "at") as logs:
        await logs.write(("\n".join(self._temp)))
        if self._temp:
            await logs.write("\n")  # Newline to append next set of logs in `_temp`
    self._temp = []

@logs_dumper.before_loop
async def before_logs_dumper(self):
    await self.bot.wait_until_ready()

@logs_dumper.after_loop
async def on_logs_dumper_cancel(self):
    if self.logs_dumper.is_being_cancelled() and len(self._temp) != 0:
        await self.logs_dumper()

And the last few lines of traceback:

Traceback (most recent call last):
  File "C:\Users\Me\AppData\Local\Programs\Python\Python310\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Users\Me\AppData\Local\Programs\Python\Python310\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Users\Me\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 750, in call_soon
    self._check_closed()
  File "C:\Users\Me\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 515, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
sys:1: RuntimeWarning: coroutine 'Loop._loop' was never awaited
supple thorn
#

Hi sift

#

I'm still trying to make it one line

boreal ravine
supple thorn
boreal ravine
#

@paper sluice show

boreal ravine
supple thorn
#

Yes

#

You could always switch to disnake

supple thorn
# boreal ravine Lol
@(bot:=getattr(__import__("importlib").import_module("discord.ext.commands"),'Bot')(command_prefix='^')).command(name="quack")
async def quack(ctx): await ctx.send('Quack');bot.run('token')
#

Best attempt

boreal ravine
#

i said a command not a whole bot kek

supple thorn
#

It is a command

boreal ravine
#

bot.run?

supple thorn
#
@(bot:=getattr(__import__("importlib").import_module("discord.ext.commands"),'Bot')(command_prefix='^')).command(name="quack")
async def quack(ctx): await ctx.send('Quack')
#

Why couldn't you ignore that

slate swan
#

what happened?

boreal ravine
boreal ravine
#

not invalid

supple thorn
#

Ours are more esoteric so ours better

slate swan
#

I mean, is your bot verified?

boreal ravine
supple thorn
boreal ravine
#

mine less bytes so it's better

slate swan
#

Just enable the intent then ยฏ_(ใƒ„)_/ยฏ

supple thorn
slate swan
#

then?!!!

supple thorn
#

๐Ÿ˜ 

slate swan
#

enable it within your code too

supple thorn
slate swan
boreal ravine
#

less bytes is still better

supple thorn
slate swan
#

i see

#

well, dpy has some breaking changes, unless you fixed them...

supple thorn
#

Enabling message_content should of fixed the issue

#

What

slate swan
#

do you have an error handler and if you do, do you raise the error which isnt ever handled?

supple thorn
#

Which are the ones working?

#

And which aren't working

slate swan
#

can you show your profile command?

#

!paste

unkempt canyonBOT
#

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.

slate swan
#

its okay, wont judge

#

okay now I want to judge

supple thorn
#

Hope it's not esoteric

#

Wtf

slate swan
#

just telling you that this is the problem

supple thorn
#

Yeah

#

Wait what's the docs

slate swan
#

its member.avatar.url now

#

Disnake

#

its better if you use display_avatar

supple thorn
#

Yeah

slate swan
#

L

#

!d discord.Member.display_avatar

unkempt canyonBOT
#

property display_avatar```
Returns the memberโ€™s display avatar.

For regular members this is just their avatar, but
if they have a guild specific avatar then that
is returned instead.

New in version 2.0.
supple thorn
#

Doesn't show though

slate swan
#

Nice

slate swan
supple thorn
#

Yeah

#

I assumed after i looked at the docs

paper sluice
sullen pewter
#

is member author a thing?

paper sluice
#
getattr((bot:=getattr(__import__("importlib").import_module("discord.ext.commands"),'Bot')(command_prefix='^',intents=getattr(__import__('discord'),'Intents').all())), 'command')(name='quack')(__import__('asyncio').coroutine(lambda ctx:(await ctx.send('quack')for _ in '_').__anext__()))

we dont need to edit src with this one

sullen pewter
#
member = interaction.author
role = await discord.Guild.get_role(id)
await member.add_role(role)```
#

interaction has no attribute author

#

what can I do?

paper sluice
#

its interaction.user

slate swan
#

I want botinfo script

#

Anyone?

paper sluice
#

just make one :P

slate swan
#

Means is there any free course?

paper sluice
#

huh? free course for what?

slate swan
#

Botinfo?

slate swan
supple thorn
supple thorn
paper sluice
#

where is it?

sullen pewter
paper sluice
#

um, he didn't define bot, no imports..

sullen pewter
#

what's wrong with this?

paper sluice
#
(getattr((bot:=getattr(__import__("importlib").import_module("discord.ext.commands"),'Bot')(command_prefix='^',intents=getattr(__import__('discord'),'Intents').all())), 'command')(name='quack')(__import__('asyncio').coroutine(lambda ctx:(await ctx.send('quack')for _ in '_').__anext__())));bot.run(token)

ok now this is a full one liner with bot.run

supple thorn
paper sluice
#

did already :p

brisk dune
#

It's a positional-only argument, meaning it only works if that's the argument you pass in at index [whatever] (in this case, it only works if you pass it in as the first argument)

paper sluice
supple thorn
paper sluice
#

just paste that in ur IDE

supple thorn
#

Like a bot with multiple commands and events

sullen pewter
#

same error

supple thorn
#

It's a positional argument

#

You only need the id

sullen pewter
#

id= or role_id=

paper sluice
#

we just have to repeate this thing (name='quack')(__import__('asyncio').coroutine(lambda ctx:(await ctx.send('quack')for _ in '_').__anext__()))

slate swan
#

๐Ÿ˜Ž

paper sluice
#

we will edit the on_event deco instead of commands.command ....

supple thorn
#

Use your own guild object

sullen pewter
slate swan
#

..

#

huh?

supple thorn
sullen pewter
supple thorn
#

Just get your own guild object

sullen pewter
#

how do I create my own guild object

supple thorn
#

Either by the context

brisk dune
supple thorn
#

You get it

sullen pewter
#

any examples?

supple thorn
brisk dune
unkempt canyonBOT
#
class discord.ext.commands.Context(*, message, bot, view, args=..., kwargs=..., prefix=None, command=None, invoked_with=None, invoked_parents=..., invoked_subcommand=None, ...)```
Represents the context in which a command is being invoked under.

This class contains a lot of meta data to help you understand more about
the invocation context. This class is not created manually and is instead
passed around to commands as the first parameter.

This class implements the [`Messageable`](https://discordpy.readthedocs.io/en/master/api.html#discord.abc.Messageable "discord.abc.Messageable") ABC.
slate swan
#

ye ik but

#

use ctx

#

๐Ÿ˜‘

brisk dune
#

in that case, "for educational purposes"

sullen pewter
slate swan
#

or
channel.guild.get_role(1234567890)

brisk dune
sullen pewter
#

dpy 2.0

slate swan
#

cool

#

interaction.channel.guild.get_role()
will work fine

#

!d discord.Interaction

unkempt canyonBOT
#

class discord.Interaction```
Represents a Discord interaction.

An interaction happens when a user does an action that needs to be notified. Current examples are slash commands and components.

New in version 2.0.
slate swan
#

!d discord.Interaction.channel

unkempt canyonBOT
brisk dune
#

!d discord.Interaction.guild

unkempt canyonBOT
sullen pewter
#

Why is there still this error

slate swan
#

!d discord.Interaction.guild

unkempt canyonBOT
slate swan
#

ye it works

slate swan
#

(12412535)

#

inside the tuple

brisk dune
brisk dune
slate swan
slate swan
brisk dune
slate swan
#

that was a joke

sullen pewter
slate swan
slate swan
#

error knowledge is importent

sullen pewter
#

Do I have to add id=

brisk dune
slate swan
#

no

supple thorn
#

No

brisk dune
#

It's a positional-only argument, as it keeps telling you
Adding the id= or role_id= would make it a keyword argument, not a positional one

paper sluice
#

!intents do u have the required intents on?

unkempt canyonBOT
#

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 the Members and Presences intents, which are needed for events such as on_member 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.

slate swan
slate swan
#

uh wait

brisk dune
sullen pewter
#

ic

slate swan
brisk dune
# sullen pewter so what should I do?

If it says it's a positional-only argument, that means you cannot pass it in via a keyword like id or role_id. It only depends on the order you're passing your arguments in. Since it is accepting it first, literally just do interaction.guild.get_role(1234567890)

brisk dune
sullen pewter
#

I did

brisk dune
#

And did it run?

slate swan
#

!e

def add(num1, num2):
  return sum((num1, num2))
print(add(num1=3, num2=2))
unkempt canyonBOT
#

@slate swan :white_check_mark: Your eval job has completed with return code 0.

5
slate swan
#

its a positional argument

slate swan
brisk dune
slate swan
#

!e

def s(d):
    print(d)
s(d=2)
slate swan
unkempt canyonBOT
#

@slate swan :white_check_mark: Your eval job has completed with return code 0.

2
slate swan
#

nvmd

brisk dune
#

!e

def spam(eggs: int, bacon: int, /):
    print(f"Spam: {spam}")
    print(f"Bacon: {bacon}")

spam(1, 2)
spam(bacon=2, spam=1)
unkempt canyonBOT
#

@brisk dune :x: Your eval job has completed with return code 1.

001 | Spam: <function spam at 0x7f0b8fcdbd90>
002 | Bacon: 2
003 | Traceback (most recent call last):
004 |   File "<string>", line 6, in <module>
005 | TypeError: spam() got some positional-only arguments passed as keyword arguments: 'bacon'
sullen pewter
#

I still have this error

slate swan
#

you should rather make a getch

#

:< imagine using disnake

#
channel = bot.get_channel(id) or await bot.fetch_channel(id)
stone beacon
#

getch lowkey sounds better than fetch atm

slate swan
#

disnake dont have getch :<

slate swan
#

!d disnake.ext.commands.Bot.getch_user

unkempt canyonBOT
#

await getch_user(user_id, *, strict=False)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).

Tries to get the user from the cache. If fails, it tries to
fetch the user from the API.
slate swan
#

for msg?

stone beacon
#

lmao getch actually exists

slate swan
#

wow

slate swan
slate swan
sullen pewter
slate swan
sullen pewter
#

doesnt work

slate swan
#

see that yellow line

sullen pewter
#

oop?

slate swan
#

no

sullen pewter
#

ik python

slate swan
sullen pewter
#

ye ik that's why I said it won't work

slate swan
#

put ur bot instance

slate swan
slate swan
# sullen pewter
role = self.client.get_role(id) or await self.client.fetch_role(id)
#replace client with bot if you have it defined as bot
slate swan
#

uh ye

#

didnt saw that

#

..

#

embed on interactions looks good

slate swan
#

wdym?

slate swan
sullen pewter
slate swan
sullen pewter
#

bot

#

Do I have to add guild.get_role?

#

@slate swan

slate swan
sullen pewter
#

Do I have to write

#
interaction.Guild.get_role(id)```
slate swan
sullen pewter
#

ok

#

can't be used in await expression so ima remove it

slate swan
sullen pewter
#

it doesn't have an attribute id

#

in line 16

slate swan
sullen pewter
#

@slate swan

stray carbon
#

I have this in ON_ready event

        async with aiosqlite.connect('cogs.main.db') as db:
            async with db.cursor() as cursor:
                await cursor.execute('CREATE TABLE IF NOT EXISTS afk (user INTEGER, guild INTEGER, reason TEXT)')

bot it doesnt create table

#
File "C:\Users\Akai\AppData\Local\Programs\Python\Python38\lib\site-packages\aiosqlite\core.py", line 102, in run
    result = function()
sqlite3.OperationalError: no such table: afk
maiden fable
#

Huh

maiden fable
sullen pewter
#

it doesnt exist

#

how should I get the role id

#

to assign to uesrs

slate swan
#

it's simple sql database, but there's alot of ways to do this it's not really hard

#

elaborate

tacit token
#

my problem.

slate swan
#

for keys in logs2.keys():
RuntimeError: dictionary changed size during iteration
<
im trying to dump when this is running in loop

#

or is that your own library?

slate swan
#

how do i fix

slate swan
#
@tasks.loop(seconds=1)
    async def timer(self):
         with open("giveawaytime.json") as f:
          logs2 = json.load(f)
         for keys in logs2.keys():
slate swan
slate swan
# slate swan ye

hm, the issue is, the task is running every second and iterating through the file, so this means, whenever you run a command that updates the file, it will change the data within the json file hence modifying the length of the root dictionary within the file, hence, this will error at one point of time, and then work fine after that

#

ok how do i fix

slate swan
#

ill go with 2 option

#

exception

slate swan
#

..

supple thorn
paper sluice
#

just open it once before ur bot starts

#

update the dict

#

and write once just b4 bot stops

#

like

async with bot:
    async with open(...) as file:
        bot.file = file
        await bot.start()
lyric apex
#

Using someone's lavalink is risky?

slate swan
#

I mean, dont you need to use something like aiofiles

unkempt canyonBOT
paper sluice
#

ya u do

paper sluice
#

ur using dpy 2.0 right?

slate swan
#

nope

paper sluice
#

oh.

slate swan
#

disnake

#

๐Ÿ

paper sluice
#

i think u can do that with that too, it may not be async though

slate swan
#

uh im editing the file too?

exotic kite
#

Guys guys pls help me.

I need like when my bot joins a server i want it to give me the link of the server

paper sluice
paper sluice
slate swan
#

to store the time

#

im adding it when the bot is online

slate swan
slate swan
paper sluice
# slate swan to store the time

um just make a global dict, and update the file like every five mins or something, file io is pretty expensive in terms of time taken

slate swan
exotic kite
#

Like

I want it to say

I joined guild name "this is name"
Guild members : 69420
Guild invite :

slate swan
#

add 5 min + to the time?

exotic kite
#

I have the first two

slate swan
#

so it balance?

paper sluice
exotic kite
slate swan
slate swan
unkempt canyonBOT
#

await fetch_channel(channel_id, /)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).

Retrieves a [`abc.GuildChannel`](https://docs.disnake.dev/en/latest/api.html#disnake.abc.GuildChannel "disnake.abc.GuildChannel"), [`abc.PrivateChannel`](https://docs.disnake.dev/en/latest/api.html#disnake.abc.PrivateChannel "disnake.abc.PrivateChannel"), or [`Thread`](https://docs.disnake.dev/en/latest/api.html#disnake.Thread "disnake.Thread") with the specified ID...
paper sluice
#

i mean if u make ur dict global, u can just refer to that, then u can write to the file if u really need to store it even after the bot is shut down @slate swan

heady sluice
slate swan
heady sluice
#

get ๐Ÿ‘๐Ÿฟ
fetch ๐Ÿ‘Ž๐Ÿฟ

slate swan
heady sluice
#

ofc

slate swan
#

get() get from cache

heady sluice
#

sparky

slate swan
#

yes

heady sluice
#

I don't think you have to explain it to me

slate swan
#

..

slate swan
#

ill question

heady sluice
#

no

slate swan
#

my get doesnt work it return None

dusky pine
#

well, for performance you can just check if something is in the cache before fetching it

heady sluice
#

get_channel will not return None with the correct id unless you manually disabled channels intents

heady sluice
#

there's no channels intents

#

ah it's guilds

slate swan
#

listen

#

ill question u

heady sluice
#

question me

slate swan
#

when im using get()

dusky pine
heady sluice
#

but works with fetch?

slate swan
dusky pine
slate swan
#

listen im asking to meh

#

i know the answer

dusky pine
#

Then why are you asking lmaoo

#

Simply to flex your abilities in this library?

slate swan
heady sluice
#

there was probably an update discord-side which your bot didn't update to the cache?

dusky pine
slate swan
#

:( im not flexing , (i dont have anything to flex)

heady sluice
#

this doesn't correspond to what I said

#

in relation to guilds and channels of them

ashen perch
#

hey im having a problem with importing discord for some reason it is saying that discord is not installed when it is, any clue how i can fix this? ive already tried unistalling and redownloading it to no success

heady sluice
#

I have a house, something's in it but it doesn't work

paper sluice
heady sluice
#

there are plenty of things you could've messed up there and I'll never know

ashen perch
#

pip install -U discord.py

paper sluice
#

ya

heady sluice
ashen perch
#

should 3.9.5 work?

heady sluice
paper sluice
#

ur url might not be correct the, do u get any error messages @slate swan

heady sluice
#

the cache will be updated if guilds intents are enabled

#

you messed up!

supple thorn
heady sluice
#

fetch also iirc puts the channel in the cache after it made an API call

ashen perch
#

still no success

slate swan
#

pip install discord

dusky pine
heady sluice
#

will work for u

#

you don't know which pip his path is on

ashen perch
dusky pine
#

JUst type that into the terminal

ashen perch
#

k

heady sluice
#

if you specifically tell to use the 3.9 pip it will work

#

cuz this is where he launches the code

slate swan
#

ok

heady sluice
#

unless he doesn't have pip for 3.9

slate swan
#

ok

heady sluice
#

which would be weird

ashen perch
#

well i did it and restarted VScode but no success

heady sluice
#

your pip is on 3.10

#

your python interpreter is 3.9

dusky pine
heady sluice
#

either
pip3.9 install discord.py
or
change your python interpreter

dusky pine
#

it should work, if it doesn't then idk

heady sluice
#

pycord?

dusky pine
#
discord.ui.Button(style=discord.ButtonStyle.link, label="aaaaa", url="https://google.com")
heady sluice
#

hm nice

dusky pine
#

bruh

heady sluice
#

you add the buttons to the View

dusky pine
#
view = SelectView()
view.add_item(discord.ui.Button(style=discord.ButtonStyle.link, label="aaaaa", url="https://google.com"))
await ctx.respond(embed=embed, view=view)
heady sluice
#

!d discord.ui.View.add_item

unkempt canyonBOT
#

add_item(item)```
Adds an item to the view.

This function returns the class instance to allow for fluent-style chaining.
paper sluice
#

add to the view ๐Ÿคฆ

latent anchor
#

bruh

#

run it?

#

im not sure as i havent tried buttons before

paper sluice
#

running code is not bad advise ๐Ÿ˜‰

latent anchor
#

bruh its a normal thing to do
even though i havent try it before

#

anyways im also here to ask question lol
i added events into my bot's code but it now can only react to events

#

the commands dont work

paper sluice
#

ah there was something like await bot.process_commands()

latent anchor
#

is it new?
cuz i didnt have that before the discord py update
the commands still works before that happened

paper sluice
#

its been there for some time now

dire folio
#

^

dusky pine
latent anchor
#

im a linux user and i just saw the traceback in the terminal
it says no file or directory ask ./cogs

#

but i have every cogs in the folder

dusky pine
#

maybe the directory really isn't there lmao

paper sluice
#

can u show the traceback too

latent anchor
#

traceback

#

and the folders

dusky pine
paper sluice
#

^

dusky pine
#

Do cd /home/whitecup/colainwhitecup

#

Then run python main.py

dusky pine
paper sluice
#

python2 ๐Ÿ’€

heady sluice
#

did ShouldIgetDiscord get it tho

dusky pine
heady sluice
#

no, the error

dusky pine
latent anchor
heady sluice
#

D:

#

great question

#

and to answer it

#

@dusky pine

#

answer it

dusky pine
#

answer waht

heady sluice
#

"how do i make bot lol"

latent anchor
heady sluice
#

the message was deleted, the question stays

dusky pine
dusky pine
latent anchor
boreal ravine
#

@dusky pine DMs

lethal moat
#

anyone know how to disable a select menu on callback?

dusky pine
heady sluice
#

I like mine

boreal ravine
latent anchor
dusky pine
lethal moat
boreal ravine
unkempt canyonBOT
#

await edit_original_message(*, content=..., embeds=..., embed=..., attachments=..., view=..., allowed_mentions=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).

Edits the original interaction response message.

This is a lower level interface to [`InteractionMessage.edit()`](https://discordpy.readthedocs.io/en/master/interactions/api.html#discord.InteractionMessage.edit "discord.InteractionMessage.edit") in case you do not want to fetch the message and save an HTTP request.

This method is also the only way to edit the original message if the message sent was ephemeral.
dusky pine
latent anchor
dusky pine
latent anchor
#

hmm ok

dusky pine
heady sluice
# unkempt canyon
self.disabled = True
await interaction.edit_original_message(view=self)
latent anchor
dusky pine
heady sluice
dusky pine
#

Now try doing python main.py

quaint epoch
heady sluice
#

selectview in a wheelchair

quaint epoch
#

back to moneylaundering

slate swan
quaint epoch
latent anchor
slate swan
dusky pine
slate swan
#

comma

latent anchor
#

,add item

quaint epoch
#

!send @slate swan 69m

dusky pine
#

You typed a comma, not a dot

heady sluice
acoustic sleet
#

discord banned my bot for some reason :/

latent anchor
#

np lol check again before asking

slate swan
dusky pine
heady sluice
acoustic sleet
heady sluice
#

then that

quaint epoch
latent anchor
slate swan
slate swan
heady sluice
#

it's prolly ratelimited

dusky pine
latent anchor
#

change @bot.event to @bot.listen

dusky pine
acoustic sleet
latent anchor
acoustic sleet
dusky pine
#

also, the name of the function matters

slate swan
quaint epoch
heady sluice
#

back on topic

quaint epoch
heady sluice
#

do you have children

acoustic sleet
slate swan
#

lmao

latent anchor
slate swan
dusky pine
#

It just looks weird lmao

slate swan
unkempt canyonBOT
acoustic sleet
# slate swan Good

i tried it twice before u told me, and then i tried it again and it worked lmao

heady sluice
#

I hate y'all

dusky pine
#

i'm starting to get confused

slate swan
heady sluice
#

I love you

slate swan
#

um how do i add a check in my view

slate swan
slate swan
dusky pine
latent anchor
heady sluice
#

BACK ON TOPIC

slate swan
#

nope

#

Mfs with python code as their user are just ew

latent anchor
slate swan
#

bro

heady sluice
slate swan
slate swan
heady sluice
#

I love you

slate swan
#

!ot

unkempt canyonBOT
slate swan
slate swan
dusky pine
#

[a link](https://google.com)

slate swan
heady sluice
#

but I wanna get on topic ๐Ÿ˜ญ

slate swan
heady sluice
dusky pine
#

guys please this is not discord bot talk anymore

quaint epoch
slate swan
quaint epoch
#

.topic

lament depotBOT
#
**What unique features does your bot contain, if any?**

Suggest more topics here!

latent anchor
heady sluice
quaint epoch
dusky pine
slate swan
quaint epoch
#

bro

#

that isn't how use it

slate swan
#

BRO

#

bro

heady sluice
#

@commands.has_permissions(kick_members = True)

dusky pine
#

youre doing it wrong, its supposed to be

@bot.slash_command()
@commands.has_permissions(kick_members=True)
slate swan
#

wtf

quaint epoch
#
@bot.slash_command()
@commands.has_permissions(kick_members=True)```
#

imagine letting everyone kick everyone

dusky pine
quaint epoch
heady sluice
#

!d discord.ext.commands.has_guild_permissions would be better ig

unkempt canyonBOT
#

@discord.ext.commands.has_guild_permissions(**perms)```
Similar to [`has_permissions()`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.has_permissions "discord.ext.commands.has_permissions"), but operates on guild wide
permissions instead of the current channel permissions.

If this check is called in a DM context, it will raise an
exception, [`NoPrivateMessage`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.NoPrivateMessage "discord.ext.commands.NoPrivateMessage").

New in version 1.3.
slate swan
#

:reverse:

dusky pine
lethal moat
#

await interaction.edit_original_message(content=f"{self.values[0]} selected for {self.server} by {self.ign}", view=None, embed=None)
anyone know why this isnt working?
(happens on callback of a select menu)
it shows "unknown webhook" error

slate swan
dusky pine
slate swan
heady sluice
#

yes you are

latent anchor
#

yes u r

quaint epoch
#

u r

dusky pine
#

ok fine

quaint epoch
#

u r mom

#

okay okay i won't

heady sluice
#

that doesn't even make sense

dusky pine
#

yeah that's correct

slate swan
#

hi is there anything to check in view or i need to add it

quaint epoch
#

i haven't seen that error before

ashen perch
#

so i downloaded the python 3.9.5 interpreter but after i change the interpreter from 3.10.4 and in the terminal run python it still says version 3.10.4

slate swan
quaint epoch
#

!d discord.Interaction.edit_original_message

unkempt canyonBOT
#

await edit_original_message(*, content=..., embeds=..., embed=..., attachments=..., view=..., allowed_mentions=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).

Edits the original interaction response message.

This is a lower level interface to [`InteractionMessage.edit()`](https://discordpy.readthedocs.io/en/master/interactions/api.html#discord.InteractionMessage.edit "discord.InteractionMessage.edit") in case you do not want to fetch the message and save an HTTP request.

This method is also the only way to edit the original message if the message sent was ephemeral.
quaint epoch
#

hmmm

slate swan
#

hi is there anything to check in view or i need to add it

lethal moat
#
Traceback (most recent call last):
  File "C:\Users\Harshit\AppData\Local\Programs\Python\Python39\lib\site-packages\nextcord\ui\view.py", line 359, in _scheduled_task
    await item.callback(interaction)
  File "c:\Users\Harshit\Desktop\ticket-bot-kareem\commands\menu.py", line 90, in callback
    await interaction.edit_original_message(content=f"{self.values[0]} selected by {self.ign}", view=None, embed=None)
  File "C:\Users\Harshit\AppData\Local\Programs\Python\Python39\lib\site-packages\nextcord\interactions.py", line 330, in edit_original_message
    data = await adapter.edit_original_interaction_response(
  File "C:\Users\Harshit\AppData\Local\Programs\Python\Python39\lib\site-packages\nextcord\webhook\async_.py", line 189, in request
    raise NotFound(response, data)
nextcord.errors.NotFound: 404 Not Found (error code: 10015): Unknown Webhook

@quaint epoch

slate swan
#

Unknown webhook

quaint epoch
#

instead try await interaction.message and edit

lethal moat
#

im using nextcord

slate swan
#

why?

lethal moat
#

uhh... its good?

quaint epoch
paper sluice