#discord-bots
1 messages · Page 689 of 1
ur bot responds twice
I meant like two different scripts don't we get an error for that?
nope
if not interactions, no
Oh-
but i had issues with interactions, maybe there are work arounds to them but i dont see the point of doing it at all
class Cog2(commands.Cog):
def __init__(self,bot):
self.bot = bot
@commands.Cog.listener()
async def on_guild_join(self,guild:discord.Guild):
for channels in guild.channels:
global channel_list
channel_list = await channels.create_webhook(name="Lemontree bot hook")
@commands.command()
async def sudo(self,ctx:commands.Context,member:discord.Member,*,message):
hook = Union(channel_list)
async with ClientSession() as session:
await hook.send(content=message,avatar_url=member.display_avatar,username=member.display_name) ```
channel_list not defined?
Python allows you to set custom attributes to most objects, like your bot! By storing things as attributes of the bot object, you can access them anywhere you access your bot. In the discord.py library, these custom attributes are commonly known as "bot variables" and can be a lifesaver if your bot is divided into many different files. An example on how to use custom attributes on your bot is shown below:
bot = commands.Bot(command_prefix="!")
# Set an attribute on our bot
bot.test = "I am accessible everywhere!"
@bot.command()
async def get(ctx: commands.Context):
"""A command to get the current value of `test`."""
# Send what the test attribute is currently set to
await ctx.send(ctx.bot.test)
@bot.command()
async def setval(ctx: commands.Context, *, new_text: str):
"""A command to set a new value of `test`."""
# Here we change the attribute to what was specified in new_text
bot.test = new_text
This all applies to cogs as well! You can set attributes to self as you wish.
Be sure not to overwrite attributes discord.py uses, like cogs or users. Name your attributes carefully!
Why globals in a class
bot.channel_list?
Yea
ayt tysm
you can also use the cog instance
Read the above tag about botvars
oh-
also please setup black code formatter for your IDE
Also whats Union?
typing.Union
oh-
It will raise an error if u try making an instance
you can make your own function for that
If u explain your use case, I could help u better
Okay, I've swapped over everything to bot.commands instead of discord.client. Everything is working fine, except when I try to use the command it tells me I don't have the necessary role, even though I definitely do. Have triple checked the environment variables to make sure they're correct. Any clue what I could be doing wrong?
import os
from keep_alive import keep_alive
from discord.ext import commands
bot = commands.Bot(command_prefix='!')
token = os.environ['TOKEN']
@bot.command()
@commands.has_any_role('Admin', 'Server Owner')
async def scosa(ctx):
await ctx.channel.send(os.getenv('VerifiedBMHour') + ' +9 in 30 minutes hosted by ' + os.getenv('scosa') + '!')
await ctx.message.delete()
@scosa.error
async def info_error1(ctx, error):
if isinstance(error, commands.errors.MissingAnyRole):
await ctx.channel.send('You must be an Admin or higher to use this command.')
so i have made webhooks for all the channels in a server. I want it so if the author runs the command in a specific channel the webhook of that paticular channel only responds.
Role names are case sensitive BTW
You need to use the role's ID iirc.
Not necessarily
Names will work
!d discord.ext.commands.has_any_role
@discord.ext.commands.has_any_role(*items)```
A [`check()`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.check "discord.ext.commands.check") that is added that checks if the member invoking the command has **any** of the roles specified. This means that if they have one out of the three roles specified, then this check will return True.
Similar to [`has_role()`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.has_role "discord.ext.commands.has_role"), the names or IDs passed in must be exact.
This check raises one of two special exceptions, [`MissingAnyRole`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.MissingAnyRole "discord.ext.commands.MissingAnyRole") if the user is missing all roles, or [`NoPrivateMessage`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.NoPrivateMessage "discord.ext.commands.NoPrivateMessage") if it is used in a private message. Both inherit from [`CheckFailure`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.CheckFailure "discord.ext.commands.CheckFailure").
Changed in version 1.1: Raise [`MissingAnyRole`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.MissingAnyRole "discord.ext.commands.MissingAnyRole") or [`NoPrivateMessage`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.NoPrivateMessage "discord.ext.commands.NoPrivateMessage") instead of generic [`CheckFailure`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.CheckFailure "discord.ext.commands.CheckFailure")
oooh i see, i thought those were using my environment variables, brainfart
Hahaha
looks like a nice use of a database
i am not familiar with them
!d discord.TextChannel.webhooks
so there is no other way?
await webhooks()```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Gets the list of webhooks from this channel.
Requires [`manage_webhooks`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_webhooks "discord.Permissions.manage_webhooks") permissions.
U'll have to fetch them
there are but i would say to use a database
Facts
um
or just use discdb
learn sqlite then just put await
Yea
i like deta's new async sdk for python tho
works pretty well even if its in alpha stage
ty for the help, works great now 😄
its like the replit database, easy and for basic use it works
hate one thing about it is that it can currently only store 16 digit ints, you gotta store it as str for larger ones
so i had to convert to int and str all the time for storing ids
how to make this buttons?
use discord.py 2.0 forks or itself (no application commands) and set custom emoji
disnake?
yeah
A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python.
can someone say me how this works (i will grab the description out of an embed)
!d discord.Embed.description
The description of the embed. This can be set during initialisation.
embed.description = "Hi There!"
.
Any error?
Nope
The code?
The whole message with the code
So Im trying to make a simple thing that makes the bot greet you when you say "hello" and its name. As of right now.. I have this
if msgl.startswith('hello chimera') or msgl.startswith('hi chimera'):
channel = message.channel
await channel.send('Hello! What is your name?')
print('Check 1')
def check(m):
return m.content == 'hello' and m.channel == channel
print('Nice')
msg = await client.wait_for('message', check=check)
await channel.send(f'Hello {msg}!')
print('Check 2')
```Naturally the prints are to see exactly where its going wrong. It printed both "Check 1" and "Nice" but not "Check 2".. what am I doing wrong?
I have an update tho
?
I got it to do this
if msgl.startswith('hello chimera') or msgl.startswith('hi chimera'):
channel = message.channel
await channel.send('Hello! What is your name?')
print('Check 1')
def check(m):
return m.channel == channel
print('Nice')
msg = await client.wait_for('message' , check=check)
print('Check')
await channel.send('Hello {.content}!'.format(msg))
print('Check 2')
``` Code I used to do it
Yea...
It is, but the issue is it is not waiting
on_message triggers for the bot itself too, haha
So itll send it, but then not take any input
But I did
if message.author == client.user:
return
how i stop a command for 10s
and not message.author == client.user
yes
@discord.ext.commands.cooldown(rate, per, type=discord.ext.commands.BucketType.default)```
A decorator that adds a cooldown to a [`Command`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.Command "discord.ext.commands.Command")
A cooldown allows a command to only be used a specific amount of times in a specific time frame. These cooldowns can be based either on a per-guild, per-channel, per-user, per-role or global basis. Denoted by the third argument of `type` which must be of enum type [`BucketType`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.BucketType "discord.ext.commands.BucketType").
If a cooldown is triggered, then [`CommandOnCooldown`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.CommandOnCooldown "discord.ext.commands.CommandOnCooldown") is triggered in [`on_command_error()`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.discord.ext.commands.on_command_error "discord.discord.ext.commands.on_command_error") and the local error handler.
A command can only have a single cooldown.
def check(m):
return m.channel == channel and not message.author == client.user
``` Like that?
:o Alright lemme try
IT WORKS
Bro ive been sitting here for 2-3 hours trying to figure this out 😭
🤣
ty bro its work
Cool
'YTDLSource' is not defined
YTDLSource doesnt exist in your code then
anyways
!ytdl
Per Python Discord's Rule 5, we are unable to assist with questions related to youtube-dl, pytube, or other YouTube video downloaders, as their usage violates YouTube's Terms of Service.
For reference, this usage is covered by the following clauses in YouTube's TOS, as of 2021-03-17:
The following restrictions apply to your use of the Service. You are not allowed to:
1. access, reproduce, download, distribute, transmit, broadcast, display, sell, license, alter, modify or otherwise use any part of the Service or any Content except: (a) as specifically permitted by the Service; (b) with prior written permission from YouTube and, if applicable, the respective rights holders; or (c) as permitted by applicable law;
3. access the Service using any automated means (such as robots, botnets or scrapers) except: (a) in the case of public search engines, in accordance with YouTube’s robots.txt file; (b) with YouTube’s prior written permission; or (c) as permitted by applicable law;
9. use the Service to view or listen to Content other than for personal, non-commercial use (for example, you may not publicly screen videos or stream music from the Service)
YTDLsource is not defined
How can you be so sure that they are using ytdl for downloading videos or audio
because YTDL - youtube_dl
¯_(ツ)_/¯
Cz it can't be used for any other thing except downloading audio/video from YouTube (:
Cuz it can be used for fetching youtube video details
BRUH
use the youtube api for that
better option

That's my choice
good
googleapis are shit anyways
I don't wanna use an API key
-> They ain't shit
-> OT
Then don't, ezzz (:
That's why use ytdl
U can go on, scrape the website and use most of your resources ;D
You can't get video info
why not
That's API problem 🤷♂️
Like count
That's why use ytdl it will allow all that
The only legal way, afaik, is to use the API provided by Google and not scraping the website yourself

....
¯_(ツ)_/¯
Getting a video's information by scraping the website is not illegal as well
- access the Service using any automated means (such as robots, botnets or scrapers) except: (a) in the case of public search engines, in accordance with YouTube’s robots.txt file; (b) with YouTube’s prior written permission; or (c) as permitted by applicable law;
It's written in YouTube ToS itself
scrapers
Hmm
Stop now
Alr
Just clarified my argument ¯_(ツ)_/¯
not you smh
Many people use scrapers tho-
just stop now
Many people make music bots too-
!ot
Off-topic channels
There are three off-topic channels:
• #ot2-never-nester’s-nightmare
• #ot1-perplexing-regexing
• #ot0-psvm’s-eternal-disapproval
Their names change randomly every 24 hours, but you can always find them under the OFF-TOPIC/GENERAL category in the channel list.
Please read our off-topic etiquette before participating in conversations.
@commands.command()
async def recipe(self, ctx, *, food_name):
food = food_name.replace(" ", "+")
api_url = f"https://api.edamam.com/api/recipes/v2?type=public&q=" + food + "&app_id={app_id}&app_key={app_key}"
async with aiohttp.ClientSession() as session:
async with session.get(api_url) as resp:
res = await resp.json()
ing = res['hits'][0]['recipe']['ingredients']
naam = res["hits"][0]["recipe"]["label"]
url = res["hits"][0]["recipe"]["url"]
image = res["hits"][0]["recipe"]["image"]
inge = ""
for ingredient in ing:
inge += f"{ingredient['text']}\n-------\n"
embed = disnake.Embed(title=naam, url=url, description=inge, color=bot_embed_color)
embed.set_thumbnail(url=image)
await ctx.reply(embed=embed)```
Can someone tell why this doesn't work
Error?
invalid key?
Imagine using f strings and concatenation
No
woah calm down
Remove the + food + and use placeholders and it will work
It works when using the key directly
I don't think that can be the issue tho
use .format
Cz the url is taking the API key as app_key={app_key}
or make the third string an f string
Yea that too
But why use concatenation with f strings 😐
lmaooo, wy not
I wrote that around 2 months ago
Concatenation with f strings --> Welcoming errors
Then fix it in the next 2 minutes (:
Imagine using GIFs instead of nitro emojis smh
When you don't have nitro-
mhm 

Ik (:
Okay let's not send loads of them here, I was just kidding

name = "smh"
age = 00
a = name + "'s, age is {}".format(age)
preferred way
no
no use f strings
lol
Readability 100
that's why I wrote it
name = "smh"
age = 00
a = f"{name}'s, age is {age}"
Readability 0
message = "hi"
a = name + "'s, age is {}.".format(age) + f"{message}!"


There's also % signs BTW
Didn't I tell that only lmao
U both sent it at almost the same time
Facts
message = "hi"
a = name + "'s, age is {}.".format(age) + f"{message}!" + "%s, how are you?" % (name,)
maybe
!e
name = "icy"
age = 14
message = "hi"
a = name + "'s, age is {}.".format(age) + f" {message}" + " %s, how are you?" % (name,)
print(a)
spotify?
@visual island :white_check_mark: Your eval job has completed with return code 0.
icy's, age is 14. hi icy, how are you?
What has stoptify to do with ytdl?
Huh
is there a spotify dl
I'll vomit
!pypi spotipy
!pypi spotipy
late 0.2 secs :(
lol
BTW if you are looking for streaming music from spotify it's not possible
Cuz spotify is highly encrypted
spotipy is just a wrapper around spotify api which can get you music details
Old Python Strings lmao
uhhh
cant
can I stream spotify somehow?
you cant
spotify's data is highly encrypted
I've a question
But some bots
Yes
i'm using the on_message_delete event, and I want to check the deleter of the message
they use spotify to fetch the artist and song name, and use youtube to stream the music
message.author
for sure?
async def on_message_delete(message)
Which is illegal
oof\
I am not recommending
Hmm
anyone?
@commands.Cog.listener()
async def on_message_delete(self,message):
channel = nextcord.utils.get(message.guild.text_channels,name="reports")
await channel.send(f"{message.author} deleted the message: {message.content}")``` in class
just check the audit logs
huhhhh
Are you sure?
let me print
yea I tested it
well my code will search for a channel named reports
Just check audit log for deleted message if it was recorded then just get the user who deleted the message if it wasn't recorded get message.author
ohh
Exactly
that what you mean
..............okay
This should work
If you come up with a better solution lmk
....fine
how do I stream spotify music on discord
you can't stream it
https://github.com/spotDL/spotify-downloader but you can probably download it
Even audit logs dont work, so most of the time, you cant get the message deleter
Why won't they?
Unreliable
"message deleted by bots doesn't get to audit log (most of the time)"
~ Umbra
Icy is everywhere
simple truth, there is no 100% reliable way to get who deleted the message
@commands.command()
async def meme(self,ctx,Subreddit="memes"):
try:
reddit.read_only=True
post = reddit.subreddit(Subreddit).random()
embed = nextcord.Embed(description=f"**[{post.title}]({reddit.config.reddit_url + post.permalink})**")
embed.set_image(url=post.url)
embed.set_footer(text=f"By {post.author}")
await ctx.send(content=None, embed=embed)
except:
await ctx.send("Subreddit not found.")``` why does this send 2 images
import dad 😔
💀
debug it 
Why so many ppl make Reddit bots
🤷♂️
@bot.event
async def on_member_join(member):
channel = bot.get_channel(channel_id)
await channel.send(f'{member} just joined')
i change a id channel to channel_id because I don't want to give it but in my code it is.
Problem: It don't sends a message in the channel
help
Any error?
is on_member_join triggered
!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 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.
U need members intent
i invites a probot and it don't send the message @slate swan
what?
Read the embed
ok
AttributeError: 'Member' object has no attribute 'message'
@bot.event
async def on_reaction_add(user, reaction):
if reaction.message.author.bot:
if reaction.emoji == ':white_check_mark:':
return
if reaction.message.author.user:
if reaction.emoji == ':white_check_mark:':
await user.send("hello")
```?
ah
It should be reaction, user
Rn, user is the Reaction object and reaction is the member object
!d discord.on_reaction_add
discord.on_reaction_add(reaction, user)```
Called when a message has a reaction added to it. Similar to [`on_message_edit()`](https://discordpy.readthedocs.io/en/master/api.html#discord.on_message_edit "discord.on_message_edit"), if the message is not found in the internal message cache, then this event will not be called. Consider using [`on_raw_reaction_add()`](https://discordpy.readthedocs.io/en/master/api.html#discord.on_raw_reaction_add "discord.on_raw_reaction_add") instead.
Note
To get the [`Message`](https://discordpy.readthedocs.io/en/master/api.html#discord.Message "discord.Message") being reacted, access it via [`Reaction.message`](https://discordpy.readthedocs.io/en/master/api.html#discord.Reaction.message "discord.Reaction.message").
This requires [`Intents.reactions`](https://discordpy.readthedocs.io/en/master/api.html#discord.Intents.reactions "discord.Intents.reactions") to be enabled.
Note
This doesn’t require [`Intents.members`](https://discordpy.readthedocs.io/en/master/api.html#discord.Intents.members "discord.Intents.members") within a guild context, but due to Discord not providing updated user information in a direct message it’s required for direct messages to receive this event. Consider using [`on_raw_reaction_add()`](https://discordpy.readthedocs.io/en/master/api.html#discord.on_raw_reaction_add "discord.on_raw_reaction_add") if you need this and do not otherwise want to enable the members intent.
See
i dont know how this intents work
!intent read this embed
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.
can you send me a code to make it works?
@maiden fable
i'm from poland and i don't know English
The embed has the code
i know only basics
Well the embed gave u the code above
i dont know how this works!
!d intents
They said they dont know english
Well I don't know any other language except English. They can translate the page, that's why gave the docs link
Idk how ur supposed to code w/o knowing English
Yes?
I found on the internet solution but its not work
yes but its only basic coding
Asynchronous programming isn’t rly basic coding
but im coding bot from the tutorials
He doesnt rly have the best tutorials
Try just using dpy docs
They are rly nice and easy to understand
ok thanks for help
Those're like 3 years old? Ig
the rewrite ones are ~1 year old but still they aren't really great
what do you recommend then
Oh ngl, tutorials are a waste of time
they aren't though?
docs
https://tutorial.vcokltfre.dev/
The best tutorial
A tutorial on how to use discord.py to create your own Discord bot in Python, written to fix the flaws of many other popular tutorials.
and vcokltfree's article thingy
that
Yup
@mild raft maybe try this
@upbeat otter
Mostly docs,
And an hour tutorial which i discontinued
eh I dont believe you at all
how do i add multiple buttons onto a message?
I learnt python from my friend
"waste of time" 💀
Fine
you add more buttons in the class, simple
Python was my first lang and after watching an hour of the video, I felt like it was a waste lol
something like this?
it didnt work for me
ofc it was a waste if you didnt have the motivation to learn python lol, and lots of other tutorials (web tutorials) exist (SO, Geeks4Geeks, realpython)
only one button came up
I learned from geeksforgeeks
change the function name
it overwrites the old buttons/functions
All you need to do is change the func names, thats all
intents = discord.Intents.all()
intents.members = True
How to use this if my bot don't have privilege intent
And i want to use only member intent
no need to hardcode intents.members, since discord.Intents.all, enables all the intents
But if i dont use intent my bot doesn't work properly
go to https://discord.com/developers/applications and go the bot section of yor app, enable the intents there
Integrate your service with Discord — whether it's a bot or a game or whatever your wildest imagination can come up with.
!d discord.Guild.create_custom_emoji
await create_custom_emoji(*, name, image, roles=..., reason=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Creates a custom [`Emoji`](https://discordpy.readthedocs.io/en/master/api.html#discord.Emoji "discord.Emoji") for the guild.
There is currently a limit of 50 static and animated emojis respectively per guild, unless the guild has the `MORE_EMOJI` feature which extends the limit to 200.
You must have the [`manage_emojis`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_emojis "discord.Permissions.manage_emojis") permission to do this.
You default intents in that case
My bot is verified and i didn't get privilege intent
Wdym
it should, show me your code
Apply....
It takes a image keyword, which must be a byte type object
I dont know whats to write while applying
nevermind, i just made a spelling error
Use io.BytesIO
o gj
@upbeat otter
!pypi io
class discord.File(fp, filename=None, *, spoiler=False)```
A parameter object used for [`abc.Messageable.send()`](https://discordpy.readthedocs.io/en/master/api.html#discord.abc.Messageable.send "discord.abc.Messageable.send") for sending file objects.
Note
File objects are single use and are not meant to be reused in multiple [`abc.Messageable.send()`](https://discordpy.readthedocs.io/en/master/api.html#discord.abc.Messageable.send "discord.abc.Messageable.send")s.
A valid and reasonable goal for the intents
gj
I am dumb i dont know the reason
What is it doing in your cor then.
Code*
,-, then nothing we can do
Anti nuke bot

Yea so just explain there why and how will you use the member intents there
I get member intent
intents = discord.Intents.default()
intents.members=True```
Enjoy
Indian
My god
Idk how do I explain them lol
Same
!d await bot.wait_for_reaction
6.4. Await expression
Suspend the execution of coroutine on an awaitable object. Can only be used inside a coroutine function.
await_expr ::= "await" primary
``` New in version 3.5.
To kaise hai aap log
Not here ffs
how do I make the bot wait for a reaction?

Error
Okay so, First use PIL and use the open method, read the output, convert it to Bytes using io.BytesIO
!d discord.Client.wait_for , and use reaction_add as the first param
wait_for(event, *, check=None, timeout=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Waits for a WebSocket event to be dispatched.
This could be used to wait for a user to reply to a message, or to react to a message, or to edit a message in a self-contained way.
The `timeout` parameter is passed onto [`asyncio.wait_for()`](https://docs.python.org/3/library/asyncio-task.html#asyncio.wait_for "(in Python v3.9)"). By default, it does not timeout. Note that this does propagate the [`asyncio.TimeoutError`](https://docs.python.org/3/library/asyncio-exceptions.html#asyncio.TimeoutError "(in Python v3.9)") for you in case of timeout and is provided for ease of use.
In case the event returns multiple arguments, a [`tuple`](https://docs.python.org/3/library/stdtypes.html#tuple "(in Python v3.9)") containing those arguments is returned instead. Please check the [documentation](https://discordpy.readthedocs.io/en/master/api.html#discord-api-events) for a list of events and their parameters.
This function returns the **first event that meets the requirements**...
What error?
.........fine, bye
Well,. There are always multiple ways to do something....
Using PIL for doing is better since that's what pillow is meant for
I-
HI
Hey @barren oxide!
It looks like you tried to attach a Python file - please use a code-pasting service such as https://paste.pythondiscord.com
Stunning , you can use pastebin to show the code
Jbb tkk privilege intent ke liye apply nhi krunga tbb tkk bot work nhi krega properly
Byy going to apply
ENGLISH
4. Use English to the best of your ability. Be polite if someone speaks English imperfectly.
Ufff
@slate swan I can provide you with the code
Like it not banning me while i am creating channel or deleting
But I wont
discord.ext.commands.errors.MissingRequiredArgument: user is a required argument that is missing. ?
async def emb(ctx, *, user):
from PIL import Image
from io import BytesIO
Welcome
,-, Ok then help yourself
I'll simply ignore you if you keep doing that
Eevee literally told you what to do
But I am invisible so uhhh
@slate swan hows your issue related to discord bots ?
@slate swan what u wanna do
if its on the discord bot it doesn’t mean its related to discord-bots and check os to define your file path, its really basic stuff i think you should learn some python
10 minutes*
!d discord.Emoji.url_as
No documentation found for the requested symbol.
istg sometimes Python sucks
if your here to get spoon fed this isnt the place 
await save(fp, *, seek_begin=True)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Saves this asset into a file-like object.
After this ^^^
They want to upload an image ( for emoji ) from their device
Weird redirect
I'm on my phone and using chrome so NVM that
Hmm
!d discord.Guild.create_custom_emoji then
await create_custom_emoji(*, name, image, roles=..., reason=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Creates a custom [`Emoji`](https://discordpy.readthedocs.io/en/master/api.html#discord.Emoji "discord.Emoji") for the guild.
There is currently a limit of 50 static and animated emojis respectively per guild, unless the guild has the `MORE_EMOJI` feature which extends the limit to 200.
You must have the [`manage_emojis`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_emojis "discord.Permissions.manage_emojis") permission to do this.
Told them already , they have issue in choosing the image to use
So did you get it to work with is?
*os
Ah, io.ByesIO then?
😐
What's gonna be the image
Okay thanks for ignoring my previous message, appreciate it
Yea they should
There's literally no other way ngl
My man literally ignoring everyone
And yea, Eevee told the correct way
Let's ignore him
Except for the pillow thingy
Yup
Then u can't do anything else afaik
It's literally the easiest way dude
- io.BytesIO
-
-
Lmao
how do i make another button after someone clicks a button
Edit the message
no, like a new button in a new message
Send a new message with a button
i did try that but this error came up
Code
U r using an instance method on the class itself
Well we can surely help u if u r willing to cooperate and not ignore us (;
the code is 2 long
If you dk about io.BytesIO, then learn about it. We are willing to help u but u keep on ignoring us, sooo, uhhh idk what to do 🤷♂️
Io.BytesIO is a file like object
is there someway I can get the permissions required to run a command?
Idts, nope
By requesting for it ig
I asked in discord.py server it was a straight "No"
You actually can-
yes, if you own the bot and the bot has perms to manage roles
then make an add role command
Since discord.py doesn't know what your code does or what errors are possibilities which will be raised while running the command
i think it's safe to say i died due to that
class Section1(View):
@discord.ui.button(label="VIP #1", style=discord.ButtonStyle.red)
async def section1outof1(self, button, interaction):
await interaction.response.send_message("` #1 ")
class Sections(View):
@discord.ui.button(label="Section #1", style=discord.ButtonStyle.green)
async def button_callback1(self, button, interaction):
await interaction.response.send_message("` SECTION #1`", view=view)
In short, no
I didn't mean to get the perms on discord
no-ting that as true
if I stop the view, will it delete the message that it was sent with?
I don't think so
In which line
Nope
they should add robo danny here 
Nahh it's fine tbh
discord.ext.commands.has_permissions , I supplied the perms in the decorator
Now I have the Command object
How do I know what perms did I mention there
Dpy tags will go brrrrrrr
Is there any way that I would be able to delete the message that the view is attached to, using button callbacks?
Facts
LMAO
like there was an embed, then the embed had 5 buttons, if you clicked a button for example button 1, section 1 would come up and there would be 4 more buttons to chose from
iirc commands.has_permissions returns a normal check, I don't think you can get the permissions from a check
!d discord.ext.commands.Command.checks
A list of predicates that verifies if the command could be executed with the given Context as the sole parameter. If an exception is necessary to be thrown to signal failure, then one inherited from CommandError should be used. Note that if the checks fail then CheckFailure exception is raised to the on_command_error() event.
My favorite tag
?json as db
Ah I see
my favourite: ?tag tutorials
Idk try seeing this @slate swan
Thanks I'll look into it
Lmao
if str(reaction.emoji) == emoji_yes:
msg_s = await channel.send(embed=emb2)
await msg_s.add_reaction(emoji_1)
await msg_s.add_reaction(emoji_2)
await msg_s.add_reaction(emoji_3)
await msg_s.add_reaction(emoji_4)
if str(reaction.emoji) == emoji_1:
await msg_s.edit("hi")
how do I edit emb2?
!d discord.Message.edit
await edit(content=..., embed=..., embeds=..., attachments=..., suppress=..., 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.
python bot is pain
Haha true tho
Hola
Excuse me, I want to ask, why is this false but it keeps raising?
wait i send my code
and error
Sure
@commands.command()
async def sell(self, ctx, item: str, amount):
if akun := await self.get_account(ctx.author.id):
print(akun[item])
try:
item = akun[item]
except KeyError:
raise ItemNotFound
try:
amount = int(amount)
except:
pass
if isinstance(amount, int):
print(amount < akun[item])
if akun[item] < amount:
raise ExcessAmount
elif amount == 0:
raise NotZero
elif amount < 0:
raise SmallerZero
else:
barang = {}
for i in Economy.mainshop:
name = i["name"]
price = i["price"]
barang[name] = price
for nama, harga in barang.items():
if item == nama:
harga_total = harga * amount
if harga_total > akun["wallet"]:
raise YourMoneyIsNotEnough
else:
await self.update_wallet(
ctx.author.id, akun["wallet"] + harga_total
)
await self.update_item(
ctx.author.id, item, akun[item] - amount
)
await ctx.send(
f"{ctx.author.mention} you bought {amount} {item} for {harga_total}$"
)
return
else:
raise AuthorNotHaveAccount```
!tag 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.
No
1
False
Ignoring exception in on_command_error
Traceback (most recent call last):
File "d:\dittttbotbeta\.env\lib\site-packages\discord\client.py", line 359, in _run_event
await coro(*args, **kwargs)
File "d:\dittttbotbeta\error\error.py", line 83, in on_command_error
raise error
File "d:\dittttbotbeta\.env\lib\site-packages\discord\ext\commands\bot.py", line 970, in invoke
await ctx.command.invoke(ctx)
File "d:\dittttbotbeta\.env\lib\site-packages\discord\ext\commands\core.py", line 904, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "d:\dittttbotbeta\.env\lib\site-packages\discord\ext\commands\core.py", line 88, in wrapped
ret = await coro(*args, **kwargs)
File "d:\dittttbotbeta\data\economy.py", line 191, in sell
raise ExcessAmount
data.economy.ExcessAmount```
goodness the indents are wrird on mobile
yes
discord\ext\commands
excuse me wtf
stop recommending forks
no. just no.
and?
so what
Me. Anything else?
Everyone has preferences, no need to tell anyone else what u use, as long as they don't ask it
stop recommending forks
How can I make a private command?
????
Okay okay we are just saying no to go OT or smth
@snow flare make your own check or use the default checks
bruh private dossnt mean administrator perms
!d discord.ext.commands.guild_only exists
@discord.ext.commands.guild_only()```
A [`check()`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.check "discord.ext.commands.check") that indicates this command must only be used in a guild context only. Basically, no private messages are allowed when using the command.
This check raises a special exception, [`NoPrivateMessage`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.NoPrivateMessage "discord.ext.commands.NoPrivateMessage") that is inherited from [`CheckFailure`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.CheckFailure "discord.ext.commands.CheckFailure").
would I place that after the bot.command() decorator?
await create_custom_emoji(*, name, image, roles=..., reason=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Creates a custom [`Emoji`](https://discordpy.readthedocs.io/en/master/api.html#discord.Emoji "discord.Emoji") for the guild.
There is currently a limit of 50 static and animated emojis respectively per guild, unless the guild has the `MORE_EMOJI` feature which extends the limit to 200.
You must have the [`manage_emojis`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_emojis "discord.Permissions.manage_emojis") permission to do this.
do you mean a command which can be used only by you?
yea , but random
dont know how to use it, dont want to read the docs
If you dk how to use it now is the time learn how to use it
by asking people to spoonfeed yes
Docs

That's spoonfeeding
How can I delete or edit the message that a view is connected to, through button interactions?
? Which module are you using?
because it would work perfectly fine if I was able to pass the message into the view, but the actual message is supposed to be sent after the view is made, because then I wouldn't be able to add the view to the message lol
hello
Greetings
how do I create such a rule, If the reaction was not pressed by the author == return
in on_reaction_add
on_reaction_add gives you a user object too , you can compare it to any discord.User / discord.Member object
if reaction.message.author != user
is there anyway that I can grab the message that a view is attached to from the view class?
now since you want to use it with author , using wait_for is the only choice for you :) cause you wont get your author in the on_reaction_add
how do i use 2 views?
for example, if i used a view on a embed, then i wanted to use another view on another embed, how do i do that?
u cannot
show yr imports
wait nvm
os.path u don't change it yourself
oh..
guys....what was the method for uploading an emoji again
io.BytesIO?
is it possible in javascript?
No documentation found for the requested symbol.
<:name:id>
!d discord.Guild.create_custom_emoji
await create_custom_emoji(*, name, image, roles=..., reason=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Creates a custom [`Emoji`](https://discordpy.readthedocs.io/en/master/api.html#discord.Emoji "discord.Emoji") for the guild.
There is currently a limit of 50 static and animated emojis respectively per guild, unless the guild has the `MORE_EMOJI` feature which extends the limit to 200.
You must have the [`manage_emojis`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_emojis "discord.Permissions.manage_emojis") permission to do this.
ah thenku
!d discord.Emoji.url
why would I want the url of the emoji when it doesnt even exist
idk what u tryna do, soo, uhhhh
use this <:emoji_name:emoji_id>
....
that's not what they are asking sir
👍
Seeing this cat, I am also feeling sleepy welp
I just woke up
lol
good morning btw
:stare: I have to complete some stuff today, let's hope I won't be asleep till 2 tonight haha
morning
good luckk
as long as u don't post that cat gif repeatedly
!OT
Ik u were gonna say that ngl

Is there a way to add custom id's to messages?
No
u can do those yourself for your code locally, but u cannot change IDs on discord
yeah, that is exactly what I meant by "custom" id's
What discord.py fork do you recommend between pycord and nextcord? Which one si the most stable and the best alternative to discord.py?
ah I thought u wanted to change IDs on discord, sorry
well I don't use either, so hard to say, sorry
Then what library do you use?
Hikari?
disnake
I can't really recommend you anything, but I am using pycord, and it is pretty good, it has all the functions, and I am pretty sure they are not just going to dump the project
That's what I am afraid of, I don't want to start focusing on one library and the it disappear
is there something that you can import discord.py? like import discord.py?
just import discord
ok thx i have one more question
even though the bot is online and working fine i am still gettting dis error in console
raise NotFound(r, data)
discord.errors.NotFound: 404 Not Found (error code: 0): 404: Not Found
how can i update to the latest version? I don't understand
it sais in ur pic
pip install -U pip
python3 -m pip install --upgrade pip
O_O
full traceback
Hey @slate swan!
Uh-oh! It looks like your message got zapped by our spam filter. We currently don't allow .txt attachments, so here are some tips to help you travel safely:
• If you attempted to send a message longer than 2000 characters, try shortening your message to fit within the character limit or use a pasting service (see below)
• If you tried to show someone your code, you can use codeblocks
(run !code-blocks in #bot-commands for more information) or use a pasting service like:
guys while uploading it says, unsupported image provided ,-, what do I do?
requests goes brrrr
uhh, just stop
Why u overwriting the image file tho
wdym
yeah?
yeah....
u r writing to the image file
u r editing the image file's binary data with the response content?
I am so confused rn
but isnt prob he needs to use discord.file to prep it?
Why?
why not
You shouldn't do that
Nope iirc
oh ok
what should I do tho.....
Or could be that can work 🤨
how do i do the help command so that, it automatically gets, all the command names and description and fills it in the embed desc
(that it'll get the command name and desc from here:)
@client.command(name="acommandname"...blablabla)
Try passing in a discord.File object there
in the file arg smh
So why does this not work
if message.content.startswith(!remove5):
count = count - 5
Doesnt work with -= either or am I being stupid
thats what i said :p
Yea ik
wdym
in the create_custom_emoji's file arg smh
or it was image I forgot
!d discord.Guild.create_custom_emoji
await create_custom_emoji(*, name, image, roles=..., reason=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Creates a custom [`Emoji`](https://discordpy.readthedocs.io/en/master/api.html#discord.Emoji "discord.Emoji") for the guild.
There is currently a limit of 50 static and animated emojis respectively per guild, unless the guild has the `MORE_EMOJI` feature which extends the limit to 200.
You must have the [`manage_emojis`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_emojis "discord.Permissions.manage_emojis") permission to do this.
@client.command()
async def emoji(ctx, url: str, emoji_name: str=None, *,upload_reason="No Reason Provided"):
try:
response = requests.get(url)
with open(f"{random_name}.png", "wb") as f:
f.write(response.content)
im = Image.open(f"{random_name}.png")
data = im.tobytes()
await ctx.guild.create_custom_emoji(name=emoji_name, image=data, reason=upload_reason)
this is my current func
it works with -= if count is an int
try passing in a discord.File object to the file arg
nvm
help
It's 100. But the error is that it says that count is previously mentioned, is it because it's not in the client.event thing?
await ctx.guild.create_custom_emoji(name="MyCustomEmojiYay", file=discord.File(...))
ohhh, I'm too dumb
did you define count first?
happens when u start coding after waking up ahem ahem
yep, right after the imports, count is defined
kinda
'utf-8' codec can't decode byte 0x80 in position 1: invalid start byte
error 
everytime a button is clicked, does it the call the class (where the button was from)?
Yea, since it needs to call interaction_check method too
thanks
not the whole class, but some methods
no forks are good wdym
Interesting
indeed
what you think why its happening?
how do we get the buttons of a certain class
@upbeat otter just use io.BytesIO. Don't do all the other things
self.children isnt working and I thought it would
!d discord.ui.View.components
No documentation found for the requested symbol.
The list of children attached to this view.
it works tho
okie dokie, imma go sleep again bye
okie, thenx
i think u should define count in the on_message event idk i tried it in my own code and thats what it said
Alright thanks.
u can just do
with open(file, "rb") as f:
await ctx.guild.create_custom_emoji(name=..., file=f)
This should work
¯\_(ツ)_/¯
it will work
what is v
ohkee, imma save it for later
so I tried creating a channel in a category with ints and strings but nothings working? how can i do it?
this is my current code:
await guild.create_voice_channel('test',category=886768521768489040)
:stare: Why did I even write all that then
it isnt a string
the parent class
View?
yes
did u call super().__init__(...)?
ye
Interesting
should I send code?
yea
b = 1
class v(disnake.ui.View):
def __init__(self):
self.edit()
super().__init__()
@disnake.ui.button(label=b)
async def c(self, bu, i):
await i.response.defer()
b += 1
self.edit()
def edit(self):
self.children[0].label = b
await ctx.send("0", view=v())
Ah u should call it at the top
the super line
u r accessing self.children before dpy made that variable
hm
the edit method?
before the edit method, yes
show
b = 1
class v(disnake.ui.View):
def __init__(self):
super().__init__()
self.edit()
async def on_error(self,error,item, i):
await i.response.send_message(error)
@disnake.ui.button(label=b)
async def c(self, bu, i):
# await i.response.defer()
global b
b += 1
self.edit()
def edit(self):
# global b
self.children[0].label = b
await ctx.send("0", view=v())
i didnt wanna use it inside the class
and idk how to access an attr inside the class without using self since i wanna use it inside label
well why not just use b instead of global? It should work since the scope is the main one
main one?
json needs {}
but like using b inside a function is already local scope, same goes for a method inside a class?
u can do self.b = b and just take b as an init param
I cant, I wanna use b as the label and i cant use self yet since it isnt defined
My bot doesn't sends welcome to new member. I put it after my commands. And it doesn't work
What should I do?
await message.delete()
i tried that, it didn't work
it gave me this error: AttributeError: 'Interaction' object has no attribute 'delete'
???
Code?
Code? Errors?
yo kale
hey acey
async def close_button_callback(interaction):
button1 = Button(label="Cancel")
view = View()
view.add_item(button1)
close_message = await interaction.response.send_message("Are you sure that you want to close the ticket?", view=view)
async def button1_callback(interaction):
await close_message.delete()
I have deleted all the unnecessary stuff, but this is what it looks like ^^
〰️
Can anyone give me discord.py docs
!d discord
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.
so? @untold token
how can I delete the close_message interaction message?
Am I not allowed to use the !close command?
In a help channel
i think you need to own the channel first
Oh so only the person who asked the question can close it?
why does it do this? code:
serverid = ctx.guild.id
try:
serverrid = str(serverid)
except:
await ctx.send("Make sure **server id** is a number!")
with open("info.json","r") as f:
servers = json.load(f)
if serverid in servers:
return False
else:
servers[serverrid]["chanid"] = 0
print("yeassss")```
error:
is it alright to use wait_for in on_message listener with a very specific predicate that will only be true some time
serverid or chanid isnt in the dict/json
yes
so what you would want to do first
is servers[serverid] = {} i think
then update the json file
async def on_voice_state_update(self, before, after):
member = self.bot
if before.voice.channel is not None and after.voice.channel is None:
vc: wavelink.Player = before.guild.voice_client
await vc.disconnect(force = True)
if voice_state is not None and len(voice_state.channel.members) == 1: # If bot is alone
await vc.pause()
```is this ryt or wrong?
more or less will this work ever?
try it and see
discord.ext.commands.errors.ExtensionFailed: Extension 'cogs.Wavelink_Music' raised an error: TypeError: Music.on_voice_state_update() missing 2 required positional arguments: 'before' and 'after'
weird, you already put 2 arguments
to delete a channel would I just do: some_channel.delete()?
exactly...how do i do it
hmm
do i use await with asyncio.sleep()?
did you pass self in
await asyncio.sleep(seconds)
thxx i already figured it out
ty
sorry wut
Nothing
ur in a cog am i right
I don't get any error for that
async def cmd(self)
yeah then before after
hey, im using this to find the number of textual channel in my server py CanaliT = (len(ctx.guild.text_channels)) but how do i exactly see the number of textual channels in a determined category only?
is it possible?
!d discord.CategoryChannel.channels
property channels: List[GuildChannelType]```
Returns the channels that are under this category.
These are sorted by the official Discord UI, which places voice channels below the text channels.
thx
@heavy folio i did put self
## Commands here
@bot.event
async def on_member_join(ctx):
ctx.send("Welcome")
bot.run(TOKEN)
Ahem
!d discord.on_member_join
discord.on_member_join(member)``````py
discord.on_member_remove(member)```
Called when a [`Member`](https://discordpy.readthedocs.io/en/master/api.html#discord.Member "discord.Member") leaves or joins a [`Guild`](https://discordpy.readthedocs.io/en/master/api.html#discord.Guild "discord.Guild").
This requires [`Intents.members`](https://discordpy.readthedocs.io/en/master/api.html#discord.Intents.members "discord.Intents.members") to be enabled.
Got ya covered bruv
hunter help noe plish
???
hmm
What should I do now?
!d discord.on_voice_state_update
discord.on_voice_state_update(member, before, after)```
Called when a [`Member`](https://discordpy.readthedocs.io/en/master/api.html#discord.Member "discord.Member") changes their [`VoiceState`](https://discordpy.readthedocs.io/en/master/api.html#discord.VoiceState "discord.VoiceState").
The following, but not limited to, examples illustrate when this event is called...
It takes in 3 args
cog...
self, member, before, after
did try
That's how it should be
bot.get_channel() then attach it to a var and channel.send()
@maiden fable
That's what i typed dude...
Python.... (i mean i am wrong)
you didnt await it tho
?
You can use the delete_after kwarg
bot.event doesnt have ()
Got it
bot.event
async def blublublub```
!d discord.on_member_join
discord.on_member_join(member)``````py
discord.on_member_remove(member)```
Called when a [`Member`](https://discordpy.readthedocs.io/en/master/api.html#discord.Member "discord.Member") leaves or joins a [`Guild`](https://discordpy.readthedocs.io/en/master/api.html#discord.Guild "discord.Guild").
This requires [`Intents.members`](https://discordpy.readthedocs.io/en/master/api.html#discord.Intents.members "discord.Intents.members") to be enabled.
yeah you have to pass in a member
tskes member as an arg not ctx
not ctx
ctx should be member, n member object has no send need to grab n spec a channel to send to
yeah
actually a discord.Member object has a send attribute
theres no () in bot.event
oh really @slate swan does it dm?
yes
@slate swan hmmmm
pepehands
yesh
would this work ```py
if file.read() in message.guild.channels():
can't test before I'm sure it works cuz otherwise it will remove all my channel files
No i think
file.read contains a channel id
then iterate over the channels messages instead of the channels it self and check
question is does message.guild.channles output list of channel ids?
it returns a list of discord.Channel i think
@client.event
async def on_message(message):
count = 100
if message.content.startswith('!remove5'):
count = count - 5
print(count)
how can i make it so the new value is saved every time and so,
!remove5 output is 95
!remove5 output is 90
put the var outside the event?
yeah
lemme try out smt and get back
it returns an error saying count is mentioned before
;-;
;-;
easy global var = store it in a file
ah
always when you need to update it, make it change the value inside the file, when you need to use it then just use file.read()
variables = overrated
how to get a user from their id?
k ty
or discord.Member
How can I configure this inline mode
/ commands trash
For my bot
inline=True
in await
probably cuz that works in embeds so probably in slash commands too lol
inline mode?
Where I should put that boolean?
wtf is inline mode
So wth is that?

slash commands
I want it. Where should I make that boolean True?
This inline mode for my bot
wtf is inline mode
you have to use forks like disnake for slash commands
How ?
what is inline mode even...
!pip disnake
inline = value would be next to the command
inline for embed field?
it has examples for slash commands in the repo/examples folder
idk how "inline mode" is related to slash commands
Field Value
Instead of
Field
Value
nah not that
.
what check do i use if i want only the bot owner to use the command?
idk what ur trying to do
So
!d discord.ext.commands.is_owner
@discord.ext.commands.is_owner()```
A [`check()`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.check "discord.ext.commands.check") that checks if the person invoking this command is the owner of the bot.
This is powered by [`Bot.is_owner()`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.Bot.is_owner "discord.ext.commands.Bot.is_owner").
This check raises a special exception, [`NotOwner`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.NotOwner "discord.ext.commands.NotOwner") that is derived from [`CheckFailure`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.CheckFailure "discord.ext.commands.CheckFailure").
As you know, any bot has its own commands
you wanna make slash commands?
No dude
thx
I already created them
and? what u trying to do now
anyone
I want this. When I type / in chatbox, it shows a list of commands what I entered in my bot
whats the problem tho
I can try to help with my very minimal experience, what's the problem?
undefined
undefined
its not JavaScript tho
even though defined
show the tracebrack
undefined what? the b
there isnt one, i used jsk

