#development

1 messages · Page 13 of 1

earnest phoenix
#

Sure I suppose

sharp geyser
#

Hello old wise one

ancient nova
#

should I sent you the invite in dms?

#

alr ty

earnest phoenix
#

Go ahead

hard wraith
#

This is why I think they used OAUTH Cus how could they get my token if my 2fa code expired after I logged in with it?

sharp geyser
#

Okay but here's the thint

boreal iron
#

Not possible still…

sharp geyser
#

Oauth is so they don't get your token.

#

All they get is a temporary access token that has no real permissions

#

All it can do is get information with the scopes it was provided

#

Like I said oauth isn't set up in a way they can just steal your account with it

hard wraith
#

Yeah… I get that but somehow they got my token and I had 2fa… only way to get my token would have been if I actually logged into discord and they saw it on my browser inspect element…

#

But they didn’t.

sharp geyser
#

That's not the only way

#

People have gotten smart lately

hard wraith
#

It’s confusing. Idk how they did it but they stole an old alt account that used 2fa. And idc to know how they did it as that just makes people stop trusting my site that logs you on with discord.

sharp geyser
#

Also just to let you know

wheat mesa
sharp geyser
#

Even when using oauth they'd not be able to bypass 2FA to my knowledge

wheat mesa
#

Token is a direct access to your account, 2fa is literally useless for it

#

2fa is just for when someone uses your login

sharp geyser
#

And that's even assuming oauth was used here

hard wraith
#

It’s kinda sus. Doesn’t tell you it’s adding you to a server just click the join button on the site and go to discord on your own and you’re in a new server.

solemn latch
#

if you give it perms to yes

sharp geyser
#

But I still doubt so cause oauth is set up in a way where the credentials is stored on a server for verification purposes

solemn latch
#

discord will tell you before you login if you're giving an application permission to join a server for you.

lyric mountain
#

As if people actually read it

hard wraith
sharp geyser
#

I think you just ran across a token stealer and was dumb enough to fall for it

lyric mountain
hard wraith
lyric mountain
#

That's why it doesn't show "you're about to join x"

#

For example, bot lists which server discovery

#

That u can join by pressing a join button

solemn latch
#

yeah, it realistically cant just say that

hard wraith
#

That’s not my point!

#

By pressing the button it doesn’t redirect you to discord.

lyric mountain
#

It redirects u to the webserver

solemn latch
#

it redirects you to the redirect url

hard wraith
#

It doesn’t let you know it worked. Doesn’t tell you you joined… unless the site tells you.

hard wraith
solemn latch
sharp geyser
#

It doesn't have to if you agree to them joining a server for you

solemn latch
#

👀

lyric mountain
#

Do you know hoe the oauth flow works?

hard wraith
#

Oh…

lyric mountain
#

Like, the redirection part is VERY important for that

hard wraith
#

Wait no redirect url…

solemn latch
#

its literally required

sharp geyser
#

This is another reason why people who don't know anything shouldn't try and speak malformed facts

hard wraith
#

That’s the page you got sent from…

lyric mountain
#

The redirect url will contain the exchange code, which the server will use to get an access token

solemn latch
#

nope, its a callback url

sharp geyser
#

It happens so fast you don't even notice the page changes

hard wraith
#

No in my integration it sends you to a return page that then sends you to the page you clicked the join button on…

solemn latch
boreal iron
#

I mean we have gone through this already, I did explain it

hard wraith
#

I think I fucked up my return handling…

sharp geyser
#

This conversation is giving me anxiety

lyric mountain
#

An oauth that doesn't redirect u to the service's endpoint makes no sense at all

sharp geyser
boreal iron
sharp geyser
#

I didn't even wanna have this conversation

#

😔

hard wraith
solemn latch
#

is that even possible?

hard wraith
#

Cus some servers require you to pass the member screening

hard wraith
boreal iron
#

How tf do you wanna get the access token then after the user did authorize himself?

solemn latch
#

like using oauth is it physically possible?

sharp geyser
#

What do you mean woo

hard wraith
#

Members are clicking the join button on the site but not seeing the welcome message that tells them where to go to get access to the rest of the channels…

sharp geyser
hard wraith
#

That’s my issue… they get 0 welcome screen or member screening.

solemn latch
sharp geyser
#

I mean in a redirect it has to

#

But you can make it redirect later to a discord invite

solemn latch
#

I guess it can redirect that redirect, but thats up to the developer

#

yeah

lyric mountain
#

What joins u to the server isn't the authorization page, it's the service

solemn latch
#

so if you really want that you can

hard wraith
boreal iron
lyric mountain
#

The auth page does nothing other than send the code to the service

hard wraith
#

Or does discord block that?

lyric mountain
#

Like, literal nothing

sharp geyser
#

That's assuming your using authorization code grant

#

Discord supports multiple grant types

lyric mountain
#

Isn't bot scope the only one that doesn't use code grant?

hard wraith
#

I think maybe it’s best I don’t use oauth to get users to join my server… it seemed simpler incase the invite link changed…

sharp geyser
#

Authorization code grant is just the most commonly used as it has a longer expire time iirc

hard wraith
#

But it’s just causing more issues for users because they don’t get the welcome message.

lyric mountain
#

Can't u simply use a link button?

hard wraith
#

Or member screening.

sharp geyser
#

Implicit grant gives you an access token only and can't be refreshed

hard wraith
lyric mountain
#

Just make the invite permanent

sharp geyser
#

The benefits of authorization code grant is it gives an expiration time and a refresh token to get a new access token

lyric mountain
#

Or make the bot refresh it on invite event

solemn latch
#

I assumed everyone used authorization code grants

sharp geyser
hard wraith
sharp geyser
#

It all depends on what you wanna do

lyric mountain
#

Make the bot refresh the url when the current one gets deleted

hard wraith
#

I still have sites that have my custom invite but I stopped paying for extra boosts…

#

Lot of hastle…

solemn latch
#

tbh, if you're inviting via a button dont use a custom invite

hard wraith
#

It was those linktree things…

sharp geyser
#

Just get your server popular enough to use vanity

#

Simple solution then you don't gotta worry about invite deleting just gotta make sure boost lvl 3 stayss

#

😎

hard wraith
lyric mountain
#

I just lock invites so only I can create one, then simply make it permanent

#

2 years and it's still there

maiden urchin
hot olive
#

Hey, so I just uploaded my bot to the site but the css don't work. I mean the css works but the colors don't. Here it is.

<div class="content entity-content__description css-18r9pyf"><style>
    <style>
        span {
            color: #6a0dad;
        }

        span,
        h1 {
            font-weight: bold;
        }
    </style>
maiden urchin
#

Despite being linked actively everywhere the support Discord for my bot sees less than 2% of the bot users join

solemn latch
#

smaller support discords are better imo.

maiden urchin
#

Probably cause the bot never really has issues atm

lyric mountain
#

I have a direct support line at my bot's DM, so people can simply ask there and one of my supports answer it

boreal iron
hard wraith
lyric mountain
#

No need to join anywhere

boreal iron
#

Can’t be easier

maiden urchin
#

But I regret making it honestly, I should've just forced them to join support discord

hard wraith
maiden urchin
#

Haha, that's part of it for sure but is a non-issue

hard wraith
#

I don’t fancy paying a bad live chat service that I wanna replace, £50 a month to get access to their dev api to add it to my bot DMs…

lyric mountain
#

Write ur own chat service

#

They aren't hard

hard wraith
#

I am…

#

I just don’t have the time… work has me making node libraries for them.

sharp geyser
#

The pains of a bot dev

#

I don't see why people really try anymore

solemn latch
#

fun

lyric mountain
#

I like it

maiden urchin
#

Imo unless your bot is huge the best support method is a support discord.

#

If its too big then a queued ticket system might be more managable

hard wraith
#

Whenever I ain’t “relaxing” or sometimes when I am… they call me with a task I have 4 hours to do but it needs 8 😂

hard wraith
lyric mountain
#

That's why you say it needs 12

maiden urchin
sharp geyser
#

There's already giants in the industry so doing it with the goal of getting famous seems obsolete unless you offer a completely unique service that is hard to come by. Which that in itself is an issue as the market is so flooded with multipurpose bots that already do what you do

hard wraith
#

I don’t want that info in a discord server. So if you log a ticket, your payment account is tied to your website account anyways.

hard wraith
sharp geyser
#

Trying to grow a bot is kicking yourself in the groin at this point

maiden urchin
#

My biggest bot is only 2.3k servers rn and we still can actively manage support with no queue. I imagine you need 100k+ before managing support becomes an issue

hard wraith
#

And the servers adding it from topgg aren’t even initialising it to even view their member count…

#

My bot literally doesn’t even look at your server unless you run the setup command.

#

Doesn’t matter that it’s there.

sharp geyser
#

You just have to have the right helpers

lyric mountain
#

I don't worry much abt growing fast, leaves me time to improve my techniques so I can improve shiro on the way

solemn latch
#

why though 👀
shouldn't it auto initialize?

maiden urchin
#

Yeah. I mean my bot is social games so there's very little room for people needing support

sharp geyser
#

A dev should hardly ever offer support in a large bot

#

Unless it's a serious broken issue

hard wraith
sharp geyser
#

When a bot becomes big enough you get volunteers or hire helpers

#

And let them handle the non serious stuff

hard wraith
#

And approve features. So I just make it wait for their input. Then it will allow you to use commands that impact the server.

maiden urchin
#

Yeah I already do that with my tiny bot xP

#

just 4 friends with moderation access to deal with reports and tickets

hard wraith
#

Things like interacting with my companies api is always active as that’s able to be done in DMs

sharp geyser
#

Only discord related development I'll ever do is oauth and gateway

#

That's the only discord related development I find enjoyable anymore

lyric mountain
#

Come write some cards for me mmulu

hard wraith
#

Plus… I really need my support command to tie to my helpdesk because that’s linked to stripe…

sharp geyser
#

Does that have anything to do with gateway or oauth haku

lyric mountain
#

Neither ig, it interacts solely with my game framework

hard wraith
#

You gonna have blackjack?

lyric mountain
#

Nah, shoukan

#

My own tcg

solemn latch
#

I need to work on blackjack again. that was such a fun bot.

sharp geyser
#

Idm doing that much

sharp geyser
sharp geyser
#

But that's a project for another distant future

hard wraith
#

I’m addicted to throwing fake money away on fun blackjack games on discord.

sharp geyser
#

Make blackjack but it's biased

#

If anyone plays against you no matter what you'll win

hard wraith
#

It’s the rush of gambling… without any risk.

sharp geyser
#

Without any risk you say

#

I've seen people lose thousands on black jack

hard wraith
#

Like unbelievaboat… you just do /Slut and you get money and can go play blackjack again 😂

hard wraith
#

🤣

sharp geyser
#

Depends on how devoted to the bot the person is

hard wraith
#

True…

sharp geyser
#

Fake money could hurt em just as much

hard wraith
#

Where I’ve used it you got like 20 billion a day just for being active.

solemn latch
hard wraith
#

So we just spammed blackjack.

hard wraith
sharp geyser
#

Does anyone know if that Auctioneer bot is still around?

#

I remember it used to be quite famous

hard wraith
#

I think so…

#

I don’t think it’s the same one but I think there’s a bot that took its place.

sharp geyser
#

Probably not as good as the old one then

#

I actually was good friends with the owner of it at one point

hard wraith
#

You know what I’ve come to hate now…

#

Self bots sending me spoofed discord invite links from large servers or legitimate giveaway bots used by reputable servers to host their giveaways being used by other servers to spam people scam links saying it’s “free nitro giveaway” when I didn’t enter….

solemn latch
hard wraith
#

You're that guy...

#

You been caught counting yet?

solemn latch
#

nope, never would in a casino.
mostly because I sucked at counting lmao

#

simple math, still cant do it 😄

sharp geyser
#

Also could lose your life depending on where you're gambling

hard wraith
#

I find simple math hard... But complex algebra? Easy.

solemn latch
#

plus i lose all my money before counting would be effective

#

lmao

hard wraith
#

Totally not because I get X free credit a month on both as a Sky Platinum VIP lol

#

Something about paying over £200 a month to them...

sharp geyser
#

That's stupid

#

Gambling is something I'd never get into

solemn latch
#

good, dont

hard wraith
#

Ok best TV package I could get, best internet I could get... Business internet ontop of that and a business mobile... They give me free credit on their gambling apps every month, its normally between £5 and £15 and I use that, never use my own money.

lyric mountain
#

The issue with gambling is the "What if the next try is a win?" voice on the back of the head

hard wraith
#

And then I use whatever winnings I make to pay my next bill.

sharp geyser
#

And then it's "Well I won when I was least expecting so let's keep going"

#

Then they lose all their money

lyric mountain
#

A fun thing is that cassinos structure their business in a way that even when they lose, they win

hard wraith
lyric mountain
#

I had to learn abt it when I was implementing a slot machine on my bot

sharp geyser
#

You better hope you have average luck

#

If you keep winning you may get in trouble

hard wraith
#

I win maybe once every £10

sharp geyser
#

One thing movies always got right was how casinos work

hard wraith
#

with bets of £0.50

sharp geyser
#

Some of em are so corrupt they don't care about killing

hard wraith
#

Yeah UK gambling sites are way more regulated lol.

sharp geyser
#

I'm surprised UK allows gambling

#

They tried shutting down memes

hard wraith
#

I doubt ima have my kneecaps smashed in for winning at online slots using a reward bonus credit from being a loyal customer to the company that owns said online casino.

sharp geyser
#

You never know

#

Tony might show up

hard wraith
#

Yeah... Only been doing it 2 year...

ancient nova
hard wraith
#

Wait... we did?

#

We made memes...

lyric mountain
#

Ah yes, it was 2 years or so ago

hard wraith
#

We even made memes about hating memes

sharp geyser
#

It was a laughing matter

hard wraith
#

we make memes about america being the only place you get an AR15 in every happy meal...

lyric mountain
#

Reddit even had people ddossing gov sites

sharp geyser
#

UK political body tried outlawing memes

hard wraith
#

And we tried to ban that?

sharp geyser
#

And got shit on for it

#

Lol

ancient nova
hard wraith
#

The best way the british get to do what we do best? Shit on america? And you think we wanted to take that away?

solemn latch
#

we are so good at being on topic tonight ^_^

hard wraith
#

oop

sharp geyser
#

Woo

earnest phoenix
hard wraith
#

meme command development.

sharp geyser
#

You already know this is a 3rd general

lyric mountain
#

You see, it's had to talk abt dev in this channel

sharp geyser
#

Don't try and stop it

lyric mountain
#

It's...idk, it's just natural

solemn latch
#

close enough, we are discussing gambling because... gambling bots!

hard wraith
#

I mean you have a bunch of ADHD developers in a dev channel...

sharp geyser
hard wraith
#

one topic leads to another...

sharp geyser
#

Glad you get it

hard wraith
#

and suddenly you end up with shitting on a country for stupid politics that would have taken away one of the best things to use in bot dev.

sharp geyser
#

Honestly you guys might as well just rename the channel general-3

hard wraith
#

gen-3-with-added-dev

sharp geyser
#

gen pop 3

#

For the rule breakers

hard wraith
#

Then again people ask about dev in gen...

sharp geyser
hard wraith
#

Ok yeah...

solemn latch
#

We try and send people to dev if they ask in general or support

hard wraith
#

But sometimes... They need that dev support cus it ends up being they messed up putting a webhook endpoint into their topgg page...

solemn latch
sharp geyser
#

Woo just embrace what's happening here

hard wraith
sharp geyser
#

Now you've killed the only active channel

hard wraith
#

wait wait wait

solemn latch
#

I'm tired, I can't give warnings out

sharp geyser
#

😔

sharp geyser
solemn latch
#

No, I want to sleep ^_^

sharp geyser
#

Oh go do that then tf

solemn latch
#

Soon

#

Valorant still

sharp geyser
#

Smh

hard wraith
#

This is dev... Someone tried to pass a local directory as a URL... and exposed that I put the google image review api before the check for it actually being a URL cus I was tired lol.

sharp geyser
#

Not woo becoming nom

earnest phoenix
hard wraith
#

like it was optional... coulda left it blank...

sharp geyser
#

What's it about

#

Also didn't they make a movie about that book?

hard wraith
sharp geyser
#

No thanks

#

I don't read books

hard wraith
#

...

#

but movies always miss out the best bits...

sharp geyser
#

I read documentation

hard wraith
#

Cus of time restraints...

wheat mesa
#

that is literally 1984 if you don't know what 1984 is about

earnest phoenix
hard wraith
sharp geyser
#

I'm never going to read it

hard wraith
#

might have the movie mistaken...

#

and actor... cus a lot of movies make jokes where they reference 1984...

lyric mountain
#

So minecraft got a new version

lyric mountain
#

1.19.84

sharp geyser
#

Here's the Hangul Chart

lyric mountain
#

The censor update

hard wraith
#

LMAO

#

Why do I feel like that is actually what minecraft set the update number for chat censoring to...

sharp geyser
#

Okay I'ma stop before woo actually bops me

hard wraith
#

my bot is in 7 servers...

#

the database has config for 3...

solemn latch
#

👀 do you delete the config when the bots kicked?

hard wraith
#

Yes

#

but incase that fails...

#

I routinely have a prune command running that clears the database of servers it isnt in

lyric mountain
#

I used to but...it's better to mark it as to-delete

#

Then delete 1 month later

#

People mistakenly kick the bot sometimes

hard wraith
#

Thats how often the prune cron job runs...

#

every month lol

solemn latch
#

might be deleted quickly for some servers then

hard wraith
#

tho under GDPR I could technically keep the sensitive data for 3 months and non sensitive data for 3 years...

lyric mountain
#

I have 4 crons

solemn latch
#

ideally things like that would be consistent, like a delete at timestamp.

lyric mountain
#

Minute, hour, day and month

hard wraith
lyric mountain
#

What if someone kicks the bot at 23:59 GMT at 31th?

#

Tf is the suffix for 31?

hard wraith
#

well as the kicking of the bot is meant to delete the data, the cron job is just a backup incase that fails.

#

so it is basically a redundant feature that has never really deleted anything from the database.

#

I dont like keeping any data I dont need. So delete when the bot isnt in the server.

solemn latch
#

meanwhile I'm keeping all the data for as long as possible 👀

hard wraith
#

Except incident logs like kick and ban... Becase a user can log into my site and view a list of all incidents tied to their discord account datiing back a year (the timeout window to appeal the incident and improve their rating)

hard wraith
#

like they say at most 3 months after its not needed. But I stick to as soon as not needed.

wheat mesa
#

imagine being in europe and having to comply with data laws that screw over small developers

lyric mountain
#

Is the data u generate urself held under gdpr?

solemn latch
#

all my data is anonymized

hard wraith
#

like I went as far as only storing a discord ID about a user in the database lol

#

I request their email when I need it.

#

And it works as my site only has discord login.

#

(for now)

lyric mountain
#

Is discord id considered anon?

hard wraith
#

No

lyric mountain
#

Like, you can't really track down who owns the id can you?

hard wraith
#

Yes.

#

You can use it to request personal info

solemn latch
#

discord considers it anonymized

hard wraith
#

Nevermind...

lyric mountain
#

Like, you can only find the id owner if you're in the same server as them

hard wraith
#

Guess im overkill on what I consider personally identifiable.

lyric mountain
#

Other than that, it's as useful as a hash without source

hard wraith
#

wait nevermind thats oauth.

#

You already got their user details lol

lyric mountain
#

I don't mean tokens or stuff, I mean the snowflake

solemn latch
#

1003513099636179102

hard wraith
#

I mean you can get it from your bot user cache...

lyric mountain
#

Only you tho

hard wraith
#

so like they could not be in the server anymore and still be in the cache

solemn latch
#

sure, but is it pii?

lyric mountain
#

But gdpr allows up to 3 month, I don't think anything will still be in cache that long

hard wraith
#

But speaking of the snowflake, you cant get the PII from that.

solemn latch
#

yeah

hard wraith
#

So even if it was, it aint anymore.

lyric mountain
#

I think the only thing I have that can be considered sensitive is usename and guild name

ancient nova
hard wraith
#

Thats not USER information.

#

guilds are basically objects and have the data protection rights of a non living entity. But user information is GDPR.

#

You can keep guild info forever if you wanted.

#

just not the owner details lol

lyric mountain
#

Just username then, which I delete after some time of not being in any mutual server

wheat mesa
#

GDPR just sounds like it fucks over small developers because you need to check so much shit where it's kind of a gray area

hard wraith
#

Honestly unless you are asked about how you handle GDPR most people dont.

lyric mountain
#

It's kinda hard to prove you don't

hard wraith
#

Im checked every 3 months by the information commissioners office as a registered company and one that has declared we handle payments through a third party.

#

They just keep checking in to see that my data handling is still in line with legislation for payment handlers.

#

Plus the UK just added 3d secure and I had to spend 2 hours on the phone with them to assure them that my site used it lol.

#

Thank god for stripe enabling it by default on their hosted payment gateways.

vivid fulcrum
#

but ig it's that or a slap on a wrist with a fine

hard wraith
#

I elected for every three months with me and the company being protected.

vivid fulcrum
#

ah

hard wraith
#

But the developer that screwed up being reponsible for the fine.

vivid fulcrum
#

more reasonable when it's voluntary, i can see where you're coming from

hard wraith
#

So if I broke GDPR... I get the fine. If some douchecanoe that wants to make a quick buck leaking my customer's data fucks up and does that...

#

My company suffers a reputation issue... And he gets a fine from ICO and sued by my lawyers.

#

And my day job...

#

Cus they are my top client lol.

#

and that is why... Only I can work with the stripe API on my apps.

#

that has the personal data, my database doesn't.

#

Wonder if you guys can see which node package I am proud of using lol

sharp geyser
#

So many packages

#

This guy still using discordjs dev version

#

When v14 is already the new stable

#

Isn't fs a built in package why did you install it yourself

hard wraith
#

This is my dev pc... I dont even test on this...

#

Wait I require fs in my package.json?

sharp geyser
#

You apparently installed it

hard wraith
#

pft...

#

Wasnt me

#

I told you, I aint the only dev working on this.

#

but yeah... I am surprised it hasn't defaulted to the stable v14 yet...

sharp geyser
#

That will only happen if you install the stable version

hard wraith
#

am I also using the wrong api-types?

#

and rest?

sharp geyser
#

Idk

#

Rest is a given cause it's already been had a stable release as well

#

Idk about API types as I don't actively keep up with it

hard wraith
#

I think I need to go clone my works package update checker to my pc...

#

Would you mind telling me if my package has sufficient error handling in it?

#

Like I need to know that if something goes wrong the user gets sufficient error messages.

sharp geyser
#

Can't on phone sorry

hard wraith
#

It’s on azure they have a mobile friendly repo viewer 😂

#

From the web.

#

And the reason I’d link you to the repo is so I can manage your access 😂

sharp geyser
#

Github is the same but I'm not going to sift through code on a small screen

hard wraith
#

But is reject(error) sufficient error handling on a package that calls those promises within exported functions with 0 error handling? Because like… one of them is let data = checkImage() and if I reject the promise is that going to show an error in the console and stop processing the other function that called it or will it error then try to continue the other function?

#

checkImage just calls a ML api to get details about an image being adult and other things…

#

The other functions handle that data to give user friendly outputs for them to use in their code.

#

Oh it’s 6am… guess I gotta go to work now 😂

ancient nova
earnest phoenix
#

Ok, my "auto verification" system for 18+ is done. Not super pretty but it works great using opencv, facial recognition and google vison, text detection. Even works on mobile. Matches your face against 6 images, paper verification too. and has a threshhold of 80% matching. All done with a live-camera, no images can be uploaded.

Hows this?

hard wraith
# ancient nova u spent entire night texting 🤣

Testing apis and node modules for work, testing other people’s bots and watching House on prime. Now I’m adding the apis and node modules that use them to apps for work then I’ll spend all afternoon waiting for them to fail builds.

hard wraith
#

DevOps Engineer…

ancient nova
#

I'm jk tho have a good day at work bro

hard wraith
#

I cover from basic development to network security and rudimentary IT

#

I hate and love it 😂

ancient nova
earnest phoenix
#

Is it for applications or is it a library?

earnest phoenix
hard wraith
#

So good job.

earnest phoenix
#

🙂

hard wraith
#

You did what I pay per verification for free

earnest phoenix
earnest phoenix
sharp geyser
#

Hold the phone ina fucking discord bot?

earnest phoenix
#

yep^

sharp geyser
#

Well that's one way to step above everyone else

earnest phoenix
#

^_^

sharp geyser
#

If it's made well I'm sure a lot will use it

hard wraith
#

earnest phoenix
#

its "ok" right now

hard wraith
#

Mate I literally been using it in a bot for a year 😂

sharp geyser
#

Everything starts out like that at first

hard wraith
#

Nobody uses it.

sharp geyser
#

You probably implemented it poorly

ancient nova
earnest phoenix
#

my reverse image search bot went from 0 users to 550k users in 10 days, im sure this will too 🙂

sharp geyser
#

I'm kidding obviously

sharp geyser
#

Gotta get it out there first

earnest phoenix
#

lol yea

#

i spent $400 on the last bot in 2 days

#

lol

earnest phoenix
hard wraith
#

I’m using a more secure function and creating a digital ID card that once I get it to verify with the Uk government as a valid ID for online transactions, would remove needing your drivers license to verify age.

earnest phoenix
sharp geyser
#

Voltrex when will you make a bot

#

good bot*

hard wraith
#

That’s why mine isn’t being used. Because I have it, just ain’t pushing it to servers Cus I want it to be an officially accepted ID. Meaning I wanna keep improving the platform it’s on.

sharp geyser
#

Idk how the UK works so idk what you're talking about with ID

earnest phoenix
# sharp geyser Voltrex when will you make a bot

I don't think I'll ever make a Discord bot again, since I moved away from Discord bot development; my responsibility now is to maintain the biggest projects in the entire world (you know, Node.js, V8, LLVM, etc, etc), way better for a resume and job findings

hard wraith
#

Anyways back to work… issue with custom made libraries… you have to be around when it gets implemented for the first time as the one that made them.

sharp geyser
#

Sure sure

earnest phoenix
#

I haven't bothered with Discord bot development in like 5 months or so

sharp geyser
#

I am just looking for a project to work on at this point

wheat mesa
#

A language with rust

sharp geyser
#

Game dev is fun but time consuming

#

Waffle go to fucking sleep my g

wheat mesa
#

It’s 2am and I’m telling you this so you better take it seriously

sharp geyser
#

No

#

I will never do lang dev

wheat mesa
#

Coward

sharp geyser
#

I'll trust the smarter people

earnest phoenix
#

Waffle how's your breakfast programming language going on?

wheat mesa
#

Going good

earnest phoenix
#

Or is it an esolang?

sharp geyser
#

Its pretty soggy by now

wheat mesa
#

Esolang

#

I have one more thing to implement in the parser and then it’s time for me to move on to codegen

sharp geyser
#

He put too much syrup on his horrible pancakes

earnest phoenix
#

I think they fell asleep mmLol

wheat mesa
#

No no I’m just on another app

#

I have every part of the AST generated except for functions

#

Which is probably going to take me like 100 lines, it’s not very unique tbh

earnest phoenix
#

Oh, well that's pretty important, good luck on it

wheat mesa
#

Ty

#

I decided to be lazy and just make structs instead of classes

sharp geyser
#

Imagine needing to do it in 100 lines

wheat mesa
#

So no methods inside of classes to worry about

#

Just fields

sharp geyser
#

Be better and make it in 50

#

Ok gn guys

wheat mesa
#

Wanted to keep it relatively simple since it’s my first time doing codegen

#

Gn misty

cinder patio
#

give an example of the lang

wheat mesa
#

ss from earlier, on mobile rn

cinder patio
#

okay but an example of ur lang not the AST

#

hard for me to piece it together like this

sharp geyser
#

Yea waffle

wheat mesa
#

That’s essentially the equivalent of while(!false) print 15;

cinder patio
#

okay but what'd it look like in your lang

wheat mesa
#

The string in the screenshot

#

flipwhen(ain't raw) serve 15#

sharp geyser
#

flipwhen (ain't) serve 15#

cinder patio
#

oh

sharp geyser
#

oh wait ain't is the logical not operator

#

And raw is your bool

wheat mesa
#

While statements aren’t really very unique in my lang

earnest phoenix
#
import random, time, json, requests, hashlib, urllib, uuid; from collections import OrderedDict

def get_device(self, gorgo, khro, stub) -> dict:
        payload = self.get_payload()
        params = self.get_params()
        
        req = requests.post(
            url = (
                'http://'
                + 'log-va.tiktokv.com'
                + '/service/2/device_register/?'
                + params
            ),
            headers = self.get_headers(gorgo, khro, stub),
            data = payload
        )
        return json.dumps(req.json(), indent=4)

The function is returning the same value when it should not. But whenever I restart the terminal, the value of the function changes and it will stay on that value. It won't change until I restart my terminal

wheat mesa
#

For loops are where it’s at

earnest phoenix
#

I wonder how Gordon Ramsay would rate your esolang

sharp geyser
#

It's getting hard to keep up with this waffle

sharp geyser
earnest phoenix
#

"TOO SALTY!!!"

wheat mesa
#

prepare(preheat i at 0# cookwhile i tasteless 10# stir i ==E i + 1) serve i#

sharp geyser
sharp geyser
#

Oh right semi

earnest phoenix
#

Waffle's way of integrating themselves to every part of the code

sharp geyser
#

You should write documentation for this waffle

wheat mesa
#

😉

earnest phoenix
#

# looks like a waffle so

wheat mesa
#

Maybe I shall

sharp geyser
#

You should also make a http library

#

So I can make a discord lib

wheat mesa
#

Heeeellll no

sharp geyser
#

but waffle lib

wheat mesa
#

I could just make rust interop for http stuff but I’m lazy

sharp geyser
#

Fine I will do it

#

Sike

#

I'm not smart enough

wheat mesa
#

As long as it’s turing complete!

earnest phoenix
#

Gotta force Waffle to make a standard library for their esolang

sharp geyser
#

Mf I don't even know how to make a lang

#

Let alone write a built in library

sharp geyser
earnest phoenix
#
order salt as cryptoSalt
order onion as https

...
sharp geyser
#

Only place that has more guns than population

wheat mesa
#

That’s actually a fucking amazing pattern for modules

#

I love that

sharp geyser
#

See waffle

wheat mesa
#

Maybe in BreakfastLang update 2.0

sharp geyser
#

Make a standard library

#

;)

#

Http support would make your language 10x

#

better*

wheat mesa
#

I’m just focused on figuring out cranelift

#

I have no idea what to expect

sharp geyser
#

No idea what that is

wheat mesa
#

It’s like LLVM

#

But easier from what I’ve been told by the rust community server

sharp geyser
#

I see

iron vector
#

V14 do you have a select menu?

sharp geyser
#

So you installed LLVM as a paperweight

earnest phoenix
#

I'm pretty sure CraneLift uses LLVM internally but wraps it

wheat mesa
#

Probably

sharp geyser
wheat mesa
earnest phoenix
sharp geyser
#

Pings crawl

cinder patio
#

your lang is not eso enough

sharp geyser
#

What truly classifies a language as eso

sharp geyser
#

Y'know I'm so under a rock that I just realized Math.random ain't actually random

winged temple
sharp geyser
#

@earnest phoenix why you never tell me this

earnest phoenix
boreal iron
boreal iron
feral aspen
#

What's one better way to do this:

let isPremium = false;

const promise = new Promise((resolve) => {
    Premium.find({
        lb: 'all',
    }).exec(async (error, res) => {
        if (error) console.log(error);
        for (const entry of res) if (entry.servers.includes(server.id)) isPremium = true;
        resolve(null);
    });
});
await promise;

I'm going through all the documents and checking if the servers array includes the server id that they want to add to the premium server list.

#

Is there a better way to handle this?

iron vector
boreal iron
#

What is your question?

winged temple
feral aspen
#

Fair.

winged temple
#

so for example

if(command.isPremium) {
// find guild id from table
// if not found return, else execute
}

#

really simple method

boreal iron
feral aspen
#

I think I got it to work, now. 👍

boreal iron
earnest phoenix
#

RangeError [BitFieldInvalid]: Invalid bitfield flag or number: BAN_MEMBERS.
what is error ?

earnest phoenix
earnest phoenix
earnest phoenix
# earnest phoenix yeah

I would recommend checking the discord.js guide, it shows you what was changed from v13 to v14, so you can adapt to them

#

and this ? @earnest phoenixTypeError: Discord.MessageEmbed is not a constructor

proven escarp
#

pretty self explanatory. Discord.MessageEmbed is not a constructor...

#

you can't use it as a constructor

earnest phoenix
earnest phoenix
#

How do I make a cooldown of commands?? Meaning that someone has spam commands, the bot stops him, telling him you have to wait 10 seconds to use the same command again?

opaque seal
#

Is there a way in github actions to automatically add secrets as environmental variables?

proven escarp
#

Basically

opaque seal
#

I would need to do

env:
  SECRET: {{ secrets.SECRET }}

For each one

proven escarp
#

yes indeed

#

unlesss there is a way to loop through everyone of them

#

🤷‍♂️

opaque seal
#

didn't find that yeah

earnest phoenix
#

Is anyone here aware of how to work? I mean, if I have a clear order, how can I if the messages are older than 14 days, for sure, the bot cannot delete them? How do I make the bot respond to the user and say you cannot delete old messages, for example?

wheat mesa
#

Filter out any old messages that you fetch

earnest phoenix
#

Can somebody help me? I've changed the system from Pycharm to Visual Studio Code and I get everytime this error.

proven escarp
earnest phoenix
#

commands?

proven escarp
#

re-read my message

#

command is not exported from there. maybe it’s exported somewhere else?

earnest phoenix
#

@proven escarpbro

proven escarp
proven escarp
maiden urchin
#

r any of you good with domains

#

I could kinda use help

proven escarp
maiden urchin
#

I cannot for the life of my get my DNS set up with github

earnest phoenix
proven escarp
maiden urchin
#

It tells me to use git bash and type DIG to test but my Git Bash is saying dig isnt a command

maiden urchin
proven escarp
#

Github pages should give either an A or a CNAME record. You can link this directly to @ (which is your host domain) to make it accessible to the website

maiden urchin
#

this is my current

#

DNS setup

proven escarp
maiden urchin
#

the 4 ips are Githubs

#

is that all I need on the DNS side?

proven escarp
#

Why 4?

#

You have 4 different websites?

earnest phoenix
maiden urchin
#

github told me to put all 4 on

proven escarp
#

You sure? That doesn’t make any sense

earnest phoenix
proven escarp
earnest phoenix
maiden urchin
#

oh?

earnest phoenix
#

i have have this and the run

maiden urchin
#

I feel like I did everything they said but

#

I still fail the DNS check

proven escarp
earnest phoenix
#

I don't want the bot to send errors in the log

proven escarp
proven escarp
earnest phoenix
#

yes i trying a catch

proven escarp
#

Keep this in mind

proven escarp
earnest phoenix
#

but I do not know

proven escarp
#

Do not know what?

earnest phoenix
#

Yes, I don't know how to catch

maiden urchin
#

@proven escarp do you know a good way to see what GitHub is seeing as my dns?

proven escarp
maiden urchin
#

uh

#

no

proven escarp
maiden urchin
#

i just got a domain for cheaps on godaddy

earnest phoenix
proven escarp
maiden urchin
#

is that free?

proven escarp
#

Yes

proven escarp
earnest phoenix
#

In this case, the bot turns off

proven escarp
#

Send a code snippet of where it happens

earnest phoenix
#

see prv

proven escarp
#

Also you should have specified it’s in a purge command

#

Ok well you can simply check if the message is older than 14 days, if so, stop deleting it

earnest phoenix
maiden urchin
#

@proven escarp Does a propagate faster than cname?

#

All my A's are done but cname is showing empty

#

everywhere

proven escarp
proven escarp
spark flint
proven escarp
#

omg bun help me here

#

my fingers hurt

spark flint
#

CF has the fastest DNS propogation from experience

#

self hosted DNS clusters, for example, have slower as its not a cache based edge network

proven escarp
#

@maiden urchin your CNAME is on www not @. Is that what you want?

maiden urchin
#

Uh no

proven escarp
#

Then fix it.

#

That might be why.

#

🤷‍♂️

maiden urchin
#

When it says

#

CNAME record that points www.example.com to <user>.github.io.

#

Like it's not trying to say use x but this is an example?

#

But it explicitly wants me to use www.example.com?

proven escarp
#

No www is good. But right now it’s pointing to truthy.fun not <user>.github.io

earnest phoenix
proven escarp
earnest phoenix
#

Dear brother, I know what I want to do, but I don't know how to do it, do you understand me?
So when I entered here, I told you that I know the reason is from the catch, but I don't know how to make a catch

proven escarp
#
  1. Don’t call me brother 💀
  2. Then look on internet how to do a catch maybe?
royal portal
#

@proven escarp brother

earnest phoenix
royal portal
#

LOL

proven escarp
#

Hippity hoppity one more user on my block listy

proven escarp
royal portal
#

wtf not me

proven escarp
#

❤️

#

not burbur

#

the other one

royal portal
proven escarp
maiden urchin
#

so with cname

#

As long as one is correct, will it work?

proven escarp
#

No.

#

They all need to be correct

maiden urchin
#

I mean, if I had all the correct ones done but there were also irrelevent ones

#

would that break the correct ones

proven escarp
#

Huh?

maiden urchin
#

NVM

#

i passed the dns check

#

woo

proven escarp
#

🥳

solemn latch
maiden urchin
#

yess

#

oh

#

you're a dumbass

#

i get it

boreal iron
#

poor wooompus

boreal iron
#

if not, then no

#

as long as you don't fuck up your entire zone file

pulsar quail
#

app.js

#

command.js

#

I've been dealing with this for 2 days. I don't know where is the error

#

@proven escarp

wheat mesa
#

The error is pretty clear. Line 101 of app.js, db.set does not return a Promise, so you cannot call .then on it

#

Have you tried reading the documentation for your database?

earnest phoenix
#

DiscordAPIError[10008]: Unknown Message
what is this ?

pulsar quail
lyric mountain
pulsar quail
earnest phoenix
#

Q How do I call 2 catch?

lyric mountain
lyric mountain
wheat mesa
lyric mountain
#

like, catch isn't global, you need to use it wherever there's a possibility of failure

earnest phoenix
#

@lyric mountainHow to solve this problem?

lyric mountain
#

declare catch anywhere where there's a possiblity of failure

civic scroll
#

if it happens often, it may likely to be a bug

earnest phoenix
#

This problem needs the same place as another catch

lyric mountain
lyric mountain
#

at last, found a non-bitwise reason to use | instead of ||

civic scroll
wheat mesa
#

I thought | was only bitwise or

civic scroll
lyric mountain
civic scroll
#

unsafe

wheat mesa
#

Wtf

#

I forgor Java had that

#

I remember learning about that now

civic scroll
#

oh it's not unsafe

#

time to use that in my c++ program

earnest phoenix
#

Where does this problem come from?

#

DiscordAPIError[10008]: Unknown Message

lyric mountain
#

since normal OR short-circuits on the first TRUE result

wheat mesa
earnest phoenix
#

I didn't get any messages, that's clear

#

cmd

civic scroll
#

don't it print the stack trace to console

civic scroll
lyric mountain
boreal iron
#

well... waiting a little bit longer and v15 will be out

#

of course with major breaking changes

ancient nova
#

time to apply for verification guys

boreal iron
#

I smell unorganic growth

ancient nova
#

wonder what I type my brain empty again

boreal iron
#

you should remove the both from servers with the same owner

#

at least the last server which wants to add it

ancient nova
#

I'm saying that I don't rly know what to try

boreal iron
#

well I mean you will see the result soon enough

#

either you can apply after verification or not

ancient nova
#

lmfao I just tried searching for a name on a bot name generator website and it showed me "Devourer of Souls"

feral aspen
#

Istg, imagine. 😂

boreal iron
#

while I doubt that, they may use camelCase instead of PascalCase

feral aspen
#

No, I've already died switching like 300 lines across 200 files.

ancient nova
#

how does "Butler" sound for a Discord Bot name? I think I may go with it

boreal iron
#

cough don't use builders cough

feral aspen
#

And I can't use regexes cause some needed to be manual.

boreal iron
#

(less to nothing to change)

feral aspen
#

Making a bot for wot.

#

Someone should really make a bot called A, and get the domain a.bot.

ancient nova
ancient nova
#

I don't think you'll get the idea unless u try it out yourself

feral aspen
#

Yeah, fair enough.

ancient nova
#

but either way do you think it would be a good enough?

#

I actually came up with it myself

feral aspen
#

Butler?

ancient nova
#

yeah

feral aspen
#

Alright, so Butler.com, or Butler.bot, support@Butler.....

#

Short, neat, sure.

ancient nova
#

perfect

#

gonn ask around a lil more before I fully decide

feral aspen
#

Butler is also a neat name, damn. It stands for helping which is legit a bot.

ancient nova
#

glad I came up with this idea then

#

gotta brand it before someone else comes up with it KEKW

#

the hard part is finding a profile picture, do you guys think something generic will work until I get a legit one made?

boreal iron
#

well there are 9998 possible butlers to take... so not much of a possible branding at all

ancient nova
#

do you guys want to help me pick a pfp?

#

I found 3

sharp geyser
#

Not really

ancient nova
#

should I write the Application Details like
hello
my bot does...
or something?

sharp geyser
#

Why was I pinged

boreal iron
#

nvm you fell asleep, too it seems

sharp geyser
#

What

ancient nova
#

any ideas?

sharp geyser
#

Man idek what you're talking about

boreal iron
ancient nova
#

I'm trying to verify my bot? are you talking to me?

sharp geyser
#

The more I come into this chat the more I lose brain cells

boreal iron
#

you're not the only one

sharp geyser
#

You're the source of it rn fake

boreal iron
#

you're just very confused, aren't you?

ancient nova
#

are snipes message content?
I don't actually store them I just have a single collection that gets removed every 30 seconds

lyric mountain
#

is it?

proven escarp
#

it is

#

that's why dank memer removed it

#

iirc

boreal iron
#

I mean the audit logs don’t keep message content an user has removed or do they?

#

Not really familiar with them at all tbh

#

If not then you’re basically not supposed to store or access content anyone has decided to remove

lyric mountain
#

hm, fair enough

boreal iron
#

I think revealing something (maybe privately) publicly somebody has decided to delete is a concern regarding privacy

ancient nova
#

while I'm writing it if anyone notices any commands that need intents let me know

lyric mountain
#

gay 💀

#

is that still a thing?

#

I remember seeing that waaaaay back in dank

ancient nova
ancient nova
#

:0

lyric mountain
#

ah, I thought it was like the howgay command

lyric mountain
ancient nova
lyric mountain
#

do u show commands only if the user can use them?

#

might be good to hide commands that the user cant use

ancient nova
lyric mountain
#

less clutter

ancient nova
#
We feature an organized and well written groups of commands that any and all servers can use. The application contains many chat games (Such as https://imgur.com/a/k0SjxPF)
And even more utility commands. We focus on making it easier to moderate a server, for example when warning a person, the bot automatically stores, who was warned, the reason, time and the moderator! (EG. https://imgur.com/a/wJ8JDJm) 
``` what else should I write?
lyric mountain
#

just as a tip, don't rely on images as examples

proven escarp
#

yep

lyric mountain
#

I doubt they even open the links

proven escarp
#

also kinda short

#

give more context

#

examples with text

#

how users use the bot

#

is there a dashboard

#

if so how does it work

lyric mountain
#

during my verification I had to reply 3 or 4 emails because they didn't see the gifs I sent

proven escarp
#

support server?

#

like all of this

lyric mountain
#

I mean, how else would I show my tcg?

ancient nova
boreal iron
#

Idk can’t you attach a video to the verification form?

lyric mountain
boreal iron
#

Doesn’t it also show that’s recommended?!

lyric mountain
#

better add than not

lyric mountain
boreal iron
#

Wut

lyric mountain
#

I just had to show why I needed message intent

#

not an entire match

boreal iron
#

Tbh there are windows inbuilt ways how to record your desktop as well as very small but quite well working apps in the store doing this job for u

#

Dunno why people bother with that sort of program actually being developed for content creators

ancient nova
#

you guys think this is good enough?

#

I don't have much things to add there I don't think

lyric mountain
#

this sounds like u detect imgur as phishing

#

also remvoes

boreal iron
#

Why do actually ask us about this?

proven escarp
boreal iron
#

You know the features of your bot and should be able to explain em

#

We don’t

ancient nova
proven escarp
proven escarp
ancient nova
lyric mountain
#

context distorts the intention

ancient nova
#

then what do I say

lyric mountain
#

hm, what abt (As seen here: link)

boreal iron
#

… as shown in that screenshot

ancient nova
#
We feature an organized and well written groups of commands that any and all servers can use. The application contains many chat games (Such as https://imgur.com/a/k0SjxPF)
And even more utility commands (EG. https://imgur.com/a/b2kIVfb). We focus on making it easier to moderate a server, for example when warning a person, the bot automatically stores, who was warned, the reason, time and the moderator! (EG. https://imgur.com/a/wJ8JDJm) 
We also focus on ways to protect your server. The bot contains many anti-raid features, such as Anti Spam, which prevents users from spamming messages in chat, as well as prevent the spam of profanity. The second feature is Anti Phish, it protects a server from malicious URLs and automatically removes them. (As could be seen here: https://imgur.com/a/zo34u1v)
Recently, we've also included a couple features for the members of a server. One of them is the AFK Module, it let's a user design a specific AFK status, which gets relayed to the person mentioning them whenever they are AFK. The second feature is the Welcome Module. It allows the moderators of a guild to pick a designated channel and message, which will welcome any new members joining their server. (EG. https://imgur.com/a/yFcCayY)```
#

okay that's everything I wrote so far

#

gonna go over it to see if everything is written ok

#

and lmk if I'm missing anything

lyric mountain
#

paragraph please

boreal iron
#

Funny thing I wanna state here actually is the fact that your screenshot shows the spam link and member

ancient nova
boreal iron
#

Seeing that screenshot can let somebody think, great you removed the message with the malicious link and then showed it again

ancient nova
#

how else do I fucking show an example then 😭

boreal iron
#

Which actually is the case it seems

ancient nova
#

also, that get's forwarded to the log channel

#

the actual message user sees is different

boreal iron
#

Well nobody can see this on the screenshot or can know that, don’t you agree?

ancient nova
ancient nova
#

better?

boreal iron
#

Maybe something like the screenshot shows a log of an auto moderation event which has removed a malicious link; the notification got posted in a hidden channel then

ancient nova
#

We feature an organized and well written groups of commands that any and all servers can use. 
The application contains many chat games (Such as https://imgur.com/a/k0SjxPF)And even more utility commands (EG. https://imgur.com/a/b2kIVfb). 
We focus on making it easier to moderate a server, for example when warning a person, the bot automatically stores, who was warned, the reason, time and the moderator! (EG. https://imgur.com/a/wJ8JDJm) 

We also focus on ways to protect your server. The bot contains many anti-raid features, such as Anti Spam, which prevents users from spamming messages in chat, as well as prevent the spam of profanity. 
The second feature is Anti Phish, it protects a server from malicious URLs and automatically removes them. (An example could be seen here with a safe URL: https://imgur.com/a/zo34u1v)

Recently, we've also included a couple features for the members of a server. One of them is the AFK Module, it let's a user design a specific AFK status, which gets relayed to the person mentioning them whenever they are AFK. 
The second feature is the Welcome Module. It allows the moderators of a guild to pick a designated channel and message, which will welcome any new members joining their server. (EG. https://imgur.com/a/yFcCayY)```
boreal iron
#
  • only visible for moderators to take further action against the user posting this stuff
ancient nova
#

this makes it look much better

boreal iron
#

Tf that text wall

ancient nova
ancient nova
#

it's my application bruh

boreal iron
ancient nova
#

is this good enough or should I describe more

ancient nova
boreal iron
#

You will have to respond to a lot of emails asking you for details

#

The purpose you keep guild informations doesn’t specify anything

#

You wanna explain why you keep informations like a guild ID for example

#

The reason would be to identify a guild and to store settings in your database using the guild ID as identifier

#

You need to be very specific or questions about further details will be the response

#

Also if you don’t store the data indefinitely then better don’t mention it all, it just causes confusion

ancient nova
#

okay I'll fill in the details in a second

#

is this also good enough?

boreal iron
#

Well don’t wanna answer the questions for you tbh

#

you will receive a response to be way more specific about the questions

earnest phoenix
#

How can I summon the name and photo of a person in the Embed Author

ancient nova
#

been writing this for 2 hours

boreal iron
earnest phoenix
#

I can't use this it in the author ?

boreal iron
#

Errr wut?

earnest phoenix
# boreal iron Errr wut?
/rbd/pnpm-volume/7463f4f6-bceb-4163-9dd8-0f0318676fb5/node_modules/@sapphire/shapeshift/dist/index.js:1182
      return Result.err(new ValidationError("s.object(T)", `Expected the value to be an object, but received ${typeOfValue} instead`, value));
                        ^
ValidationError: Expected the value to be an object, but received string instead
    at ObjectValidator.handle (/rbd/pnpm-volume/7463f4f6-bceb-4163-9dd8-0f0318676fb5/node_modules/@sapphire/shapeshift/dist/index.js:1182:25)
    at ObjectValidator.parse (/rbd/pnpm-volume/7463f4f6-bceb-4163-9dd8-0f0318676fb5/node_modules/@sapphire/shapeshift/dist/index.js:142:88)
    at EmbedBuilder.setAuthor (/rbd/pnpm-volume/7463f4f6-bceb-4163-9dd8-0f0318676fb5/node_modules/@discordjs/builders/dist/messages/embed/Embed.cjs:42:37)
at /app/server.js:106:10
    at processTicksAndRejections (node:internal/process/task_queues:96:5) {
  validator: 's.object(T)',
  given: 'Taha Muuhamedd'
}

boreal iron
#

The options of your footer method should be passed as object

earnest phoenix
#
 .setAuthor(message.author.username, message.author.avatarURL)
      .setFooter('test')
boreal iron
#

{ text: "footer text", icon_url: "icon-url" }

#

I think the builder doesn’t just take a string anymore in v14