#discord-bots
1 messages · Page 605 of 1
let me check
I mean he has to do it with a audio file ig
not bot
yeah
thats what i was searching @keen talon
with my own wav file
@sullen shoal can u tell me that plz
https://github.com/Gnome-py/Discord-TTS-Bot
the owner has implemented custom voices for premium users. so as i said with proper knowledge you can, this repo will help to use that knowledge correctly
?
like with recorded wav file
not a reaction role like a line role
coz i am making a jarvis project
i mean without bot
understand the code
@bot.listen()
async def on_message(message):
await bot.handler.propagate(message)
await bot.process_commands(message)
print(message.content)
for i in Filter:
if i in message.content:
await message.channel.send("I don't like that word")
``` This is not working
@sullen shoal ?
there are libraries that will help you with it, you can search them, like tts python api
can you maybe send coz i was trying to find one
The bot should reply I don't like that word when I say something written in Filter
but didnt find
we are helping, what you want is spoonfeed
dude if u tell the script i would understand it better
i am a literal rookie
i gave you the script which shows you doing it
thats some advanced machine learning my guy
No that was for a reaction role. I need like if a person says "I am a fool" he should be given a fool role
for that you use, discord.Member.add_roles
it accepts either the name as string or its id as int
and make it tts
bouncer
@sullen shoal
im not that experienced to show you to make something that is sold for millions
lol
bye the way i have a platform azure
but i dont know how to connect the api can you maybe take a look the link i will send
on_message event's first argumrnt will be discord.Message which has an attribute author which returns discord.Member
idk
it was to me
nvm
or the orther guy
pip install azure-cognitiveservices-speech
@bot.group(invoke_without_command=True)
async def help(ctx):
em = discord.Embed(title = 'Help', desciption = 'Hi')
em.add_field(name = 'Monke Jr.', value = 'I am a Anti-Spam and AutoModeration bot created by Giant#5070')
ctx.send(embed = em)
``` This doesn't send any embed or anything
oh I forgot to await
I did it but it sends 2 same embeds
Retry again?
still i think
Are u running two instances of the bot?
no
Do .help and tell me if it sends 2 same embeds
usually happens when you use crap extensions to run your script
Maybe he used the command twice?
yes it does
no 😄
two instances of your bot are running
hi
His way of doing the command is weird im not used to bot.group
Don't have two bot variables
And invoke without command
But other command is working
Multiple instances running
Maybe other command isnt in one instance
are they being sent twice
wdym
Now if I change something in 1 script it changes in both embeds
answer my question
You have both discord.Client and commands.Bot
yes
yes
when i mentioned bot, only event is working so i cant use mention as prefix. how can i fix it?
Remove client = discord.Client()
open your task manager and kill the process of python
Well technically he only has commands.Bot coz wouldnt that override his first one
kk
why are you using the whole class 🤦♂️
Ah i am making a discord bot
usin python
I need to do something like if a user says the line- "I am trying to do somethin" he should be given the potter role
and if he says "I am Busy" it should be taken back from him
can soemone help
!d discord.Message.content
The actual contents of the message.
how
!d discord.Member.add_roles
await add_roles(*roles, reason=None, atomic=True)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Gives the member a number of [`Role`](https://discordpy.readthedocs.io/en/master/api.html#discord.Role "discord.Role")s.
You must have the [`manage_roles`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_roles "discord.Permissions.manage_roles") permission to use this, and the added [`Role`](https://discordpy.readthedocs.io/en/master/api.html#discord.Role "discord.Role")s must appear lower in the list of roles than the highest role of the member.
!d discord.Member.remove_roles
everyone saying something else
await remove_roles(*roles, reason=None, atomic=True)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Removes [`Role`](https://discordpy.readthedocs.io/en/master/api.html#discord.Role "discord.Role")s from this member.
You must have the [`manage_roles`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_roles "discord.Permissions.manage_roles") permission to use this, and the removed [`Role`](https://discordpy.readthedocs.io/en/master/api.html#discord.Role "discord.Role")s must appear lower in the list of roles than the highest role of the member.
check the message content then add/remove the role
we don't spoonfeed
we help
hmmm?
bru
how
i am a rookie ffs
check the examples, docs and learn
if 'idk how to do it' in message.contents.lower():
await message.author.add_roles(Spoonfed)```
How do i get the link of a message????
Then learn more if you don't understand 🤨
Like that but u gotta also get the role
!d discord.Message.jump_url returns the link of a message
property jump_url: str```
Returns a URL that allows the client to jump to this message.
I have no idea
ok ty
Can u do the bot for discord.utils i duno how to use it
dont spoonfeed.
I thought its enough to help him in right direction but not enough to spoonfeed
is this for me
thanks
he is just going to copy paste this nothing else
Yeah u still need to get the role though u need to use discord.utils for that
I cant remember the exact command
do i use the role id?
U can
i am a modder actually lol
Modding is different than coding something, both requires different skills
yo iy worked the voice is so natural
ik
and human
!d discord.utils.get
discord.utils.get(iterable, **attrs)```
A helper that returns the first element in the iterable that meets all the traits passed in `attrs`. This is an alternative for [`find()`](https://discordpy.readthedocs.io/en/master/api.html#discord.utils.find "discord.utils.find").
When multiple attributes are specified, they are checked using logical AND, not logical OR. Meaning they have to meet every attribute passed in and not one of them.
To have a nested attribute search (i.e. search by `x.y`) then pass in `x__y` as the keyword argument.
If nothing is found that matches the attributes passed, then `None` is returned.
Examples
Basic usage...
Hey @tropic briar! I noticed you posted a seemingly valid Discord API token in your message and have removed your message. This means that your token has been compromised. Please change your token immediately at: https://discordapp.com/developers/applications/me
Feel free to re-post it with the token removed. If you believe this was a mistake, please let us know!
L
It is not a valid token
idk why this event wont work
@client.event
async def on_guild_channel_delete(channel):
guild = channel.guild
id_ = guild.id
channel_ = cl.find_one({"_id" : id_})["channel"]
if channel.id == channel_:
cl.update_one({"_id" : id_},{"$set": {"channel" : "None"}})```
Put py on the same line as the 3 backticks
Actually just lowercase py
Whats the error
What is cl?
Actually i got no errors but it doesnt update the "channel" to none
when i mentioned bot, only event is working so i cant use mention as prefix. how can i fix it?
!d discord.ext.commands.when_mentioned_or
discord.ext.commands.when_mentioned_or(*prefixes)```
A callable that implements when mentioned or other prefixes provided.
These are meant to be passed into the [`Bot.command_prefix`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.Bot.command_prefix "discord.ext.commands.Bot.command_prefix") attribute.
Example
```py
bot = commands.Bot(command_prefix=commands.when_mentioned_or('!'))
```...
not working
whats not workig
i said
if your code is okay your bot is perfect
can anyone tell me how to get the name of the member of the message in discord bot program... pLease
when i mention and writing command, bot is sending on_message event
property name```
Equivalent to [`User.name`](https://discordpy.readthedocs.io/en/master/api.html#discord.User.name "discord.User.name")
thanks but can you give me the example code in my dm with example output
Your bot is gonna respond to every message and also run commands at the same time?
not everymessage
Well every mention message
bot gonna run commands with mention prefix and if only mentioned, bot will send a message
Your code is not okay
actually the entire code is kinda trash
The mention message happens if the bot is mentioned at all, the commands count as that
hmmmmm
i would have described the problem if they sent the code here as a snippet
but okay
Is the \N wastebasket reaction also confusing you?
Its confusing me
@bot.event
async def on_message(message):
if bot.user.mentioned_in(message):
msg = await message.channel.send("Hey, ummm... Bana Mı Seslendin? Eğer Cevabın Evet ise; işte Tam Buradayım Acaba Sana Nasıl Yardımcı Olabilirim? **Detaylar:** `i!help` \n \n **Bu Mesajı Silmek İçin Alttaki Emojiye Tıkla!** ")
await msg.add_reaction("\N{WASTEBASKET}")
def check(reaction, user):
return user == message.author and str(reaction.emoji) == "\N{WASTEBASKET}"
reaction, user = await bot.wait_for('reaction_add', timeout=None, check=check)
await msg.delete()
elif message.content == "sa":
await message.reply("As")
await bot.process_commands(message)
nope, they have commands.ext.when_mentioned_or as the prefix
and they also have that if statement
i stole it
AttributeError: module 'discord' has no attribute 'embed'
Any way to fix this?
emoji 😄
Embed
discord.Embed()
embed = discord.Embed()
Like its really confusing me unless you can send emojis to discord like that and i dont know about it
do I change the last line?
Me being like Info Go Brrr
yea it is working for emoji
if bot.user.mentioned_in(message)
this gets triggered when ever your bot is mentioned. it doesnt care about commands.ext.when_mentioned_or.
so this code will always get triggered no matter what you put after the mention it will just get triggered,
msg = await message.channel.send("Hey, ummm... Bana Mı Seslendin? Eğer Cevabın Evet ise; işte Tam Buradayım Acaba Sana Nasıl Yardımcı Olabilirim? **Detaylar:** `i!help` \n \n **Bu Mesajı Silmek İçin Alttaki Emojiye Tıkla!** ")
await msg.add_reaction("\N{WASTEBASKET}")
def check(reaction, user):
return user == message.author and str(reaction.emoji) == "\N{WASTEBASKET}"
reaction, user = await bot.wait_for('reaction_add', timeout=None, check=check)
await msg.delete()```
maybe you want to show it when the content is only the mention?
ummmm
can you please delete this we're talking
what
U need to make a list of ur commands and check against it, unless someone has a more elegant way. U can automate making the list of commands
should i try ur code?
embed=discord.embed(title="xxxx", description="xxxx")
embed.set_thumbnail(url="xxx")
embed.set_image(url="xxxx")
embed.add_field(name="cost", value="30 tokens", inline=false)
embed.add_field(name="time remaining", value="59 minutes", inline=true)
embed.set_footer(text="developed by asdasd")
await channel.send(embed=embed)
What do I change about this to resolve the error AttributeError: module 'discord' has no attribute 'embed'
yea i read
it's discord.Embed
and what about the question
u need to do something like this
but i'm againly confused about ur question
make a list for commands - comlist = []
put this in ur on ready
for commands in bot.commands:
comlist.append(commands.name)```
and then check against that list
lets say . is your prefix and x is the mention,
do you want it to get triggered only when the message content is only x
ok, what do I change?
when doing the on_message, if it matches a command being send, just process comands instead
your code
be specific, there are like 6 lines
yeahh
dude, read your code, see which one has discord.embed
bruh lmfao
💀
oh lmfao im dumb
capital E
my bad lmao
yeah, every class in dpy is capitalized
what you can do is, check the length of
discord.Message.mentions and see if its 1, if its one, check if the mention is bot.user
if its True continue with the if statement otherwise return
ah i guess i understand u i'm gonna try it now
i still think what i said is more suitable to what hes tryna to do
well your method will have to be iterated through the big list, per message
which is very costly in terms of performance
i doubt his bot is gonna be that big
doesnt change the fact that its costly
like ur method still doesnt differentiate between a command being sent, and the bot just being mentioned
Should I add an if loop with an and condition or put it on a new line?
it just limits it to one mention
actually yeah i thought of it now
what you can do is
message.content == bot.user
not sure if thats going to work
i think for what hes tryna to achieve, hes gonna have to iterate through the list, and the peformance impact wont that high
i done it in my bot to allow users that have been turnt into furry webhooks to still be able to use bot commands
i couldnt think of a more elegant way of doing it
it doesnt have much performance impact
What's wrong with this? It just gave me None even tho I reacted with: 👍
discord.utils.get(message.reactions, emoji=":thumbsup:")
!d discord.Message.clean_content
A property that returns the content in a “cleaned up” manner. This basically means that mentions are transformed into the way the client shows it. e.g. <#id> will transform into #name.
This will also transform @everyone and @here mentions into non-mentions.
Note
This does not affect markdown. If you want to escape or remove markdown then use utils.escape_markdown() or utils.remove_markdown() respectively, along with this function.
this could be used
for com in comlist:
if message.content.lower().startswith(com):
await bot.process_commands(message)
return```
this is what i added
costly but it works
and overall its a discord bot, the performance impact is neglible for a small bot
Make sure you have the unicode and not :name:
i don't think it will
How to know the unicode?
that wont but it will with ^
If you're on windows you can do Win+; then select the emoji (do inside your code editor)
I'm on a chromebook i belive
I dont have a win button
Then just look through https://unicode.org/emoji/charts/full-emoji-list.html
Note that instead of e.g 'U+1F603' you do '\u1F603' so don't just copy-paste
that will work with my code, with your one it still wouldnt achieve his purpose, coz what is someone @s the bot mid message
he would need to append that to the start of com
and then he will have his end goal
? let me try my method
ok
he basically has to see if the content is only the mention
depends if he only wants that, or if he wants it on any mention of the bot other than a command
if message.content in {f"<@{bot.user.id}>", f"<@!{bot.user.id}>"}:```would work for that
ive had mixed results doing this
So this U+1F44D is this emoji: 👍 but I should do \u1F44D?
Yep, make sure to put in quotes
it worked for a bit then broke for no reason
and i have to use if bot.mentioned instead
Did you check for both <@{id}> and <@!{id}>?
yeah
Then it'll work
thats what i thought but it still broke
Maybe the message had a space at the end
It looks like it tries to do something strange
You messed up your parentheses
What discord.py alternative should i use ?
Is there one exactly like dpy so i won't have to change my code ?
no they were working previously
I meant the color on the string
@disnake simple bot this is what i got. so the if statement will basically be,
if message.clean_content.strip(' @') == bot.user.name```
oh mybad u were talking to him
@devout iris
Should I use U instead of u?
yep
wait
also
edited
now there is something strange
Traceback (most recent call last):
File "main.py", line 22, in <module>
client.load_extension(ex)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 620, in load_extension
self._load_from_module_spec(spec, name)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 551, in _load_from_module_spec
raise discord.ExtensionFailed(key, e) from e
discord.errors.ExtensionFailed: Extension 'cogs.suggestions' raised an error: SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-6: truncated \UXXXXXXXX escape (suggestions.py, line 12)
``` @bitter depot
@bot.event
async def on_message(message):
if bot.user.mentioned_in(message) and len(message) == 1:
msg = await message.channel.send("Hey, ummm... Bana Mı Seslendin? Eğer Cevabın Evet ise; işte Tam Buradayım Acaba Sana Nasıl Yardımcı Olabilirim? **Detaylar:** `i!help` \n \n **Bu Mesajı Silmek İçin Alttaki Emojiye Tıkla!** ")
await msg.add_reaction("\N{WASTEBASKET}")
def check(reaction, user):
return user == message.author and str(reaction.emoji) == "\N{WASTEBASKET}"
reaction, user = await bot.wait_for('reaction_add', timeout=None, check=check)
await msg.delete()
elif message.content == "sa":
await message.reply("As")
await bot.process_commands(message)
this event is working and when i press the emoji, bot deletin itself message and sending command
i dont think 1FF4D is valid emoji
But it said it like so at https://unicode.org/emoji/charts/full-emoji-list.html#1f44d
my bad i looked for 1FF4D instead of 1F44D
reaction, user = await bot.wait_for('reaction_add', timeout=None, check=check)
await msg.delete()```
thats what you told it to do
wait this is same?
you said it deletes the message after reacting?
it also looks better in ur code aswell
im asking you
ah
it deletes the message after reacting?
yes
first line waits untill someone reacts and second line deletes it after reacting
and that's from your code
This:
discord.utils.get(message.reactions, emoji="👍")
Just gave me this: 👍 why, i want the amount of reactions with that emoji how can i do that
what do you want
Actually, the logic is: When I tag the bot, I want the bot to send me a help message and if I don't want to see the help message, I want it to delete the message by pressing the emoji below
thats the if statement you're looking for
var = discord.utils.get(message.reactions, emoji="👍")
var.count
so whats actually happening
when you react
ohhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
Lol
I had same problem when i made my command lol
like that;
me: @bot
bot: message | and if i press the emoji, bot deleting message (this is okay)
but when i use command with mention;
me: @bot ping
bot: message and if i press the emoji, bot deleting message and sends command's result (pong)
the if statement isn't working
may be
Ngl this dudes bot is giving me a headache, good luck Myxi
and i sent the solution to that
thanks
Lol
also your timeout is None it means it will wait for the reaction forever
what can i do idk and i'm so confused smh
what do you think this if statement does
the third line needs to be replaced with it
with what?
HOW MANY TIMES DDO TOU WANT ME TO SJOUT IT OUT
speechsdk.say(audio)
AttributeError: module 'azure.cognitiveservices.speech' has no attribute 'say'```
THAT SHIT
this is discord.py help
i kow but
thats a different module
idk i never used that module
This is why i left lol
usually shouting does not help
bro i told him to change that like 3 or 4 times but every time he just ignored it
afk
!d discord.Member.avatat
!d discord.Member.avatar
property avatar```
Equivalent to [`User.avatar`](https://discordpy.readthedocs.io/en/master/api.html#discord.User.avatar "discord.User.avatar")
@sullen shoal@slate swan@boreal ravine
Well, can i get avatars from any discord user?
any User
Can I get the pfp even if the bot is on the server where that user is not present?
Whatever
you might have to fetch it but yes i think
How
typehint it to discord.User, it should work most of the time
otherwise if you really wanna fetch
!d discord.ext.commands.Bot.fetch_user
await fetch_user(user_id, /)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Retrieves a [`User`](https://discordpy.readthedocs.io/en/master/api.html#discord.User "discord.User") based on their ID. You do not have to share any guilds with the user to get this information, however many operations do require that you do.
Note
This method is an API call. If you have [`discord.Intents.members`](https://discordpy.readthedocs.io/en/master/api.html#discord.Intents.members "discord.Intents.members") and member cache enabled, consider [`get_user()`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.Bot.get_user "discord.ext.commands.Bot.get_user") instead.
i said to typehint it to discord.User
Wdym typehint
annotate
i'm really confused can i talk in a sentence lel
Lol i admire ur patience
Sorry btw my english is not very good so i'm not understand some words etc.
foo: str```
str is the typehint
Ah yea ik str
Typehint lets u say what type the variable should be in the function
So, what should i do...
Read
is using this a good idea https://github.com/gh2o/digitalocean-debian-to-arch
Can anyone help me on #help-chocolate?
I guess?
errors?
How do I code in Visual studio? Can't add discord python module there.
I think u need to install the discord.py
You need to combine them
Already installed it. Not working in Visual Studio 2022
like?
Can you not use a more suited IDE for Python like PyCharm?
If then elif
just merge them using elif instead of making 2 different events
no lmao
no that
idk then
u have so many ifs
._.
make it elif
Bouncer
@slate swan you should use discord.ext.commands.Bot, not discord.Client. Then, learn to use commands.
@client.event
async def on_ready():
print("Comrade Ain't Dead")
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('Hello'):
await message.channel.send('Hello Comrade')
if message.content.startswith('Hi'):
await message.channel.send('Hi. Did ya nuke USA?')
if message.content.startswith('Comrade'):
await message.channel.send('Shut Up Fool')
if message.content.startswith('hello'):
await message.channel.send('Hello Comrade')
if message.content.startswith('hi'):
await message.channel.send('Hi. Did ya nuke USA?')
if message.content.startswith('LMAO'):
await message.channel.send('You Dont Laugh In Russia ')
@client.event
async def on_message(message):
if 'i solemnly swear that i am upto no good' in message.content.lower():
role = discord.utils.get(message.guild.roles, id=904021392998146118)
await message.author.add_roles(role)
await client.process_commands(message)
if then elif
async def on_message(message):
if 'michief managed' in message.content.lower():
role = discord.utils.get(message.guild.roles, id=904021392998146118)
await message.author.remove_roles(role)
await client.process_commands(message)
client.run(os.getenv("TOKEN"))
pls format like this
```py
code here
```
@client.event
async def on_message(message):
if 'i solemnly swear that i am upto no good' in message.content.lower():
role = discord.utils.get(message.guild.roles, id=904021392998146118)
await message.author.add_roles(role)
elif 'michief managed' in message.content.lower():
role = discord.utils.get(message.guild.roles, id=904021392998146118)
await message.author.remove_roles(role)
await client.process_commands(message)```
@slate swan
thnx sire
please dont spoonfeed
👍
Also should use get_role instead of utils.get
You don't need to get the role object at all actually
Just pass a discord.Object
How can I check if the discord invite is advertising or not
use regex to check if its an invite link
Like I can check if the url is vanity or not
oh
Idk if that will work but I want to check like if the server has more than 1000 members then it isn't a advertise link
But if less than 100 members then it would be a advertise
i have an api auth key that you want to load into my code
but i got error
Like when i say something
It prints correctly but it doesnt speaks
In other code without speech recognition
It speaks
I made the suggestion of loading the API key using environmental vars, which is what you guys do with bots all the time.
Someone?
!d discord.abc.Messageable.send has a tts kwarg
await send(content=None, *, tts=None, embed=None, embeds=None, file=None, files=None, stickers=None, delete_after=None, nonce=None, allowed_mentions=None, reference=None, mention_author=None, view=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Sends a message to the destination with the content given.
The content must be a type that can convert to a string through `str(content)`. If the content is set to `None` (the default), then the `embed` parameter must be provided.
To upload a single file, the `file` parameter should be used with a single [`File`](https://discordpy.readthedocs.io/en/master/api.html#discord.File "discord.File") object. To upload multiple files, the `files` parameter should be used with a [`list`](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.9)") of [`File`](https://discordpy.readthedocs.io/en/master/api.html#discord.File "discord.File") objects. **Specifying both parameters will lead to an exception**.
To upload a single embed, the `embed` parameter should be used with a single [`Embed`](https://discordpy.readthedocs.io/en/master/api.html#discord.Embed "discord.Embed") object. To upload multiple embeds, the `embeds` parameter should be used with a [`list`](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.9)") of [`Embed`](https://discordpy.readthedocs.io/en/master/api.html#discord.Embed "discord.Embed") objects. **Specifying both parameters will lead to an exception**.
Slightly OT, but very much within a skillset I'm sure exists here.
U can't, since the meaning of advertising is different for every server. But
!d discord.Guild.invites returns the list of invites in a guild
await invites()```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Returns a list of all active instant invites from the guild.
You must have the [`manage_guild`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_guild "discord.Permissions.manage_guild") permission to get this information.
Without discord bot
Bro, I told u. #❓|how-to-get-help
I can check members
If the members are more than 500 no ban and if less than 500 then ban
So what you are saying is. Everytime someone sends an invite you’ll check if someone leaves that guild and if so you’ll ban the person who sent the invite?
Have fun with that I guess.
I wanna MAKE my own CURRENCY BOT how do i begin with?
If you're already proficient in dpy, learn data storage.
How do I check the version of discord.py im running
uh its a Bouncer
!d discord.version
discord.__version__```
A string representation of the version. e.g. `'1.0.0rc1'`. This is based off of [**PEP 440**](https://www.python.org/dev/peps/pep-0440).
how can i provide a user_limit to make a channel have unlimited members using channel.edit()?
how do i make a bot which gives roles to people and himself
https://replit.com/@CG158/Layton-Bot#main.py can someone help? i'm trying to make it so after the bot sends a message after the "l!puzzle" command, you can send other commands. But once the bot sends the initial message it just goes straight to the "incorrect" message and idk why, can someone help?
set user_limit to None
pls help
!d discord.Member.add_roles
await add_roles(*roles, reason=None, atomic=True)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Gives the member a number of [`Role`](https://discordpy.readthedocs.io/en/master/api.html#discord.Role "discord.Role")s.
You must have the [`manage_roles`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_roles "discord.Permissions.manage_roles") permission to use this, and the added [`Role`](https://discordpy.readthedocs.io/en/master/api.html#discord.Role "discord.Role")s must appear lower in the list of roles than the highest role of the member.
That's one way to make a discord bot
pls pls help
pls pls don't spam, your message is now on my screen twice
I’m not here to spoonfeed, I’m here to point people in the right direction.
ok im sorry
You missed my point entirely but it's np. I agree don't spoon feed
Show the lines of code not behaving as they should
one second
!code
Here's how to format Python code on Discord:
```py
print('Hello world!')
```
These are backticks, not quotes. Check this out if you can't find the backtick key.
@slate swan
I never spoon feed. I just give them the full code
(if they're a lost cause)
if they display signs of wanting to learn I'll walk them through it
That’s defeats the purpose of not spoonfeeding. If all fails and it comes down to you needing to spoonfeed them because of illiteracy and laziness, they don’t need to be doing what they're doing.
Agreed but that's the situation where I get a little bit selfish
and use them for my own learning
so when a new message is sent, the first thing that the code checks for is
return
if message.author.bot: return```
and if a message is "l!puzzle", then it will return a logic puzzle from a text file. If the following message is equal to the answer, it'll return a message and a different message if not. This is what should happen when the answer is wrong:
```if message.content != (str(answer)) and message.content != ('l!hint'):
embedVar = discord.Embed(title="Incorrect", description = str(incorrect), color=0xE95124)
await message.channel.send(embed=embedVar)```
the problem is, the bot jumps to this code immediately after sending the puzzle, which shouldn't happen
Once I finish the code I've learned more about coding, they have their code and everyone is happy (in the short term)
Are you waiting for the answer
You have an error in your conditionals
ohh, what should it be
I mean he said it sends right after sending the initial message. Leads me to believe you not waiting for anything.
You got Bot.wait_for() in there? Somewhere
How can we check if a url sent by someone is vanity or not
Then how is this whole puzzle thing gonna work. This whole feature relies on user input that you already made logic for.
You're just not taking any in. And that’s what Bot.wait_for() | Client.wait_for() is there for.
ohh okay, could you walk me through that if that's okay?
I’m not gonna give you everything but I’ll give you a start
okay! 😄
so after the initial message put in the wait_for()
Put it in a try/except if you're want a timeout.
The event your waiting for is "message"
!wait_for
!d discord.Client.wait_for
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**...
That’s really all
so like this? discord.Client.wait_for(message)
Someone?
Not literally.
Replace discord.Client with your actual Bot or Client instance
And right a check that passes if all the logic you want in there checks out.
That’s really all
And handle input after that.
hi
Also if this is like a multi attempt thing. Put it in a while True and break out when the command is over or whatever
You don’t.
Huh?
You don’t. Urls can be anything on discord. They don’t have an explicit flag that marks them as a servers vanity url or not.
But The @unkempt canyon is able to detect that
It doesn't warn me if I send a url with a lots of members
Can we check members
I mean it can detect if someone sent a vanity url matches this guilds vanity url. Through equality.
And it will warn you if you send a invite link that’s not vanity?
Idk then. Read it’s code.
But if I send a url with less members or something like that it will warn me
It should if I send a url which I has less members
i mean it may not be 100 percent accurate, but you can check if the url has too many uppercase letters and a lot of different characters that cant be easily pronounced
you can detect vanity urls that way
this could help a bit as well, https://github.com/dwyl/english-words
maybe idk
If that is the case then it's really easy
The amount of members does not matter, as well as whether it's a vanity url or not. They whitelist certain invite links.
No one will advertise a server with so many members
Who told you that you need so many members to get a vanity url?
That’s not how that works. A bot can’t read how many members a server has in it that it’s not in.

Also, vanity urls are a level 3 boosting reward; hence why it's so easy to get one now after Discord had decreased the boosts amount required for each level.
We need 15 boost to get that and no one will advertise a sever with so many boost and members (the server should have many members as it has 15 boost)
in the bot.wait_for is there a way to tell the user that there is a typo in the expected word?
Can someone tell me how to add status to the bot
!d discord.ext.commands.Bot.change_presence
await change_presence(*, activity=None, status=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Changes the client’s presence.
Example
```py
game = discord.Game("with the API")
await client.change_presence(status=discord.Status.idle, activity=game)
``` Changed in version 2.0: Removed the `afk` keyword-only parameter.
This would be terrible. Reading over a file this huge just to check if someone’s invite url is in it
This is really helpful
tired of long tracebacks? use WTpython
Full traceback?
Why did you cut the tb
idk
idk how ;-;
Show full error pl0x
any idea?
Idk check for string equality
🥲
I don't think you can do so before the message was already caught. However, you can add a check to check if the text given is equal to what's expected.
Install PyNaCl. If you installed discord.py[voice] it would of done everything for you.
where do i put that check
E.g.
await ctx.send("Send \"hi\"")
msg = await bot.wait_for("message", check=lambda m: m.content == "hi")
await ctx.send("Hello!")
@tropic briar I knew you're very smart.
I mean that if I send a url which is vanity
I know How to check but now if I put some text with upper case letters in the message then it will not detect it as vanity url
discord vanity url THIS
Is it posible to change a channel description with a command
The topic?
yea
Yes
Could you help me ive been trying
!d discord.TextChannel.edit
await edit(*, reason=None, **options)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Edits the channel.
You must have the [`manage_channels`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_channels "discord.Permissions.manage_channels") permission to use this.
Changed in version 1.3: The `overwrites` keyword-only parameter was added.
Changed in version 1.4: The `type` keyword-only parameter was added.
Changed in version 2.0: Edits are no longer in-place, the newly edited channel is returned instead.
@tropic briar The way we do it for @unkempt canyon is to just regex search for anything that looks like a discord link, and then call discord's guild API to see if it's real
Get a TextChannel object and call the edit method on it.
Not sure what else you need explained.
Alright
like this?
😞 does not work
What is pre_mega?
fwiw this is the regex we use https://github.com/python-discord/bot/blob/main/bot/utils/regex.py
You do that to check if a invite link is vanity vs a randomly generated one?
discord's guild API can check if it's real or not?
@commands.command(name="emojiinfo", aliases=["ei"])
async def emoji_info(self, ctx, emoji: discord.Emoji = None):
if not emoji:
return await ctx.invoke(self.bot.get_command("help"), entity="emojiinfo")
try:
emoji = await emoji.guild.fetch_emoji(emoji.id)
except discord.NotFound:
return await ctx.send("I could not find this emoji in the given guild.")
is_managed = "Yes" if emoji.managed else "No"
is_animated = "Yes" if emoji.animated else "No"
requires_colons = "Yes" if emoji.require_colons else "No"
creation_time = emoji.created_at.strftime("%I:%M %p %B %d, %Y")
can_use_emoji = (
"Everyone"
if not emoji.roles
else " ".join(role.name for role in emoji.roles)
)
description = f"""
**General:**
**- Name:** {emoji.name}
**- Id:** {emoji.id}
**- URL:** [Link To Emoji]({emoji.url})
**- Author:** {emoji.user.mention}
**- Time Created:** {creation_time}
**- Usable by:** {can_use_emoji}
**Other:**
**- Animated:** {is_animated}
**- Managed:** {is_managed}
**- Requires Colons:** {requires_colons}
**- Guild Name:** {emoji.guild.name}
**- Guild Id:** {emoji.guild.id}
"""
embed = discord.Embed(
title=f"**Emoji Information**",
description=description,
colour=0x2f3136,
)
embed.set_thumbnail(url=emoji.url)
await ctx.send(embed=embed)```
How does it understand that the user is advertising or not
@dapper cobalt
it gives no error but would not reply
when you call the API to get if it's a real invite or not, the response if it's real contains the server's vanity url
Interesting
it'll be the vanity_url_code key in the partial guild object
check = lambda m: m.content in subcat_dict.keys() and m.author == interaction.user
This is the best I could do; I can't understand what you're trying to achieve.
Well... i still dont get how to do it.
🥲 what is lambda?
Anonymous function. Only takes one expression.
👌
.rp lambda
Here are the top 5 results:
Well, if you don't understand that, you can use:
def check(m, interaction):
return m.content in subcat_dict.keys() and m.author == interaction.user
msg = await bot.wait_for("message", check=check)
I'm unsure if that would work, though.
but that does not solve the original question
Which is?
Can someone help me code how to change channel topic
!d discord.TextChannel.edit
await edit(*, reason=None, **options)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Edits the channel.
You must have the [`manage_channels`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_channels "discord.Permissions.manage_channels") permission to use this.
Changed in version 1.3: The `overwrites` keyword-only parameter was added.
Changed in version 1.4: The `type` keyword-only parameter was added.
Changed in version 2.0: Edits are no longer in-place, the newly edited channel is returned instead.
when i am waiting for apples and user types anything i want to tell them its not valid
You really want spoonfeeding that bad?
ik that but i cant get how to do it
well
You get a TextChannel object, and then declare the edit method on it.
Told him that earlier
how to give my bot a status
F.e.
await ctx.channel.edit(name="new-channel-name")
!d discord.ext.commands.Bot.change_presence
await change_presence(*, activity=None, status=None)```
This function is a [*coroutine*](https://docs.python.org/3/library/asyncio-task.html#coroutine).
Changes the client’s presence.
Example
```py
game = discord.Game("with the API")
await client.change_presence(status=discord.Status.idle, activity=game)
``` Changed in version 2.0: Removed the `afk` keyword-only parameter.
that edits the channel name o topic?
explain a bittle
This is the 50th line of my 1st bot
lol
Neither, it deletes the whole guild.
Why all python users say not to SPOONFEED
Eyes really are a blessing.
lol
ikr
its correct tho
You will not learn anything when you get spoonfed.
Because if we spoonfeed you answers. You won’t learn
true
what do ya need help with? I have a friend
but not in my case
dont we include hikari in this channel?
No exceptions.
create a cmnd that changes channel topic
since dpy is already dead?
I mean. Hikari is a wrapper written in py. And it correlates to discord bots. So yeah.
Well, read the code I sent and try to think.
add Noobian#3333
Hello everyone, how do i add spaces between embed sentences?
Ask him
chill, i will.....
Really, just read it and you'll get the answer.
he may help but not spoonfeed
okay
im on it
Like tell a part of the code maybe
You click space.
Dude scoopy literally gave you the code. You literally just have to change one thing 😭
I was about to write a paragraph because you called me "scoops".
tf
Alright scoops 👌
Whats the diff between Bot and Client
Just kidding pls don’t block.
I am using client like client.event and all dat
how do i change the whole cod to bot
☠️
So um, how do i get a space between embed sentences on my code? I've seen that you can add a invisible character, but im not too sure.. can anyone help me out please..?
Got it thank you very much.
Though I'm really willing to add up +1 to that number, but I won't.
I have been searching for it, and i can't seem to find the solution :/
What invisible character? You just click the space button on your keyboard.
It doesn't work, i tried it
Your space button is broken?
-_-
Define "doesn't work".
Nevermind
There's no spaces on my embed message, and i wanna make some spaces between each field i add. How do i do that?
Do you mean a new line?
do you maybe know which one it is?
can you maybe tell me exactly the code? cause im kind of a noob at this lol
from discord.ext import commands
class Bot(commands.Bot): def __init__(self): super().__init__(command_prefix=commands.when_mentioned_or('$'))
async def on_ready(self): print(f'Logged in as {self.user} (ID: {self.user.id})') print('------')
bot.run("token")```
heres an example
Plug it into the name and value for the field.
Pretty sure they won't understand that.
why wouldnt they?
It seems that they just started, so classes would be pretty complicated for them.
Since people don't learn Python beforehand.

oh-
ok
If they can’t change a single param. I doubt they know much about oop
theres an easier way too
!botvar
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!
I'm wheezing. 
Basically the average life of people helping in channels.
I was not surprised that I have this server mutual with about 30% of them.
yep lol
bru i do understand i did just start but like i am a pro at computers
sure, everyone is like that, wait until you start coding bots in discord lol
I did add a command in which if u say a line like I am sus u would be given the sus role
what aree ratelimits for kicking users?
i was like you too, i've been using computers since 2010, and i have been making my bot for the past 2 months. BEST HEADACHES OF MY LIFE!
thats an event :kekw:
What do computers have to do with Python classes?
ik u helped
I am into modding but it doesnt make sense
I spoonfed which is wrong
lol
So First you create a regex search thing, and if there is a url then how do call discord API to see if it's real
bot/converters.py line 54
class ValidDiscordServerInvite(Converter):```
Can I use that code for my bot and it will work fine ?
Yea, our code is MIT licensed, so as long as you follow the license terms you can use it in your own bot
No I mean like it will work and it should do exactly what @unkempt canyon does when someone sends a invite?
so um, does anyone know how can i add a space between a embed field?
The code I linked isn't the only thing you would need to add for it to work no
you'd need to call this when appropriate and make sure you define all of the variables used
it can work as a reference for you though
Alright, it's hard
It's not too bad. Make a regex that gets the invite code, call the Discord API with that invite code to see if it's real
can anyone help me..?
I was thinking of detecting if there are upper case letters in the url or not, if there are it will warn the user
is there a way to "stop" the wait_for? like, i want to cancel it
add an empty field
But if the user puts something after the invite with upper case then it won't work
how do i do that, could you help me?
im on phone rn but let me check
Can we find a url and then check if there are any upper case letters ?
url + A description
Can we take only the url and not the other text in the message
@vocal magnet
Yes, write a regex to extract the url-like things
All the letters in a vanity url are lower case and there are numbers and upper case letters in a random url
and then check if there are uppercase letters
Any tutorial on regex?
.rp 1 regex
Here is the result:
This should cover the basics 😄
😁 Thanks a lot
what are ratelimits for kicking users?
@commands.Cog.listener()
async def on_command_error(self, ctx, error):
if isinstance(error, commands.CommandNotFound):
await ctx.send(':no_entry_sign: Failed To Find That Pannel/Command')
elif isinstance(error, commands.MissingPermissions):
embed = discord.Embed(color=0x2f3136, title= "", description=f'**Failed To Listen that command**\n\nYour Missing: **{(error.missing_perms)} **Permissions')
await ctx.send(embed=embed)
elif isinstance(error, commands.MissingRequiredArgument):
embed = discord.Embed(color=0x2f3136, title= ' ',description= '**Missing Required Arguments**\n\nPlease Input All Required Arguments')
await ctx.send(embed=embed)
elif isinstance(error, commands.BotMissingPermissions):
embed = discord.Embed(color=0x2f3136, title= '', description= f'**Bot Missing Permissions\n\nCartier Missing{(error.missing_perms)}** Permissions``')
await ctx.send(embed=embed)```
i had this in replit and im in vsc and it does not work
change all the ifs after the 1st one to elif?
no space between lines
what?
?@quick gust
yeah try now
anyone has some discord bot project with fastapi web dashboard? i wanna try
fastapi web dashboard?
doesnt work
You should look on GitHub tbh
you could cut those in half by using message.content.lower.startswith() im pretty sure that's a thing.
yes for bots
what is it?
u have 2 on_message events, merge them
wdym
couldn't find any when i searched, all of them uses that crap quart
But I can tell u how to do the basic authentication if u want. I have myself made a basic thing where I can get my guilds haha
how
like mee6 dashboard, dyno web dashboard
i showed u earlier
I may need guidance with that at some point 👀 would like for users to be able to sign in to my site with discord.
idk why my bump command doesnt work anymore??? Ion have errors tho
Haha that's totally fine. I am happy to help with that!
uh
.
do you have any repo of it
see whats different
Would i be able to check their information pertaining to a specific server? So like if it was for staff to login?
Nah, was a very old project
Well u gotta look at the scopes. The maximum u can do is get the guilds of the user, but after that, I think u just gotta use your bot to request other information like roles and stuff
Oh, hmm. Well the only things u can do with the authentication, are the things which the scopes support
ahh okay, ill have to look into it more thanks.
anyways we should probably get back on topic. sorry everyone
Haha it's fine. It's also related to discord bots since it's all discord api and these things can also be made for a bot
Sorry i took the ss from my github acc lol
how to get into a channel with id ?
i think
!d discord.Guild.get_channel
get_channel(channel_id, /)```
Returns a channel with the given ID.
Note
This does *not* search for threads.
yes that
thanks
you have context so you should be able to get a guild object from that context.
should i use it with quotes ? '
or u use bot.get_channel
or directly id?
thanks
does it actually bump to anywhere though?
import discord
import os
import time
import discord.ext
from discord.utils import get
from discord.ext import commands, tasks
from discord.ext.commands import has_permissions, CheckFailure, check
from keep_alive import keep_alive
client = commands.Bot(command_prefix = '>')
@client.event
async def on_ready():
print("Comrade Ain't Dead")
@client.event
async def on_message(message):
if message.author == client.user:
return
elif message.content.startswith('Hello'):
await message.channel.send('Hello Comrade')
elif message.content.startswith('Hi'):
await message.channel.send('Hi. Did ya nuke USA?')
elif message.content.startswith('Comrade'):
await message.channel.send('Shut Up Fool')
elif message.content.startswith('hello'):
await message.channel.send('Hello Comrade')
elif message.content.startswith('hi'):
await message.channel.send('Hi. Did ya nuke USA?')
elif message.content.startswith('comrade'):
await message.channel.send('Fuck You')
elif message.content.startswith('LMAO'):
await message.channel.send('You Dont Laugh In Russia ')
@client.event
async def on_message(message):
if 'i solemnly swear that i am upto no good' in message.content.lower():
role = discord.utils.get(message.guild.roles, id=904021392998146118)
await message.author.add_roles(role)
elif 'mischief managed' in message.content.lower():
role = discord.utils.get(message.guild.roles, id=904021392998146118)
await message.author.remove_roles(role)
await client.process_commands(message)
keep_alive()
client.run(os.getenv("TOKEN"))
its an int
Well i made a discord bot like 2 days ago and it been working great but now bump command doesnt work like the bot doesnt have access to get info from mongodb or ??
it doest reply to hello or Hello
please format your code
even with elif
its been more than 7 hours and sherlock is still stuck with basic stuff of python syntax, i wish at some point they say fuck off to this lib for some time and learn about classes rather than telling everyine that i know to modify stuff
u have 2 on_message events
Can u help me pls lol😊
Ion got errors
you have no errors?
The bot stopped getting info from mongo db
Ye
they you have to show from which part it doesnt work
Then check your mongo connection.
it been working fine like 5h ago and then boom the bot stopped
right now youre talking as if your computer started being lazy and doesnt do as ordered
Idk how to use mongo website
Do you think you're hard?
Welp im back to creating an authentication system 😄
im not hard, like see, we dont know what your bot does, how are we supposed to help
without even a single line of code being shown
Have fun
.
You seem mad as hell
i sound like it but im not
👍🏽
how to combine lemme figure that wait
# code 1
if 1: ...```
```py
# code 2
if 0: ...```
if we "combine" them,
it will become,
```py
if 1: ...
if 0: ....
although its not always that simple
you gotta use your brain and think how to make it work after combining them
like above code could also be, py if 1: ... elif 0: ....
whats wrong?
its discord.Guild.get_channel
first off all, you're not supposed to be doing stuff there
its not meant for that
you can use tasks
well.
you gotta think about your code now.
a channel id doesnt have any data about the guild. discord doesn't know from which guild it is. how is it supposed to know which guild its from?
you need an instance of discord.Guild of the guild
for which you can use discord.ext.commands.Bot.get_guild
!d discord.ext.commands.Bot.get_guild
get_guild(id, /)```
Returns a guild with the given ID.
You need to remove channel since you already defined kanalagecbir as a channel variable
await send()
oh sorry
await kanalagecbir....
i compeletly forgot about those things, i wasnt coding for some time
Its fine haha
Can u help me pls >:(
Sure :D
welllllllllll im working on bump bot it been like 2 days and the bot working ight but when i tried to bump my server it doesnt send the embed of my server to other servers . Also im new to Pymongo
U got any errors?
Sadly no
Here :3
Oh
ur message isnt loading
wait
try sending it once more
Yea
len(client.users) this gives the unique users. how do we get the total users of the bot?
!d discord.Client.users
property users: List[discord.user.User]```
Returns a list of all the users the bot can see.
Hmm it gives a list tho
yeah yeah
.......?
property guilds: List[discord.guild.Guild]```
The guilds that the connected client is a member of.
!d discord.Guild.members
property members: List[discord.member.Member]```
A list of members that belong to this guild.
hmmm
Can u try printing channel and invite and see what they print?
Alr
@quick gustcombine correct and @sullen shoal
it stillisnt working
god
wut
you have defined on_message 2 times
what the hell
...
I kindly decline that
how to correct it
@slate swan please go read the official d.py docs and a tutorial on the library
@slate swan
I don't wanna put anymore effort for someone that doesn't put in the effort to learn python basics
what do you think defining a function twice does?
No good
F U N T H I N G S
12 am for me lmao
redefinition
so what's the point of the first one
Why does it give me an error when I type (some of) the exact same code? Like I want to make it just talk. Why does it give me an error.
@property
def x(self):
return dir(self)
@x.setter
def x(self, value):
return value
pls help why does channel=client.get_channel('"my_id") return none?
you're not a channel
uh
remove the ""
I don't know what that does but this doesn't use decorators like this
bruh
That was a joke but okay
nice
i enter the channel id without ""?
then wrong id
oh my god
You cant add ids with "" because its a int
ye
are switch statements not a thing in 3.10
i didnt add anything
thanks
Just so you know
well The whole server is suing me ffs
also create a dict of messages and map them to responses, you can make this 10x easier
ty all
👍
first day in python mate
Maybe its None because its not in the bots cache
shouldn't be coding bots on your first day
also use message.content.lower() so I don't get cancer
for the love of god
thats only the thing i would like to do
yeah but you gotta breeze up on some basics first
🤦♂️
ty my dudes it works perfectly when i removed ""
@bot.event
async def on_member_join(member):
notverified = member.guild.get_role(roleid)
await member.add_roles(notverified)
Why the code doesn't work
Yw lmao
damn im so lifeless
or else you'd end up with very bad code, like the one you posted above
learning a language just so you can make discord bots is not the best idea
what's roleid
the role id from the not verified role
You good?
yeah


