#discord-bots

1 messages · Page 853 of 1

sage otter
#

Still :/.

#

It’s like the same implementation as people using sleep for timed mutes

sage otter
#

It’s literally bad design. Id rather have nothing than hot garbage in my bot.

sweet geyser
#

I used to respect it

slate swan
#

anyone know why sleep is like that prob did sum dumb

sweet geyser
#

It doesn't have any kinda of new feature's

slate swan
#

!d asyncio.sleep

unkempt canyonBOT
#

coroutine asyncio.sleep(delay, result=None)```
Block for *delay* seconds.

If *result* is provided, it is returned to the caller when the coroutine completes.

`sleep()` always suspends the current task, allowing other tasks to run.

Setting the delay to 0 provides an optimized path to allow other tasks to run. This can be used by long-running functions to avoid blocking the event loop for the full duration of the function call.

Deprecated since version 3.8, removed in version 3.10: The `loop` parameter. This function has been implicitly getting the current running loop since 3.7. See [What’s New in 3.10’s Removed section](https://docs.python.org/3/whatsnew/3.10.html#whatsnew310-removed) for more information.

Example of coroutine displaying the current date every second for 5 seconds:
kindred epoch
sweet geyser
#

And all the forks are very horrible

kindred epoch
#

Welp works for now

#

Probably change it to something better afterwords

sage otter
slate swan
sweet geyser
#

Not really

slate swan
kindred epoch
sweet geyser
kindred epoch
slate swan
#

Lmaoooo, who even takes pycord seriously anyways .-.

kindred epoch
#

Pretty nice

sweet geyser
#

That is why i use jda now

sage otter
#

Honestly sleep_until is probably just this tbh

sweet geyser
#

Anyways its getting late for me i gotta sleep or my mom and dad will kill me

#

MOm is shouting now i gotta go

slate swan
sage otter
#

asyncio.sleep(datetime.datetime().seconds)

sweet geyser
#

Gn

kindred epoch
#

Lmao

sick birch
#

Don’t like the forks all that much

slate swan
maiden fable
sick birch
#

Gladly

slate swan
#

......

maiden fable
#

¯_(ツ)_/¯

slate swan
maiden fable
#

this is the first time i have used it when u r in this channel

#

ig?

dull terrace
#

can you use the same function names if they're in different classes?

unkempt canyonBOT
#

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

sage otter
pliant gulch
sage otter
#

It’s probably a timedelta between the datetime.datetime() passed in and datetime.now()

dull terrace
#

ah awesome thanks

maiden fable
slate swan
slate swan
knotty badger
#

can anyone help me making a verify bot

slate swan
knotty badger
#

idk what to do next

slate swan
#

Help with what

knotty badger
#

code

sage otter
#

So it’s like
asyncio.sleep((datetime.datetime() - datetime.now()).seconds)

#

Something along those lines

kindred epoch
#

I see

slate swan
#

!code

unkempt canyonBOT
#

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.

knotty badger
#
keys = ["124790", "128946", "855295", "456789", "235782", "1256341", "123456", "239851", "275690"]


@commands.Cog.listener("on_message")
async def on_message(message):
    if message.author.id == (427399578720141312):
        return
    if message.channel.id ==(938474842573910119):
        return
    
    if any(word in message.content.lower() for word in keys):
        await message.channel.purge(limit=1)
        verifyRole = discord.utils.get(message.guild.roles, name = "Member")
        await message.author.add_roles(verifyRole)
        await message.channel.send("You have now been verified", delete_after=10)

    else:
            await message.channel.purge(limit=1)
            await message.channel.send("Please type the correct number")



def setup(bot):
    bot.add_cog(verify(bot))
kindred epoch
#

Oh hell no, I'm out

knotty badger
slate swan
#

What issue are you getting?

knotty badger
slate swan
unkempt canyonBOT
#

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**.
slate swan
#

just use the send method on the Member object

knotty badger
#

and how can i make it send randomly one of the keys on join

maiden fable
#

!d random.choice

unkempt canyonBOT
#

random.choice(seq)```
Return a random element from the non-empty sequence *seq*. If *seq* is empty, raises [`IndexError`](https://docs.python.org/3/library/exceptions.html#IndexError "IndexError").
slate swan
maiden fable
#

why [KEYS]

slate swan
#

Ahhhh my brain rotten

maiden fable
#

u r just sleepy lol

slate swan
#

Rip i cant think clearly now

maiden fable
vapid anchor
#

please tell me you're trying to say you switched to hikari

maiden fable
#

i don't dev bots tho

vapid anchor
#

yeah that's the best alternative ig

#

same mate

maiden fable
#

the last time I opened HunAI's source code was like 3 months ago

sage otter
#

Can relate. Bot development isn’t as fun as it used to be.

maiden fable
#

Indeed. There are hundreds of bots for literally the same thing

slate swan
#

Really, welp

slate swan
#

Lol

#

can i ask something about a whois command?

maiden fable
#

sure

slate swan
#

No

maiden fable
#

👀

slate swan
maiden fable
#

go on

slate swan
#

Imagine asking for asking

#

ok ill send

maiden fable
#

Don't ask me the API it uses cz I never seen one

slate swan
#
@bot.command(name="whois")
async def whois(ctx, user: discord.User=None):

  guild = bot.get_guild(901481491337465928)

  if user==None:
    user=ctx.author
  
  if ctx.guild.get_member(user.id) != None:
    user = ctx.guild.get_member(user.id)
    roles = []
    for role in user.roles:
      if role == ctx.guild.default_role:
        pass
      else:
        roles.append(role.mention)

  embed = discord.Embed(description=f"{user.mention} | `{user.id}`", colour=user.colour)

  embed.set_author(name=f"{user}", icon_url=user.display_avatar)
  embed.set_thumbnail(url=user.display_avatar)
  embed.set_footer(text=f'Author: {ctx.author} | {user.id}',icon_url=ctx.author.display_avatar)

  embed.add_field(name="**Display Name**", value=user.display_name)

  embed.add_field(name='**Created**',value=user.created_at.strftime("%a, %#d %B %Y, %I:%M %p"))

  if user.public_flags.hypesquad_brilliance:
    embed.title += f":HypeSquadBalance:"
  if user.public_flags.hypesquad_bravery:
    embed.title += f":HypeSquadBravery: "
  if user.public_flags.hypesquad_balance:
     embed.title += f":HypeSquadBrilliance: "
  
  if ctx.guild.get_member(user.id) != None:
    embed.add_field(name='**Joined**',value=user.joined_at.strftime("%a, %#d %B %Y, %I:%M %p"))
    embed.add_field(name=f"**Roles** [{len(roles)}]", value=" ".join(roles))

  await ctx.reply(embed=embed)```

 why wont the bot send the embed that contains the roles etc, for someone who is in the server?
maiden fable
#

Ah this one

#

Smh I was thinking something else

slate swan
#

before, when i used d.py, it worked without a hitch

maiden fable
#

Okay

slate swan
#

but now, its a bit messed up..

maiden fable
#

What is the error

slate swan
#

i dont get one

#

it just doesnt send the correct embed

maiden fable
#

u got an error handler?

#

O

slate swan
#

Imagine printing the error with an else

maiden fable
#

and what is yr definition of correct embed

maiden fable
slate swan
maiden fable
slate swan
#

Nvm its raise

#

when i do ,whois on a member in the server it sends the embed on a member who isnt in the server, whereas i want it to send an embed containing what roles and what their display name is.

#

a member who isnt on server? How is the person even a member?

#

i mean user

maiden fable
#

Lmao facts

slate swan
#

my bad

#

User cant have roles

maiden fable
#

if ctx.guild.get_member(user.id) != None: @final iron would like to have a talk with you

slate swan
#

Lol

maiden fable
#

Wish it was C ;-;

slate swan
maiden fable
#

It doesn't work like that in C and stuff. U gotta assign it to a variable first and then compare

slate swan
#

with pycord ^

maiden fable
#

Oh pycord

#

Ash gonna help u since she LOVES pycord

slate swan
#

alright

wraith pendant
#

What would be a good database for the userbase of a discord bot

maiden fable
#

sqlite

slate swan
maiden fable
#

I am not even quarterly aware. Got a headache anyways

slate swan
maiden fable
#

uhhh no thanks

sage otter
#

Ouch 😬

#

Can’t relate.

maiden fable
#

mhm

slate swan
maiden fable
sage otter
#

I’m happy to go cooking with Alexa

slate swan
honest vessel
#

@slate swanfriend

#
@bot.command(name="whois")
async def whois(ctx, user: discord.User=None):

  guild = bot.get_guild(901481491337465928)
``` why guild = bot.get_guild
#

u have ctx.guild

slate swan
#

i don’t know i thought it wouldn’t work because i hadn’t defined guild

honest vessel
#
if user.public_flags.hypesquad_brilliance:
    embed.title += f":HypeSquadBalance:"
  if user.public_flags.hypesquad_bravery:
    embed.title += f":HypeSquadBravery: "
  if user.public_flags.hypesquad_balance:
     embed.title += f":HypeSquadBrilliance: "
``` you can only have 1 of those, so do elif
#

else: None

cold sonnet
#

why f-strings

slate swan
#

i don’t know it’s just something i found

honest vessel
#
@bot.command(name="whois")
async def whois(ctx, user: discord.User=None):

  guild = bot.get_guild(901481491337465928)

  if user==None:
    user=ctx.author
``` into
```py
@bot.command(name="whois")
async def whois(ctx, user: discord.User=None):

  #guild = bot.get_guild(901481491337465928)
  guild = ctx.guild

  #if user==None:
  #  user=ctx.author
  user = user or ctx.author
slate swan
#

ok

honest vessel
#

if user==None:
user=ctx.author
then u have this

#

if ctx.guild.get_member(user.id) != None:

maiden fable
#

user = user or ctx.author

slate swan
#

huh?

honest vessel
#

@maiden fablewhy u repeating?

maiden fable
#

What?

honest vessel
maiden fable
#

Okay didn;t read

slate swan
#

so instead of:
if user==None:
user=ctx.author
i should have:
user = user or ctx.author

honest vessel
#

basicly does same

slate swan
#

ok

honest vessel
#

if user is None it will use ctx.author

#

for variable user

slate swan
#

anything else i should change?

leaden plaza
#

hey guys I making a command to pick a winner for me like if i say !wonder it should say you won or better luck next time but the chances should be very low of winning what should i write in if statement or is there an another way to do that?

honest vessel
slate swan
#

the code im using is from my d.py bot

#

i thought it would be the same

honest vessel
leaden plaza
honest vessel
#

if u want 50/50 wich i said no then u could have a toss a coin

#

random.randint(0,1) if 1== u win if 0 u lose

#

or use 3 numbers pick 1 as winner and u have 33%

leaden plaza
#

i don't want to pick from numbers

honest vessel
#

random.randint(0,2) if number is 1 winner

#

@leaden plazaeeh how u thinking now?

#

i just tried help u but whatever

slate swan
#

How do I make a script where python recognizes the file extensions of all the files in a folder/directory and print them? os.path.splitext()?

leaden plaza
honest vessel
#

os.listdir()?

#

.split(".")

slate swan
#

i forgor🐒

honest vessel
#

or check if last last dot n split

#

or if only checkif its py

#

string[:3].lower() == ".py"

slate swan
#

so

files=os.listdir().split(".")
print(files)
if files=="".......
honest vessel
#

if files[:3].lower() == ".py"

slate swan
#

if files == "*.{file extension}"

slate swan
#

But why [:3]?

honest vessel
#

it takes 3 last chars

#

[3:] takes 3 first

#

[1:2] takes 1 to 2

slate swan
#

yes but what if a file ext is 4 chars

honest vessel
#

ignores first n last after 3rd

#

if ext has 4 chars its not py

#

thats where . spliit dot comes in then

#

check last .

#

split make to lower() and fit it

maiden fable
slate swan
#

I mean I want to recognize every file ext not .py

maiden fable
#

wait nvm

honest vessel
slate swan
maiden fable
#

yea mb

slate swan
#

so What is the final code?

#

every file extension

honest vessel
#

!e
string = "monkey"
print(string[1:2])

unkempt canyonBOT
#

@honest vessel :white_check_mark: Your eval job has completed with return code 0.

o
honest vessel
#

!e
string = "monkey"
print(string[1:4])

unkempt canyonBOT
#

@honest vessel :white_check_mark: Your eval job has completed with return code 0.

onk
maiden fable
#

It doesn't include the element at the stop position

honest vessel
#

oh

#

ur right on that tho

#

u kinda need like x:len(string)-1

slate swan
#

What about me 💀

#

LMAOO

honest vessel
#

!e
string = "monkey"
print(string[1:len(string)])

unkempt canyonBOT
#

@honest vessel :white_check_mark: Your eval job has completed with return code 0.

onkey
honest vessel
#

hm

honest vessel
dull terrace
#

😤 id id it wrong

#

!e
string = "monkey"
string2 = "u do dis?"
print(f"{string[-1:]} {string2}")

unkempt canyonBOT
#

@dull terrace :white_check_mark: Your eval job has completed with return code 0.

y u do dis?
slate swan
honest vessel
#

that would work

slate swan
#

aight thanks bro

#

appreciate the time have a good realxing evening

honest vessel
#

haha np i just hope u learned how to sub a string

dull terrace
#

wouldnt [:4] just get the first four characters

#

[4:] for the last four

honest vessel
#

last 4

#

4: is first 4

slim ibex
#

🗿

dull terrace
#

!e
string = "slicing hurts my brain"
print(string[4:])

unkempt canyonBOT
#

@dull terrace :white_check_mark: Your eval job has completed with return code 0.

ing hurts my brain
honest vessel
#

!e
string =" brain hurts"
print(string[:4])

slate swan
#

💀

unkempt canyonBOT
#

@honest vessel :white_check_mark: Your eval job has completed with return code 0.

 bra
honest vessel
#

oh u was correct

#

so then its :-4 😄

dull terrace
#

!e
string = "slicing hurts my brain"
print(string[-4:])

unkempt canyonBOT
#

@dull terrace :white_check_mark: Your eval job has completed with return code 0.

rain
honest vessel
#

ye

#

@dull terracety

#

cleariify that one 🙂 i was wrong

slate swan
#

there is no option for .split() though if the os.listdir() is users input. I mean, you ask the user to enter a dir to list. os.listdir(user input).split() doesn't exist

rocky trench
#

is there a way to bass boost voice chat audio on my bot with pafy?

dull terrace
#

positive numbers kinda make sense because it's as if each letter is a list entry

honest vessel
#

str(word).split()

dull terrace
#

negative hurts brain

slate swan
#

OH

#

that works

maiden fable
#

lol

hoary cargo
#

🗿

created_at = member.created_at
        formatted_initial_date = discord.utils.format_dt(created_at)
        subtracted_days = datetime.timedelta(14)
        almost_final_date = created_at - subtracted_days
        final_date = almost_final_date
        formatted_final_date = discord.utils.format_dt(final_date)
        current_date = datetime.datetime.utcnow()

        if final_date < current_date:
            await ctx.send("Bad.")
        elif final_date >= current_date:
            await ctx.send("good")

i require assistance MR_uncanny_1 i need something for current_date because can't compare offset-naive and offset-aware datetimes if i compare created_at and final_date works fine but there's no point in that, i don't like working with time whyMe

honest vessel
#

almost_final_date

#

thats a cute mf varaiable tho :D<3

#

final_date = almost_final_date <- no need?

#

current_date = datetime.datetime.utcnow() should been run first tho

slate swan
#
enterpath=input("Enter the path of the file: ")
    invis_RBT.say("Enter the path of the file") #Ignore that, it is texttospeech yk
    invis_RBT.runAndWait() #this one too
    files = str(os.listdir(enterpath)).split()
    if files[:4] == ".exe":
        print("There is an executable file in the directory you entered. Watch out!")
    else:
        print("Clear.")
``` Returns clear even though there is an exe file in 'Downlaods'
#

try avatar.url

#

OH IT IS [4:] not [:4]

slate swan
slate swan
#

lol

slate swan
#

more like what fits

#

grammarly

#

I didn't split damn

#

lemme try again

slim ibex
#

!e print("hello"[:-4])

unkempt canyonBOT
#

@slim ibex :white_check_mark: Your eval job has completed with return code 0.

h
slate swan
#

maybe for file in files

velvet tinsel
slate swan
#

@honest vessel Yooo I did it look:

#
    enterpath=input("Enter the path of the file: ")
    invis_RBT.say("Enter the path of the file")
    invis_RBT.runAndWait()
    files = str(os.listdir(enterpath)).split(".")
    for file in files:
        if file[:3] == "exe":
            print("Executable File Detected!")
        else:
            print("File clear.")
#

why am I proud lol

final iron
#

pep8 violations

#

😔

dull terrace
#

what does pep even stand for

slate swan
#

i always forget it🏃

unkempt yacht
#

How do you delete the invocation command with the bot?

sage otter
#

Context.message.delete()

#

requires manage messages.

dull terrace
#

what a nerdy acronym

quaint epoch
#

guys, in an on_command_error event, the error param is an object of what class?

unkempt yacht
#
@mainunban.error
    async def mainunban_error(self, ctx: commands.Context, error):
        if isinstance(error, commands.CommandNotFound):
            await ctx.send("This command has a bug! DM @unkempt yacht about it. Sorry for the inconvenience.", delete_after=5, ctx.message.delete())```
unkempt yacht
#

oh wait, why did i put an f string

#

now

sage otter
#

no

velvet tinsel
#

we will be disappointed together

dull terrace
#

does the 8 just stand for the eighth proposal

sage otter
#

if you want it to delete the message 5 seconds later you have to manually sleep

unkempt yacht
#

ok

quaint epoch
#

too lazy to read docs

sage otter
#

discord.ext.commands.CommandError

slate swan
#

!d discord.ext.commands.CommandError

unkempt canyonBOT
#

exception discord.ext.commands.CommandError(message=None, *args)```
The base exception type for all command related errors.

This inherits from [`discord.DiscordException`](https://discordpy.readthedocs.io/en/master/api.html#discord.DiscordException "discord.DiscordException").

This exception and exceptions inherited from it are handled in a special way as they are caught and passed into a special event from [`Bot`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.Bot "discord.ext.commands.Bot"), [`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").
quaint epoch
#

is there anyway to check why the error occurred? like Attribute error, user input...

#

alr

honest vessel
#

@slate swan awesome

tardy atlas
#

How to make a table for one server? Sqlite3

honest vessel
#

wrong chan

#

sql?

slate swan
cold sonnet
#

wish there were like

slate swan
#

What......

cold sonnet
#

tables and subtables

indigo ledge
#

im trying to convert a string to a discord member object. does anybody know how to do that?

honest vessel
#

why a table for each server lol

indigo ledge
#

username#0000 (example)

silent portal
#

Hey, I just rebuilt my rootserver and tried using the pip3 install -U git+https://github.com/Rapptz/discord.py command,
however I am getting this error: ModuleNotFoundError: No module named '_ctypes'

Can someone help?

cold sonnet
#

!d discord.utils.get

unkempt canyonBOT
#

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...
indigo ledge
#

it does not let me use strings

cold sonnet
indigo ledge
#

wdym

quaint epoch
#

developer mode off prob

tardy atlas
#

@slate swan I want to make a table for one server only

indigo ledge
#

it has to be a member object

cold sonnet
indigo ledge
#

thats what im using

silent portal
#

Hey, I just rebuilt my rootserver and tried using the pip3 install -U git+https://github.com/Rapptz/discord.py command,
however I am getting this error: ModuleNotFoundError: No module named '_ctypes'

Can someone help?

indigo ledge
#

how

honest vessel
#

be-row no need spam

indigo ledge
#

oh

quaint epoch
indigo ledge
#

ok so how do you get the id from a username

wispy spade
quaint epoch
#

just turn on developer mode in settings

tardy atlas
#

@slate swan I want to make a table for one server only

wispy spade
indigo ledge
#

ok but all i need to know is how to convert a string to a discord.member datatype

honest vessel
#

😂

quaint epoch
indigo ledge
quaint epoch
#

you can get or fetch the member using the string

#

!d discord.Guild.get_member_named

indigo ledge
#

oh cool

unkempt canyonBOT
#

get_member_named(name, /)```
Returns the first member found that matches the name provided.

The name can have an optional discriminator argument, e.g. “Jake#0001” or “Jake” will both do the lookup. However the former will give a more precise result. Note that the discriminator must have all 4 digits for this to work.

If a nickname is passed, then it is looked up via the nickname. Note however, that a nickname + discriminator combo will not lookup the nickname but rather the username + discriminator combo due to nickname + discriminator not being unique.

If no member is found, `None` is returned.
cold sonnet
#

or discord.utils.get
always works

honest vessel
#

this is why u single n not marry one

quaint epoch
#

!d discord.ext.commands.Bot.get_user

unkempt canyonBOT
indigo ledge
#

but the id would still be a string right

silent portal
indigo ledge
#

cool

quaint epoch
#

are you trying to get a user or member

indigo ledge
#

thanks for the help

honest vessel
#

discord loves ids not so fan of nicks

quaint epoch
indigo ledge
quaint epoch
#

i was first

quaint epoch
honest vessel
#

hashed id btw

#

md5

quaint epoch
#

you can get the member using the username#discriminator, then member.id

#

but why would you ever need to do that

indigo ledge
quaint epoch
indigo ledge
#

ik its stupid

slate swan
#

an*

wispy spade
#

you should probably be using bot.command for that

indigo ledge
#

but i prefer it

#

no can do

honest vessel
#

lol u stilll can play with if

slate swan
#

I am being

honest vessel
#

id no need use usernames wich u can change

#

buy nito n u even swap discrimination#

indigo ledge
#

so basically

variable = get_user(id, /)

the variable would be a member object?

honest vessel
#

use id

quaint epoch
# indigo ledge but i prefer it
@bot.command()
@commands.has_permissions(kick_member=True)
async def kick(ctx, id: int):
  member = ctx.guild.get_member(id)
  await member.kick()
  await ctx.send(f'{ctx.author.mention} {member} was kicked from the server')```
honest vessel
#

its independed

quaint epoch
#

6 lines

honest vessel
#

@slate swan prob shitty copy pasta not workin

slate swan
#

Just tell them the answer

honest vessel
#

answe is 42

slate swan
#

They aren here for explanation or anything

#

Just give the code and we're set

final iron
honest vessel
#

@slate swan spoon him

indigo ledge
#

what are you talking about

slate swan
quaint epoch
#

just make sure you have the right perms and bot = discord.ext.commands.Bot(command_prefix='!', intents=discord.Intents.all())

indigo ledge
slate swan
#

I cant

honest vessel
#

ashley just wanna get spooned

#

next

quaint epoch
hoary cargo
#

🥄

indigo ledge
quaint epoch
quaint epoch
final iron
honest vessel
#

@quaint epoch feeding

quaint epoch
#

okay okay

final iron
#

It doesn't help anyone learn

slate swan
quaint epoch
#

i get it, i get it

#

they literally said they can't use the command

indigo ledge
#

variable = get_user(id, /)

the variable would be a member object?

#

thats all i want to know

hoary cargo
wispy spade
final iron
honest vessel
#

get_user

indigo ledge
honest vessel
#

like he imported bot enough

kindred epoch
#

@indigo ledge if you except someone to help you, you have to give context and answers to what they are asking, and people who are helping here have probably more experience with d.py then the person asking the questions, so just listen to them.

quaint epoch
indigo ledge
#

because i dont want anybody to steal it

quaint epoch
honest vessel
#

@slate swan its russian code

quaint epoch
wispy spade
hoary cargo
quaint epoch
indigo ledge
quaint epoch
#

so in on_message the person would have to pass the member and guild

quaint epoch
unkempt canyonBOT
#
I'm sorry Dave, I'm afraid I can't do that.

No documentation found for the requested symbol.

wispy spade
wispy spade
hoary cargo
kindred epoch
#

Yoo that code looks sick lemme just steal that even tho I already have that type of a command 😹 😹 😈

indigo ledge
#

await member_object.kick(reason="because")

quaint epoch
final iron
#

!d discord.Message.guild

unkempt canyonBOT
quaint epoch
#

just use @client.command()

#

or whatever you defined as client/bot

final iron
#

@indigo ledge Look, no offense but your code is not interesting or complicated enough to steal

honest vessel
#

@mom.command()

indigo ledge
# quaint epoch yes

all i need is for the program to convert part of the message to a member object

indigo ledge
quaint epoch
final iron
honest vessel
#

async def commander(self, ctx):

quaint epoch
indigo ledge
final iron
slate swan
#

Tbh, just one of you is enough to help, stop mixing answers

quaint epoch
#

alr, i'll go clean up my code someone else can help

honest vessel
#

if ctx.message.startsWith("mm"):
continue

slate swan
#

Yes please, lets usr help for a while

final iron
quaint epoch
#

huh

honest vessel
slate swan
#

@eager sorrel

quaint epoch
#

wait no don't ping

kindred epoch
#

Go ahead

quaint epoch
#

w/ what?

honest vessel
indigo ledge
#

i mean i can make it just
await message.author.kick(reason="")
but all that does is kick the command user

quaint epoch
#

okay first to make sure no one mobs to me to death

indigo ledge
quaint epoch
#

should i show them how to kick with on_message

#

like some might say, spoonfeed

indigo ledge
honest vessel
#

u kick the one try use command

slate swan
# quaint epoch wait no don't ping

Alright; I'll ping lemon, I'll ask hin about new server pfp, he'll say wrong channel but still give an answer, then I run the !rule 7 and !ot command on him

quaint epoch
indigo ledge
kindred epoch
#

@indigo ledge just typehint an arg to disnake.Member and use that to kick the member

honest vessel
#

gn all

quaint epoch
quaint epoch
#

are you trying to kick with a username#discrimator, username, or id first?

slate swan
#

Just right click on the member and kick them, all your problems solved

quaint epoch
#

now that we're done here i gotta go back to my geo hw

quaint epoch
# indigo ledge username#0000

so steps are,

  1. splice message.content
  2. check if args are provided
  3. check if username is in format (username#discriminator)
  4. Try to get that member
  5. kick
#

can't help further because @final iron might ban me

slate swan
#

how do i load cogs with a discord.Bot() (pycord)

final iron
#

Pycord 🗿

slate swan
indigo ledge
final iron
quaint epoch
slate swan
final iron
slate swan
final iron
indigo ledge
quaint epoch
#
member = ("username#0000")
member = message.guild.get_member_named(member)
await member.kick(reason="")```
slate swan
slate swan
final iron
quaint epoch
slate swan
#
  • it is, i said pycord
quaint epoch
#

not even any checks for formatting

kindred epoch
#

Using on_message as a command lemon_grimace

quaint epoch
slate swan
kindred epoch
#

A simple kick command should be only 2 lines

quaint epoch
kindred epoch
#

Yea

quaint epoch
#

mine is py @bot.command(aliases=('remove', 'kick_user', 'kick_member', 'remove_user', 'remove_member')) @commands.has_permissions(kick_members=True) async def kick(ctx, member_id: int, *, reason='None'): user = await bot.fetch_user(member_id) member = await ctx.guild.fetch_member(member_id) await member.kick(reason=reason) await ctx.send(f'''**{ctx.message.author.mention}** kicked **{member.mention}**: **{reason}**.''') try: await user.send(f'''{member.mention} you were kicked from **{ctx.guild}** by **{ctx.author}**: **{reason}**''') except (discord.HTTPException, discord.errors.HTTPException, discord.ext.commands.errors.CommandInvokeError, commands.CommandInvokeError, commands.CommandError, AttributeError, discord.Forbidden): print(f'Cannot direct message {str(member)}.')

kindred epoch
#

All he had to do is set an arg as discord.Member

indigo ledge
#

hecc yea

quaint epoch
kindred epoch
#

Everything in that is wrong

quaint epoch
slate swan
kindred epoch
slate swan
slate swan
quaint epoch
slate swan
quaint epoch
kindred epoch
# quaint epoch like -

Your bot will never send the message to the user since your kicking it before which means the bot doesn't have any servers in common with the member

slate swan
kindred epoch
#

Again just discord.Member as an arg

slate swan
#

youre expecting a Member obj which has all the attrs you need

#

check docs

quaint epoch
#

i could just make the member object as an arg, and get id's from that i know.

#

but i wanted to fetch it specifically, it feels good for some reason

slate swan
slate swan
slate swan
slate swan
quaint epoch
quaint epoch
slate swan
#

im not sure what the limit is but its probably short

#

10 rps

#

msg limit is 5/5s and remember that the discord api uses buckets so dynamic ratelimits

quaint epoch
#

50 requests per second?

slate swan
#

no

quaint epoch
slate swan
#

thats global

slate swan
#

read the whole description

#

It was 10 iirc

#

still why not use a Member class instance over making 2 request?

manic wing
slate swan
#

hey caeden

manic wing
#

hello okimii

quaint epoch
slate swan
slate swan
unkempt canyonBOT
#
The Zen of Python (line 1):

Explicit is better than implicit.

slate swan
#

It was 2

slate swan
slate swan
#

youre just fetching a Member obj just use a class instance👁️ 👁️

manic wing
manic wing
#

i like a cheeky spooning

slate swan
slate swan
#

Ash is so pickypithink

#

Very

#

Sometimes

manic wing
slate swan
manic wing
manic wing
slate swan
#

😭

manic wing
unkempt canyonBOT
slate swan
slate swan
slate swan
manic wing
manic wing
#

i love you babes

quaint epoch
#
@bot.command(aliases=('remove', 'kick_user', 'kick_member', 'remove_user', 'remove_member'))
@commands.has_permissions(kick_members=True)
async def kick(ctx, member: discord.Member, *, reason='None'):
    user = await bot.fetch_user(member.id)
    await member.kick(reason=reason)
    await ctx.send(f'''**{ctx.message.author.mention}** kicked **{member.mention}**:
**{reason}**.''')
    try:
        await user.send(f'''{user.mention} you were kicked from **{ctx.guild}** by **{ctx.author}**:
    **{reason}**''')
    except (discord.HTTPException, discord.errors.HTTPException, discord.ext.commands.errors.CommandInvokeError,
            commands.CommandInvokeError, commands.CommandError, AttributeError, discord.Forbidden):
        print(f'Cannot direct message {str(member)}.')```there
slate swan
quaint epoch
#

oh typo

manic wing
slate swan
#

bro member has a .send method

#

!d discord.Member.send

unkempt canyonBOT
#

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**.
quaint epoch
slate swan
slate swan
#

just eat a forbidden exception

manic wing
quaint epoch
# slate swan try and except

but then it will only kick and NOT give a formal message like You were kicked from {guild} you jackass wtf did you do?

#

it has to send that

slate swan
quaint epoch
slate swan
#

bro

slate swan
quaint epoch
#

but if i send a message and kick doesn't work, then it just says You were kicked from {guild} you jackass wtf did you do? and NOT kick

quaint epoch
slate swan
#

I'm trying to help you in the long run why not accept my help?

quaint epoch
#

(dodges every possible solution to simple problem)

slate swan
quaint epoch
slate swan
slate swan
manic wing
manic wing
#

i have my year 10 exams after this half term and i keep procasting studying

velvet tinsel
slate swan
quaint epoch
#

i do this 6 times a day can i please have a break

slate swan
quaint epoch
#

the typos fixed, the variable naming, permissions fixing....

velvet tinsel
#

or they're too easy for you

slate swan
slate swan
manic wing
slate swan
#

Idkkkm u

velvet tinsel
quaint epoch
#

nvn, cya i gtg now

velvet tinsel
#

bye

manic wing
slate swan
#

im in 9th lol

velvet tinsel
manic wing
#

nvm 😳

slate swan
vast gale
slate swan
#

like me😡

#

hey arlpithink

vast gale
#

probably keep this to discord talk mmlol

velvet tinsel
#

u born in jan? damn

slate swan
#

!rule 7 good luck for gcses next year@manic wing

unkempt canyonBOT
#

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

velvet tinsel
slate swan
#

bozo

velvet tinsel
#

year 9 I take exams to see if I move up to y10

#

which will be easy, looking at the curriculum now

velvet tinsel
manic wing
#

lets go back on topic

velvet tinsel
#

how to make discord bot

vast gale
#

which libs do y'all use here?

velvet tinsel
#

this is discord bots....why....why ping you in off-topic

quaint epoch
velvet tinsel
#

why ask in dpy channel then pithink

slate swan
vast gale
#

lol I thought there'd be a bit more diversity here heheGiggle

velvet tinsel
#

until most people decided to break off

slate swan
velvet tinsel
#

nevermind

vast gale
velvet tinsel
#

some here use hikari

slate swan
velvet tinsel
#

||and I am not being fucked up by HTML rn||

slate swan
#

someone links me to discord time formats

slate swan
velvet tinsel
vast gale
unkempt canyonBOT
#

discord.utils.format_dt(dt, /, style=None)```
A helper function to format a [`datetime.datetime`](https://docs.python.org/3/library/datetime.html#datetime.datetime "(in Python v3.9)") for presentation within Discord.

This allows for a locale-independent way of presenting data using Discord specific Markdown...
slate swan
#

oh i forgot this in 2.0

velvet tinsel
#

btw how to make discord bot 💀

slate swan
slate swan
velvet tinsel
slate swan
#

noo

velvet tinsel
#

too late now

slate swan
#

Arl is a pretty cool person shes very knowledgeable in her stuff as wellpithink

#

i remember a guide but i forgot the link for it

velvet tinsel
slate swan
#

it was for one of the staff

#

like vkltfre or idk lol

vast gale
velvet tinsel
#

@slate swan you looking for this?

slate swan
slate swan
slate swan
#

just realized you're joking

vast gale
#

that reminds me

slate swan
velvet tinsel
#

microsoft really decided to make teams notifs really good looking for windows

slate swan
#

Ash follows pep9 🗿

velvet tinsel
#

!pep 9

unkempt canyonBOT
#
**PEP 9 - Sample Plaintext PEP Template**
Status

Withdrawn

Created

14-Aug-2001

Type

Process

slate swan
#

lol

velvet tinsel
#

💀

#

status Withdrawn

#

dammmmm

#

I am now the depressed

slate swan
#

Okay I"m out idk wgat is im saying anymoire

slate swan
buoyant quail
slate swan
#

Gn me hgonna passuout

velvet tinsel
#

I was confused why it showed [No Output]

slate swan
slate swan
velvet tinsel
vast gale
vast gale
#

i can make any package any other package

slate swan
velvet tinsel
buoyant quail
velvet tinsel
buoyant quail
#

the best.

velvet tinsel
#

trending on github

slate swan
vast gale
#

:3

velvet tinsel
#

I remember being confused why -2^2 gave me -4

slate swan
#

Rip my rbain cant handle that mch

velvet tinsel
buoyant quail
velvet tinsel
#

then I realized
(-2)^2

#

💀

#

I was doing shit with my calc dont ask ok

slate swan
manic wing
#

you mean

#

-(2^2)

buoyant quail
#

no

slate swan
#

Idk wgat im shayoinng

velvet tinsel
manic wing
#

any negative number squared is a positive

buoyant quail
#

it's not square

manic wing
#

!e print((-2)^2)

unkempt canyonBOT
#

@manic wing :white_check_mark: Your eval job has completed with return code 0.

-4
slate swan
manic wing
#

wait whats the ^

buoyant quail
#

haha

#

its xor

velvet tinsel
buoyant quail
#

lol

manic wing
velvet tinsel
#

!e 2**2

unkempt canyonBOT
#

@velvet tinsel :warning: Your eval job has completed with return code 0.

[No output]
manic wing
#

^ is normally **

velvet tinsel
#

shit forgot to print

buoyant quail
#

!e print(2**2)

unkempt canyonBOT
#

@buoyant quail :white_check_mark: Your eval job has completed with return code 0.

4
manic wing
velvet tinsel
#

!e print(2**2)

unkempt canyonBOT
#

@velvet tinsel :white_check_mark: Your eval job has completed with return code 0.

4
slate swan
#

!e print(2^2)

unkempt canyonBOT
#

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

0
slate swan
#

¯_(ツ)_/¯

buoyant quail
velvet tinsel
#

any negative number squared is a positive number
however it needs a FUCKING BRACKET

#

(-2)^2 works fine on a calc, but shit gets real when you do -2^2

#

gives you -4
I forgot why it does that

buoyant quail
#

(-2)^2, -2^2 it's same

#

or you mean square?

velvet tinsel
#

squared

velvet tinsel
slate swan
#

!rule 7

unkempt canyonBOT
#

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

manic wing
#

i hate this pep8 phase

hoary cargo
#

math class

velvet tinsel
manic wing
#

everyone waffling on about pep8

velvet tinsel
hoary cargo
unkempt canyonBOT
velvet tinsel
#

now I want to rant about SCP in ot now

buoyant quail
manic wing
# velvet tinsel ?

instead of focusing of "making your code look good" why dont you make your code efficient

slate swan
unkempt canyonBOT
#

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

hoary cargo
rotund frigate
#
@bot.event
async def on_message(message):
  if message.author.id == 940652261141516370:
   if message.content.startswith('$hello'):
     await message.channel.send('hello')

this doesnt work why is that?

slate swan
slate swan
rotund frigate
#

wdym commands?

slate swan
#

!d discord.ext.commands.Command

unkempt canyonBOT
#

class discord.ext.commands.Command(*args, **kwargs)```
A class that implements the protocol for a bot text command.

These are not created manually, instead they are created via the decorator or functional interface.
slate swan
#

These commands

hoary cargo
#

i don't know where these people watch at some tutorial because they all come here with this and be like it doesn't work MR_uncanny_10

slate swan
#

how do i convert a unix timestamp or whatever that's called to something like "2 Hours, xx minutes"

hoary cargo
buoyant quail
sick birch
#

What version docs are you looking at?

velvet tinsel
#

finished spewing shit in ot now I'm back

buoyant quail
velvet tinsel
slate swan
sick birch
#

Ah stable

buoyant quail
sick birch
#

Well what you’re seeing there is the pre-rewrite and is heavily outdated

velvet tinsel
#

I started with the basics :/ all I had was a book

#

I didn't even know what f-strings were

buoyant quail
sick birch
#

Alright

hoary cargo
slate swan
sick birch
#

Oh the other person just left lmao

vast gale
velvet tinsel
slate swan
hoary cargo
#

MR_uncanny_12 mentally speaking i'm 2k year old maybe

manic wing
#

doubtful

velvet tinsel
velvet tinsel
#

ashley when are you gonna fucking sleep
mods dont ban me

slate swan
slate swan
hoary cargo
#

oop

slate swan
#

bruh

velvet tinsel
#

I would not recommend that

#

really depends on the force that you smash your head against

#

and the object

velvet tinsel
#

I would recommend weak smashing against soft carpet

velvet tinsel
#

if there's a pillow nearby do it as hard as you like

slate swan
#

!rule 7 there's no point mina will birbo stabbo you

unkempt canyonBOT
#

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

hoary cargo
hoary cargo
#

guys i still didn't solved my problem with time MR_uncanny_1

velvet tinsel
#

please don't birbo stabbo me please 😦

hoary cargo
#

🗿

buoyant quail
#

which problem?

velvet tinsel
#

my problem

slate swan
#

Okay bye goodnight

velvet tinsel
#

alright i gtg soon lol

hoary cargo
buoyant quail
#

xD

hoary cargo
slate swan
buoyant quail
#

some year

alpine furnace
alpine furnace
hoary cargo
#

oh yeah, i had another question which i forgor, for how long in time the on_message_edit works, like if a message from a year ago will still be catched? MR_uncanny_1

hoary cargo
alpine furnace
#

Doesn't look like that's a limitation. according to Discord docs

velvet tinsel
hoary cargo
#

!d disnake.on_message_edit

unkempt canyonBOT
#

disnake.on_message_edit(before, after)```
Called when a [`Message`](https://docs.disnake.dev/en/latest/api.html#disnake.Message "disnake.Message") receives an update event. If the message is not found in the internal message cache, then these events will not be called. Messages might not be in cache if the message is too old or the client is participating in high traffic guilds.

If this occurs increase the [`max_messages`](https://docs.disnake.dev/en/latest/api.html#disnake.Client "disnake.Client") parameter or use the [`on_raw_message_edit()`](https://docs.disnake.dev/en/latest/api.html#disnake.on_raw_message_edit "disnake.on_raw_message_edit") event instead.

The following non-exhaustive cases trigger this event...
hoary cargo
#

Messages might not be in cache if the message is too old ok_what

#

bad

alpine furnace
#

@hoary cargo on_raw_message_edit

buoyant quail
#

but i recommend you remove lots of useless variables you use

hoary cargo
#

useless like ?

buoyant quail
#

like everythin. you can do it in 2 lines:

final_date = (member.created_at - datetime.timedelta(14)).replace(tzinfo=None)
current_date = datetime.datetime.now()
hoary cargo
#

well, indeed, i could do that but i don't like to be a oneliner

buoyant quail
#

oneline is nice

#

it looks better

hoary cargo
hoary cargo
buoyant quail
#

ye

#

and you could google it :

hoary cargo
buoyant quail
#

xd

hoary cargo
#

Hmm so basically as long as the bot stays online it will be able to get the edited message

#

i mean it makes sense

pliant gulch
#

Could you get the message probably, could you edit the message or do anything? Most likely not if discord discarded the message

vast gale
#

you can make the cache larger

#

pass max_messages to discord.Client when creating your client/bot object

raw venture
oblique laurel
#

Anyone have some good disnake example code?

final iron
open spear
#
  Cloning https://github.com/Rapptz/discord.py to c:\users\nikit\appdata\local\temp\pip-req-build-u6a3_nc9
  Running command git clone -q https://github.com/Rapptz/discord.py 'C:\Users\nikit\AppData\Local\Temp\pip-req-build-u6a3_nc9'
  ERROR: Error [WinError 2] The system cannot find the file specified while executing command git clone -q https://github.com/Rapptz/discord.py 'C:\Users\nikit\AppDat
a\Local\Temp\pip-req-build-u6a3_nc9'
ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?
```how do i install this
#

how do i install git

buoyant quail
#

...

prime basin
#

so i've had an issue with people spamming my bot and crashing it, i'm wondering if there's a way to cancel a command if it takes too long?

kindred epoch
prime basin
#

a text command

#

just like

#

what it does is

#

Input:
=foo [arguments and stuff]
Output:
an image

hoary cargo
# buoyant quail it works so:

looking at this i finally see my other problem 🗿 the ifs are wrong and i should add 14 days to the account instead of taking them

slim ibex
#

Your bot can get rate limited if it makes too many API requests subsequently prolly

prime basin
#

that's not what i mean

kindred epoch
prime basin
#

no not a cooldown

kindred epoch
#

is the image generation async?

prime basin
#

yeah

slim ibex
#

you could probably set up a task that stops executing commands if they take too long. But I am not sure how you would do that

slim ibex
prime basin
final iron
prime basin
#

this isn't relevant

final iron
#

With an api or run_in_executor?

kindred epoch
final iron
#

It actually is relevant

prime basin
#

it's async yeah

kindred epoch
#

so it doesnt matter if it relates or not

prime basin
#

it's just with numpy and pil and shit like that

#

i've not messed with a lot of the code in a while

slim ibex
prime basin
slate swan
#

@bot.event
async def on_message(message):
    
    role = message.guild.get_role(921806885831716875)
    if message.guild.id != 692305542324027424:
        return
    if message.author.bot:
        return
    with open("banwords.json") as f:
        banwords = json.load(f)

    with open("banwords.json", "w") as f:
        json.dump(banwords , f)
        
    if {i.lower().translate(str.maketrans('','', string.punctuation)) for i in message.content.split(' ')}\
    .intersection(set(json.load(open('banwords.json')))) != set():
        print('1')
  
    name = 'server'
    
    base.execute("""CREATE TABLE IF NOT EXISTS {}(userid INT, count INT)""".format(name))
    base.commit()
    
    warning = cursor.execute('SELECT * FROM {} WHERE userid == ?'.format(name),(message.author.id,)).fetchone()
    
    if warning == None:
        cursor.execute('INSERT INTO {} VALUES(?, ?)'.format(name),(message.author.id,1))
        base.commit()
        await message.channel.send(f'1 предупреждение\n{message.author.mention} по губам отшлепать?')
        
    elif warning[1] == 1:
        cursor.execute('UPDATE {} SET count == ? WHERE userid == ?'.format(name),(2,message.author.id))
        base.commit()
        await message.channel.send(f'2 предупреждение\n{message.author.mention} по губам отшлепать?')
        
    elif warning[1] == 2:
        cursor.execute('UPDATE {} SET count == ? WHERE userid == ?'.format(name),(3,message.author.id))
        base.commit()
        await message.channel.send(f' 3 предупреждение.\n{message.author.mention} по губам отшлепать?')
        cursor.execute('UPDATE {} SET count == ? WHERE userid == ?'.format(name),(message.author.id,0)) # Меняет значение переменной 
        base.commit()

banwords.json


{
"banwords": ["тупой", "дуб"]
}
prime basin
#

woah

slate swan
#

gives warnas to everyone for different words, although it should be from the list ...

slim ibex
slate swan
#

A okay, sorry

slim ibex
#

and don’t format. .format is essentially the same as f strings

hoary cargo
#

MR_uncanny_1 i condemn you to forever break pep8 for this.

slim ibex
#

SQLite uses ? for placeholders, and I’m assuming you are using SQLite @slate swan ?

slate swan
#

Yes

open spear
open spear
final iron
#

🗿

hoary cargo
final iron
#

Wait I'm dumb

#

You don't even need to subtract them

buoyant quail
final iron
#

You can just use a discord timestamp

#

How do you escape the code block again?

#

With the eval command

#

I need to use markdown

buoyant quail
slate swan
#

Это пример

unkempt canyonBOT
#

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