#discord-bots

1 messages Β· Page 839 of 1

halcyon onyx
umbral night
#

can somebody please help me with making this?
where i can put important peoples names in my code and the bot pings them once said in a text channel
important people meaning admins, owners, mods etc
so i can say the name without using a prefix
and i can say it in a sentence

halcyon onyx
#

i think u have to get a good pc to run the game with bot i think its soo hard

fiery veldt
#

With gfx applied

halcyon onyx
#

ofc

#

but u have to be good gfx and programmer

fiery veldt
dense swallow
#

why isn't self.bot.avatar.url not working? is it self.bot.user.avatar.url?

using pycord 2.0b4

umbral night
#

can somebody please help me with making this?
where i can put important peoples names in my code and the bot pings them once said in a text channel
important people meaning admins, owners, mods etc
so i can say the name without using a prefix
and i can say it in a sentence

unkempt canyonBOT
#

property avatar: Optional[discord.asset.Asset]```
Returns an [`Asset`](https://discordpy.readthedocs.io/en/master/api.html#discord.Asset "discord.Asset") for the avatar the user has.

If the user does not have a traditional avatar, `None` is returned. If you want the avatar that a user has displayed, consider [`display_avatar`](https://discordpy.readthedocs.io/en/master/api.html#discord.ClientUser.display_avatar "discord.ClientUser.display_avatar").
dense swallow
#

I missed the user then, thanks

umbral night
#

can somebody please help me with making this?
where i can put important peoples names in my code and the bot pings them once said in a text channel
important people meaning admins, owners, mods etc
so i can say the name without using a prefix
and i can say it in a sentence

spring flax
#

Also, how would i go about doing the cooldown thing though

slate swan
#

!d discord.ext.commands.Bot.on_command_error

unkempt canyonBOT
#

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

The default command error handler provided by the bot.

By default this prints to [`sys.stderr`](https://docs.python.org/3/library/sys.html#sys.stderr "(in Python v3.9)") however it could be overridden to have a different implementation.

This only fires if you do not specify any listeners for command error.
slate swan
#

You need to override this (either using @bot.event, assigning bot.on_command_error to your own handler, or subclassing commands.Bot and writing your own on_command_error method)

spring flax
spring flax
slate swan
#

well that way you can catch one of these errors and handle it instead of allowing the default implementation to just print the traceback

umbral night
slate swan
#

You should check whether exception is an instance of commands.CommandOnCooldown and then take it from there

spring flax
#

I mean i don't get what's the difference between if isinstance(error, CommandOnCooldown)

slate swan
#

!d discord.ext.commands.CommandOnCooldown

unkempt canyonBOT
#

exception discord.ext.commands.CommandOnCooldown(cooldown, retry_after, type)```
Exception raised when the command being invoked is on cooldown.

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

What was suggested to you?

spring flax
#

What you were saying

#

Compared to handling commandoncooldown on a local error handler

slate swan
#

Using a local error handler for a pretty generic error like CommandOnCooldown is pretty pointless, why not implement it for every command?

spring flax
gaunt ice
scarlet spear
#

Hello, My name is Calvin, I am working on a discord bot. I need to let the bot run 24 hours every single day, but I don't know how. I am using replit and spyder Anaconda as my programming platform, so it would be great if someone can tell me how to let my bot run 24/7.

gaunt ice
#

sry wrong channel

gaunt ice
scarlet spear
final iron
gaunt ice
#

oh cmon

#

that og tutorial lol

final iron
#

Replit shouldnt be used for hosting

gaunt ice
scarlet spear
#

then what should I do?

gaunt ice
#

wher to ask help for this

final iron
#

Oracle free tier

final iron
gaunt ice
#

ok

#

and mediapipe not installing

final iron
umbral night
#

@final iron

#

would u know how to do this?

final iron
#

!d discord.on_message

unkempt canyonBOT
#

discord.on_message(message)```
Called when a [`Message`](https://discordpy.readthedocs.io/en/master/api.html#discord.Message "discord.Message") is created and sent.

This requires [`Intents.messages`](https://discordpy.readthedocs.io/en/master/api.html#discord.Intents.messages "discord.Intents.messages") to be enabled.

Warning

Your bot’s own messages and private messages are sent through this event. This can lead cases of β€˜recursion’ depending on how your bot was programmed. If you want the bot to not reply to itself, consider checking the user IDs. Note that [`Bot`](https://discordpy.readthedocs.io/en/master/ext/commands/api.html#discord.ext.commands.Bot "discord.ext.commands.Bot") does not have this problem.
final iron
#

!d discord.Message.content

unkempt canyonBOT
slate swan
final iron
#

Compare if the content is the message you're looking for

umbral night
#

uh

slate swan
umbral night
#

wdym

slate swan
umbral night
brave ocean
#
@Client.command()
async def test(ctx):
    await ctx.send("hello")
    await asyncio.sleep(20)
    await ctx.send("thanks for using this bot")

how can I can make a function like this ?

def msgs():
    await ctx.send("hello")
    await asyncio.sleep(20)
    await ctx.send("thanks for using this bot")
@Client.command()
async def test(ctx):
  msgs()
scarlet spear
#

and I just want to make the bot run 24/7

slate swan
# umbral night yes pls
@event or @commands.Cog.listener() or @listen("on_message")
async def on_message(message: discord.Message):
  if message.author.id == bot.user.id: return
  if message.content == "uwu": await message.channel.send("Hunter uwu")
slate swan
brave ocean
#

anyone ?

scarlet spear
final iron
slate swan
slate swan
final iron
#

Sure it does

brave ocean
#

so I make async msgs(ctx) ?

#

I wanna read the documentation but I lost the link

scarlet spear
slate swan
umbral night
#

@slate swan ive just ruined something

brave ocean
#

aight i'll try

slate swan
umbral night
slate swan
umbral night
#
@client.event
async def on_message(message: discord.Message):
  if message.author.id == client.user.id: return
  if message.content == "uwu": await message.channel.send("Hunter uwu")```
#

this is what i have

slate swan
umbral night
#

YES

#

THANKYOU

slate swan
#

its alright

brave ocean
slate swan
#

nope

umbral night
slate swan
umbral night
#

oh

slate swan
#

multiple statements

umbral night
#

oh

spring flax
umbral night
#

ah

#

yes

slate swan
# umbral night oh

so, I suggest that if you have many triggers, make a different function and pass in the message parameter in that then import the file to your on_message file and use the function
I'm deliberately making it sound difficult than it is, welcome

spring flax
slate swan
spring flax
umbral night
slate swan
#

nvm

spring flax
#

read the bottom lol

slate swan
slate swan
spring flax
unkempt canyonBOT
#

Creating a Python string with your variables using the + operator can be difficult to write and read. F-strings (format-strings) make it easy to insert values into a string. If you put an f in front of the first quote, you can then put Python expressions between curly braces in the string.

>>> snake = "pythons"
>>> number = 21
>>> f"There are {number * 2} {snake} on the plane."
"There are 42 pythons on the plane."

Note that even when you include an expression that isn't a string, like number * 2, Python will convert it to a string for you.

umbral night
#

oh right

#

forgot

cyan ermine
#
client = commands.Bot(command_prefix='a!')```
When i use a command with that prefix, no response
spring flax
maiden fable
#

Lmao

spring flax
#

second, if a command name is test, you should be doing a!test

brave ocean
#

@slate swan oh it worked thanks

cyan ermine
final iron
#

Bad variable naming πŸ˜”

spring flax
#

not commands.Client

cyan ermine
#

so do i make it commands.Client ?

final iron
#

No

spring flax
#

oh my

#

do bot = commands.Bot(...)

cyan ermine
#

Okay

maiden fable
#

I'mma pretend I ain't in the channel πŸ‘€

final iron
#

Imma go to sleep

#

πŸ˜”

cyan ermine
#

wait tryin it

#

Still not workin

slate swan
slate swan
final iron
#

What the sus

cyan ermine
#

?

brave ocean
maiden fable
spring flax
#

or, invoking the command

cyan ermine
#

a!test

spring flax
#

do you have an on_message event

cyan ermine
#

No

spring flax
#

show the command

#

code

cyan ermine
#

ok none of my command workin, showinn the which i tryin

#
@bot.command
@commands.has_permissions(manage_messages=True)
async def clearmsg(ctx, amount : int):
    await ctx.channel.purge(limit=amount+1)```
spring flax
#

@bot.command()

cyan ermine
#

?

#

Oh bracket

spring flax
#

do @bot.command() not @bot.command

slate swan
spring flax
slate swan
spring flax
#

why would it?

slate swan
cyan ermine
#

TY workin now

#

My mistake was so silly i changed entire code

#

i had to do a!clearmsg but i was doin a!purge

#

i forgot my command

#

all my command workin anyway now

maiden fable
slate swan
maiden fable
#

So if I run like !purge 9, it will delete only 8 messages since one of them is the command message

#

So we add that 1 to delete 9 messages excluding the command message

cyan ermine
#

when i did command, my command msg got deleted too

iron escarp
maiden fable
maiden fable
cyan ermine
#

I created a kick command and now error comin that couldn't find command 'kick'
Code :

@bot.command()
@commands.has_permissions(kick_members=True)
async def kick(ctx, member : disnake.Member, *, reason=None):
    await member.kick(reason=reason)
    await ctx.send(f'Kicked {member.mention}')
    await member.send("You have been kicked from the server, because:"+reason)```
spring flax
#

Dont do that

#

Don't kick him and then try to dm, it'll raise error

iron escarp
#

disnake member?

#

can someone clarify that to me

cyan ermine
spring flax
#

First dm then kick, is what you should do

spring flax
unkempt canyonBOT
#

class disnake.Member```
Represents a Discord member to a [`Guild`](https://docs.disnake.dev/en/latest/api.html#disnake.Guild "disnake.Guild").

This implements a lot of the functionality of [`User`](https://docs.disnake.dev/en/latest/api.html#disnake.User "disnake.User").

x == y Checks if two members are equal. Note that this works with [`User`](https://docs.disnake.dev/en/latest/api.html#disnake.User "disnake.User") instances too.

x != y Checks if two members are not equal. Note that this works with [`User`](https://docs.disnake.dev/en/latest/api.html#disnake.User "disnake.User") instances too.

hash(x) Returns the member’s hash.

str(x) Returns the member’s name with the discriminator.
iron escarp
#

ah, that make sense, I use pycord so it is discord.Member for me

spring flax
#

Caps ^ discord.Member lol

cyan ermine
#
@bot.command()
@commands.has_permissions(kick_members=True)
async def kick(ctx, member : disnake.Member, *, reason=None):
    await member.send("You have been kicked from the server, because:"+reason)
  await member.kick(reason=reason)
  await ctx.send(f'Kicked {member.mention}')```
#

Now is it correct?

#

Wait imma try it

spring flax
#

That'd only be a bit awkward when you try and kick an admin or where it raises discord.Forbideen

cyan ermine
iron escarp
#
@bot.command()
@commands.has_permissions(kick_members=True)
async def kick(ctx, member : disnake.Member, *, reason=None):
  await member.send("You have been kicked from the server, because:"+reason)
  await member.kick(reason=reason)
  await ctx.send(f'Kicked {member.mention}')
cyan ermine
#

all are in a line

iron escarp
#

wait leeme run

cyan ermine
#

wait im tryin ur code

#

It didn't kick

spring flax
#

Hold on

#

Who are you trying to kick?

cyan ermine
#

a bot with no perms

spring flax
#

Does it raise any error

cyan ermine
#

nop

#

not at all

spring flax
#

You have an error handler?

cyan ermine
#

yup

spring flax
#

Show that

cyan ermine
#

wait a big code came

#

after i ran command

#

like forbidden smth msg came

#

!hastebin

#

aaa

spring flax
#

That means you can't kick the bot

#

It's an admin

cyan ermine
#

wait

spring flax
#

Or wait actually

cyan ermine
#

imma kick my alt

spring flax
#

Are you tying to dm the bot?

#

That's the issue ^

cyan ermine
#

Idk if a bot can dm another bot

spring flax
#

It cannot

cyan ermine
#

I tried on my alt, it didn't work either

spring flax
#

Error?

cyan ermine
#
@kick.error
async def kick_error(ctx, error):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Please specify someone to kick.")```
#

My error handler didn't respond either

#

and error 403 : forbidden came in console

spring flax
#

Do

else: raise(error)```
#

Add it to yours

cyan ermine
plucky shoal
#

Add that else to your current if

cyan ermine
#

at end or between any specific line

spring flax
#
@kick.error
async def kick_error(ctx, error):
    if isinstance(error, commands.MissingRequiredArgument):
        await ctx.send("Please specify someone to kick.")
    else:
      raise(error)
cyan ermine
#

ok wait tryin

iron escarp
#
@bot.slash_command(guild_ids= guild_ids , name="kick" , description="BAN")
@commands.has_permissions(kick_members=True)
async def kick(ctx, member : discord.Member, *, reason=None):
  await member.kick(reason=reason)
  await ctx.respond(f'Kicked {member.mention}')
#

this worked for me

spring flax
#

what's respond?

#

oh pycord

iron escarp
#
@bot.command()
@commands.has_permissions(kick_members=True)
async def kick(ctx, member : disnake.Member, *, reas
  await member.kick(reason=reason)
  await ctx.send(f'Kicked {member.mention}')
#

try this

cyan ermine
#

Btw my command does not kick still

spring flax
iron escarp
#

i sent

cyan ermine
#

Error in your code

cyan ermine
iron escarp
#

oh wait

#
@bot.command()
@commands.has_permissions(kick_members=True)
async def kick(ctx, member : disnake.Member, *, reason=None):
  await member.kick(reason=reason)
  await ctx.send(f'Kicked {member.mention}')
#

try this one

cyan ermine
#

ok w8

#

Ayy it worked

#

Thx

iron escarp
#

You were trying to dm the user before kicking them

cyan ermine
#

Okay so as i was going through my old project i found my old modmail bot, i put code in my new bot, it ain't workin
It's big, idk how to hastebin

#
from disnake.ext import commands
from disnake utils
import disnake
import asyncio

class onMessage(commands.Cog):
  def __init__(self, bot):
    self bot =  bot

  @commands.Cog.listener()
  async def on_message(self, message):
    if message.author.bot:
      return 

    if isinstance(message.channel, disnake DMChannel): 
      guild = self.bot.get_guild(928108359641604186)
      cate = utils.get(guild.categories, name = Modmail)
      if no categ:
        overwrites = {
          guild.default.role : disnake.PermissionOverwrite(read messages = False)
          guild.me : disnake.PermissionOverwrite(read_messages = True)
        } 
        categ : await.guild.create_category(name = "Modmail", overwrites = overwrites)
      channels = utils.get(categ.channels, topic str(message.author.id)) 
      if not channel:
        channel = await categ.create_text_channel(name = f"{message.author.name}#(message.author.discrminator", topic = str(message.author.id))
        await channel.send("New Modmail created by {message.author.mention}")
      embed = disnake.Embed(description = message.content, color = 0x696969)  
      embed.set author(name = message.author, icon_url = message.author.avatar_url)
      await channel.send(embed = embed)

    elif isinstance(message.channel, disnake.TextChannel)
    if message.content.startsWith(self.bot.command_prefix):
      pass
    else :
      topic = message.channel.topic
      if topic:
        member = message.guild.get_member(int(topic))
        if member:
          embed = disnake.Embed(description  = message.content, color = 0x696969)  
          embed.set author(name = message.author, icon_url = message.author.avatar_url))
          await member.send(embed = embed)

 @commands.command()
 async def close(self,ctx):
   if ctx.channel.category.name == "Modmail"
   await ctx.send("Deleting the channel in 5 seconds")
   await asyncio.sleep(5)
   await ctx.channel.delete

def setup(bot):
  bot.add.cog(onMessage(bot))   


#

Ok 2 word away from hastebin

spring flax
#

!paste

unkempt canyonBOT
#

Pasting large amounts of code

If your code is too long to fit in a codeblock in discord, you can paste your code here:
https://paste.pythondiscord.com/

After pasting your code, save it by clicking the floppy disk icon in the top right, or by typing ctrl + S. After doing that, the URL should change. Copy the URL and post it here so others can see it.

cyan ermine
#

i try dmin bot but it doesnt do what it is intended to

spring flax
#
cate = ...
#####
if not categ: #wrong variable name ```
You should really try running the code and based on the errors, fix what's wrong
cyan ermine
#

can you edit my code and send?

spring flax
#

Nope

#

I can, sure but i won't spoonfeed you

cyan ermine
#

aa

#

lot of errors

#
if isinstance(message.channel, disnake DMChannel): 
      guild = self.bot.get_guild(928108359641604186)
      cate = Modmail
      if not categ:```
#

@spring flax

#

I sent code of the part

#

Hello?

unkempt canyonBOT
#
Not in a million years.

No documentation found for the requested symbol.

cyan ermine
#

?

spring flax
#

!d disnake.DMChannel

unkempt canyonBOT
#

class disnake.DMChannel```
Represents a Discord direct message channel.

x == y Checks if two channels are equal.

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

hash(x) Returns the channel’s hash.

str(x) Returns a string representation of the channel
cyan ermine
#

?

#
if isinstance(message.channel,disnake.DMChannel): 
      guild = self.bot.get_guild(928108359641604186)
      cate = Modmail
      if not categ:```
#

not workin

slate swan
#

how do i make it overwrite them

slate swan
spring flax
slate swan
# spring flax 1) why? 2) not my code

when grouping your commands in a cog , it would be easier to use a cog handler that does all that work for all of the commands in there
here what it would look like


    async def cog_command_error(self, ctx, error) -> Coroutine:
        """
        A Cog error handler
        ---
        arguements -> ctx discord.ctx
        error is the procided error.
        """
        view = View()
        button = Delete_button(ctx)
        view.add_item(button)
        if isinstance(error, commands.CommandInvokeError):
            error = error.original
        if isinstance(
            error,
            discord.Forbidden,
        ):

            return await ctx.send(
                embed=discord.Embed(
                    title="oh no an error occured",
                    description="the bot doesnt have enough perms",
                    color=Colors.red,
                ),
                view=view,
            )

i use this for all of my mod commands its eassier than doing it manually for each command

south ingot
#

when i type import discord it gives me a warning that the module is not found. how can i fix that? I am new to discord.py

slate swan
south ingot
#

yeah 3.10.2

slate swan
#

edit the members permission

#

how so ?

viscid wren
#

can someone send link of dpy 2.0

slate swan
#

specify the member and not the guild.default_role

south ingot
fast vortex
#

User bots are against the ToS

slate swan
slate swan
#

e.add_field(name='Second id:', value='' + "<t:" + str(time0) + ":F>" + '', inline=False)

#

it doesnt seem to work

boreal ravine
boreal ravine
#

they don't work in fonts like that

slate swan
#

why

boreal ravine
slate swan
#

yes

slate swan
boreal ravine
#

nope

#

use datetime.datetime objects instead lol

slate swan
#

i suggest just removing them from the main code

slate swan
slate swan
#

o i got an idea

#

Any good discord bot hosts, with good uptime?

slate swan
#

Does ”heroku” cost?

#

no

#

Oh ok

#

Well how good is it?

#

its free so dont expect much

#

Alr

#

Ima test it out, I made a >uptime command. So will check that

slate swan
#

or epikhost

outer flint
#
    # member joining:
    @commands.Cog.listener()
    async def on_member_join(self, member):
        channel = member.guild.system_channel
        if channel is not None:
            await channel.send(self.welcomeMessage[self.bot.index].format(str(member.mention)))
            self.bot.index = (self.bot.index + 1) % 9

I have this simple welcoming message
now, can I exclude it X channels? [I want the bot to not send the welcome message in server X with channel Y]

velvet tinsel
#

uhh....what?

#

I don't quite get what you're trying to do here

cold sonnet
#

if channel:
no
else:
send message to guild

gilded torrent
#

h

cold sonnet
#

if any("BadChannel" in channel.name for channel in guild.channels):

#

iterating through the channels to check if there's BadChannel in one of the channels' name

boreal ravine
cold sonnet
#

!vps

boreal ravine
#

reminder: free hosts can ratelimit you if they use a shared IP

cold sonnet
#

heck

slate swan
#

if "verified" in i:
verified = i.split(":")[1] "verified":false, it cant find the element

outer flint
wide tartan
#
answer = await self.bot.wait_for("message", timeout=120, check=lambda message: self.similar(message.content.lower(), trackname) or message.content.lower() == "stopgts" and ctx.channel == message.channel)
if answer.content.lower() == "stopgts":
    await ctx.send("Cancelled.")
    await self.MusicManager.skip(ctx, -10000000000000)
if answer.content.lower() in trackname:
    await ctx.send(f"{answer.author.mention} got the answer correct! It was **{trackname}**")
    await self.MusicManager.skip(ctx, -10000000000000)```

I'm trying to make it so that when someone guesses the song correctly, `if answer.content.lower() in trackname:` would happen
#

the reason why my if statement is if answer.content.lower() in trackname: because some songs has "feat" or "()" in the title and it won't work if the person doesnt include it

leaden jasper
#

!e

print('song' in 'song()')
unkempt canyonBOT
#

@leaden jasper :white_check_mark: Your eval job has completed with return code 0.

True
leaden jasper
#

@wide tartan it works?

wide tartan
#

Not really

#

it doesnt send anything

supple thorn
#

!e ```py
print('Song' in 'song()')

unkempt canyonBOT
#

@supple thorn :white_check_mark: Your eval job has completed with return code 0.

False
supple thorn
wide tartan
supple thorn
#

Oh

supple thorn
#

Which it should have capital

wide tartan
#

no, content.lower basically makes it case insensitive

visual island
wide tartan
visual island
#

try printing answer.content

jade tartan
#

Is there any one here that knows how to make like where ur bot asks you questions from running the command in the discord server and then saves the info on the server and also sends you the results on the dm

#

If that make sense

#

If not here is a screenshot

#

And then the result will come out like this

wide tartan
supple thorn
# wide tartan

Try removing the .content.lower() on the if statement for the trackname

#

And answer with capitals

supple thorn
#

Only remove the .lower()

wide tartan
#

seems like that worked

#

but how can i include lower()

supple thorn
#

Lower the trackname

wide tartan
supple thorn
#

What do you actually want

wide tartan
#

lower() makes it case insensitive, right? I need to include that

supple thorn
#

Lower makes it not capitals

#

So if you send this

#

HELLO

#

It gets turned into hello

kindred drum
#
async def tempban(self, ctx, *, args):
        if "d" in args:
            days = ''.join(re.findall("\d", args))
        print(days)
        
        if "h" in args:
            hours = ''.join(re.findall("\d", args))
        print(hours)```
yo im new to regex, right now this prints "1011" for both if statements if **10d 11h** is inputted, I need it to separate hours from days etc, anyone got a easy way to do this
wide tartan
#

I've tested it before and it worked like that

supple thorn
unkempt canyonBOT
#
Fat chance.

No documentation found for the requested symbol.

supple thorn
#

Which was it

#

!docs str.lower

unkempt canyonBOT
#

str.lower()```
Return a copy of the string with all the cased characters [4](https://docs.python.org/3/library/stdtypes.html#id15) converted to lowercase.

The lowercasing algorithm used is described in section 3.13 of the Unicode Standard.
wide tartan
#

Oh never mind, yeah i realize

#

how can i make it case insensitive then

supple thorn
wide tartan
#

doesnt work

supple thorn
wide tartan
#

nope

supple thorn
wide tartan
supple thorn
#

Yeah that might be better

wide tartan
#

when you say message content, do you mean the answer variable?

supple thorn
#

You should of printed answer.content

wide tartan
#

oh wait

tacit token
#

hi guys how can i make per server welcome channel? if i create channel and i write !setwelcomechannel the bot get id for the channel

supple thorn
wide tartan
supple thorn
#

The if statement didnt trigger right

#

Probably cause that is an 0

wide tartan
#

oh

#

for the if statement?

#

so im assuming this?

answer = await self.bot.wait_for("message", timeout=120, check=lambda message: self.similar(message.content.lower(), trackname.strip().casefold() == answer.content.strip().casefold()) or message.content.lower() == "stopgts" and ctx.channel == message.channel)```
hazy oxide
#

Guys

#

I can't install nextcord on replit

#

Can someone help?

supple thorn
#

Probably a def

wide tartan
#
def similar(self, s_1, s_2): return SequenceMatcher(None, s_1, s_2).ratio() > 0.6```
hasty axle
#

guys i needed help with embeds. I have a few custom gifs i want to send in a embed on command. How do i do that?

jolly karma
#

@mental bloom
sir i need some help

wide tartan
#

not exactly sure

jolly karma
#

@nova summits

#

Bruh

#

Sorry

#

I just need a bot that changes my server name to something else every 2seconds

supple thorn
jolly karma
#

Idk how do i make it

wide tartan
#

for comparing

unkempt canyonBOT
#

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

False
wide tartan
#

s_1 and s_2

distant pendant
#

I made a on_message event, and now my other commands stopped working.

wide tartan
#

I see

jolly karma
#

Oh but i saw a server do that and i dont think it happened to them

distant pendant
#

No errors

pale turtle
distant pendant
wide tartan
pale turtle
distant pendant
jolly karma
#

So what happens if i get a rate limit?

#

I hope my pc doesn't explodes

wide tartan
#

hm

jolly karma
#

Oh what about self bots

#

H wait those are against toc now

wide tartan
jolly karma
#

But those are againts TOC

#

Ikr we should not do self botting

#

My friends be like gaining couple million dank memers from self bots

wide tartan
#

im sure they'll understand once their accounts get disabled

jolly karma
#

Cause discord bypasses

vale wing
#

It is even said in dank memer's ToS that usage of bots will lead to acc blocking

jolly karma
#

The bot shuts itself after randon hours

jolly karma
#

Ik ik i dont know how to use self bots so i always stick with normal bots

#

Lol

vale wing
#

And yeah let's drop the topic

jolly karma
#

Ye

#

Wydm?

vale wing
#

Before 2.0 it was letting you to

#

Now you can't at all

jolly karma
#

My friend has a self bot that helpes him do maths

#

Here is my token wait

unkempt canyonBOT
#

Hey @jolly karma! I noticed you posted a seemingly valid Discord API token in your message and have removed your message. This means that your token has been compromised. Please change your token immediately at: https://discordapp.com/developers/applications/me

Feel free to re-post it with the token removed. If you believe this was a mistake, please let us know!

wide tartan
#

why do they have the bot argument for booleans in bot.run() 🀨

#

or did they remove that when intents came

jolly karma
unkempt canyonBOT
#

run(*args, **kwargs)```
A blocking call that abstracts away the event loop initialisation from you.

If you want more control over the event loop then this function should not be used. Use [`start()`](https://discordpy.readthedocs.io/en/master/api.html#discord.Client.start "discord.Client.start") coroutine or [`connect()`](https://discordpy.readthedocs.io/en/master/api.html#discord.Client.connect "discord.Client.connect") + [`login()`](https://discordpy.readthedocs.io/en/master/api.html#discord.Client.login "discord.Client.login").

Roughly Equivalent to...
jolly karma
#

!e help

unkempt canyonBOT
#

@jolly karma :x: Your eval job has completed with return code 1.

001 | Traceback (most recent call last):
002 |   File "<string>", line 1, in <module>
003 | NameError: name 'help' is not defined
wide tartan
#

i meant like bot.run("token", bot=False)

jolly karma
#

Bruh

#

What are its commands?

round dune
#

most likely you want to drop this topic

#

!rule 5 as per

unkempt canyonBOT
#

5. Do not provide or request help on projects that may break laws, breach terms of services, or are malicious or inappropriate.

jolly karma
silent portal
#

Hi, is there a way I can check if a user is speaking in a Voice Channel? Like when the green circle is around that member when he talks?

jolly karma
#

Dude this bot can be hacked easily

#

!e import os

unkempt canyonBOT
#

@jolly karma :warning: Your eval job has completed with return code 0.

[No output]
jolly karma
#

-_-

round dune
#

it is nsjailed, very safe

jolly karma
#

Can i run shell?

jolly karma
#

Sure let me learn how to hack first

wide tartan
#

@slate swan by the way, im assuming this is what you meant?

answer = await self.bot.wait_for("message", timeout=120, check=lambda message: (message.content.lower(), trackname.strip().casefold() == message.content.strip().casefold()) or message.content.lower() == "stopgts" and ctx.channel == message.channel)```
jolly karma
#

@wide tartan can you help?

wide tartan
#

?

jolly karma
#

I wanna make a bot that change dthe server name in some particularl time

jolly karma
wide tartan
#

if you're saying every 2 seconds, please dont do that

#

2 seconds is definitely a 45 minutes API block

regal pulsar
#

lol

jolly karma
#

No its oky it woukd be a cool way to delete my old server

unkempt canyonBOT
#

You are not allowed to use that command here. Please use the #bot-commands channel instead.

jolly karma
wide tartan
#

instead of answer.content.strip(), you meant message.content.strip()?

#

or you could do tasks.loop^

vague grove
#

its not good to use time for sleep, use asyncio

await asyncio.sleep(2)

also make sure you import it

heavy folio
#

mhm since time is blocking

vague grove
#

whatever goes

spring flax
#

Anyone can suggest a good free hosting for a small bot?

#

Well, free hosting

hazy oxide
#

Why I can't install nextcord on replit?

#

Should I uninstall discord module first?

#

Please help

latent dune
#

anyone able to help bot urn1350.net Message the Show please as much as possible

honest vessel
#

cogs so nice you can unload and load em after changed code and it updates ❀️

spring flax
#

anyone know oracle hosting platform?

manic wing
#

dude there is no such thing as good free hosting

spring flax
manic wing
#

w h a t

spring flax
#

what

tacit token
#

hi guys how can i make reaction message. i i react the bot say Hello

#

if*

bleak karma
#

is codegrepper a hacking site? 😭

tacit token
#

why?

bleak karma
#

i just sent a link to my friend to ss everything in the codegrepper link in hopes of answers but they got hacked

#

so they blame it all on me

hoary cargo
#

Gj

tacit token
#

a try this in the video but the try not work

bleak karma
hoary cargo
unkempt canyonBOT
#

disnake.on_raw_reaction_add(payload)```
Called when a message has a reaction added. Unlike [`on_reaction_add()`](https://docs.disnake.dev/en/latest/api.html#disnake.on_reaction_add "disnake.on_reaction_add"), this is called regardless of the state of the internal message cache.

This requires [`Intents.reactions`](https://docs.disnake.dev/en/latest/api.html#disnake.Intents.reactions "disnake.Intents.reactions") to be enabled.
tacit token
vale wing
#

Why the heck so long timeout

#

Just set it to None

vale wing
#

reaction_add correct

#

And except not ex

#

What tutorial did you watch and what is your python knowledge

tacit token
#

i never use on_reaction_add and i search videos but every video "react role"

hoary cargo
heavy folio
# tacit token

goodness member can never be none in that case #tutorialsbad

hoary cargo
hoary cargo
#

And he uses replit to write code uncanny

rain olive
#

lol

tacit token
#

bruh codegrabber destroyed

lament mesa
hoary cargo
hoary cargo
heavy folio
#

use dpy buttons

cold sonnet
#

you won't achieve anything with free heroku

heavy folio
#

upgrade to dpy beta

cold sonnet
#

you gotta pay there too

heavy folio
#

uh

#
pip install git+https://github.com/Rapptz/discord.py
cold sonnet
tacit token
#

so i how to convert this to on_reaction_add

hoary cargo
#

Just leave dpy with other shit stuff like discord components and upgrade to some decent fork

slim ibex
#

πŸ—Ώ

spring flax
hoary cargo
#

What lib is that

tacit token
lament mesa
hoary cargo
#

YEPW you won't get help with that, none using that crap

spring flax
#

yeah it'll only be for one server

tacit token
#

chill out

hoary cargo
cold sonnet
#

Rush get no knowledged

hoary cargo
#

.

lament mesa
hoary cargo
#

disnake, pycord have already all features discord pushed out

#

and don't dare to talk about hikari, assuming to you probably there's no decent python lib

heavy folio
#

pycord is shit

slim ibex
#

||pincer||

hoary cargo
#

this i can agree with

slim ibex
hoary cargo
heavy folio
meager chasm
#

What about it is shit?

heavy folio
#

they claim danny's work as theirs hear-say + overrated

hoary cargo
#

PopcornPepe the devs

#

and their community in general is garbage

heavy folio
#

honestly i might just change to edpy/disnake in april

manic wing
#

disnake

hoary cargo
#

disnake is the most reasonable solution

manic wing
#

pycord just got a bunch of children, overhyped it and made it crap

manic wing
#

same with nextcord except nextcord hasnt done a single thing

rain olive
#

theyre just changing namespace πŸ€·β€β™‚οΈ

meager chasm
heavy folio
#

if i even have time for that

rain olive
manic wing
#

hikari is better than the forks

heavy folio
#

because it isnt a fork

manic wing
#

except disnake

hoary cargo
#

hikari is a whole different library, quite meh idk, i don't like it

meager chasm
#

Why is everyone saying pycord is shit but then not saying what about it is shit

hoary cargo
#

pepeannoyed just read the chat

#

here we have a pycord fanboy zamn

meager chasm
#

I'm just asking why everyone is calling it shit and now im a fanboy? xdd

cold sonnet
#

is VSC a genius?

manic wing
cold sonnet
#

no

#

well yes but no

#
if isinstance(error, commands.CommandOnCooldown):
    ...
```in this if statement, error is gonna be typehinted to commands.CommandOnCooldown
#

how cool's that

spring flax
#

what

#

how is that visual studio code

#

its python

cold sonnet
#

hm

spring flax
#

!d isinstance

unkempt canyonBOT
#

isinstance(object, classinfo)```
Return `True` if the *object* argument is an instance of the *classinfo* argument, or of a (direct, indirect, or [virtual](https://docs.python.org/3/glossary.html#term-abstract-base-class)) subclass thereof. If *object* is not an object of the given type, the function always returns `False`. If *classinfo* is a tuple of type objects (or recursively, other such tuples) or a [Union Type](https://docs.python.org/3/library/stdtypes.html#types-union) of multiple types, return `True` if *object* is an instance of any of the types. If *classinfo* is not a type or tuple of types and such tuples, a [`TypeError`](https://docs.python.org/3/library/exceptions.html#TypeError "TypeError") exception is raised.

Changed in version 3.10: *classinfo* can be a [Union Type](https://docs.python.org/3/library/stdtypes.html#types-union).
cold sonnet
#

it's still cool

spring flax
#

uhmm

cold sonnet
hoary cargo
#

artistic_hmm you didn't know this already lol

thick sigil
#

A basic python builtin functiln

spring flax
#

Not sure why you'd think thats something with vsc

hoary cargo
#

^ has nothing to do with vsc but more like python kek

manic wing
meager chasm
#

VSC doesn't handle type checking, you need to install an extension like Pyright for that

cold sonnet
#

Pyright?

#

why not just

meager chasm
#

Pylance uses Pyright for typechecking

#

Under the hood, Pylance is powered by Pyright, Microsoft's static type checking tool.

manic wing
#

therefore counted as visual studio code

hoary cargo
#

cap

#

vsc itself don't handle shit

honest vessel
manic wing
#

without visual studio code you wouldnt have that though

slate swan
#

Suggest some Preferable forks? 😳

cold sonnet
meager chasm
slate swan
hoary cargo
#

vsc is just a text editor WhenS6SeesMikeGqScore with some plugins trying to be a legit ide

cold sonnet
manic wing
slate swan
#

or they just continuing the everyday discord bots channel rofl

cold sonnet
#

wondering when okimii can come back

jolly karma
#

awh thanks (:

manic wing
#

what happened to okimii

slate swan
cold sonnet
#

he my homie

jolly karma
jolly karma
cold sonnet
#

no

cold sonnet
#

hi

manic wing
#

@cold sonnet do you mean from discord.ext import commands?

jolly karma
cold sonnet
#

I mean that code is so wrong

jolly karma
cold sonnet
#

it's blocking and rate-limiting

manic wing
#

?

slate swan
cold sonnet
#

why does my about me look like that now

jolly karma
cold sonnet
#

pretty sure I didn't make that mistake

jolly karma
slate swan
manic wing
jolly karma
cold sonnet
#

the code I responded to

jolly karma
#

whatsup?

cold sonnet
#

I thought you responded to my response

manic wing
#

no

#

i was talking about your about me

#

you did import commands

cold sonnet
#

it's good now

jolly karma
#
lol
slate swan
jolly karma
manic wing
#

also im pretty sure you dont call when_mentioned in command_prefix

jolly karma
slate swan
#

also
I have a question

jolly karma
jolly karma
#

!e print ("cats are cute <3")

unkempt canyonBOT
#

@jolly karma :white_check_mark: Your eval job has completed with return code 0.

cats are cute <3
slate swan
#

How do I grab the webhook url for a channel using its ID?

boreal ravine
slate swan
boreal ravine
manic wing
unkempt canyonBOT
#

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

Gets the list of webhooks from this channel.

Requires [`manage_webhooks`](https://discordpy.readthedocs.io/en/master/api.html#discord.Permissions.manage_webhooks "discord.Permissions.manage_webhooks") permissions.
slate swan
#

uh

manic wing
#

you get the channel

jolly karma
manic wing
#

get its webhooks

#

and take your choosing

slate swan
#

ic thanks

manic wing
slate swan
tacit token
#

guys the user why not used?

boreal ravine
#

nice

boreal ravine
honest vessel
#

so how can i remove this unneccesary !help from helpclass

tacit token
manic wing
honest vessel
# manic wing did you make the help command?

class My1Help(commands.HelpCommand):
    def get_command_signature(self, command):
        return '%s%s %s' % ("!", command.qualified_name, command.signature)

    async def send_bot_help(self, mapping):
        embed = disnake.Embed(title="Help", colour=dh.color["blurple"])
        for cog, commands in mapping.items():
            filtered = await self.filter_commands(commands, sort=True)
            command_signatures = [self.get_command_signature(c) for c in filtered]
            if command_signatures:
                cog_name = getattr(cog, "qualified_name", "No Category")
                embed.add_field(name=cog_name, value="\n".join(command_signatures), inline=False)

        channel = self.get_destination()
        await channel.send(embed=embed)
boreal ravine
jolly karma
#

can anyone help me with a bot that lags a server (i am not doing this for any wrong purpose just an educational project and finding bugs in discord)

slate swan
slate swan
jolly karma
distant pendant
#

Can I send an msg by just the id of a user?

boreal ravine
jolly karma
boreal ravine
#

put the code I sent inside the other code that I said (in it's __init__)

distant pendant
slate swan
jolly karma
hoary cargo
unkempt canyonBOT
boreal ravine
hoary cargo
slate swan
jolly karma
hoary cargo
honest vessel
#

@boreal ravinethanks perfect!

jolly karma
#

anyone wannna help me plss?

boreal ravine
slate swan
#

also, another q

#

nvm I forgot

jolly karma
#

!e print("help me");

slate swan
#

oh yeah, How do I add options to slash commands in disnake ;-;

dull terrace
#

You have to send a file aswell, i.e. await ctx.send(file=file, embed=embed)

now once you've sent that it's impossible to remove previous files, as far as i'm aware.

honest vessel
#

@jolly karmayou wanna do bughunting but asking for help for lagging a server for educational purpose MONKA

boreal ravine
slate swan
kindred drum
#

hey whats the best way to make a temp ban command, cause like I was gonna check when a user tries to join and unba them but apparently there is no check for that

jolly karma
heavy folio
#

no

slate swan
heavy folio
#

no

#

that aint a thing

jolly karma
kindred drum
heavy folio
kindred drum
#

any other suggests

heavy folio
#

or other way i forgot

jolly karma
honest vessel
#

database and task

kindred drum
heavy folio
heavy folio
jolly karma
kindred drum
#

whaen do I check? when someone sends a message

#

how do I make a task

kindred drum
heavy folio
#

i use that but meh

slate swan
kindred drum
#

oh god that looks not fun

honest vessel
hoary cargo
kindred drum
#

self.lock = asyncio.Lock()
self.bulker.start() do I need this?

honest vessel
#

@kindred drumyou use cogs?

heavy folio
#

There is now a special extension for just creating background loops:

from discord.ext import tasks

@tasks.loop(seconds=5)
async def my_loop():
    print('Hello World')

my_loop.start()```
The time until which the above loop will run is dependent upon human psychology, laws of energy and cosmos.
That is:
β€’ You get bored of it
β€’ The power goes down and your script stops working
β€’ The universe explodes

Read more about it here: https://discordpy.readthedocs.io/en/latest/ext/tasks/ @kindred drum
hoary cargo
# slate swan ah I see, ty

thumbsup this shit useful if you don't want users to input other things than they should, i kinda use it quite a lot

honest vessel
#
class myclass(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
        self.mytask.start()

    def cog_unload(self):
        self.mytask.stop()

    @tasks.loop()
    async def mytask(self):
          #what u want to run

def setup(bot):
    bot.add_cog(myclass(bot))
distant pendant
#

Is it possible to msg a user without sharing a serving with him?

honest vessel
#

no

hoary cargo
#

FeelsAmericanMan sadly

kindred drum
honest vessel
slate swan
#

uhm idk why after.activity doesnt return "test"```py
@client.event
async def on_member_update(before,after):

if after.activity == "test":
print("Yes")
print(after.activity)

hoary cargo
#

is there something like after activity ?

slate swan
hoary cargo
#

artistic_hmm i know

slate swan
#

after is a memer

#

member*

#

so idk

hoary cargo
#

though what u doing in there it's weird

#

ok then you shouldn't have any problem handling it by yourself SMILERS

slate swan
slate swan
#

i've been trying for like 1h

#

@hoary cargo uh.....this gives me type error?

#

or am I being too dumb as always

hoary cargo
unkempt canyonBOT
#

disnake.on_presence_update(before, after)```
Called when a [`Member`](https://docs.disnake.dev/en/latest/api.html#disnake.Member "disnake.Member") updates their presence.

This is called when one or more of the following things change:

β€’ status

β€’ activity

This requires [`Intents.presences`](https://docs.disnake.dev/en/latest/api.html#disnake.Intents.presences "disnake.Intents.presences") and [`Intents.members`](https://docs.disnake.dev/en/latest/api.html#disnake.Intents.members "disnake.Intents.members") to be enabled...
hoary cargo
#

i think this is what you are looking for

slate swan
#

also on_member_update is the samething as on_presence_update

hoary cargo
slate swan
slate swan
#

and the other one in 2.0v

#

i believe idk

hoary cargo
slate swan
#

does disnake have on_member_update event?

slate swan
slate swan
#

yeah...

#

on_member_update and on_presence_update?

slate swan
slate swan
#

this is what i get

#

#bot-commands

hoary cargo
# slate swan this is what i get

uncanny that's weird, tbh never encountered that error and i use choices in many commands
so you store your choices in mode like

mode: commands.Param(choices=['Vent', 'Welcome or Leave'])
slate swan
#

what do I do now-

maiden fable
#

Don't add slash commands and request for message intent

maiden fable
#

Wait u r making the slash command or ares?

honest vessel
#

in the docs it sais mode: str = commands.Param()

slate swan
#

oh wow smh

maiden fable
#

Then stop making those and use simple text commands ezz

honest vessel
#

try add name

nimble plume
#

Heyo im here hello πŸ‘‹

maiden fable
#

Hi

honest vessel
#
mode: str = commands.Param(name="something", choices=['Vent', 'Welcome or Leave'])
hoary cargo
#

you don't actually need a name though

nimble plume
#

πŸ‘

honest vessel
#

you shaking ur head alot

slate swan
honest vessel
#

babyshake-syndrome

hoary cargo
#

Baby shark tutururu baby shark uncanny

nimble plume
#

Ot pls

queen reef
#
  • πŸ‘‹ how to get a list of all threads in a channel, not only the active ones that channel.threads seems returning?
nimble plume
#

Woah

balmy thicket
#

yo

#

what are the best coding language to make a discord bot?

hoary cargo
nimble plume
#

ASM

hoary cargo
kindred drum
# heavy folio There is now a special extension for just creating background loops: ```py from ...

TypeError: tempbancheck() missing 2 required positional arguments: 'ctx' and 'member'

 def __init__(self, bot: commands.Bot):
        self.bot = bot
        self.tempbancheck.start()
        self.tempbancheck.start()

    
    @tasks.loop(seconds=5.0)
    async def tempbancheck(self, ctx, member: discord.User):
        for i in range (0, len(Scammer_Items)):
            for x in SFun_Items[i]:
            
                    
                if Fun_Items[i][x]['Expired'] == True:
                    pass
                else:   
                    unban_date = Fun_Items[i][x]['Date Expiration']
                    formatted_time = datetime.datetime.fromisoformat(unban_date)
                
                    if formatted_time < datetime.datetime.now():
                        Fun_Items[i][x]['Expired'] = True
                        await ctx.guild.unban(member)
                    
            else:
                pass```
what am I doing wrong here
nimble plume
#

Arg

hoary cargo
#

that's hell of a weird way of making an unban command

honest vessel
#

@kindred drumtask dosnt have ctx

balmy thicket
#

seems like a hard language

kindred drum
balmy thicket
#

is python and java still worth it?

slate swan
unkempt canyonBOT
nimble plume
#

Weird var names

balmy thicket
hoary cargo
#

why you want to make sounds like sending an embed into a different channel is hard

smoky dove
#

(not really a discord bot thing but this was the closest channel i could find) yk what would be cool, a third party program that can interact with your discord profile and make it so you can code in easter eggs and effects-

#

just and idea

honest vessel
#

@kindred drummake a command like u normaly does where u do ur tempban, and inside that add the discordID and datetime/unixtime to a database, and in your task select all tempbans from db and check if time is more than what u want a tempban to be, etc etc

nimble plume
kindred drum
#
 {
  "796053067254595594": {
   "Discord Name": "tomee",
   "Duration": "1m",
   "Date Issued": "2022-02-19 13:59:05.203049",
   "Date Expiration": "2022-02-19 14:00:05.203049",
   "Banned by": "mictony",
   "Reason": "test",
   "Proof": "test",
   "Expired": false
  }
 }
]``` @honest vessel
kindred drum
#

thats it currently, should I just grab the user from the id

nimble plume
#

Proof

kindred drum
#

and unban them that way?

smoky dove
#

but then again better discord is still a thing

nimble plume
#

I have a big wuestion do mute commands edit time every sec

honest vessel
#

if (user.name, user.discriminator) == (member_name, member_discriminator): to if user.id == member.id: ?

nimble plume
#

if time == 0:
member.remove_role()

hoary cargo
#

you can fetch the user, though it requires member intents

nimble plume
#

Do disnake support timeouts

honest vessel
#

yes @nimble plume

nimble plume
#

Why use mute then??

honest vessel
#

you dont πŸ™‚

nimble plume
#

!!

slate swan
#

can someone tell me which is easy to code a discord bot

honest vessel
#

lol you are in a python server

slim ibex
#

πŸ’€

nimble plume
balmy thicket
#

any guide to make a discord bot from 0?

honest vessel
#

yes many

slate swan
nimble plume
honest vessel
#

i dont think js is simpler tho but i guess its more about preferances

nimble plume
#

Disnake gives all js stuff

slim ibex
#

just get ready for module.exports and endless consts and lambdas

nimble plume
#

Didnt understand

slate swan
slim ibex
hoary cargo
#

buritos

nimble plume
slim ibex
#

depends

cedar stream
slim ibex
#

do you want to do web dev?

slate swan
cedar stream
nimble plume
#

U can learn python as ur first lauguage

#

@slate swan

hoary cargo
#

!resources

unkempt canyonBOT
#
Resources

The Resources page on our website contains a list of hand-selected learning resources that we regularly recommend to both beginners and experts.

slim ibex
#

imagine learning c++ as your first language

nimble plume
#

Hehe

cedar stream
nimble plume
slate swan
nimble plume
cedar stream
nimble plume
#

Yes

hoary cargo
slate swan
cedar stream
#

Bot development isnt rly begginers field

slate swan
honest vessel
cedar stream
#

At least know oop

nimble plume
honest vessel
#

but i gave up pretty fast n found python, then i wentback to c++ littlebit ^^,

slate swan
#

@nimble plume can you give me any good yt video that i can see it

hoary cargo
#

about python or what

buoyant quail
#

std::cout << "c++ is hard :(";

slate swan
honest vessel
nimble plume
#

U can go watch codewithharry its hindi tuorials are great

unkempt canyonBOT
hoary cargo
hoary cargo
#

we don't talk c++ here sir

honest vessel
#

std::cin >> python;

nimble plume
#

Huh?

slate swan
hoary cargo
nimble plume
slate swan
nimble plume
#

I wonder where these guys call these functions

hoary cargo
slate swan
nimble plume
#

😐 πŸ˜‘

#

English.

slate swan
slate swan
#

what bro

hoary cargo
#

i'm amazed how people want to do advanced stuff in a language they don't even know

nimble plume
#

πŸ˜‘

vale blaze
#

If I have multiple scheduled task is it a good practice to handle these in the bot cogs directly, or I should organize these outside of the bot? This is how I do it now:
`class FplCogs(commands.Cog, name="CogGrp1"):
def init(self, bot):
self.bot = bot

    @aiocron.crontab('* * * * *')
    async def cronjob3():
        matches = pd.read_sql('SELECT * FROM [dbo].[DoesntReallyMatter]', cnxn)
        pulseid_list = matches['pulse_id']
        if len(pulseid_list.index) != 0:`
slate swan
#

@nimble plume u know coding right

nimble plume
#

Ye

slate swan
nimble plume
#

Ok.

slate swan
#

@nimble plume u know the javascript is so hard to learn

slim ibex
slim ibex
slim ibex
#

I could prolly learn it in a week if I committed

nimble plume
#

Js is easy like python

tacit token
#

guys how can i use emoji in button?

slim ibex
#

yes

tacit token
#

bruh

slim ibex
#

!d discord.ui.Button