#discord-bots

1 messages · Page 624 of 1

unkempt canyonBOT
#

@boreal ravine :white_check_mark: Your eval job has completed with return code 0.

1
boreal ravine
#

hm weird

#

ah thats the issue, your missing a parenthesis 🤦‍♂️

slate swan
#

fuck

#

sorry im brain dead

boreal ravine
#

👍

gloomy coral
#

but it works the first 1 2 days

#

i do hv tht

#

shows no error

slate swan
#

there a way to fix this?

maiden fable
#

code

upbeat otter
visual island
slate swan
#

ok so i have a bot for a server i'm in and it's sole purpose is to be annoying (it's approved by the server owner)

@bot.event
async def on_message(message):
    if "im" or "i'm" and "sad" in message.content.lower():
        await message.channel.send(f"{random.choice(okandgifs)}")
    await bot.process_commands(message)```
i want it to check if "i'm" or "im" are in a message, and if either of those are in a message check if it contains "sad"
if it contains "i'm" or "im" and also "sad" it's supposed to send a gif
how would i go about this? i just tried using "or" to check if "i'm" or "im" is in the message but that clearly didn't work
if i take out the "or" and just use one version of "i'm" it works though
unkempt canyonBOT
#

When checking if something is equal to one thing or another, you might think that this is possible:

if favorite_fruit == 'grapefruit' or 'lemon':
    print("That's a weird favorite fruit to have.")

While this makes sense in English, it may not behave the way you would expect. In Python, you should have complete instructions on both sides of the logical operator.

So, if you want to check if something is equal to one thing or another, there are two common ways:

# Like this...
if favorite_fruit == 'grapefruit' or favorite_fruit == 'lemon':
    print("That's a weird favorite fruit to have.")

# ...or like this.
if favorite_fruit in ('grapefruit', 'lemon'):
    print("That's a weird favorite fruit to have.")
slate swan
#

Kayle you need to await that function

#

kayle and i are different people lol

visual island
slate swan
#

Oh , sorry

#

and then f'{defprefix}'?

visual island
#

um?

#

where will you define defprefix?

slate swan
#

probably before i mention it..?

#

is that a trick question or

visual island
slate swan
#

Why define a variable for it and not use directly tho?

slate swan
#

¯_(ツ)_/¯

#

Any reasons for that?

visual island
visual island
slate swan
slate swan
slate swan
visual island
#

yea you can do that

slate swan
#
  File "D:\acrella\bot.py", line 59, in get_prefix
    prefix = prefixes[str(message.guild.id)]
KeyError: '900421408402866257'``` KeyError is the server id, its happening because its not in the prefixes.json file, how can i make it so that if the server doesnt have a custom prefix defined in the json file than the prefix is the default `('^')`?
```py
def get_prefix(bot, message):
    if not message.guild:
        return commands.when_mentioned_or("^")(bot, message)
    else:
        with open("data/prefixes.json", "r") as f:
            prefixes = json.load(f)

        prefix = prefixes[str(message.guild.id)]
        return commands.when_mentioned_or(prefix)(bot, message)```this is what i have as of now
gloomy coral
#

guyssssssssss

gloomy coral
visual island
slate swan
visual island
visual island
# gloomy coral ^

try moving your self.statusandfiles.start() to __init__ as on_ready could be dispatched multiple times. And see if it makes any difference

#

and by the way, you could replace this with len(self.bot.users) tho

        for guild in guilds:
            guild_count += 1
            for _ in guild.members:
                member_count += 1
slate swan
#

Can get we bot to. delete our command message after?

#

lets say:

boreal ravine
unkempt canyonBOT
#

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

Deletes the message.

Your own messages could be deleted without any proper permissions. However to delete other people’s messages, you need the [`manage_messages`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_messages "discord.Permissions.manage_messages") permission.

Changed in version 1.1: Added the new `delay` keyword-only parameter.
slate swan
#

so this deletes the user's message?

boreal ravine
#

yes, if you mean !ping or smth

slate swan
#

perfect thanks

visual island
#

you can use ctx.message for it

slate swan
#

How?

vale wing
#

Commands have ctx argument don't they

sullen shoal
#

Context.message returns the discord.Message instance of the message the command was invoked with

vale wing
#
@bot.command()
async def cmd(ctx):
    await ctx.message.delete()```
lament mesa
#

Oh

lament mesa
vale wing
#

I had same problem with changing voice chat name

#

I actually went to discord support and they said there were some issues with socket or smth

#

They sometimes happen for certain bots

slate swan
#

Pretty sure you don't need websockets to change voice channel names

#

It's a simple PATCH request to /channels/:id

gloomy coral
gloomy coral
#
member_count = 0
        for guild in guilds:
            for _ in guild.members:
                member_count += 1```
#

this wont slow down bot tht much right?

visual island
errant totem
#

Hello I am currently making a bot about displaying my minecraft server's status

visual island
errant totem
#

this is the code:

#
import discord
from discord.ext import commands
import requests



client = commands.Bot(command_prefix="!")

@client.command()
async def minecraft(ctx, arg):
    r = requests.get('https://aternos.org/server/' + arg + '?byName=true')
    json_data = r.json()

    description = json_data["server"]["motd"]
    online = str(json_data["server"]["online"])
    playerCount = str(json_data["server"]["playerCount"])

    embed = discord.Embed(
        title=arg + " Server Info",
        description='Description: ' + description + '\nOnline: ' + online + '\nPlayers: ' + playerCount,
        color=discord.Color.dark_green()
    )
    
    embed.set_thumbnail(url="https://i1.wp.com/www.craftycreations.net/wp-content/uploads/2019/08/Grass-Block-e1566147655539.png?fit=500%2C500&ssl=1")

    await ctx.send(embed=embed)

gloomy coral
errant totem
#

It says there is no module named requests.

gloomy coral
#

basic py man cmon

#

See this is this is the difference rn

#

why does this happen everytime i restart my bot?

rocky mist
gloomy coral
#

yes

#

i moved status update to init like u said

visual island
# gloomy coral

oh and add await self.bot.wait_until_ready() in the tasks.loop

gloomy coral
#

where?

#

at the very statrt?

#

ok ig this shld fix it

vale wing
#

@gloomy coral before the on_ready is called gateway already starts sending events and the code already starts accepting them

#

on_guild_remove receives test data I think

gloomy coral
#

ohh

vale wing
#

If your bot is written in cogs, just create a function with decorators

@yourLoop.before_loop
async def loop_waiter(self):
    await self.bot.wait_until_ready()```
gloomy coral
#

hmm

vale wing
#

You can put several decorators for one function if you have several loops

gloomy coral
#

or can i just do this

vale wing
#

Better do it in separated function

#

I don't think doing like you will cause performance issues, but it might slow loop down a bit

boreal ravine
#

camel cased functions

#

🚶‍♂️

vale wing
#

Anything wrong with them?

slate swan
#

You're not following the naming conventions

vale wing
#

It is up to you how to name them and I prefer camel case for loops

slate swan
#

It's not really "up to you"

#

you can do that , but that's not correct according to pep rules

slate swan
gloomy coral
#
ExtensionFailed: Extension 'cogs.games' raised an error: ImportError: cannot import name 'create_option' from 'discord_slash.utils.manage_components' (/usr/local/lib/python3.8/dist-packages/discord_slash/utils/manage_components.py)```

why?? it works everywhere else
slate swan
vale wing
#

Does it do anything to code performance? No. It may only affect code reading. Such a pointless topic to argue about

gloomy coral
gloomy coral
slate swan
#

Lol

slate swan
vale wing
#

As I said

slate swan
#

Slash commands are not components

vale wing
#

And since loops in terms of style of code are usually used like classes are (someLoop.start() for example), I prefer naming them like classes but with lower camel case

slate swan
#

Wrong

vale wing
#

Doesn't matter

#

Why would you argue about it

slate swan
#

At least don't give misinformation

#

Just say nothing and get over it

vale wing
#

I never said they are classes lol

slate swan
#

Classes are named like : ClassName iirc

vale wing
vale wing
slate swan
#

If I remember correctly

sullen shoal
vale wing
#

Did I say there's anything wrong with it

slate swan
#

Just move on

vale wing
#

Yeah

spark mortar
#

how to DM user

vale wing
#

!d discord.User.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**.
red sundial
#
def batonPass(friends, time):
    # Write your code here
    
    array = []
    
    if friends > time:
        array.append(time-1)
        array.append(time)
    
    elif friends < time:
        array.append(time+1)
        array.append(time)
    ```
#

whats wrong whtis this code

slate swan
#

How is that related to discord bots

#

There's nothing wrong with the code , depends on what you want to do

tropic briar
#
@bot.event
async def on_message(message):
  await bot.handler.propagate(message)
  await bot.process_commands(message)
  muted = message.guild.get_role(912979586495684618)
  message_split = message.content.split(".")
  for message_word in message_split:
    for bad_word in Filter:
      if(bad_word == message_word.lower()):
        await message.delete()
        await message.author.add_roles(muted)
``` The bot is not deleting the message when the bad word is in between the message
slate swan
#

because you split words at every . ,
I never saw anyone typing like : this.is.a.bad.word

tropic briar
slate swan
#

because you split words with .

tropic briar
#

It deltes when it is
bad_word

tropic briar
slate swan
#

How will "Hi bad_word hello" be equal to "bad_word"

#

Split it on basis of spaces

tropic briar
tropic briar
slate swan
#

You ain't checking if it's in the message , you check if message is bad word

tropic briar
#

ohh

slate swan
tropic briar
#

and it should work fine?

#

Oh cool it works, Thanks

slate swan
#

try and see

#

Nice.

tropic briar
#

I also want to make a discord invite check How can I do that

#

I am thinking of adding https://discord.gg/ in a list

#

but I am splitting up the message

velvet tinsel
#

hello I'm back

velvet tinsel
tropic briar
velvet tinsel
#

like h t t p s?

tropic briar
#

like dividing message into parts where there is a space

#

if there is a space in the message but I thought to change that

velvet tinsel
#

change that to...what?

tropic briar
#
for bad_wor in invite:
    if(bad_wor == message.lower()):
      await message.delete()
      print(bad_wor)
      print(message.content)
  ``` I thought that this code will check if there is a invite in a message
tropic briar
tropic briar
velvet tinsel
#

well you did if(bad_wor == mesage.lower()) which literally makes no sense

#

remove the brackets

tropic briar
#

the small brackets ?

velvet tinsel
#

no

tropic briar
#

around if?

velvet tinsel
#

yes

#

and add a space

tropic briar
#
for bad_wor in invite:
    if bad_wor == message.lower():
      await message.delete()
      print(bad_wor)
      print(message.content)
velvet tinsel
#

quite possibly, try it

#

and also can you give me the code for message?

tropic briar
#

lemme show you the whole function

velvet tinsel
#

and invite to make sure nothing is wrong with these as well?

velvet tinsel
tropic briar
#
@bot.event
async def on_message(message):
  await bot.handler.propagate(message)
  await bot.process_commands(message)
  muted = message.guild.get_role(912979586495684618)
  message_split = message.content.split(" ")
  for message_word in message_split:
    for bad_word in Filter:
      if(bad_word == message_word.lower()):
        await message.delete()
        await message.author.add_roles(muted)

  for bad_wor in invite:
    if bad_wor == message.lower():
      await message.delete()
      print(bad_wor)
      print(message.content)
``` the first for loop is to check bad words
#

invite and Filter are 2 list

velvet tinsel
#

yeah remove the brackets around the first if as well

tropic briar
#

still remove them?

velvet tinsel
#

and where is invite declared?

velvet tinsel
tropic briar
#
invite = ['https://discord.gg']
velvet tinsel
#

and bad_wor?

tropic briar
#
for bad_wor in invite:
    if bad_wor == message.lower():
      await message.delete()
      print(bad_wor)
      print(message.content)
velvet tinsel
#

ohhhh

tropic briar
#

Look bad_wor after for

velvet tinsel
#

nevermind I forgot python for a sec, lemme think about this

#

is there any error message or has the bot suddenly stopped working?

tropic briar
#

no I think

velvet tinsel
#

so...the bot stopped working?

tropic briar
tropic briar
velvet tinsel
#

ahhh....

tropic briar
velvet tinsel
#

try text = message.content

tropic briar
#

what is text?

velvet tinsel
#

and then if bad_wor == text.lower()

velvet tinsel
#

make sure the value is message.content

tropic briar
#

yes let's test the bot again

velvet tinsel
#

ok, tell me if it works

#

does it work?

tropic briar
#

yes

velvet tinsel
#

it works?

tropic briar
#

It works but there is a problem

velvet tinsel
#

what's the problem?

tropic briar
#

if I send https://discord.gg/ it deletes

#

but when I send a full server invite it doesn't

rocky mist
#

i cannot kick or ban

#

still

velvet tinsel
#

because message_word IS ALWAYS going to be bad_word

tropic briar
#

It also doesn't work when I put the link after some text

velvet tinsel
rocky mist
#

ofc

velvet tinsel
rocky mist
velvet tinsel
rocky mist
velvet tinsel
tropic briar
#

what should I do

rocky mist
jaunty terrace
#

When trying to get the bots top role do i use
bot.user.top_role
or
bot.top_role

rocky mist
tropic briar
#

To solve the division problem 😭

rocky mist
boreal ravine
rocky mist
velvet tinsel
#

I was gonna say bot.kick

velvet tinsel
boreal ravine
velvet tinsel
#

I have to go urgently I'll leave it to kayle

tropic briar
#

:bye:

rocky mist
#

idk

#

im new

jaunty terrace
#

on_message event?

rocky mist
ruby pulsar
#

anyone pls say how to get rid of this error

jaunty terrace
#

its probably just a replit error

ruby pulsar
#

O

#

Thanks @jaunty terrace i am coding a snakes and ladder bot

#

ok any other probs i will come back Cya :3

jaunty terrace
# rocky mist

admin just to ban? and do you have a on_message event?

ruby pulsar
#

helllo!

#

halo!

boreal ravine
ruby pulsar
#

i am writeing everything in the main.py file and i am not createing any file or folder is it ok? @boreal ravine or @jaunty terrace or anyone say is it ok?

boreal ravine
ruby pulsar
#

ok

#

do can i write everything in 1 file?

jaunty terrace
#

You can

#

Or you can use cogs

ruby pulsar
#

o

#

thanks vexify python

jaunty terrace
#

np

tropic briar
#
vouch_channel = bot.get_channel(891960155225350206)
if 'https://discord.gg/' in message.content.lower():
    if message.channel.id == vouch_channel:
      await message.delete()
      await message.channel.send(f'{message.author.mention} was Advertising, If you think this was a mistake then try contacting our staff about it.')
      await message.author.add_roles(muted)
``` Why is this not working
#

I want to make the code work only when there the channel ID = vouch_channel

velvet tinsel
jaunty terrace
#

if message.channel is vouch_channel:

#

@tropic briar that should work if im not wrong

tropic briar
#

yes

#

I made it work

jaunty terrace
#

I dont think vouch_channel returns an ID

tropic briar
#
vouch_channel = bot.get_channel(896754891882655764)
if 'https://discord.gg/' in message.content.lower():
    if message.channel.id == vouch_channel.id:
      await message.delete()
      await message.channel.send(f'{message.author.mention} was Advertising, If you think this was a mistake then try contacting our staff about it.')
      await message.author.add_roles(muted)
#

This is working, Thanks

slate swan
slate swan
tropic briar
#
advertise = bot.get_channel(893321334577303583)
if 'https://discord.gg/' in message.content.lower():
    if message.channel.id != advertise.id:
      await message.delete()
      await message.channel.send(f'{message.author.mention} was Advertising, If you think this was a mistake then try contacting our staff about it.')
      await message.author.add_roles(muted)
``` I want this code not to work in advertise channel but it is not working
#

The code is not working in any channel

slate swan
#

Why do you even need to get_channel and just use it's ID? Just do if message.channel.id != 123456...

tropic briar
#

anyways I made it work 😅

tropic briar
slate swan
#

yes but you're getting the whole channel object from cache, which might lead to obvious errors related to caching

#

Like if the channel exists but is not cached, this will raise AttributeError

#

If you just need id of the channel and you already have it, you don't really need to have a complete channel object for it

velvet tinsel
#

Ayyy aman

tropic briar
#

It's working right now , let it work 😄

visual island
velvet tinsel
#

Hi icy

visual island
#

hi

velvet tinsel
#

Damn Britain’s freezing

#

It’s kinda empty here

distant flax
#

howdy, anyone wanna explain to me if there is a way to apply async or multithreading to this ?? :>

headers = {
'authorization': token
}
def get_discord_ids(channel):
counter = 0
response = requests.get(f'https://discord.com/api/v9/channels/{channel}/messages?limit=100', headers=headers)
r = json.loads(response.text)
present = r[99]['id']
print(present)
while(counter < 10):
try:
response_history = requests.get(f'https://discord.com/api/v9/channels/{channel}/messages?before={present}&limit=100', headers=headers)
r_history = json.loads(response_history.text)
present = r_history[99]['id']
kill_rep = []
for item in r_history:
current = (item['author']['username']+'#'+item['author']['discriminator'])
kill_rep.append(current)
kill_rep = set(kill_rep)
kill_rep = list(kill_rep)
print(present)
with open('accounts-semi.txt', 'a+', encoding='utf-8') as f:
for item in kill_rep:
f.write(item + '\n')
counter = 0
except:
print('error')
counter += 1

get_discord_ids('401019644938289153')

velvet tinsel
#

!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.

boreal ravine
#

this channel is for discord bots

velvet tinsel
#

It is discord related

distant flax
#

that's a part of a bot

boreal ravine
distant flax
#

my bad i am a script kiddie

velvet tinsel
#

Look at the last line

tropic briar
#

How can we detect mass ping in a single message

boreal ravine
#

!d discord.Message.mentions

unkempt canyonBOT
#

A list of Member that were mentioned. If the message is in a private message then the list will be of User instead. For messages that are not of type MessageType.default, this array can be used to aid in system messages. For more information, see system_content.

Warning

The order of the mentions list is not in any particular order so you should not rely on it. This is a Discord limitation, not one with the library.

velvet tinsel
#

get_discord_ids

boreal ravine
#

yes

distant flax
velvet tinsel
#

async def

boreal ravine
#

What

velvet tinsel
#

I don’t really understand either

boreal ravine
#

😐

velvet tinsel
#

🤷‍♂️

boreal ravine
velvet tinsel
#

🤷

#

!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.

keen lark
#

btw

tropic briar
#

Something wrong

velvet tinsel
#

Yes

keen lark
#

i want to send 2 messages randomly

#

but how can i do one more

velvet tinsel
#

Random.choice

keen lark
#

oh thanks

velvet tinsel
#

!d random

unkempt canyonBOT
#

Source code: Lib/random.py

This module implements pseudo-random number generators for various distributions.

For integers, there is uniform selection from a range. For sequences, there is uniform selection of a random element, a function to generate a random permutation of a list in-place, and a function for random sampling without replacement.

On the real line, there are functions to compute uniform, normal (Gaussian), lognormal, negative exponential, gamma, and beta distributions. For generating distributions of angles, the von Mises distribution is available.

boreal ravine
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").
wheat heart
#

hi guys

velvet tinsel
#

Well

boreal ravine
#

pass in an iterable

wheat heart
#

help me pls

velvet tinsel
#

What do you need help with

wheat heart
keen lark
#

like random.choice(reponse, response2) ?

velvet tinsel
#

What’s the error

velvet tinsel
wheat heart
#

why does not work: specify the reason?

keen lark
#

e ?

velvet tinsel
#

Not related to discord bots at all

keen lark
boreal ravine
velvet tinsel
keen lark
#

oh tank

velvet tinsel
jaunty terrace
# wheat heart

Just a question why don't u use .reply instead of mentioning them in the embed

keen lark
#

learning + practicing

velvet tinsel
#

If you’re still learning you shouldn’t be doing discord bots

jaunty terrace
#

english?

keen lark
#

oof

jaunty terrace
#

practicing*

#

oh you spelled it right it looked weird

velvet tinsel
jaunty terrace
#

do basic practice things like a test or a game

slate swan
boreal ravine
wheat heart
#

@velvet tinsel

#

why don't sending specify the reason?

velvet tinsel
#

You did the same thing twice

#

In the code

wheat heart
#

how fix?

#

and 2 errors

#

Specify the user and specify the reason

velvet tinsel
#

I just said

#

You did the same thing twice

rocky mist
#

can some1 help?

velvet tinsel
velvet tinsel
rocky mist
wheat heart
#

idk

velvet tinsel
rocky mist
velvet tinsel
#

Bruh

#

😂

rocky mist
sullen shoal
#

uh these guys are so lucky they get help for their problems, everyones ignoring the issue i got lemon_pensive

wheat heart
#

i need two errors: specify the user, and r4ason

#

@velvet tinsel

sullen shoal
velvet tinsel
#

I sent you a screenshot

velvet tinsel
rocky mist
velvet tinsel
#

Yeah do it again

wheat heart
velvet tinsel
#

Yeah

wheat heart
#

elif i deleted

#

but only specify the user?

rocky mist
velvet tinsel
wheat heart
#

where specify the reaskn

velvet tinsel
rocky mist
#

doesn't work

wheat heart
#

@velvet tinsel

velvet tinsel
#

Do you have intents?

wheat heart
#

where specify the reason?

velvet tinsel
#

Bruh

#

Did you rerun it

wheat heart
velvet tinsel
#

@slate swan HELP ME IM HELPING THREE PEOPLE

wheat heart
#

where specify the reason error?

ruby pulsar
#

Hi

velvet tinsel
#

Do you have intents on?

ruby pulsar
#

Hello!

wheat heart
#

...

#

i need specify the reason

velvet tinsel
#

I don’t understand what you’re talking about

wheat heart
#

idk

velvet tinsel
#

You all have to turn intents on

wheat heart
#

how

boreal ravine
#

!intents <=

unkempt canyonBOT
#

Using intents in discord.py

Intents are a feature of Discord that tells the gateway exactly which events to send your bot. By default, discord.py has all intents enabled, except for the Members and Presences intents, which are needed for events such as on_member and to get members' statuses.

To enable one of these intents, you need to first go to the Discord developer portal, then to the bot page of your bot's application. Scroll down to the Privileged Gateway Intents section, then enable the intents that you need.

Next, in your bot you need to set the intents you want to connect with in the bot's constructor using the intents keyword argument, like this:

from discord import Intents
from discord.ext import commands

intents = Intents.default()
intents.members = True

bot = commands.Bot(command_prefix="!", intents=intents)

For more info about using intents, see the discord.py docs on intents, and for general information about them, see the Discord developer documentation on intents.

wheat heart
#

thx

velvet tinsel
#

THANK YOU KAYLE

#

YOU ARE MY SAVIOUR

velvet tinsel
unkempt canyonBOT
velvet tinsel
#

Intents

#

Turning it on?

boreal ravine
# unkempt canyon

I mean this already clears it out that they need to turn it on first if they even read what we give them

velvet tinsel
#

Ok but I don’t really trust the bot

#

It’s kinda hard to control it

wheat heart
#

i om writed this intents

boreal ravine
velvet tinsel
#

The bot

wheat heart
#

also

velvet tinsel
boreal ravine
velvet tinsel
#

@unkempt canyon

velvet tinsel
wheat heart
boreal ravine
wheat heart
velvet tinsel
velvet tinsel
wheat heart
#

hoowww toooo 2 error

#

1 is specify the user

velvet tinsel
#

Show us the errors

wheat heart
#

2 is specify the reason

velvet tinsel
#

Ok

boreal ravine
wheat heart
velvet tinsel
wheat heart
boreal ravine
velvet tinsel
#

Right let’s see

unkempt canyonBOT
velvet tinsel
#

Well that works

#

!d discord.Member

unkempt canyonBOT
#

class discord.Member```
Represents a Discord member to a [`Guild`](https://discordpy.readthedocs.io/en/master/api.html#discord.Guild "discord.Guild").

This implements a lot of the functionality of [`User`](https://discordpy.readthedocs.io/en/master/api.html#discord.User "discord.User").

x == y Checks if two members are equal. Note that this works with [`User`](https://discordpy.readthedocs.io/en/master/api.html#discord.User "discord.User") instances too.

x != y Checks if two members are not equal. Note that this works with [`User`](https://discordpy.readthedocs.io/en/master/api.html#discord.User "discord.User") instances too.

hash(x) Returns the member’s hash.

str(x) Returns the member’s name with the discriminator.
velvet tinsel
#

What does *, do in your code?

#

Because that may be the error

#

And also disable the error handler

#

To see the error

#

@wheat heart

#

Am I doing it right kayle?

boreal ravine
# velvet tinsel What does *, do in your code?

!e

def command(*a):
  return a
print(command(1, 2, 3, 4, 5))
``` I don't really know what its called but I know you can use it and then pass in all the arguments after that into the parameter next t it
unkempt canyonBOT
#

@boreal ravine :white_check_mark: Your eval job has completed with return code 0.

(1, 2, 3, 4, 5)
velvet tinsel
#

No I meant the *, argument

#

@wheat heart disable the error handler to see the error

maiden fable
boreal ravine
velvet tinsel
maiden fable
velvet tinsel
#

👌

boreal ravine
velvet tinsel
#

Ok

#

But still disable the error handler to see the error

#

?

#

@wheat heart hello?

#

I think he is offline

boreal ravine
#

hm

velvet tinsel
#

Kayle you’re the expert I’ll do the background work

orchid inlet
#

can someone help me

steep estuary
#

how i can get the user's time zone ?

visual island
#

you cant

steep estuary
#

then how all bots show the time same like user's time

#

skyra and giveaway bot also shows

#

the giveaway's ending time

visual island
#

<t:1111111111:R>

steep estuary
#

what ?

#

i cannot giet the time of user?

#

skyra can show the time of user

#

how it do that ?

visual island
#

no but discord can convert it to the user's time zone

steep estuary
#

how ?

#

my bot shows his host 's time

visual island
#

!d discord.utils.format_dt

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
#

can someone help me in #help-orange i am trying to make an economy discord bot pls

velvet tinsel
#

Winrar

#

What’s the best coding laptop

#

Ok

velvet tinsel
slate swan
#

It depends what you want to code

#

If you want to code some bots you don't need a really performant laptop

#

Whereas if you want to code stuff w/ backend that requires you to run a server in background, you need something more performant

boreal ravine
#

I've heard of a gaming laptop, but never a coding laptop

slate swan
#

i have a laptop with 4gigs of ram , intel i3 , and its enuf to suffice my coding needs

sullen shoal
#

i would have been doing video editing and other cool stuff today if i had a good pc

steep estuary
#

how this bot is showing my time ? howw?

slate swan
#

its a timestamp

full valley
#

does get_user_info still work or has it been updated to something else

slate swan
#

!d discord.Embed.timestamp

unkempt canyonBOT
#

The timestamp of the embed content. This is an aware datetime. If a naive datetime is passed, it is converted to an aware datetime with the local timezone.

steep estuary
#

no it is not in footer it is also in field

#

aaah!!

slate swan
#

thats a timestamp too

steep estuary
#

i tried that it is not showing correct time

slate swan
#

unix timestamps

steep estuary
#

ohk let me try once more

slate swan
steep estuary
#

how to use that timestamp ?

slate swan
#

gimme a sec

steep estuary
#

ok

modern fiber
#

DMs?

slate swan
#

these are the valid timestamp types

#

!e py from datetime import datetime print(int(datetime.now().timestamp()))

unkempt canyonBOT
#

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

1637835641
slate swan
#

this is how you may get the timestamp

slate swan
steep estuary
#

datetime.now().timestamp() ?

#

this will show the time of user ?

slate swan
#

that was an example , you need to use the timestamp function on your own datetime object

boreal ravine
#

Now that I think of it, a giveaway bot is really easy 🤔

steep estuary
slate swan
#

you dont need to show the time of the user

#

formatting it inside the unix timestamp will change it automatically

#

what does : <t:1637835641:T> show for you?

steep estuary
#

this

#

@slate swan

slate swan
#

eh , you from india?

steep estuary
#

u also ? ur name is like that ?

slate swan
#

ic, it (the timestamp )would have appeared different if you were from some other region

slate swan
steep estuary
#

what is this ?

slate swan
#

its a unix timestamp

steep estuary
#

should i use datetime.now().timestamp() ?

slate swan
#

<t: the timestamp int : type of timestamp> is how it works

slate swan
steep estuary
#

type of timestamp ?

#

<t: the timestamp int : type of timestamp>

#

? what to fill inplace of that ?

slate swan
#

yes there are many
<t:1637835641:F> , <t:1637835641:R> , <t:1637835641:f>

steep estuary
#

can u pls show me a example

#

i mean how u r using it ?

#

ohh i can see hovering it

slate swan
#

for example if i have my timestamp int as 1637835641 , i can use
<t:1637835641:F> for <t:1637835641:F>

steep estuary
#

how u know the number ?

#

and whats F ? is there any docs ?

slate swan
#

i got it above from eval command

steep estuary
#

ohk

slate swan
#

literally sent that a minute ago , its the timestamp type

steep estuary
#

<t:1637835641:F> ?

#

ohh

#

😓

#

so how i can get the time of the user ?

dusk pumice
#

How to get role ids with discord.member.roles???

#

!d discord.Member.roles

unkempt canyonBOT
#

property roles: List[Role]```
A [`list`](https://docs.python.org/3/library/stdtypes.html#list "(in Python v3.9)") of [`Role`](https://discordpy.readthedocs.io/en/master/api.html#discord.Role "discord.Role") that the member belongs to. Note that the first element of this list is always the default [‘@everyone](mailto:'%40everyone)’ role.

These roles are sorted by their position in the role hierarchy.
dusk pumice
#

like this

lament mesa
dusk pumice
#

only that code???

steep estuary
#

aaaa my bot users are using the bot

#

for giveaway can @slate swan u pls tell me

#

how to get the user's time ?

#

by that

slate swan
#

User's current time?

steep estuary
#

yes

#

<t:1637835641:F>

#

this is not correct time how to get user's time

lament mesa
#

make them input their timezone ig

steep estuary
#

?

slate swan
#

Don't think you can get user's timezone

dusk pumice
steep estuary
#

but other bots are doing

sick talon
lament mesa
unkempt canyonBOT
#

str.join(iterable)```
Return a string which is the concatenation of the strings in *iterable*. A [`TypeError`](https://docs.python.org/3/library/exceptions.html#TypeError "TypeError") will be raised if there are any non-string values in *iterable*, including [`bytes`](https://docs.python.org/3/library/stdtypes.html#bytes "bytes") objects. The separator between elements is the string providing this method.
sick talon
#

change your local timezone and see it will change 🤷‍♂️

slate swan
steep estuary
steep estuary
#

that created a problem for me

lament mesa
#

just use utc time, the users will convert it to their local time

steep estuary
#

and i am finding new way :(

slate swan
#

!d discord.Guild.region

steep estuary
unkempt canyonBOT
#

The region the guild belongs on. There is a chance that the region will be a str if the value is not recognised by the enumerator.

steep estuary
#

not working now

lament mesa
steep estuary
#

see here Region is showing deprecated

#

i am using ctx.guild.region here

sick talon
#

@steep estuary 🤷‍♂️ i changed my timezone and see this

steep estuary
#

?

slate swan
#

That's what I've been trying to explain for past 10 minutes

#

The Unix timestamps change according to the region

steep estuary
#

hmm

sick talon
#

¯_(ツ)_/¯

steep estuary
#

but that is not showing correct time

slate swan
#

it's correct time , for that region

sick talon
#

🤷‍♂️ it is different for different timezone

steep estuary
sick talon
steep estuary
#

<t:1637835641:F>

#

???

#

my time is 4:15

#

it is showing 3:50 so confusing 😫

sick talon
#

🤦‍♂️

steep estuary
#

:/

sick talon
lament mesa
#

thats the value of the timestamp you sent

sick talon
#

use the current unix timestamp

steep estuary
#

how i can get the number ? ?

lament mesa
#

datetime module

steep estuary
#

<t:what is the number ?:F>

lament mesa
#

time module

sick talon
velvet tinsel
#

Yes

steep estuary
#

datetime.utcnow().timestamp() this ?

#

this will give me the number ?

velvet tinsel
#

No

steep estuary
#

<t:1637817485:F>

#

-_-

velvet tinsel
#

now = datetime.now()

steep estuary
#

then ?

sick talon
steep estuary
#

how i will get the number ?

sick talon
#

using the datetime module

#

¯_(ツ)_/¯

steep estuary
#

then ?

#

after that ? which code ?

#

datetime.now() ?

lament mesa
#

<t:1637837431:F>

steep estuary
#

this is correct

#

how u got this number ?

lament mesa
#

datetime module

steep estuary
valid perch
#

datetime.datetime.now().timestamp()

steep estuary
#

i did that

valid perch
#

Then sub it into the correct format and send to discord for formatting

steep estuary
#

ohhh finally

#

i understood

#

i was doing datetime.utcnow().timestamp()

#

that was giving me wrong

slate swan
#

you need to use int() around it since it returns a float

steep estuary
steep estuary
slate swan
#

the + operator

steep estuary
boreal ravine
boreal ravine
#

try it and see 🤦‍♂️

steep estuary
#

not working

boreal ravine
#

Whats the error

steep estuary
#

it is showing that int object will not work with timedelta

slate swan
#

guys can someone help

def mute(user: discord.Guild.member.Guild.member, member: getattr(discord.Guild, 'member')):
  if not member:
    res = user
  else:
    res = member
  guild = discord.utils.get(bot.guilds, name=str(discord.utils.get(bot.guilds, id=member.guild.id).name))
  if not guild:
    return
  else:
    pass
  mute_role_list = []
  mute_role_list.append(discord.utils.get(bot.get_guild(res.guild.id).roles, name="m"+"u"+"t"+"e"+"d"))
  user.add_roles(mute_role_list[0])
  
  class Response:
    def __init__(self, guild):
      self.guild = guild
      pass
    def reply(self, arg):
      return "You have successfully been given the Muted role"
  response = Response(user.guild.get_member(user.id))
  await getattr(Response, "self.guild").get_channel(343944376055103488).send(str(int(bool(str(response.reply(None))))))
  await bot.wait_for("mess"+"age", check=lambda m: m.channel == m.channel.guild.get_channel(m.channel.id), timeout=int(0.06 * 600 / 60 * 10))
  return

#

please help

boreal ravine
#

🤨

slate swan
#

everyone knows it's getattr(discord.Guild, "member")

lament mesa
boreal ravine
#

I have no idea what getattr is

steep estuary
#

aa i got it

boreal ravine
#

But sure

slate swan
# boreal ravine Whats the issue
guys can someone help
def mute(user: discord.Guild.member.Guild.member, member: getattr(discord.Guild, 'member')):
  if not member:
    res = user
  else:
    res = member
  guild = discord.utils.get(bot.guilds, name=str(discord.utils.get(bot.guilds, id=member.guild.id).name))
  if not guild:
    return
  else:
    pass
  mute_role_list = []
  mute_role_list.append(discord.utils.get(bot.get_guild(res.guild.id).roles, name="m"+"u"+"t"+"e"+"d"))
  user.add_roles(mute_role_list[0])
  
  class Response:
    def __init__(self, guild):
      self.guild = guild
      pass
    def reply(self, arg):
      return "You have successfully been given the Muted role"
  response = Response(user.guild.get_member(user.id))
  await getattr(Response, "self.guild").get_channel(343944376055103488).send(str(int(bool(str(response.reply(None))))))
  await bot.wait_for("mess"+"age", check=lambda m: m.channel == m.channel.guild.get_channel(m.channel.id), timeout=int(0.06 * 600 / 60 * 10))
  return
#

that's the issue

boreal ravine
#

whats wrong

slate swan
#

I just sent the issue

boreal ravine
#

you didn't?

#

thats the code

slate swan
boreal ravine
boreal ravine
slate swan
#

the code

boreal ravine
#

oh my lord

lament mesa
#

send the error

slate swan
#

no

lament mesa
#

ok

velvet tinsel
#

wow

#

We can’t help you

velvet tinsel
#

You didn’t send an error

boreal ravine
rotund nova
#

my bot send commands double someone know how fix that? I think its error in code

slate swan
rotund nova
boreal ravine
#

😐

velvet tinsel
#

Ok we’re not helping you

slate swan
#

mean :(

velvet tinsel
#

You didn’t send the error

slate swan
#

lazy

velvet tinsel
#

😂😂

rotund nova
slate swan
boreal ravine
slate swan
#

stop being lazy

velvet tinsel
#

I think he’s trolling

slate swan
#

obviously not trolling

velvet tinsel
#

Fine

#

I don’t have my laptop

#

I thought you were a python dev

boreal ravine
velvet tinsel
#

😂

slate swan
velvet tinsel
#

Obviously not

boreal ravine
rotund nova
prisma spoke
#

what is a command invoke error

slate swan
prisma spoke
#

?

boreal ravine
#

!d discord.ext.commands.CommandInvokeError

unkempt canyonBOT
#

exception discord.ext.commands.CommandInvokeError(e)```
Exception raised when the command being invoked raised an exception.

This inherits from [`CommandError`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.CommandError "discord.ext.commands.CommandError")
slate swan
boreal ravine
velvet tinsel
#

😝 I know when someone’s trolling

visual island
#

he's trolling, just don't reply

boreal ravine
#

Annoying

visual island
#

or you will add the mess

rotund nova
velvet tinsel
#

Yes

#

Ok

prisma spoke
#

what exception

velvet tinsel
#

Read the docs

#

HTTPException

slate swan
boreal ravine
velvet tinsel
visual island
prisma spoke
slate swan
rotund nova
boreal ravine
#

an exception raised when the command got invoked

velvet tinsel
#

your error

boreal ravine
velvet tinsel
#

It was a raised error 😂

prisma spoke
# boreal ravine an exception raised when the command got invoked

i used the ban cmd..and

  File "C:\Python310\lib\site-packages\nextcord\ext\commands\core.py", line 168, in wrapped
    ret = await coro(*args, **kwargs)
  File "c:\Users\admin\Downloads\ROG.py", line 952, in ban
    await member.ban(reason=reason)
  File "C:\Python310\lib\site-packages\nextcord\member.py", line 621, in ban
    await self.guild.ban(self, reason=reason, delete_message_days=delete_message_days)
  File "C:\Python310\lib\site-packages\nextcord\guild.py", line 2642, in ban
    await self._state.http.ban(user.id, self.id, delete_message_days, reason=reason)
  File "C:\Python310\lib\site-packages\nextcord\http.py", line 329, in request
    raise Forbidden(response, data)
nextcord.errors.Forbidden: 403 Forbidden (error code: 50013): Missing Permissions

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Python310\lib\site-packages\nextcord\client.py", line 351, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\admin\Downloads\ROG.py", line 627, in on_command_error
    raise error
  File "C:\Python310\lib\site-packages\nextcord\ext\commands\bot.py", line 995, in invoke
    await ctx.command.invoke(ctx)
  File "C:\Python310\lib\site-packages\nextcord\ext\commands\core.py", line 895, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "C:\Python310\lib\site-packages\nextcord\ext\commands\core.py", line 177, in wrapped
    raise CommandInvokeError(exc) from exc
nextcord.ext.commands.errors.CommandInvokeError: Command raised an exception: Forbidden: 403 Forbidden (error code: 50013): Missing Permissions```
slate swan
lament mesa
prisma spoke
visual island
boreal ravine
rotund nova
slate swan
#

curious

boreal ravine
prisma spoke
#

invoked

prisma spoke
slate swan
prisma spoke
#

out of the box answer..

visual island
boreal ravine
#

ranger being funny

slate swan
#

@boreal ravine good afternoon

boreal ravine
#

isn't even afternoon here

prisma spoke
prisma spoke
prisma spoke
slate swan
#

who here is British

velvet tinsel
boreal ravine
unkempt canyonBOT
velvet tinsel
slate swan
#

mods don't ban I just want to know if any bot dev here is British

velvet tinsel
#

Me but not British

slate swan
visual island
#

@slate swan can you stop posting random things?

prisma spoke
slate swan
#

ok

velvet tinsel
# slate swan

Because you said afternoon and mentioned British, and I recognised the connection

boreal ravine
velvet tinsel
slate swan
#

we do a miniscule amount of trolling

boreal ravine
#

bruh

#

smh

velvet tinsel
#

Please leave if you’re gonna troll

orchid inlet
#

anyone that has a good tutorial for discord music queue

#

Python

velvet tinsel
#

🤷‍♂️

orchid inlet
#

I cant find any

velvet tinsel
#

Search it up then

#

It’s not that hard

orchid inlet
#

yes it is. I already have the coding for playing the song, its the commands for making a queue I need, and it aint that simple.

boreal ravine
velvet tinsel
#

I didn’t know anything about an economy bot and I learned it

orchid inlet
velvet tinsel
boreal ravine
boreal ravine
velvet tinsel
#

🤦

velvet tinsel
tawdry perch
#

if I have a message object, how do I create a link to that message?

orchid inlet
tawdry perch
#

hm?

boreal ravine
unkempt canyonBOT
velvet tinsel
lament mesa
tawdry perch
boreal ravine
lament mesa
#

!d array.array

unkempt canyonBOT
#

class array.array(typecode[, initializer])```
A new array whose items are restricted by *typecode*, and initialized from the optional *initializer* value, which must be a list, a [bytes-like object](https://docs.python.org/3/glossary.html#term-bytes-like-object), or iterable over elements of the appropriate type.

If given a list or string, the initializer is passed to the new array’s [`fromlist()`](https://docs.python.org/3/library/array.html#array.array.fromlist "array.array.fromlist"), [`frombytes()`](https://docs.python.org/3/library/array.html#array.array.frombytes "array.array.frombytes"), or [`fromunicode()`](https://docs.python.org/3/library/array.html#array.array.fromunicode "array.array.fromunicode") method (see below) to add initial items to the array. Otherwise, the iterable initializer is passed to the [`extend()`](https://docs.python.org/3/library/array.html#array.array.extend "array.array.extend") method.

Raises an [auditing event](https://docs.python.org/3/library/sys.html#auditing) `array.__new__` with arguments `typecode`, `initializer`.
velvet tinsel
#

!e

#

^^

orchid inlet
velvet tinsel
#

Find a python library that plays music

lament mesa
velvet tinsel
#

If you’re new you’re not supposed to be doing discord bots

tawdry perch
boreal ravine
lament mesa
#

the array module is bearly used

tawdry perch
#

which means?

orchid inlet
velvet tinsel
#

Learn python or else you’ll be asking a looottt of questions that any simple python coder can j

orchid inlet
velvet tinsel
orchid inlet
#

what is a good start then

slate swan
velvet tinsel
boreal ravine
# tawdry perch which means?

!e

class Message:
  @property
  def jump_url(self):
    return "jumped"
print(Message().jump_url)
``` no need to call it
unkempt canyonBOT
#

@boreal ravine :white_check_mark: Your eval job has completed with return code 0.

jumped
orchid inlet
#

like?

velvet tinsel
#

Learn print at least

velvet tinsel
slate swan
velvet tinsel
tawdry perch
boreal ravine
#

you dont need to learn about f-strings, those are the basics smh

boreal ravine
velvet tinsel
#

Well he doesn’t know any basic stuff

orchid inlet
#
print(thislist)```
velvet tinsel
#

He jumped straight to bots

tawdry perch
#

thx alot, I'll try to figure out smth

orchid inlet
#

this is a list right?

boreal ravine
slate swan
#

ye

velvet tinsel
#

Correct

#

Dictionaries?

orchid inlet
#

and what can I use that for exactly

velvet tinsel
slate swan
boreal ravine
visual island
orchid inlet
#

but is a list only used for print commands

boreal ravine
orchid inlet
#

okay

velvet tinsel
#

You can do a lot with lists

slate swan
#

you'll get the hang of it

velvet tinsel
# orchid inlet okay

If you really want to do discord bots, buy python crash course book, should get you up and going

#

DONT SKIP EVERYTHING READ EVERYTHING THROUGH OR YOU WONT UNDERSTAND

orchid inlet
#

okay. Im guessing that its a bad sign that I search EVERYTHING i do in python up on google

velvet tinsel
#

just a reminder

orchid inlet
#

kk

velvet tinsel
#

I search some stuff I don’t know

boreal ravine
#
Section/Part  | Importance rate in dpy (1-10)
---------------------------------------------
Variables | 10
Casting | 6 
Operators | 5 (not that important, but you'll still use it)
Arrays | 7 (very important)
How to import something | 6
Functions | 9 (the base of dpy & all modules)
What asyncio does | 6
Scopes | 6
Typehinting | 9 (a must for commands)
Decorators | 6 (a function inside a function)
Object Oriented Programming (OOP) | 10 (a must for creating command groups AKA cogs)
Subclassing/Inheritance | 7
---------------------------------------------
``` made this myself, it shows you whats important in dpy and what you should learn before using dpy
orchid inlet
#

Well. I dont know anything

#

as you can tell

slate swan
boreal ravine
velvet tinsel
#

😂

orchid inlet
boreal ravine
slate swan
velvet tinsel
#

Like me learning JavaScript OH OK ILL GO TO DISCORD JS

#

no

boreal ravine
orchid inlet
boreal ravine
tawdry perch
#

what was correct way to fetch a message ```py
await fetch_message(id)
fetch_message(id)

orchid inlet
velvet tinsel
#

Add dictionaries

slate swan
velvet tinsel
#

Pls

orchid inlet
#

so is discord bots what you guys are mainly coding?

steep estuary
#

how i can get timestamp of member.created_at ?

tawdry perch
#

fk

velvet tinsel
steep estuary
#

!d discord.Member.created_at

unkempt canyonBOT
#

property created_at```
Equivalent to [`User.created_at`](https://discordpy.readthedocs.io/en/master/api.html#discord.User.created_at "discord.User.created_at")
boreal ravine
#

Do you know what arrays are smh

slate swan
orchid inlet
boreal ravine
orchid inlet
velvet tinsel
boreal ravine
slate swan
orchid inlet
velvet tinsel
#

I once did a coding marathon of 5 hours

#

👌

tawdry perch
#

what is correct format for this? Do I need smth like ctx.guild... ```py
await fetch_message(msg.id)

slate swan
#

channel.fetch_message

velvet tinsel
tawdry perch
#

hmm

slate swan
velvet tinsel
#

or ctx.guild.channel

slate swan
#

doesn't need a guild

velvet tinsel
slate swan
#

afaik

velvet tinsel
tawdry perch
#

msg: discord.Message can I give a message link to this obj?

velvet tinsel
#

I dont really use channels a lot

orchid inlet
#

@boreal ravine what are the numbers for? how hard it is?

tawdry perch
#

or only ID?

boreal ravine
unkempt canyonBOT
#

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

Retrieves a single [`Message`](https://discordpy.readthedocs.io/en/master/api.html#discord.Message "discord.Message") from the destination.
velvet tinsel
boreal ravine
tawdry perch
orchid inlet
slate swan
#

discord py

velvet tinsel
#

yeah, variable difficulty is like 0 or 1

tawdry perch
#

!d discord.Message

unkempt canyonBOT
#

class discord.Message```
Represents a message from Discord.

x == y Checks if two messages are equal.

x != y Checks if two messages are not equal.

hash(x) Returns the message’s hash.
orchid inlet
#

ahhhh

steep estuary
#

???

slate swan
#

an api wrapper for the discord api

velvet tinsel
steep estuary
orchid inlet
#

@boreal ravine do I just search the words up on google, or is there like a good website or a dictonairy?

slate swan
#

googling works

velvet tinsel