#development

1 messages Β· Page 1672 of 1

green kestrel
#

technically you dont live forever

#

you unlive forever, because you become undead

#

you just 'exist'

#

maybe a bit off topic 🀣

quartz kindle
#
let n = 22; // number obtained at runtime
let exp = 1;
for(let i = 0; i < n; i++) {
  exp *= 2;
}
number * exp;
``` is an order of magnitude faster than ```js
let n = 22; // number obtained at runtime
number * (2 ** n)
green kestrel
#

i bet the second is recursive

marble juniper
#

ur dead when all parts of ur body stop moving

#

so basically thats why you die when ur heart stops

blissful cliff
marble juniper
#

lol

#

anything alive is also moving

#

lol

green kestrel
#

number (n) { if (n) { return number(n - 1); } else { return 0; } };

#

like that ^

quartz kindle
#

but it doesnt make sense

#

like

#

why are math powers so much slower than multiplying in a loop if its basically the same thing

fluid basin
marble juniper
#

math ew

vivid fulcrum
#

did you benchmark that on v8 or spidermonkey

quartz kindle
#

on v8

#

node 15

vivid fulcrum
#

i thought so

lapis furnace
#

can someone help me, i am trying to ake the bot respond when it s pinged but i can t figure it out xD

vivid fulcrum
#

lol

woeful pike
#

how are you measuring that it's slower? are you sure the engine isn't optimizing the loop away in the first one

quartz kindle
#

the issue is the engine does not know how to optimize Math.pow() nor the ** operator, if one of the numbers is obtained at runtime

#

it optimizes fine if both numbers are static tho

woeful pike
#

that's odd

quaint bobcat
#

Can somone help me I can’t invite suggestion bot

quartz kindle
#

very odd indeed

#

im testing 1 million iterations of a function

#

switching from ** to the for loop above

#

the time taken went from 230ms to 80ms

restive willow
#

bigger bot devs: what do you use for hosting and how much do you pay for it?

fluid basin
#

well that question really depends

#

some developer scale their hosting vertically whereas some scale it horizontally

restive willow
#

I'm not sure what that means

woeful pike
#

I'm not sure what that has to do with the question

quartz kindle
#

how much do you consider "big"?

fluid basin
#

yes that

restive willow
#

15k+ I guess

quartz kindle
#

thats not that big

#

well, i can say im on 8k, and i pay $3 per month

fluid basin
#

about ~10 shards at worst?

restive willow
#

yes

proven lantern
#

If you use a cache free library then you shouldn't need to share right?

#

Shard

quartz kindle
#

you need to shard anyway

proven lantern
#

Dang

quartz kindle
#

sharding is required by discord to load balance connections

#

its not about caching

#

but there are many ways to shard

#

for example internal sharding

fluid basin
restive willow
fluid basin
#

but on the contrary, if its just simple commands that uses a database or mainly fetching remote data such as through an API, then maybe you don't need that much resources

stable nimbus
#

Anybody here use a dashboard with their bot?

fluid basin
earnest phoenix
#

Can I have videos in discord embeds?

rose warren
restive willow
#

i think it was lightning 4gb?

fluid basin
#

yes I second contabo too

stable nimbus
#

Very cheap and great quality

quartz kindle
fluid basin
#

welp I wanted to ask that and tim you beat me to it

stable nimbus
#

GG Tim

quartz kindle
#

lul

fluid basin
#

also from some quick peeks at your github repo (supposedly for your bot)

#

I do notice some things that could be bogging down the speed

lusty quest
#

ive used to have a DO Droplet, but they give you relatively slow Cores (1.5GHz)
since ive started with some ML stuff ive had massive spikes in CPU usage, sometimes for 30 seconds just for a single classification.
now ive got a Dedicated Server with 3.6GHz clock and 6 Cores, and i dont even see a single core Spiking above 3% usage in Htop while the ML stuff runs

earnest phoenix
#

Hello, someone can help me?

Error: Cannot read property β€˜setTimeout’ of undefined

Code line: ```js

let timeGet;
let timeNormal;
const time = Data_Time.get(${member.guild.id}.time.timeSet)
timeGet = time / 1000
if(!time) {
timeGet = 30000
timeNormal = 30
}

    const collector = new Discord.MessageCollector(captchaChannel, m => m.id === member.id, { time: timeGet });```
lusty quest
#

the part that errors out is not even in this snippet

earnest phoenix
#

Yes, and its a problem

quartz kindle
#

the full error would help

earnest phoenix
#

ok

rigid shadow
#

does somebody know how many calls are allowed to update member roles (remove/add) until you hit the ratelimit?

earnest phoenix
green kestrel
#

@rigid shadow it isnt hard coded... you need to respect the ratelimit headers returned with every REST call

restive willow
rigid shadow
#

thanks, it would be user actions

fluid basin
rigid shadow
#

but could be a lot of request in a short time

quartz kindle
rigid shadow
#

thats the point

quartz kindle
rose warren
#

Yep. Dyno does it by delaying between each role change by 1s. So giving 30 people a role with Dyno takes 30s. But yeah definitely be careful and check.

restive willow
quartz kindle
#

just make sure you dont send a lot of requests asynchronously in a loop

earnest phoenix
#

Can I have videos in discord embeds?

rose warren
earnest phoenix
#

ah okay

#

what if it in youtube?

rose warren
#

Only way to show a video embed is to share a link in the message content

fluid basin
rigid shadow
restive willow
quartz kindle
quartz kindle
#

could be network issue

#

if cpu and ram were ok

restive willow
lusty quest
#

if you have the CPU running at 800MHz it will feel sluggish

quartz kindle
#

sounds more like network issues

#

galaxygate does have network issues sometimes

rigid shadow
#

anyway, thanks for your attention and help :)

quartz kindle
lusty quest
#

100Mbits should be fine, and usually most hosters these days should give you this bandwidth atleast

rigid shadow
#

expecting like 150 members

lusty quest
#

unless they give you 100Mbits shared then it could cause issues with a Noisy neighbor

quartz kindle
rigid shadow
#

yes it does

quartz kindle
#

if you're worried you could add a cooldown to the command

rigid shadow
#

yeah

#

ty tim

lusty quest
#

they should give Tim a special role here, he is stackoverflow on 2 legs

quartz kindle
#

i had one for a while

#

xD

lusty quest
#

i know

green kestrel
fluid basin
quartz kindle
#

what if i want blood?

fluid basin
quartz kindle
#

or better yet, money

rose warren
#

Tim is op. Needs a nerf.

fluid basin
#

ok I do have a qn rn

#

is it theoretically allowed to have another bot ping a bot to check if the bot is up

#

I know it sounds dumb

quartz kindle
#

why wouldnt it be allowed

fluid basin
#

well I guess

quartz kindle
#

is there a ping police?

#

xd

fluid basin
#

my 4 year old code has somehow gotten quite the load of weird issues that I can't be bothered to rectify since I'm working on something else

rose warren
#

Couldn't you use webhooks?

fluid basin
#

and for some reason it'll just go rouge sometimes (not respond to any commands etc)

#

could be a library issue

#

but I've yet to triage it though

fluid basin
outer perch
#

Client network socket disconnected before secure TLS connection was established wth is this?

fluid basin
#

network issues?

outer perch
#

k, weird

sour flame
#

I don't understand

quiet topaz
#

red on black ... my eyes are hurting

sour flame
#

def get_prefix(client,message):

  with open("prefixes.json", "r") as f:
        prefixes = json.load(f)

  return prefixes[str(message.guild.id)]

client = commands.Bot(command_prefix = get_prefix)



@client.event
async def on_guild_join(guild):


    with open("prefixes.json", "r") as f:
        prefixes = json.load(f)

    prefixes[str(guild.id)] = "?"

    with open("prefixes.json", "w") as f:
        json.dump(prefixes,f)
fluid basin
#

means prefixes no have "817415362925881610"

sour flame
#

Code

#

uhh what is that?

fluid basin
#

you should check if there is a prefix for the guild

#

thats the guild id I presume

sour flame
#

yes

fluid basin
#

also json no recommend for storage but whatever I'm too lazy to argue on that

sour flame
#

return isn't a valid syntax...

normal sage
#

so it’ll return that error

sour flame
#
def get_prefix(client,message):

  with open("prefixes.json", "r") as f:
        prefixes = json.load(f)

  if not return prefix[str(message.guild.id)]

client = commands.Bot(command_prefix = get_prefix)



@client.event
async def on_guild_join(guild):


    with open("prefixes.json", "r") as f:
        prefixes = json.load(f)

    prefixes[str(guild.id)] = "?"

    with open("prefixes.json", "w") as f:
        json.dump(prefixes,f)
``` What to do?
fluid basin
#

you check if the guild is in the prefixes

#

if not

#

return default prefix

#

I do see that you assign a prefix for the bot when it joins a server

#

but when your bot is offline and somehow someone adds it to their server, it will not be included

sour flame
#

true

toxic jolt
#

hello guys

sterile lantern
#

is this normal

#

4 canary

#

the font is so weird

fluid basin
#

looks fine to me

#

did they un-bold or something

sterile lantern
#

yeah unbold i think

#

i think its on my end

#

lemme reset discord

#

does anyone use canary and did it change for them

#

elsewise its probably on my end

soft glade
#

im making a task for my bot so i can change statuses by its self and this is what i have so far and for some reason its not work can some one tell me what may be be wrong with this

from discord.ext import tasks
from itertools import cycle

stats = cycle(['Test Status 1', 'Test Status 2'])

async def change_status():
  await client.change_presence(activity=discord.Game(next(status)))```
sour flame
#

status isn't a defined name

#

it should be stats

soft glade
#

oh i see where i fucked up hold on

thin echo
#

What lang is that?

sour flame
#

python

drowsy ledge
#

I think python

thin echo
#

Thats what I though

sour flame
#

@soft glade working?

soft glade
#

yep

soft glade
earnest phoenix
#

in py, how would i add to a {"aaa" : "aaa"}?

such as adding bbb but keeping aaa

#

.update will replace aaa

slender thistle
#

yourdict["bbb"] = "bbb"

sour flame
#

...

turbid otter
#

okay so..... I was writing the large description, and I thought it should look like this.....

earnest phoenix
#

but how would i add directly to "aaa": and keep "aaa" to make it {"aaa": "aaa, bbb"}

sour flame
#

send the full code

#

@earnest phoenix

opal plank
#

nah, detritus/ts devs here too

earnest phoenix
#

oh

#

i need py devs smh

pale vessel
sour flame
#
 global aaa; aaa = {"aaa": "aaa"}
``` here
#

@earnest phoenix

earnest phoenix
#

yes i have

#

as you can see in the ss

#

but then how would i add to "aaa" but keep "aaa" in the dict

opal plank
sour flame
#

which aaa

earnest phoenix
#

keep both aaa's

sour flame
#

1 2 3 4

earnest phoenix
#

lol

sour flame
#

@earnest phoenix ^^^

earnest phoenix
#

no

#

you goon

#

WITH A COMMAND

lyric mountain
earnest phoenix
#

keep key and value

#

and add new value

#

without replacing the value

#

if that makes more sense

lyric mountain
#

you can't add 2 values to a single key

earnest phoenix
#

fucked

lyric mountain
#

what you CAN do is add an array to a key

#

and an array can have multiple values

#
{
  "aaa": ["aaa", "bbb", "ccc", "ddd"]
}
#

that way "aaa" only has one value

#

and that "value" has N values

earnest phoenix
#

that makes sense

feral aspen
#
(node:11868) UnhandledPromiseRejectionWarning: TypeError: ErelaClient is not a constructor
#
const { ErelaClient, Utils } = require("erela.js");
const { nodes } = require("../../other/json/node.json");

module.exports = async bot => {
    bot.music = new ErelaClient(bot, nodes) // <-------- Error at here
        .on("nodeError", console.log)
        .on("nodeConnect", () => console.log("Successfully created a new Node."))
        .on("queueEnd", player => {
            player.textChannel.send("Queue has ended.")
            return bot.music.players.destroy(player.guild.id)
        })
        .on("trackStart", ({ textChannel }, { title, duration }) => textChannel.send(`Now playing: **${title}** \`${Utils.formatTime(duration, true)}\``).then(m => m.delete(15000)))

        bot.levels = new Map()
        .set("none", 0.0)
        .set("low", 0.10)
        .set("medium", 0.15)
        .set("high", 0.25)

   console.log("Music.js file is working.")
};
#

Am I doing something wrong?

pale vessel
#

Check their docs

feral aspen
#

Alright.

pale vessel
#

you might want to use const { Manager } = require("erela.js") instead since I'm not seeing ErelaClient anywhere in their docs

feral aspen
#

Yeah.

#

I may need to update the entire code.

#

Holy hell.

pale vessel
#

Have fun with that

#

Shoukaku gang here

feral aspen
#

Holy.

#

πŸ‘€

earnest phoenix
#

for erela.js rewrite

feral aspen
#

OMG

#

Now that is what I want.

lavish patio
#

client.channels.get(channel).send(message.replace('{user}', msg.author).replace('{level}', curLevel))

pale vessel
lavish patio
#

am i doing something wrong

zenith terrace
#

I would prefer seeing code as well

pale vessel
#

that is the code though

#

what even is wrong?

zenith terrace
#

its apparently wrong according to VSC he said in #general

lavish patio
#

yes

feral aspen
#

const { voiceChannel } = message.member;

#

Is this a thing?

lavish patio
#

vsc is gae

pale vessel
#

const { voice: { channel } } = message.member;

feral aspen
#
        const { voiceChannel } = message.member;
        if (!voiceChannel) return message.channel.send("You need to be in a voice channel to play music!");
#

How am I supposed to do this? πŸ˜‚

pale vessel
#

const { voice: { channel } } = message.member;
if (!channel)

feral aspen
#

Do I just do message.member.voice.channel;

#

?

#

Aight.

earnest phoenix
feral aspen
#
const { Manager, Utils } = require("erela.js");
const { nodes } = require("../../other/json/node.json");

module.exports = async bot => {
    bot.music = new Manager(bot, nodes)
    bot.music = new Manager({
      nodes,
      send: (id, payload) => {
        const guild = bot.guilds.cache.get(id);
        if (guild) guild.shard.send(payload);
      }
    })
        .on("nodeError", console.log)
        .on("nodeConnect", () => console.log("Successfully created a new Node."))
        .on("queueEnd", player => {
            player.textChannel.send("Queue has ended.")
            return bot.music.players.destroy(player.guild.id)
        })
        .on("trackStart", ({ textChannel }, { title, duration }) => textChannel.send(`Now playing: **${title}** \`${Utils.formatTime(duration, true)}\``).then(m => m.delete(15000)))

        bot.levels = new Map()
        .set("none", 0.0)
        .set("low", 0.10)
        .set("medium", 0.15)
        .set("high", 0.25)

    console.log("Music.js file is working.")
};

I kind of got lost on where to put the remaining code.

#

which are the .on

pale vessel
#

you defined bot.music twice?

feral aspen
#

Ignore the first one

#

Where am I supposed to put ```js
.on("nodeError", console.log)
.on("nodeConnect", () => console.log("Successfully created a new Node."))
.on("queueEnd", player => {
player.textChannel.send("Queue has ended.")
return bot.music.players.destroy(player.guild.id)
})
.on("trackStart", ({ textChannel }, { title, duration }) => textChannel.send(Now playing: **${title}** \${Utils.formatTime(duration, true)}``).then(m => m.delete(15000)))

    bot.levels = new Map()
    .set("none", 0.0)
    .set("low", 0.10)
    .set("medium", 0.15)
    .set("high", 0.25)
pale vessel
#

those are Manager events

#

so bot.music

feral aspen
#

Damn...

#

This is going to take a long time.

#

Let me apply the changes.

#

Node "localhost" connected.

#

it connected

#

but somehow it didn't work to play a music.

pale vessel
#

yes

#

use your coding powers

#

I believe in you

feral aspen
#

The entire play command needs fixing as well.

#

Holy

earnest phoenix
#

you need the raw event as well

sour flame
#

How to add masked links

pale vessel
#

@hearty horizon teach

earnest phoenix
pale vessel
#

you need to use array.some()

#

in order to check if the content includes one of the elements

earnest phoenix
#

if(message.content.includes(whiteList.some)){ ?

pale vessel
#

No, if (array.some(elem => message.content.includes(elem))

#

array being your whiteList

earnest phoenix
#

I have already try but don’t work…

pale vessel
#

try again

#

you must have done something wrong

safe creek
#

so the discord.py stuff should have definitions correct when right clicking and pressing Got to definations?

earnest phoenix
#

ok

feral aspen
#

Is it a great idea to go back in versions?

pale vessel
#

no, it's not

#

if there's a major lavalink change, you HAVE to use latest version of that library

#

since old versions would break

safe creek
#

urm so non of the discord.py stuff has definations insideof vsc....

pale vessel
#

just like how you have to migrate from discord.js v11 to v12

safe creek
dusky lagoon
#

I'm trying to make a coin flip command where it says {user} won but im not sure how to make it so it can randomize user tags

lyric mountain
#

actually

#

just use Math.random() and round the result

#

it'll either return 0 when r < 0.5 or 1 when r >= 0.5

pale vessel
#

what do you mean randomize user tags

green kestrel
#
Connecting new session...
Received READY, session: ef2c0fa6fe150133138e5bbb80f68ab8
Emit heartbeat, seq=9
OOF! Error from underlying websocket: 1000
ReadLoop exited
SSL closed
WS reconnected
Resuming session ef2c0fa6fe150133138e5bbb80f68ab8 with seq=11...
Successfully resumed session id ef2c0fa6fe150133138e5bbb80f68ab8

YAY resume works πŸ˜„

lyric mountain
#

get a random user I guess

pale vessel
#

just use collection.random()

sour flame
#

Help Please

#

Help meh with this'

pale vessel
#

you can only use those inside embeds

modest maple
#

or webhooks

sour flame
#

oh alr

#

Still not working..

earnest phoenix
#

Footers also dont work

sour flame
#

...

#

kk

#

thx

pale vessel
#

For titles you can use the URL property

#

url

lament ruin
#

Do you guys know how to easily get the embedded role that comes with a bot when you invite it to a server?

sour flame
#

kk

lament ruin
# lyric mountain may I ask u why?

yup, i don't want to give admin permissions to my bot, so, I have to check if my bot's role is above any role that the bot needs to interact with so it doesn't crash

#

maybe there is an easier way to do it

#

i probably just don't know about it

normal sage
pale vessel
#

Nope

normal sage
#

ah ok

lyric mountain
muted cargo
#

Hi

urban cape
#

Is there anyway to get a array from a file with javascript without node js?

steel arch
#

i want to make a setprefix command with mongo db but nothing seems to work

lament ruin
quartz kindle
#

with a browser?

urban cape
#

yes

#

exactly

pale vessel
#

you can fetch the file and use JSON.parse() to parse the content

urban cape
#

Ok i will try that

viscid gale
#

anyone knows why using jsdelivr.com caches the "latest" version so if u update after, it wouldn't be the actual latest?

here's what I mean.. the site would say
omit the version completely to get the latest one
so, a version(or 2) ago.. i loaded https://cdn.jsdelivr.net/npm/webject/webject.js
now after I update, and I load it, it still returns old version, so now for any update I gotta use the very version name itself.. I also loaded https://cdn.jsdelivr.net/npm/webject@latest/webject.js so it won't load the latest version either.. has this happened with any of yall?

#

also is the only solution using the exact version name?

knotty zodiac
#

does anyone know how i get the date and time on bottom of discord embed discord.py

#

yeah how

#

?

quartz kindle
#

did you try clearing your cache?

lyric mountain
#

it doesn't matter the bot role

#

what matters is the highest role

lament ruin
#

ah, okey

#

i was experimenting with finding the role with the attribute managed = true

#

but if the highest role does the job i'll go with that

viscid gale
viscid gale
#

the caching is server side

quartz kindle
#

what were the changes?

#

to see if i can seem them on my side

viscid gale
#

just ctrl+f and search for 75 and the latest version would show results, the "latest" wont

quartz kindle
viscid gale
#

NANI

#

hmm

#

it does..

#

so i gotta clear my cache huh

#

ugh.. but having the package request its version would make sense

#

cuz i dont wanna tell users to clear their cache on new updates

lament ruin
#

How is the rawPosition of the role "BOT" 16???? Shouldn't it be, like, 4?

pale vessel
#

It starts from bottom lol

#

Just like the hierarchy

#

0 is @everyone

lament ruin
#

oh wait you're right

#

i'm dumb

boreal iron
#

Well 5xx are usually server errors, nothing you can do I guess

#

I mean you could try to regenerate the token and use the new one

pale vessel
#

that's not http code though

boreal iron
#

Well then as I said there’s nothing you can do

pale vessel
#

if it is it would've only said internal server error

#

that's discord.js error code

#

never mind I'm not even sure

boreal iron
#

It’s coming from the REST

safe creek
#

how do i imploment the / commands feaure into my bot?

boreal iron
#

I think that’s an internal server error but you may wanna take a look into the docs, I can’t atm

boreal iron
pale vessel
#

that DiscordJsError text confused me

boreal iron
#

Yeah understandable

#

Anyways I guess he just has to wait if the docs doesn’t say anything else

blissful coral
#

Making the change to react POGGERS

#

No more BS ejs LMAO

opaque acorn
#

someone has the avatar command to lend me?

blissful coral
#

Make one

opaque acorn
#

idk

#

when i ping someone it doesnt display

#

but when i put ΒΏavatar it works

#

idk

#

xd

hearty horizon
#

@pale vessel there i teach

viscid gale
#

for the devs with bots in thousands of guilds.. do yall use several different processes? and are these processes on different devices?

lost mauve
#

you use sharding

#

which is different instances of your bot's backend each managing up to 2500 guilds

quartz kindle
#

bots that are in 150k+ tend to use 16 shards per process, so one process for every 15k-25k guilds

#

but you can easily run 50k guilds in a single process, depending on your needs

toxic jolt
#

help pls

#

working but dont send res.json

lost mauve
quartz kindle
#

big bots dont use it because of that

toxic jolt
lost mauve
quartz kindle
#

not in that way

toxic jolt
#

1 million users and 35k guild

#

:D

#

and im using quick.db

#

B R U H

#

whatever

#
app.post("/api/cortex", async (req,res) => {

function CortexAPI() {

let soru = question

fetch("URL.com", {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({
        cortex: {
            key: "91AB82CD7EF",
            soru
        }
    })
})
.then(res => res.json(res))
.then(veri => console.log(veri));
}
})
#

im gettings this error

#

.then(veri => console.log(veri)); this part is not working

#

Ah. can not be ...

lost mauve
#

are you posting to URL.com?

#

seems sus

toxic jolt
lost mauve
#

also where is question coming from

toxic jolt
#

aaa

#

wait

#

so many api

#

omg

quartz kindle
#

why are you testing on runkit?

toxic jolt
#

res.json({soru: convert, cevap: bot.translation, bot: response, src: bot.src})

#

like this

idle coral
#

my kick command

#

won't work

toxic jolt
#

I don't want to do alt + tab all the time runkit so it's good

idle coral
#
  if msg.startswith("b!kick"):
    if message.author.top_role.permissions.administrator == False:
      await message.channel.send(message.author.mention + " you're not an admin!")
      return

      try:
        await client.kick(member)
        await message.channel.send("User has been kicked by " + message.author.mention + ".")
      
      except:
        print("Failed to kick or send message.")

        try:
          await message.channel.send("Couldn't kick user " + member.__name__ + ": " + ValueError)
        
        except:
          print("Failed to send debug message.")
toxic jolt
idle coral
#

My kick code, if anyone can fix it.

#

That would be great.

quartz kindle
#

npm install mime@^1

thin echo
#

YAY!!!

#

My bot is in another server

#

That makes 5 severs, 4 if you exclude the support server

lost mauve
#

pog

lapis violet
#

does anyone remember what the line of code is to fetch a user's avatar url

#

seems to not be working

#

discord.js btw

summer torrent
#

avatarURL()

lapis violet
#

oh yes haha thanks

#

I forgot the ()

earnest phoenix
#

Is there something that i could use instead of pandas to edit bits of a file rather than editing a copy and replacing the original? i'm using discord.py

lapis violet
#

anyone know what code you use to add reactions to rich embeds discordjs
message.react seems to not work on embeds

pearl trail
#
const embed = new MessageEmbed()
//your embed here

const msg = await message.channel.send(embed)
await msg.react('emoji') //idk if it's working without await but i prefer to use it
lapis violet
winged fox
#

@tight sierra What coding language

tight sierra
#

wait what

#

coding language?

winged fox
#

Those type of messages

tight sierra
#

i mean as in this

lapis violet
#

thats a rich embed

winged fox
#

ah

#

Do you want your bot to type it or you to type it?

tight sierra
#

whichever one is easier

#

that embed is one i made

#

but i forgot how to

lapis violet
#

oh

#

lemme

winged fox
#

um, some bots can make for you or you can code your bot to make it

craggy pine
#

Wait, that's Mimu. That's not their bot js

tight sierra
#

i just need a brief explanation again

lapis violet
#

heres a good example

tight sierra
#

well last time i did it like ".embed create" etc

lapis violet
#
// at the top of your file
const Discord = require('discord.js');

// inside a command, event listener, etc.
const exampleEmbed = new Discord.MessageEmbed()
    .setColor('#0099ff')
    .setTitle('Some title')
    .setURL('https://discord.js.org/')
    .setAuthor('Some name', 'https://i.imgur.com/wSTFkRM.png', 'https://discord.js.org')
    .setDescription('Some description here')
    .setThumbnail('https://i.imgur.com/wSTFkRM.png')
    .addFields(
        { name: 'Regular field title', value: 'Some value here' },
        { name: '\u200B', value: '\u200B' },
        { name: 'Inline field title', value: 'Some value here', inline: true },
        { name: 'Inline field title', value: 'Some value here', inline: true },
    )
    .addField('Inline field title', 'Some value here', true)
    .setImage('https://i.imgur.com/wSTFkRM.png')
    .setTimestamp()
    .setFooter('Some footer text here', 'https://i.imgur.com/wSTFkRM.png');

channel.send(exampleEmbed);
winged fox
#

oh, I'm not sure how to make with a bot but I can teach you how to code it in Python

craggy pine
#

@lapis violet That bot is not theirs. So it's likely a command with Mimu which was made by Iara

tight sierra
#

ahhhh wait that example is good

#

brb lemme see

lapis violet
craggy pine
#

Nvm lol

lapis violet
#

mhm

winged fox
#

ah nice

#

real interesting, I'm going to compare to python

lapis violet
#

I just pulled that from the discordjs guide for him

winged fox
#

oh

lapis violet
#

too lazy to type it all out

winged fox
#

It's much different than python

lapis violet
#

plus the guide includes everything he can do

lapis violet
#

I like discordjs better

winged fox
#

I barely know JS haha

ripe shadow
lapis violet
#

haha

craggy pine
#

To clarify, they said "They made that embed" which confused me since the screen shot was of Mimu.

winged fox
#

I think I learned 3 years ago without knowing I was learning JS

tight sierra
earnest phoenix
#

!fuck

craggy pine
lapis violet
#

lol what

earnest phoenix
#

7w7

craggy pine
lapis violet
#

uh ok

earnest phoenix
#

*eat pup

lapis violet
#

why is my nickname this aaa

craggy pine
earnest phoenix
#

hahahhaha

#

-1 or 19988181382838

craggy pine
lapis violet
#

fr

craggy pine
#

@earnest phoenix if you're about, mind doing the thing plz ^

lament ruin
#

I'm looking for a slash-command api wrapper but I can't find anything online. I was told to ask here. Do you guys know of any easy to implement api wrapper for that?

earnest phoenix
#

@earnest phoenix no trolling please, if you don't need help or aren't helping others dont post in this channel

craggy pine
#

❀️ u

lusty quest
earnest phoenix
#

-b @earnest phoenix

gilded plankBOT
#

dblMod Banned tu le das al play#6848 (@rain cobalt)

lament ruin
#

ban

craggy pine
#

Haha

lament ruin
tight sierra
#

ok so uh

#

i made my embed

#

how do i make it so when people react they receive a certain role?

odd quest
#

Hi

#

The description of my bot should look like this:

#

but when I save and go to my bot, it appears like this:

#

Any solution?

lusty quest
#

the one you want to copy probably uses HTML and you use Markdown

lusty quest
#

then idk

odd quest
#

Ok thx

drowsy epoch
#

Where can i find my Ip adress for the api

earnest phoenix
#

Hy

pearl trail
lapis violet
#

np

tight sierra
#

how do i make people recieve a certain role for after reacting to a discord embed

pale vessel
#

through the message reaction add event

tight sierra
#

uh

tight sierra
lament rock
#

You add logic to listen for the message reaction add event then give them a role based on what reaction they react to. Simple

mossy girder
#

hello :]

#

does anyone know how to do self assigned reaction roles like this?

tight sierra
#

i already made the embed

#

and desc etc

#

can you tell me like what cmds to do

lament rock
#

You should try to learn your language and library more before attempting to do anything. We told you the answer and it'd be up to you to look at your library's docs

#

People aren't gonna code for you. Just a harsh reality

tight sierra
#

im not coding

#

ive done it before

#

i just forgot

dusky sundial
#

If you're not coding, I'm afraid very few people are going to be able to help you out here

tight sierra
#

im making an embed

#

in discord..

#

this is the one i made in the past

#

i forgot how to tho

lament rock
#

If it's through another bot you don't own, then this isn't the place to ask and you should ask the bot developers

tight sierra
#

no

#

its

#

mimu

dusky sundial
#

If you're talking about another bot, you're in the wrong server

tight sierra
#

im not

dusky sundial
#

Yes you are

tight sierra
#

bruh what

#

im doing it with mimu

#

lol

dusky sundial
#

This is Top.gg, not Mimu's support server

lament rock
#

This channel is for coding support. Not other bot support

tight sierra
#

alr

solemn leaf
#

this channel is for smart people

long crow
lament rock
#

idk man. I'm kinda stupid

earnest phoenix
oak cliff
#

This is development

raven needle
#

How can I include CSS in my long description?

oak cliff
#

Style tags

raven needle
#

so only <style> </style>

oak cliff
#

in html yes

raven needle
#

ty

lament rock
old cliff
#

Late Night

opal plank
#

we fucked up on a big bot that fucked up a lot of users's edition

lament rock
#

There was no apology

opal plank
#

they probably lost a couple thousand servers on that joke ngl

#

specially with people spreading stupid messages like this

#

compromised mmulu

#

discord bug = compromised, your account will be hacked, please delete the bot

lament rock
#

One of the team members reset the token derp

#

that's how it got offline so fast

#

Still funny how people make a big deal out of stuff without knowing the full picture. It's also quite a shame people will never know that Discord fucked up

opal plank
#

indeed

eternal osprey
#

hey i am about to sign up for computing science in the netherlands, Nijmegen.

#

How hard do you need Mathematics calculus b for cs?

slender thistle
#

I'm really not surprised people come to idiotic assumptions right away without even investigating or giving the case time to be resolved

#

Reminds me of how WalkSafe was accused of leaking data to other users on TikTok and Twitter with absolutely zero evidence 🀣

quartz kindle
#

its scary af when you're accused of something thats not your fault

#

my bot was accused of raiding once because i didnt have properly implemented command rate limits

#

and it was delay-responding to a real raid

slender thistle
marble juniper
#

can't be discord

#

discord is perfect it doesn't make bugs

#

it must have been hacked using cmd!!!!!!=11840148148ß18

#

they have hacked into the mainframe!!!

#

hacking dank memer... 10%
hacking dank memer... 50%
hacking dank memer... 69%

#

lol

#

I love how stupid people can sometimes be

quartz kindle
#

xD

marble juniper
#

01001010101010111101010101010110

#

look guys im hacking

#

omg how did link do that1!?ß1ß1ß

#

😱

#

ok I will stop

#

lol

quartz kindle
#

using 500mb ram with nothing running?

#

yikes

marble juniper
#

idk what is even using that much ram

#

I just created it

quartz kindle
#

htop to the rescue

marble juniper
#

htop ontop

marble juniper
#

I have running

#

using the ssh extension in vscode

#

lol

toxic jolt
#

hello

earnest phoenix
#

Apparently my bot stopped responding to commands (no errors) and when i restarted it my shards didn’t load and got timed out

#

Why is this happening

#

Theres nothing wrong with my code, i didnt even do anything

#

It just suddenly stopped working

royal herald
humble rock
#

any good hosting?

coarse cipher
humble rock
#

free vps?

coarse cipher
#

No

humble rock
#

is good heroku for host a mc server?

coarse cipher
#

I had 2 yrs free VPS with AWS (Used Github Student)

humble rock
#

dang

coarse cipher
#

To be honest Repl.it seems good (I have premium though)
Cuz you can start for free then switch to hacker that'll give you
20 repl(4 gig ram, 2 gig storage each) for 7 $ per month (Now they have always on)

slender thistle
#

I personally consider repl more of a convenient testing environment rather than a hosting service

quartz kindle
#

does repl.it actually give you multiple vms for the price of one?

#

if so thats cheap af, there has to be a catch

slender thistle
#

Technically the Hacker plan applies to your account so all repls too

toxic jolt
old cliff
#

why does spliting a txt file by \n work on linux but not on windows?
I have to do \r\n on windows

lusty quest
#

bcs windows is stupid

old cliff
#

how do I make it work on both?

#

do by both and check which array is longer?

charred sorrel
lament rock
#

just have a part of the regex be lazy with matching \r

#

so /(?:\r)?\n/g

old cliff
#

can you make one? I suck at regex

#

ok thanks!

#

thanks it works

lament rock
#

(?:\r) non capturing group where it tries to match \r the non capturing group is useless by itself, but the ? after it makes it important. It means that it doesn't have to match what's in the group. then of course matching the \n
the g at the end of the regex means that it should match multiple times. By default, it only matches by 1

old cliff
#

Where can I learn regex?

lament rock
old cliff
#

thanks

earnest phoenix
#

Caching what?

earnest phoenix
#

After getting the intents you also have to use the intents

#
new <discord.js>.Client({
  ws: {
    intents: <discord.js>.Intents.NON_PRIVILEGED | <discord.js>.Intents.FLAGS.GUILD_MEMBERS
  }
});``` for example, since you're using discord.js
zenith terrace
#

@quartz kindle why code no work

const tim = require('tim');

message.channel.send(tim)```
earnest phoenix
#

You deconstruct client class on that part, not the client setup

idle furnace
#

Can someone help me in port forwarding my rasp?

quartz kindle
#

you can deconstruct Intents as well, like you do Client and Collection

zenith terrace
#

this.ws.destroy is not a function

quartz kindle
#

you cant do this

#

client.ws is a WebSocketManager class, by doing this you are replacing it with an object

summer torrent
#

there is raid on The Coding Den server

quartz kindle
#

intents are stored in the client options

#

no

#

either do new Raven({ ws: { intents: ... } })

#

or if you want to hardcode them, then this.options.ws.intents = ...

#

yes

midnight blaze
#

has anyone any recommendation where someone can learn bash scripting in mac?

quartz kindle
#

which cache?

#

where are you running that code?

#

is the bot fully logged in when you run that?

#

are you using discord.js v12 or master?

feral aspen
#

This is now a thing? if(!guild.available);

umbral zealot
#

That's been a thing for a long time

#

though I think it used to be unavailable instead of available...

feral aspen
#

I think it would work.

umbral zealot
#

I mean

#

if(true); does nothing

#

what's the actual condition you want to do ?

feral aspen
#

return

#

Woops

umbral zealot
#

smh

feral aspen
#

I forgot to add that.

#

πŸ€¦β€β™‚οΈ

#

Also, question.

#

Now If there is a server, I made it return, meaning it won't send the const embed right?

#

If I want it to send the embed, I don't make it return, I set it as false?

umbral zealot
#

There's a problem with this code and it's that you're trying to return from within an asynchronous function

#

which doesn't work

#

anything you do within a callback or promise happens after the code after your block, runs.

quartz kindle
#

can you console.log this.client.options.ws.intents in your command code

blissful coral
#

should prob just link them to a async explanation document

umbral zealot
#

so, everything from line 35 to 45, will happen before lines 12 to 32.

blissful coral
#
#

good ol bitfield

umbral zealot
#

You have to understand this, not just try to patch it.

feral aspen
#

Ok, but what about the return thing.

blissful coral
#

read

umbral zealot
#

Read the material and it will become clear.

quartz kindle
#

you dont have presences

#

if you dont enable presences, you only get members in voice channels

#

why do you need the member cache tho?

#

you can do most things without it

umbral zealot
#

What features?

#

This is a question you will have to answer for intent request during or after verification so you might as well discuss it now

#

Right but why do you need a member list is the question

#

What is the unique compelling feature that would convince Discord to grant you the guild member intent?

boreal iron
#

@quartz kindle Your daily news about things you don't care

blissful coral
#

fuckin hell

boreal iron
#

ETA (another) 9-13 days

quartz kindle
#

xD

#

members can be fetched, thats the point

#

presences will only give you online members at login anyway

#

not all members

umbral zealot
#

Why do you need it to be a member though

#

can't you use a mention? or an ID?

quartz kindle
#

he already has the members intent

#

because they dont need to be

#

its just a waste of ram

#

and if you REALLY want them, then just fetch

#

you need to fetch anyway, there is no intent that gives you ALL members

#

fetch by id and check if the fetch worked

umbral zealot
#

If you have a user ID you can fetch that one member from the guild and see if it exists.

quartz kindle
#

if the member is not in the server, the fetch will error

#

with an id

#

yes

#

and await

#

and catch

wooden rover
#

How could I get a free vps for a discord bot

dusky sundial
earnest phoenix
#

If you find a free vps, its a bad one

dusky sundial
proven lantern
#

If you sign up for aws and give them a credit card they will give you a free vps for a year.

#

Actually you can get 2 of them for free. One linux and one windows.

dusky sundial
#

From what I've seen AWS still has limitations that might be annoying for bot hosting though

lament ruin
#

is generating a bunch of channels and roles once by using a command breaking any rules?

dusky sundial
#

It depends on if it causes your bot to get rate limited

lament ruin
tulip ledge
#

So me and a friend are working on a dungeon feature now we're using canvas to send a mesage to a special channel to then get the msg url and put tht as an embed image, is there a better way of doing this?

dusky sundial
#

You can usually tell if your bot is being rate limited if it stops doing anything for a few seconds and then continues

lament ruin
dusky sundial
#

I would say that that could definitely cause it to be rate limited

tulip ledge
#

probably if u'd do it too often too close after each other yes it'l be rate limited

#

u might wanna dd a time out between creating the channels

dusky sundial
#

Users could easily get your bot limited by spamming that command

lament ruin
#

it's not a command that can be used often

#

it's just a command to set up a layout in the server

dusky sundial
#

Still, if like 10 people do it at the same time

lament ruin
#

can only be done once

dusky sundial
#

Yeah, like Vigintallion said. Add a second or so between each creation

lament ruin
zenith terrace
#

better safe than sorry

tulip ledge
slender thistle
#

Why embed image? Why not just attach the image?

tulip ledge
#

cuz we have an embed

lament ruin
slender thistle
#

Try to send an image as a file attachment and set the embed image URL to attachment://filenamehere

dusky sundial
#

The general rate limit is usually 5/5s. So 5 requests every 5 seconds, or once per second if you will

tulip ledge
#

we tried that

#

but it doesn't work as we do it when editing the message

#

not when sending the message

dusky sundial
#

But I believe the rate limit for creating/deleting channels is even more strict than 5/5

lament ruin
#

Okey, then 1 s per ch and role creation is fine, right?

dusky sundial
#

I'd say that'd be fine, but I'm not too sure about it

lament ruin
#

Hmm, there are at max 46 ch or role creation calls in that command. I just dont want the users have to wait 1 minute for that. But i guess that it may be a problem...

old cliff
#

U have to wait

lament ruin
#

Okey

#

I'm guessing that for channel deletion is the same thing, right?

queen moss
#

Does anyone happen to know a GUI app for creating OpenAPI v3 specification docs

#

I can do it manually but if anyone happens to know a tool (I'll even pay) I'm all ears because this is exhausting

tardy arch
#

const bountyID = require('../config.json'); is in bounty.js and i am trying to read config.json

#

shouldnt that get the bountyID variable stored in config.json

lusty quest
#

did you use json as a database?

tardy arch
#

yes

lusty quest
#

DONT

tardy arch
#

why?

lusty quest
#

file based databases are slow, prone to corruption and file manipulation is single threaded

queen moss
#

I'm assuming you mean something like

{
"bountyID": ""
}

in that case you need
var ids = require("../config.json").bountyID

tardy arch
#

yes

queen moss
#

also @lusty quest while that is true, you don't know their use case

lusty quest
#

json is fine for static stuff, if it gets dynamic, dont

#

but out of the name of the value he wants to get i would guess there will be mutiple of them and maybe even dynamic uses by users who can claim it

tardy arch
#

i am making a command for someone that already has a bot and he told me to do it that way

queen moss
#

in that case follow what they requested, while it may not be ideal, it is what they requested

lusty quest
#

did you read and write to the file or only read?

#

(also in the future)

tardy arch
#

i only need to read

#

atleast in my command

lusty quest
#

you wont write to it in the future?

#

with other commands / events?

tardy arch
#

he probbly will have another json file where he writes

#

idk

lusty quest
#

read is fine, writing can cause issues

tardy arch
#

in my case i only need to read

lusty quest
#

i talk about in future not now

queen moss
#

They asked about the present. While I see your point in mentioning the future, you've made your point now.

tardy arch
#

idk what his plans for the future is

lusty quest
#

did you plan to have stuff like per guild configs?

tardy arch
#

its a personal bot

queen moss
#

Super. They just said they don't know the other developers plans. Lay off.

tardy arch
#

for 1 guild

lusty quest
#

ok then it should be fine

lusty quest
queen moss
#

I understand that, but you cannot control all of their actions- while it would be nice to help prevent all future issues, you can't become overbearing and controlling.

tardy arch
#

thats when you begin writing tho

queen moss
#

Correct

tardy arch
#

or can it happen when you read

lusty quest
#

read is fine

#

writing causes some issues due to having an easy time corrupting the file if as example 2 processes try to write at the same time

tardy arch
#

that makes sense

lusty quest
#

if you want to start with a database, sqlite based Databases should work quite well (if you dont use a Free host like heroku they delete the entire app and pull a fresh one from github -> all data gone)

queen moss
#

You are suggesting things they didn't ask for

#

They asked a simple question- specific to their use case, and you began spitting out cautions and other needless information that wasn't requested

#

There is a time and place for suggestions like that

lusty quest
#

more informations?

feral aspen
#

Not sure what is causing this.

#

I never uploaded an image as well.

pale vessel
#

What do you mean

feral aspen
#
const embedError = new MessageEmbed()
.setColor(red)
if (!args[0]) {
    embedError.setDescription("❌ Please mention the category you want to view.");
    return await message.channel.send(embedError);
} else if(args[0]) {
    if (!message.member.hasPermission(["MANAGE_GUILD"])) {
        embedError.setDescription(noPermissions);
        return await message.channel.send(embedError);
    };
}
#

I did this.

#

I didn't mention args

#

.. and it is returning that.

pale vessel
#

The color isn't even changing

#

What's red?

feral aspen
#
const { red, cyan } = require("../../other/texts/colors.json");
#

red is the hex

#

.. and the description wasn't set.

queen moss
#

Thats a default discord embed

#

if you send a embed at all even with invalid data itll send that

feral aspen
#

Ik, but idk why it is empty.

queen moss
#

ohhh I see.

safe creek
#
    @commands.command(aliases=['user-info'])
    async def user_info(self, ctx, user: discord.Member):
        """display specific user information"""
        embed = discord.Embed(title="user details:", description=user.mention)
        roles = []
        for role in user.roles:
            if role.name != '@everyone':
                roles.append(role.mention)

        if len(roles) > 0:
            roles = ' , '.join(roles)
        else:
            roles = "user does not have any roles."

        permissions = []
        for permissions in user.has_permissions:
            if permissions != f'{has_permissions}':
                permissions.append(permissions.Permissions)

        if len(permissions) > 0:
            permissions = ' , '.join(permissions)
        else:
            permissions = "This user currently doesnt have any permissions"

        embed.add_field(name="roles:", value=roles)
        embed.set_thumbnail(url=user.avatar_url)
        await ctx.send(embed=embed)``` sending error in a second
#

error

#

im not sure where to put the member?

queen moss
#

@feral aspen Perhaps try Discord.MessageEmbed() - assuming discord.js

feral aspen
#

No, I defined as { MessageEmbed() }

queen moss
#

ah

#

Hm, it's been a hot minute since I've used default d.js tbh so I'll leave it to someone else lol

slender thistle
#

What the hell is permissions.Permissions

#

Also you're overwriting your list

earnest phoenix
feral aspen
#

It's still not working.

#

let me see again

safe creek
slender thistle
#

What the fuck are you doing there

safe creek
#

shhh

#

dont ask

#

just help

#

shh

feral aspen
#

πŸ‘€

pale vessel
#

You should use permissions_in() instead since that's just the global perms

slender thistle
#

ctx.channel.permissions_for(user) ftw

#

Since that returns a Permissions object, we can then use a "simple" one-liner to just list the permissions and then join the elements in that list with a comma

safe creek
feral aspen
#

It's a String

#

Whenever I don't mention args, it returns this.

#

.. and even if I mention args

#

it yet returns that.

#

wot

fair axle
#

How can I learn slash commands?

zenith terrace
#

ok flaz got it before me

pale vessel
icy skiff
#

How do I request for privileged intents after the bot has already been verified?

icy skiff
#

Ty very much kind stranger

strong fractal
#

Is it fine having firewall installed on a VPS of your bot? waitWhat Like I am currently thinking about it. Seems stupid, but at the same time it won’t anything bad (apart from using some resources)

slender thistle
#

It's fine

strong fractal
slender thistle
#

To keep their machines from being accessed publicly

strong fractal
#

It will become even more laggier and it won’t probably provide as much security as I think

#

Hm

slender thistle
#

Laggier?

strong fractal
#

Well, it will glitch a lot

slender thistle
#

The firewall or the machine?

strong fractal
#

The machine will be more glitchy with having firewall installed

slender thistle
#

I've had no issues with a running firewall for like 2 years now

#

Β―_(ツ)_/Β―

strong fractal
#

Hmmm

#

Do you have β€œantivirus” installed?

slender thistle
#

I use Windows Defender

strong fractal
#

On a vps? XD

slender thistle
#

🀣

#

Bear with my tired mind

#

Nah, no antiviruses on my VPS

strong fractal
#

Lmao

#

Well, anti viruses must be really useless

slender thistle
#

On a VPS sure

strong fractal
#

What firewall do you recommend?

slender thistle
#

I use ufw since my VPS is Ubuntu

strong fractal
#

Yeah, I have been think a lot about ufw

#

Guess I will install it

#

Thank you poggythumbsup

slender thistle
lament rock
#

Firewalls and antiviruses on linux based VPS' are kind of useless if you don't download anything other than what your project depends on and so long as you have some form of secure authentication such as public key authentication only

#

Would only take up cpu time

slender thistle
#

Yeah true

strong fractal
lament rock
#

So, be proactive about security. Not reactive

#

a firewall isn't being proactive

strong fractal
strong fractal
#

Security is good and cozy, but i shouldn’t be too focused about it okeh

lament rock
#

Yes. What purpose does a firewall serve if you know what you're downloading and no one else can access your VM

strong fractal
#

Are there any blogs where it is stated how much resources does firewall on different vps (or UFW if being specific) use

#

Nvm

sour flame
#

sup

frigid mountain
#
const Discord = require('discord.js')

module.exports = {
    name: 'approved',
    run: async (message, args) => {
    const sayMessage = args.join(" ")
    let embed = new Discord.MessageEmbed()
    .setTitle("Approved")
    .setDescription("message.mentions.members.first(); has been approved")
    .setColor("#00ff00")//it's aco's green color hehe

       
        message.channel.send(embed)
    }
} 
solemn quartz
#

Guys how to make the bot edit his msg? just tell me the name method, i'll see the docs

frigid mountain
solemn quartz
#

Pls just say the problem this time

solemn quartz
#

const Discord = require('discord.js')

module.exports = {
name: 'approved',
run: async (message, args) => {
const sayMessage = args.join(" ")
let embed = new Discord.MessageEmbed()
.setTitle("Approved")
.setDescription(message.mentions.members.first() + "has been approved")
.setColor("#00ff00")//it's aco's green color hehe

    message.channel.send(embed)
}
solemn quartz
#

this should work

solemn quartz
frigid mountain
slender wagon
#

hi so i don't want all my html files to have the header code coded in i want to find another way to maybe load another file into the html file i am using express

vivid fulcrum
#

switch to an SPA framework that uses components, i.e. react or angular

slender wagon
#

so no more html

vivid fulcrum
#

welll yes and no

slender wagon
#

lol

solemn quartz
#
const Discord = require('discord.js')

module.exports = {
//Mention
function getUserFromMention(mention) {
    if (!mention) return;

    if (mention.startsWith('<@') && mention.endsWith('>')) {
        mention = mention.slice(2, -1);

        if (mention.startsWith('!')) {
            mention = mention.slice(1);
        }

        return client.users.cache.get(mention);
    }
  }
    name: 'approved',
    run: async (message, args) => {
    const sayMessage = args.join(" ")
const approved = getUserFromMention(args[0])
const approvedM = message.guild.member(approved)
    let embed = new Discord.MessageEmbed()
    .setTitle("Approved")
    .setDescription(approvedM.username + "has been approved")
    .setColor("#00ff00")//it's aco's green color hehe

       
        message.channel.send(embed)
    }
} 
``` @frigid mountain try this
vivid fulcrum
#

it's complicated to explain

solemn quartz
#

Oh wait

slender wagon
#

i used pug before but i don't like it tbh

solemn quartz
#

you want to mention the user?