#development

1 messages ยท Page 286 of 1

quartz kindle
#

do you own the store?

#

i would argue you own the bot in the sense that the bot and the brand the bot represents belongs to you

sharp geyser
#

until you have a new place your business isn't functional

#

You own the idea and the effort behind it

#

My argument was never the bot isn't yours

#

its that what holds it isn't

#

Discord shuts down, bot gone.
Store changes ownership, store gone

quartz kindle
#

store can always relocate

#

discord has competitors :^)

sharp geyser
#

Right

#

I guess my argument was misplaced or something

#

All I am trying to say is discord has every right to enforce rules on their platform you are on

#

If they want you to price match, thats their right to do so since you are developing on their platform

#

You are more than welcome to take your code elsewhere

quartz kindle
#

copies the entire discord platform just to run my bot

sharp geyser
#

xD

queen needle
wheat mesa
#

You wouldnโ€™t download a car

quartz kindle
sharp geyser
#

jokes on you

#

I already did

empty abyss
#

Discord doesn't allow me to monetise on Discord in my country lol. So I have to use an external provider

#

I think you misunderstand

My country (New Zealand) is not on that list lol

#

No amount of mod guidance will make that appear

sharp geyser
#

Don't click any links they post

empty abyss
#

Gotcha

#

Everyone wants into the bots ๐Ÿ˜ฆ

#

My server logs are full of this nonsense

3|backend  | 2025-07-05 18:02:19:219 error: 404 - Not Found - /api/config.js - /api/config.js - GET - 141.101.97.113
3|backend  | 2025-07-05 18:02:20:220 error: 404 - Not Found - /api/config/config.yml - /api/config/config.yml - GET - 172.69.222.123
3|backend  | 2025-07-05 18:02:20:220 error: 404 - Not Found - /api/config.env - /api/config.env - GET - 172.69.222.123
3|backend  | 2025-07-05 18:02:20:220 error: 404 - Not Found - /api/objects/codes.php.save - /api/objects/codes.php.save - GET - 172.69.222.123
3|backend  | 2025-07-05 18:02:21:221 error: 404 - Not Found - /api/shared/config.env - /api/shared/config.env - GET - 172.69.222.123
3|backend  | 2025-07-05 18:02:21:221 error: 404 - Not Found - /api/shared/config/config.env - /api/shared/config/config.env - GET - 172.69.222.123
3|backend  ```
#

Just make your own bot lol. It's probably easier than trying to steal one XD

sharp geyser
#

just crawlers

quartz kindle
#

mine are full of wp-admin stuff

#

lmao

pearl trail
#

crawlers crawling env meaning someone actually had their env exposed to public ๐Ÿ’€

queen needle
#

I might Idk

loud canopy
#

guys

#

i may be new but i just discovered that discord users that don't set their avatar

#

don't have an attribute in their avatar.url

#

so if you try to make embeds with avatar.url it gives you an attribute nontype error ๐Ÿ˜ญ

lament rock
#

I wonder if I should make fake routes for these that supply totally incorrect info

azure trench
#

i learnt a hard lesson today

#

and realised if a million cards became owned just how much overhead/diskspace that would be had to rewrite the entire logic to index all metadata

#

which is funny coz it was the same thing i did years ago when i was 15 but had even less idea what i was doing

#

literally every piece of info was being stored rather than a a bunch of intergers representing the card metadata ๐Ÿ˜ฎโ€๐Ÿ’จ

#

am smooth brain

autumn geyser
azure trench
#

managed to shrink my card data by 80%

#

by indexing

#

im so dumb i swear

#

4x more cards with the same diskspace/overhead

quartz kindle
quartz kindle
neon leaf
#

I love abusing pg_crypto for everything

#

๐Ÿ”ฅ

quartz kindle
azure trench
#

so i didnt know if it would work

#

thanks for this btw

long marsh
# neon leaf ๐Ÿ”ฅ

That's an interesting take โ€“ I prefer pushing more logic into my application than using database functions / jobs

#

Not that what you're doing is wrong ofc

neon leaf
#

I used to do that, do everything locally so I dont need any special db setup etc

neon leaf
#

but Ive slowly gone away from that since its just a CREATE EXTENSION "pg_crypto";

#

and its nice for stuff like sessions so I can search sessions from the db instead of having to fetch and decrypt

long marsh
#

At scale, I've been bit in the ass by letting folks run wild with postgres extensions / scheduled jobs.

Hard to know what's going on when custom extensions are running all over the place. For a single-dev project though, it's totally fine.

neon leaf
#

well im definitely not gonna mess with schedules, those are just going to be confusing

long marsh
#

It's also fine if the agreed upon extensions are judicially chosen tbh

long marsh
neon leaf
#

I havent gotten to cron jobs yet, I will just run them on the "primary" application monolith

long marsh
neon leaf
long marsh
#

The closest language I'll get to being that low is GO โ€“ and it's still fairly high

neon leaf
#

eh, rust with tokio and sqlx is definitely lower but not really low

#

you dont have to worry about memory management either way, like go

#

compiler does all the checking for you

long marsh
#

Side question for anyone out there:

  • Do you all have a preferred wiki technology / documentation framework for publishing discord bot documentation?

I'm hitting a point where I need to start documenting the commands and various ways to use them in a consolidated fashion.

neon leaf
long marsh
#

I guess, at the ending of the day, it's less about the language and more about the use case I'm currently building for. For example, if I'm building a web application that won't hit substantial scale, I'll just do NextJS and build everything in-house within the framework.

#

I just haven't needed Rust for anything โ€“ I don't build for that type of scale ... and I'm happy to not deal with it haha

neon leaf
#

๐Ÿ‘ its best to always use the lang you are most comfortable with

#

for me thats rust and typescript

long marsh
#

Basically, my mental:
-> I need top-tier performance for scale? Go.
-> I need an easy drop-in solution for a front end? NextJS
-> I need an easy drop-in solution for a front end that isn't tied to vercel? not sure
-> The company I'm working for is all typescript? TypeScript for everything I guess
-> I'm building something AI related? Probably Python ... not for the speed but for the open source community projects behind it
-> I'm building a CLI? Go.
-> I'm in a CI/CD context? Python for glue ... easy to understand for everyone
-> I need a database? Postgres.
-> I need to deploy infrastructure? Open Tofu or AWS (if company is fully AWS)

warped sierra
#

Honest opinion, do you think this help command properly explains how to use the config commands to like an idiot whos never used a bot?

quartz kindle
# long marsh Basically, my mental: -> I need top-tier performance for scale? Go. -> I need an...

my mental:
-> I need top-tier performance for scale? JS (c++ node addon for heavy things).
-> I need an easy drop-in solution for a front end? JS
-> I need an easy drop-in solution for a front end that isn't tied to vercel? JS
-> The company I'm working for is all typescript? JS with JSDoc
-> I'm building something AI related? JS (jk i dont work with AI)
-> I'm building a CLI? JS.
-> I'm in a CI/CD context? JS
-> I need a database? SQLite.
-> I need to deploy infrastructure? definitely not AWS

#

xDDDD

long marsh
#

Also, not sure your disdain for AWS?

neon leaf
long marsh
#

JS is definitely fine, but I personally just think that language sucks

quartz kindle
quartz kindle
long marsh
#

So I'm biased ๐Ÿ™‚

quartz kindle
#

and the pricing?

long marsh
#

If you know what you're doing, the pricing is abysmal / comparable to other vendors.

#

But yeah, it's a trap for inexperienced engineers.

#

I'm not going to deny you there.

quartz kindle
#

every single thing they have has scaling pricing, a single mistake and resource leak can cost a lot

#

i prefer paying a fixed price for fixed resources

long marsh
quartz kindle
#

for example my $5 vps at hetzner

long marsh
#

When you're running things at scale that requires coordination amongst different departments / teams ... AWS is the CLEAR winner.

neon leaf
#

I may have spent many hours doing infra from scratch, but I saved much more money by doing so, with the same uptime

long marsh
#

It's basically the Walmart / insert mega shop chain here of cloud vendors.

long marsh
# neon leaf I may have spent many hours doing infra from scratch, but I saved much more mone...

People tend to over complicate things, and the same can be said for infrastructure management. In AWS, all you really need is an EC2 instance (start with a micro/nano) and you can manage your own TLS using something like Caddy.

As you scale (more requests, more ram, more CPU etc.) you can stretch the same instance or go to a model of horizontal scaling. If you're doing horizontal, it's easy enough just to use a load balancer between the instances. Put the TLS termination at the load balancer.

Congrats, you're basically ready for the most scale you'll ever need.

quartz kindle
# long marsh It's basically the Walmart / insert mega shop chain here of cloud vendors.

i cant speak for myself since i dont have hands on experience, but what i got from hearing stories, news and generally how corporate environments work, quite simply they dont care about infrastructure, they have corporate connections and exclusivity contracts and they pay thousands monthly for infrastructure that is 100% overkill and underefficient for their business

neon leaf
#

yeah I currently just run 6 vms with 4 load balancers, a bit cursed but it works

#

cf ->
lb1 -> eu1 & eu2
lb2 -> us1 & us2
lb3 -> sg1 & sg2

quartz kindle
long marsh
neon leaf
neon leaf
long marsh
#

Load balancer is actually stupid expensive when compared to other vendors in AWS.

quartz kindle
#

imo the only reason to go for AWS is if your company already has a contract with them

long marsh
quartz kindle
#

same for google cloud

neon leaf
#

a big problem I have is the database costs with most vendors

#

I can just throw 1 replicated pg db on each node and be done

#

no extra cost

long marsh
#

I've been an infrastructure engineer for US fortune 500 companies. One of which was very meticulous about its cloud costs. I respected it and enjoyed being apart of that team.

It's still what you said, @quartz kindle โ€“ "my boss's nephew works as a VP for AWS and gave us a discount to lock us in with the vendor"

long marsh
quartz kindle
long marsh
#

I use Neon right now ... still in their free tier though

neon leaf
#

Ive long passed any free tier sadly

#

~170bil row reads per day

quartz kindle
long marsh
quartz kindle
#

:^)

long marsh
quartz kindle
#

:^)

long marsh
#

I still enjoy AWS and get free yearly credits

#

$500/yr pays for all my costs ๐Ÿ™‚

quartz kindle
#

i have google's free tier for testing

long marsh
quartz kindle
#

i only use aws if i need to test compatibility there

#

some libs i made had issues on their amazon linux

neon leaf
long marsh
neon leaf
#

I dont think so, its mainly for replication simplicity

#

statistics are done via a materialized view

long marsh
#

Not needing an entire instance

quartz kindle
long marsh
quartz kindle
#

it required compiled code which wouldnt run there

long marsh
#

I'm familiar with that problem haha

quartz kindle
#

because amazon linux had non-standard paths for some build tools

long marsh
#

gotta love it

quartz kindle
#

more specifically the linker wouldnt work

#

so i just disabled LTO altogether

long marsh
#

Sadly.

long marsh
#

Not all the time, but you also included the idea of statistics

neon leaf
#

nope, havent looked into much

long marsh
#

I totally get keeping it "simple"

#

But a data warehouse that's postgres compatible would be a suitable bet for that high of read activity.

#

Cheaper too

neon leaf
#

well currently it costs nothing for me, it runs on the same servers as the application itself

#

I used cloudflare D1 in the past but I have ptsd from it (constant downtimes, no read replication)

long marsh
#

I'm not familiar with D1

#

What is D1?

neon leaf
#

D1 Database
Create serverless SQLite databases to query relational data.

long marsh
#

oh lol โ€“ gotcha

neon leaf
#

just checked and my db that I havent deleted is down

#

ah nice I guess

pearl trail
#

is that cloudflare

neon leaf
#

yes

pearl trail
warped sierra
#

i had to leave mid way through some work but i suddenly realised what my error was. couldnt fix it then bc had to go. came back to my note i left

fleet kraken
#

Hi

tulip dome
#

hi

crystal wigeon
#

does topgg have a cookie consent screen? flork_think or do they only show it for EU/UK users?

#

and do they not show ads if someone rejects it? flork_think

warped sierra
#

i love my life
[CRON] - Error refreshing Discord token: { error: 'invalid_grant' }

neon leaf
quartz kindle
quartz kindle
#

it affects whether ads can use your information to display better ads for you

crystal wigeon
#

oh

quartz kindle
#

the consent is not for showing ads, is for them to collect data about you

wheat mesa
#

Cookies are just stores of data, they are useful for targeted advertising

quartz kindle
#

for example, if you give them consent, they can access your browsing history, patterns, likes, and other stuff to build a marketing profile and send you ads that are more likely to get your attention

#

ads coming from facebook can access your facebook habits, ads coming from google will access your google searches, etc

neon leaf
#

I am very proud of this

    let mut directory = tokio::fs::read_dir(&full_path).await?;

    let mut directory_entries = Vec::new();
    let mut other_entries = Vec::new();

    while let Ok(Some(entry)) = directory.next_entry().await {
        let is_dir = entry.file_type().await.map_or(false, |ft| ft.is_dir());
        let path = entry.path();

        if server.filesystem.is_ignored(&path, is_dir).await {
            continue;
        }

        if is_dir {
            directory_entries.push(entry.file_name());
        } else {
            other_entries.push(entry.file_name());
        }
    }

    directory_entries.sort_by(|a, b| a.cmp(&b));
    other_entries.sort_by(|a, b| a.cmp(&b));

    let total_entries = directory_entries.len() + other_entries.len();
    let mut entries = Vec::new();

    if let Some(per_page) = per_page {
        let start = (page - 1) * per_page;

        for entry in directory_entries
            .into_iter()
            .chain(other_entries.into_iter())
            .skip(start)
            .take(per_page)
        {
            let path = full_path.join(&entry);
            let metadata = match tokio::fs::symlink_metadata(&path).await {
                Ok(metadata) => metadata,
                Err(_) => continue,
            };

            entries.push(server.filesystem.to_api_entry_tokio(path, metadata).await);
        }
    } else {
        for entry in directory_entries
            .into_iter()
            .chain(other_entries.into_iter())
        {
            let path = full_path.join(&entry);
            let metadata = match tokio::fs::symlink_metadata(&path).await {
                Ok(metadata) => metadata,
                Err(_) => continue,
            };

            entries.push(server.filesystem.to_api_entry_tokio(path, metadata).await);
        }
    }

    Ok((total_entries, entries))
#

fast paginated directory listing with sorting

#

no wasted syscalls

#

technically I could save time on sorting the entry vectors when only 1 is needed

#

but thats too far

quartz kindle
#

nice

loud canopy
#

#1 so far

sharp geyser
#

I dont leave comments

#

I love being surprised

pearl trail
#

now only god know what my code does

sharp geyser
#

Not even god can decipher my code

neon leaf
#

I like the change

quartz kindle
#

rusty crab

deft wolf
#

Crusty Crab

quartz kindle
#

no C allowed

autumn geyser
sharp geyser
#

@harsh nova

#

Another gamer

hidden gorge
loud canopy
#

i added PVP and it took me less than two hours ๐Ÿ˜ญ

#

now my head is exploding

loud canopy
#

ah yes

summer plaza
#

Hi

long marsh
#

Do you all have a preferred observability platform/tool?

#

Now that my discord bot is reaching a level of maturity where I want to publish it, I also want to start sending "usage" analytics /events to some platform where I can have filtration of certain discord users and such that use it the most.

#

I could track this at the database level myself ofc, but I just prefer to leverage some sort of event system where I have the freedom to aggregate whatever I want too

lament rock
queen needle
#

there is another one that is open source that I don't remember that would be great

lean wedge
pearl trail
acoustic bough
#

posthog has 1M events/m but that was to little for me as well

neon leaf
#

just selfhost sentry

acoustic bough
#

sentry uses like 30gb ram

#

posthog is "open source" as well but they're both horrible to selfhost

neon leaf
#

eh, my sentry container uses 16gb

acoustic bough
#

I just figured that a docket stack with grafana, click house and a small go invest server is way easier

neon leaf
acoustic bough
#

my cloud server only has 12gb and my bare metal one 48gb

neon leaf
#

mhm

acoustic bough
prime cliff
acoustic bough
#

I can't use the error tracking of sentry anyway โ€” it causes huge memory leaks for me

delicate zephyr
#

selfhosted

#

and just use the sentry lib for it

prime cliff
#

Yea this is why i want to add my own sentry support logging in my project ๐Ÿ˜„

#

Also glitchtip dosen't seem to support certain sentry versions and payloads

#

Sentry uses some weird json protocol thing that has double or triple jsons
{}
{}
{}

delicate zephyr
lament rock
#

With every passing day, I tend more towards making everything myself because implementations by others usually suck for performance or have shitty restrictions

#

Had to make my own build script for my bot that takes mono-repo packages as deps into account because turborepo was failing too much

prime cliff
#

I should work on error logging with sentry next tbh ๐Ÿ™ƒ welp time to dive in

neon leaf
#

tho I don't have the issue as much with rust as with ts

quartz kindle
neon leaf
#

yes

quartz kindle
#

i am first timing svelte/sveltekit for a website

#

and i already ran into weird ass issues

#

it builds the website into a hybrid SSR package using Vite

#

and running Vite on the vps was crashing and running out of memory just from trying to build the project

neon leaf
#

...

quartz kindle
#

i could built the project on my pc but not on the vps

#

i was able to fix it by upgrading to vite7 with the new rolldown bundler, which is in beta

#

and it worked

#

but gives a bunch of warnings on my logs

#

@_@

neon leaf
#

open API to rust generator

#

there was nothing that worked with my setup

#

it's definitely not very Performant but it doesn't need to run often

#

takes maybe 500ms

#

was a ~4h sidequest

prime cliff
#

Going for the glitchtip aproach for error logs that will be per-project, this means i can also use the projects stuff for other things too ๐Ÿ™‚

quartz kindle
warped glacier
#

So im in a great mood. Just added antiraid to my bot!!!

acoustic bough
#

never understood the need for anti nuke stuff

warped glacier
#

People dont for some reason get to not give every person fckin admin. So people join and get admin then raid the shit

#

So i figured my bot's role is already above others. it should have it added.

acoustic bough
#

servers with 50 members: 5 admins, 10 mods
me with 4k members: one mod, 3 people with only timeout and delete message perms (unmarked)

warped glacier
acoustic bough
#

"hep my server got nuked"

warped glacier
#

Yeah\

raven token
#

there are different servers. For example: 4000 thousand, but only 100 are active, and there are some where there are only 100 people and 95 of them are active. Do you feel the difference?

warped glacier
acoustic bough
#

show me any server with 100 members an 95 active kek

#

and the servers that I meant usually only have the people active that are amins

#

ok my d key broke wtf

pearl trail
#

amen

warped glacier
acoustic bough
#

it just randomly stopped mid talking lmao

quartz kindle
#

my keyboard started randomly typing stuff on its own

#

imagine coding like that

neon leaf
#

let it think, its optimizing ur code

quartz kindle
#

i found out it was a faulty touchpad driver

#

it would stop happening if i uninstalled it

#

but then i would lose most touchpad features like double tap, 2-finger scroll, etc

queen needle
quartz kindle
#

actually i have plenty of bad code, some of it i cant bother optimizng, too anoying

queen needle
#

I will for you

#

Trust

quartz kindle
#

deal

#

i need help making a very complocated math thingy

neon leaf
#

new drives installed ๐Ÿ”ฅ time for a bigger minecraft earth map

root@HDE-03:~# btrfs filesystem show
Label: none  uuid: 2d52f08b-27bc-4ea0-b596-6f529cf99a36
        Total devices 2 FS bytes used 375.68GiB
        devid    3 size 3.64TiB used 380.03GiB path /dev/nvme1n1p3
        devid    4 size 3.64TiB used 380.03GiB path /dev/nvme0n1p3

root@HDE-03:~#```
prime cliff
#

Time to do sentry error logging my own style ๐Ÿ™‚

queen needle
quartz kindle
#

currently i have an exponential search into binary search, but the exponential search needs to be replaced with a better method, its too unreliable

queen needle
#

replace it with Google search

#

Hope this helps

neon leaf
#

bogo search

#

(cousin of bogo sort)

queen needle
#

I thought it was the ugly nephew

quartz kindle
quartz kindle
neon leaf
#

yes

#

theres a universe where its never wrong

#

and the most efficient search

quartz kindle
#

indeed

#

theres also a universe where im your cat

#

and another where im your god

neon leaf
#

thats the important question

quartz kindle
neon leaf
#

mentally orange?

#

or physically

quartz kindle
#

both

neon leaf
#

impossible sir

quartz kindle
#

not in that universe

neon leaf
#

hmm

#

๐Ÿ™

#

I am going to be so happy once I can nuke the broken drive

loud canopy
#

someone is trying to create a character with my bot in some server i dont know and i got this in console

Failed to edit message due to HTTPException: 401 Unauthorized (error code: 50027): Invalid Webhook Token

this is something about their server's permissions right?

sharp geyser
#

@queen needle No longer making a poop collecting game

#

:))

queen needle
#

What the heck

sharp geyser
#

Final dev log, I had bags and tools implemented

#

bai bai

sharp geyser
#

Im making a bigger better game now

quartz kindle
sharp geyser
#

No

queen needle
#

Whatcha making

#

Discord mod.simulator?

sharp geyser
#

Ahaha no

quartz kindle
#

did you guys see the coconut simulator?

sharp geyser
#

It's a similar game to Steal a brainrot or Feed your pet

queen needle
sharp geyser
#

We are making all the models ourselves

queen needle
sharp geyser
#

While learning

queen needle
#

Is this related to the earlier message of you saying how to model a cat?(Idk if that was you(

quartz kindle
sharp geyser
#

I still can't figure that shit out

#

๐Ÿ˜ 

#

Damn tail

#

I can do the eyes and mouth but that damn tail

loud canopy
quartz kindle
queen needle
loud canopy
#

yes its a slash command it seems to give an error when the player select their class and continue to the next embed,view for customization

quartz kindle
#

which is a black screen, because coconuts dont have eyes

loud canopy
#

the thing is, is that i cant literally re-create the error

#

it just happens sometimes in who knows who's server

quartz kindle
loud canopy
#

no

quartz kindle
#

interaction tokens have a 15 minute time limit

loud canopy
#

all views have a baseview i made which has a timeout of 60 seconds

#

if you exceed the 60 seconds it timesout and it kicks you out of the interaction

queen needle
#

(the wordle bot can reply to 24 hour past interactions)

quartz kindle
loud canopy
#

yes

#

i mean

quartz kindle
#

if its in the beginning or somewhere in the middle

loud canopy
#

depends

#

not really

#

the probem is that it happens 1/1000 times

#

in NEVER in my server

#

like i wish i could see it myself

#

i have logs for which interaction view crashes

#

for debugging

quartz kindle
#

your command works in multiple steps, right? each step uses a followup message?

loud canopy
#

it edit the current message

#

i dont like chat spamming

#

my whole game is in 1 embed x player

quartz kindle
#

ok, so the command triggers a reply, and subsequent interactions trigger an edit on the existing reply, correct?

loud canopy
#

yes

#

and i use view.set original response

#

to keep reference everytime i edit next

#

so its not that neither

#

i swear discord sometimes choke or something

quartz kindle
loud canopy
#

bc sometimes like 1/100 times when im exploring for PVE battle

#

i hit explore

#

and get "interaction failed"

#

then i try again

#

and it works

#

????

quartz kindle
#

that happens to me too

loud canopy
#

it seems discord truly hate not spamming messages in chat

quartz kindle
#

do you use interactions via websocket or via http webhook?

loud canopy
#

i think its http

#

bc thats the error i get

quartz kindle
#

if you're using a library, then its most likely websocket

loud canopy
#

yes

#

i use .py

quartz kindle
#

well... unfortunately there is no fix for this issue

loud canopy
#

ok no thats fine

#

at least i know its not my end

quartz kindle
#

all you can do is add logging and check on which part the fail happens

loud canopy
#

bc it happens really rarely

quartz kindle
#

if its on the first reply, or on which subsequent edit

loud canopy
#

so far i see it happens only in 2 places

#
  1. character creation
  2. exploring
#

i have shit like PVP and matchmaking going on and there are 0 issues

#

character creation just kill itself xd

quartz kindle
#

if it fails on the first reply, its failing the 3 second rule

loud canopy
#

ok so when you /login without a character you have a embed + view when you select the class you want

quartz kindle
#

if it fails on subsequent edits, it could be that the original reply was deleted, or the token expired due to 15 minute rule

loud canopy
#

you hit "customize"

#

THAT where it dies

#

but like 1/100000000 and never when im trying to recreate it

#

i sat one day trying my best to crash it on purpose

#

with god knows what kind of spaghetti spam

#

and nothing

#

no fucks given

#

no api restriction neither

#

but Timmy69 from the server "the magical wonderland of fuck you" it crashes it

quartz kindle
#

lmao

loud canopy
#

but since it aint my problem i aint worrying "for now"

quartz kindle
#

it happened to me a lot, i dont even know if it still happens because i stopped checking logs

loud canopy
#

bc my bot forces you to have 1 interaction x player

#

which means if you /log you get logged on a list

#

so if that crashes

#

youre on a list still

#

if you /log it doesnt work

#

it tells you "youre already logged in"

#

so im gonna have to do some magician bs to handle that

quartz kindle
#

you need to do a rollback on reply fail

loud canopy
#

0w0? is that a thing

quartz kindle
#

well, you can make it yourself

loud canopy
#

ok im gonna look it up then

#

thank you tim from the top.gg server

quartz kindle
#

whatever functionality you have on that command, you can undo it, if the reply to that command fails

loud canopy
#

can i just add that to my custom class?

#

bc i made a custom view class so i have default behavior that inherite to all my views

quartz kindle
#

possibly yes, idk how you structured your code

loud canopy
#

such as "interaction check" "timeout" "logs"

#

instead of calling the view from discord.ui.view i call it from my_own_class.bas_view

quartz kindle
#

you can also do a channel.send as a fallback

#

if reply fails, send a regular message

loud canopy
#

never im gonna just pop it off the list with the rollback on reply fail you just said

#

im REALLY againts sending many messages

quartz kindle
#

xD

loud canopy
#

and everyone who has been using my bot is saying they are really glad this one doesnt spam shit 24/7

#

like whenever i try a bot not only i gotta learn 49274929 commands but my chat becomes a star wars intro

#

my bot uses 1 slash command and everything is a menu with 1 embed

#

yesterday i also finally made pvp snycing 2 instances was so cancer bc im a shit programmer uwu

quartz kindle
#

you could make a hybrid then, which uses two messages:
1 ephemeral interaction reply
1 regular message
every thing edits the regular message instead of the interaction reply

#

but then you will need permission checks

#

well, its jsut an idea

loud canopy
#

oh i use ephemeral only for telling you that the menu youre trying to use aint yours

quartz kindle
#

but do the logging i told you first, check if the fail happens on the first reply

loud canopy
#

but then again this is the kind of person youre talking to rn

quartz kindle
#

if its the first reply, then yeah, not much you can do, its discord's 3 second rule

#

but if the fail happens somewhere else down the line, then there might be something you can do

loud canopy
#

the thing is the error doesnt point me at any like yknow

#

problem with my class or file

quartz kindle
#

but the error suggests it happens when editting a message

loud canopy
#

it just says http error

#

and i wish i could recreate it but i cant

#

i tried everything and gave up

#

and im really not in the mood in breaking something that aint broken

quartz kindle
#

xD

loud canopy
#

bc if it breaks

#

im gonna spend another night up

quartz kindle
#

did you try manually deleting the message from the channel

loud canopy
#

well i wish i could

#

idk in what server this happened

#

my bot is in like 80 servers rn

quartz kindle
#

i mean, did you test that in your own server?

loud canopy
#

lemme try

#

right now

quartz kindle
#

if you have a 60 second timeout

#

what happens if the timeout runs after an admin manually deletes the message?

loud canopy
#

well it depends lets say the character creation i set it to 180

loud canopy
#

they /login

#

forget about it

#

kick the bot

#

the bot tries to timeout the player

#

but cant reach the message

quartz kindle
#

yeah thats one option

#

but it could also happen if an admin deletes the interaction response

loud canopy
#

view = MainMenu(interaction.user.id, timeout=60)

#

about to find out

#

in 60 seconds

quartz kindle
#

xD

loud canopy
#

nope

#

i like how i made this logs who knows when

#

and i forgot about it

#

i think its the first time i see this

quartz kindle
#

hmm]

loud canopy
#

but nope

#

timeout just works fine

#

no issue there

#

good job bot

quartz kindle
#

can you think of any scenario where the whole command would take 15 minutes?

loud canopy
#

question

quartz kindle
#

like navigating back and forth between steps?

loud canopy
#

what do you mean by command

#

1 command

#

OR

#

a whole class

#

left on

#

i mean a view

quartz kindle
#

anything that uses the same interaction token

#

edits and followups

loud canopy
#

bc whenever you interact to a new menu i call view.stop()

#

so i stop the timeout

#

its a fresh new embed, view but same message

#

so do you mean that for 15min?

#

but even then

#

theres no way someone could sit in character creation for 15 min

#

because when you select class i dont call view.stop()

#

i call view.self

quartz kindle
#

are you sure? you never know xDD

loud canopy
#

so timeout will go either ways after 180 seconds

#

view = menus.class_selection_tab.ClassSelectionTab(interaction.user.id, interaction.user.avatar.url, "Rogue", timeout=120)

#

await interaction.response.edit_message(embeds=[embed1, embed2], view=self.view)

#

its actually 120 seconds

quartz kindle
#

can these menus go back? like can a person go to a previous page to change something they already selected before?

loud canopy
#

yes

#

and it calls view.stop()

#

and im 100% sure of this to all my menu

#

bc thats why i have the log

quartz kindle
#

so what if a person goes back and forth for 15 minutes and never finishes the character creationl?

loud canopy
#

bc if timeout would trigger at any point without me wanting to, i would see it bc

#
  1. logs
  2. the fucking menu closes
#

(before the log system i had to guess what class was trigerring timeout)

#

(it wasnt fun)

#

(i really wanted to kms back then)

#

but yeah this is what it does when timeout triggers

#

self.view(stop)
and all buttons.children = none

quartz kindle
loud canopy
#

yes

#

and the previous one is interrupted

#

otherwise it would still tick in background

quartz kindle
#

so if you go back to the previous view, the previous timeout would start from the beginning

loud canopy
#

and randomly disconnect me

quartz kindle
#

so if you go back and borth between both viewss

#

until 15 min pass

loud canopy
#

im not sure i dont think anything has set there playing for 15 minutes

#

but how would you sit 15 min in class selection

#

if it triggers timeout after 120 seconds

#

regardless of you changing the selected class

quartz kindle
#

the timeout wont trigger if you switch views before it ends

loud canopy
#

no it wont as it should be

#

i only use timeout if ppl just go afk

#

i dont want random embeds open

#

i want clean menus

quartz kindle
#

so, you go to the first view, wait 100 seconds, switch to second view, wait 100 seconds, go back to first vieew, wait 100 seconds,repeat

loud canopy
#

whats that supposed to do

#

i cant follow ๐Ÿ˜ญ

quartz kindle
#

do that 9 times, and the discord interaction token expires

#

since its valid for 15 minutes

#

and you get that error

loud canopy
#

and thats great but

#

this still doesnt explain to me

#

how timmy does /login

#

and crashes in the first screen

quartz kindle
#

ah well, that what i told you before, check if the crash happens on the first reply

#

if it does, its the 3 second rule

#

the first reply to an interaction must be made within 3 seconds

loud canopy
#

well so far i saw that problem like idk 3 times out of 14 days

#

the only REAL bug that i should fix is that if someone doesnt have an avatar on discord it gives me the user.avatar.url = None

#

but i couldnt care less

#

i could fix it

#

but im petty

#

if you dont have an avatar

#

you dont deserve to play with my bot

#

๐Ÿ˜ญ

quartz kindle
#

use the default avatars lol

#

doesnt d.py have a method to get default avatar?

loud canopy
#

dis one

quartz kindle
#

d.js does

loud canopy
#

idk

#

i use interaction.user.avatar.url

quartz kindle
loud canopy
#

lemme see

#

MMMMHHMH

#

interesting

quartz kindle
#

lรช-mao

loud canopy
#

haha lemme replace everything

#

real quick

quartz kindle
#

ctrl+H

#

:^)

loud canopy
#

it is

#

display_avatar.url still?

#

yes?

quartz kindle
#

yes

#

returns type Asset

loud canopy
#

yes yes but

#

in every file

#

@quartz kindleunrelated but im building the world, enemies, npc, items ect as we speak like everyday i add more stuff and i swear i had to put a soft-lock cap to lvl 40 that you dont get exp bc im struggling

#

these mfs are speedrunning dungeons and shit

quartz kindle
#

lmao

lyric mountain
#

Or make enemies have a xp penalty when they're N levels lower than the player

#

So they can't farm low level areas

loud canopy
#

i already have that

#

exp is matching the formula i use

#

problem is these mfs would sit there an hour straight non stop

#

which is fine i don't want ppl to grind forever in a random discord game

lyric mountain
#

Be evil and add a stamina bar

#

But I had the same problem, some people will just grind the game to dust

queen needle
#

you can also just always add more characteristics too like cosemestics with more powerups and those have levels

loud canopy
#

already have that

loud canopy
loud canopy
queen needle
#

real

queen needle
#

just add id's and make it so they randomly lose matches/fights/whatever

loud canopy
#

and in the meantime im definetly not balancing the battle system

#

it's funny bc i get random ideas like "what if ppl want to edit their UI" so i waste like 30 min adding useless stuff like "swap UI"

sharp geyser
#

Cause if you got igris in C tier you need to reevaluate those ranks. He was almost a general rank shadow in solo leveling

loud canopy
#

it literally says "idk yet"

sharp geyser
#

That doesnโ€™t answer my question

quartz kindle
#

i mean

#

igris is cool an all, but not beru and bellion level

neon leaf
#

1 year without dust filter ๐Ÿฅถ

knotty night
#

geez

sharp geyser
quartz kindle
#

if S tier has antares on it

#

C or B would be fine for igris

neon leaf
#

do I need to understand this

quartz kindle
#

yes

sharp geyser
#

Next to beru

#

Though I guess the mage he later got was actually stronger in terms of firepower

loud canopy
azure trench
#

going from half my bot using UTC the other half GMT to timezone is the best quality of life feeling i think ive felt in my journey

spark yacht
azure trench
#

hmm

#

im a vibe coder sadly

#

you would probably recoil at my existence

#

but am not really struggling with anything in my development phase yet

#

thought my bot was ready today after years of vibe code

#

and realised since i changed db structure from strings to indexes the whole thing needed updating

#

so did that all day

quartz kindle
#

thank you mister scammer, now enjoy your ban

knotty night
#

Got em

loud canopy
deft wolf
#

Tim is not a moderator, Tim is a goat ๐Ÿ

quartz kindle
#

but thanks :3

pearl trail
#

:3

loud canopy
#

@quartz kindle

quartz kindle
quartz kindle
#

i need some math help

knotty night
#

no

quartz kindle
#

chatgpt isnt helping, i feel like im going in circles

#

@_@

knotty night
#

kidding XD go ahead and post

#

I didn't do bad at math ngl

quartz kindle
#

my issue is a two-part problem, but i'll start with the first part since it should be simpler

queen needle
#

I know some math(addition) so i should be of much help

frosty gale
quartz kindle
#

given two concentric circles (planetary orbits), the maximum elongation of the inner planet as seen from the outer planet should be the point where the line of sight from the outer planet intersects with the edge of the inner planet's orbit (ie, draw a line from point A in the outer circle, to point B in the inner circle, in a way that the line touches the inner circle only once)

#

something something tangents

#

now i need to get this angle and convert it to a heliocentric angle

#

ie the angle separation between point A (point in the outer circle) and point B (the point in the inner circle where a line from A would touch its edge only once) as seen from the center point

#

the input values i have are the distance between both points from the center

#

and their angle as seen from the center

slow mauve
#

r small / r big = sin(x)

#

and becazse you have 90ยฐ then it is simple

slow mauve
quartz kindle
#

chatgpt gave me asin(rInner / rOuter) for the elongation angle, and acos(rInner / rOuter) for the angle i want, but idk if this is correct

slow mauve
#

you should get smth like
รŸ = 180 - 90 - (sin(r small / r big)) if not mistaken

#

maybe need to convert sin correctly to get the angle

quartz kindle
#

hmmm, ah it should always be a 90 deg angle there right?

queen needle
#

math savior joined the chat

slow mauve
knotty night
#

Above my head

slow mauve
#

its the other way around...

#

well anyway

#

x = รŸ and รŸ is x in the drawing but not in the terms

quartz kindle
# slow mauve

i have the values for side XB (rbig) and side Xdot (rsmall), doing sin(rsmall/rbig) returns the angle of X or the angle of B?

slow mauve
#

so รŸ in the drawing I made but in the term it is the other way around

quartz kindle
#

so angle B here would be the center point. to get that angle given sides a and c i should do the inverse of sin, so asin(a / c) = B?

slow mauve
#

No angle b is the elongation point and then you have to subtract it from the 180-90-B then you have your angle you need

quartz kindle
#

ah yes, A is the center point here

slow mauve
#

yes

queen needle
#

tim needing help is wild

quartz kindle
#

i hate math

slow mauve
#

You could also use cos... I just noticed that lul

queen needle
#

with the right math you could use any trig function

quartz kindle
#

i understand triangle math, but i dont understand anything about sin/cos/tan

#

dropped out of school before getting there

slow mauve
#

Yeah logical things are my thing, so math, developing, puzzles etc....

queen needle
#

ditto

#

my issues is I have trouble understanding explanations/problems

#

so like i didn't understand what Tim was saying

#

but reading all you said what he wrote makes sense lmao

slow mauve
#

Ye me too, I had to google elongation but then it was clear-ish to me xD

quartz kindle
#

i have a worse problem

#

but i can live without a solution to it

slow mauve
#

Drop it SuperiorSmug

quartz kindle
#

the problem is, if we give these points in the orbit an angular velocity

#

let me try to draw

#

imagine this

#

there is a certain moment in time, where given the velocities of these two points, they will align in such a way that if observed from the red point, the blue point will appear motionless

#

it should happen shortly after the point of maximum elongation

#

it should be something like, the angle of elongation plus an offset based on when the speeds of both points appear to cancel each other out

#

but honestly, i dont really need this, i can get it using an iterative method instead, its just slower

queen needle
#

so you need to find that speed?

quartz kindle
#

i need to find the angle at which it hapens

slow mauve
#

I think this should be the point you are searching, cause anything else is a lesser elongation angle

#

But the math behind, idk tbh sry

sharp geyser
#

Guys

#

when did this become math-help

#

my brain no understand

slow mauve
#

"I understand spanish to a certain level" kappa

queen needle
quartz kindle
#

it varies based on several factors, but the angular speeds are the more determining ones

slow mauve
#

Yea, planetary systemes werent really my thing lul

quartz kindle
#

here's an example:

time                angular speed      angular separation as seen from the center point
2456585.9999986337 0.11796338701927098 48.88108141257834
{ center: 67.3350568875677, inner: 90, outer: 22.664943112432308 } the triangle angles we just did

2456586.999998622 -0.008261598577950188 45.713492304742374
{ center: 67.68732916256758, inner: 90, outer: 22.31267083743243 }
queen needle
#

Get chatgpt to write it as a math problem and i may be able to help elsewise im useless

quartz kindle
#

the moment the angular speed switches signs (the moment it appears to stop and change direction) happens at an angle between 48 and 45 in this case

quartz kindle
#

it leads me in circles

#

and gives a bunch of stuff that doesnt sound logically correct

queen needle
#

could you say, has you in, orbit?

quartz kindle
#

lmao

queen needle
#

i just suck at understanding problems but i have lots of math knowledge

#

it doesn't pair well

quartz kindle
#

im the opposite :^)

queen needle
#

can we like kirby and solve this and unkirby

quartz kindle
#

chatgpt gave me this:

/**
 * @param {number} v1
 * @param {number} v2
 * @param {number} r1
 * @param {number} r2
 */
export function estimateRetrogradeHeliocentricAngle(v1, v2, r1, r2) {
    const isInner = r1 < r2;
    const sinTheta = isInner ? (r1 / r2) * (v1 / v2) : (r2 / r1) * (v2 / v1);
    const sinPhi = (isInner ? r1 / r2 : r2 / r1) * sinTheta;
    const phiRad = Math.asin(sinPhi);
    const phiDeg = rad2Deg(phiRad);
    return phiDeg;
}
#

but it doesnt really make much sense

#

also the results are way off

#

for example with earth and venus

time               vel                  angle               chagpt prediction
2456688.999997421 -0.01481896147217654 12.127992322477326 58.34411191097084
{ center: 43.17316355979284, inner: 90, outer: 46.82683644020717 } <- elongation angles

2456689.99999741 0.025346686018630202 12.737970401897257 58.35374576572803
{ center: 43.17905380945248, inner: 90, outer: 46.82094619054752 }
#

the elongation angles look correct, but when the actual moment when their speeds cancel each other out, and angle already closed to 12 deg

quartz kindle
#

the more i insist chatgps's functions are wrong, the bigger its font gets

queen needle
#

Lmfao

quartz kindle
#

then it goes into some 20 line thing with some quadratic interpolation

#

which returns null

#

then it reverts to a dead simple 3 line function

#

which still returns non-sensical values

#

the more you tell it its wrong or it doesnt work, the worse it gets, it keeps spewing out worse and worse functions and make you run around in circles

sharp geyser
#

Try gemini

azure trench
#

grok might get this

lethal dragon
#

@quartz kindle what are you looking for

quartz kindle
lethal dragon
#

Okey ๐Ÿซก

quartz kindle
#

what did you want to help with?

deft wolf
#

Bro wanted to help Tim, rookie mistake

prime cliff
#

vibecat Sentry supported error logging lets go

loud canopy
#

chat

#

found another gem

near skiff
#

yo anyone cool with shards guys ?

#

for a small quesiton about cache and competition

quartz kindle
quartz kindle
lethal dragon
finite dove
#

Anyone specialise in SEO?

I'm wondering if i'm doing something wrong... i run a job vacancy listing platform where employers can... list vacancies.

These vacancies pages then get indexed but are subject to removal post-indexing if the vacancy is fulfilled or doesn't adhere to our terms.

This leads to 404's, and put simply i'm wondering if google doesn't like that? Or i get some spammy backlinks showing up on ahrefs and maybe that's the issue?

But i lost 5k of my indexed pages within like 5 days in may and i haven't fully recovered since.

warped sierra
#

soooo i run my bots using pm2 on my server

#

i couldnt find a good open source pm2 tracker, and i didnt want a paid one

#

solution, make my own.

#

enter rabbit hole. now building a full scale pm2 tracker for public use rather than a small simple one for just my bot

#

release v1.0.0-beta.1 (which is tbf actually super functional already in my opinion)

#

what has life come to

#

its also got a Prometheus style metrics server.

loud canopy
#

@quartz kindle btw i made the on_error function in my base_view and since i did, it didnt happen again so i cant even test if it works

#

print(f"[ERROR] {self.__class__.__name__} encountered an error: {error}") i have it logged too so if it did i would see it but nothing

#

bro just wanted to annoy me

warped sierra
# quartz kindle

lmao when i tell them its wrong they be like "Oh you appear to be correct, let me go and fix that" its still wrong. "Sorry, thats my fault! Let me fix that for you"

#

claude sonnet 4 rn has proven to be extremely good with node.js for me, I rarely have had to correct its work ( i still do heavy testing and read through it all before putting it into any actual use) but its speeding up my workflow quite a bit sometimes

#

i use it with copilot pro

#

but i think it works so well since it runs alot of code in a sandbox before sending it and also has access with gitlabs and github and major help with its reasoning system

#

i saw one reddit post saying its coding capabilities were "legendary" and so far it has been pretty good

loud canopy
#

attempt #2

stable sapphire
#

?

pure wagon
grand zodiac
pure wagon
loud canopy
pure wagon
grand zodiac
#

you'll never know unless you pay a small price of $300/mo to try the new parallel test time compute

#

which allows Grok to consider multiple hypotheses at once. We call this model Grok 4 Heavy, and it sets a new standard for performance and reliability

spark flint
#

dont make me send a pic of what grok did last week

spark flint
#

it literally relies on elons opinions on things for its decision making

grand zodiac
#

it tweeted something that made the ceo quit i think weirdsip

grand zodiac
loud canopy
#

like bro if you allowed MEE6 you can allow any bot

#

๐Ÿ˜ญ

grand zodiac
#

true lol bloblul

#

some people lie to get intents cuz apparently discord cant check if those features exist on your bot

#

you could use webhooks to send some dummy embeds and screenshot them to attach in your intents application

quartz kindle
#

most often you will get something like "your feature doesnt need the intent, please use slash commands instead"

loud canopy
#

like if they really can't accept it again i'll just ask them to send me some random discord mod github so they can look at my source code

loud canopy
#

like its so unnecessary

#

let the community deal with it

#

they should be instead focusing of all the dating servers 13+ that clearly break tos but they just don't care(?)

deft wolf
#

They do care but people need to report them first. Unfortunately, this is not the first, second or third server like this, but the hundredth one, and they have learned from their mistakes how to avoid any bans (at the end of the day, they will be banned sooner or later anyway)

#

That's like saying Roblox doesn't do anything about adult games played by children. They ban them, but they pop up like mushrooms after the rain

grand zodiac
sharp geyser
#

What's your guys opinion on the cloudflare changes with AI crawlers

vernal latch
vernal latch
grand zodiac
#

true

#

does it still work?

pearl trail
#

yes, message mentioning the bot bypasses the message intent

grand zodiac
#

i see

lament rock
#

you just need the messages intent

#

message content not necessary

thick oak
#

does anyone know how your bot can be online 24/7 on replit?

small tangle
#

Replit isnt quite suitable for hosting a bot

thick oak
#

what app would you recommend?

small tangle
#

You could get a cheap vps

#

Or host it on smth like a raspberry pi, thats what im currently doing

thick oak
#

thanks

loud canopy
#

sometimes i wonder if discord actually looks at the video you send them

loud canopy
#

its the #2 attempt

#

i dont get it

grand zodiac
#

same

#

this same mf declined mine

loud canopy
#

i gave a whole ass video review

#

"yeah you dont need message content intent"

#

videos shows me using message content intent

grand zodiac
#

exactly mate i think they see the first 5 seconds and come to a conclusion

#

yea no im not giving u msg intents bye

loud canopy
#

no im saying that

#

because they said

#

"sounds well designed"

#

so im assumed

#

they didnt even look at the video

grand zodiac
#

i see

loud canopy
#

"if you use a feature that needs bla bla"

#

like if a feature i wont to add wont work bc of intents i dont have now im not doing it ๐Ÿ˜ญ

#

i aint sitting with my code half done bc i have to wait furrymuncher69 to approve my intent

grand zodiac
#

in my case i requested for modules like message based triggers (autoresponders), afk and etc and they said it doesnt need message intents ๐Ÿคทโ€โ™‚๏ธ

#

my bot was getting good reach towards servers and now im stuck at 100 servers waiting for some guy whos having a good day at work to be generous and approve my intents request

loud canopy
#

i like that they ask

#

"do you store any message outside of discord"

#

bro even if i DID do so

#

how would you even know?

#

like this is the kind of "are you 18+?" on corn sites question lmao

#

For marketplace notifications, you can implement opt-in systems through your game interface.

grand zodiac
#

wait i never thought abt that lmao

loud canopy
#

"fuck you about ur code and change it bc im lazy to press (approve)"

grand zodiac
#

exactly

loud canopy
#

i dont think bro understand

#

what i even meant

#

i asked "i need intent to make dms that can be toggled if players buy items to other players"

#

discord mod: yeah just make a notification in the already made in-game interface

#

oh yes, lemme just make the menu open by itself in some random server chat yes yes

grand zodiac
#

lol

loud canopy
#

bc when you get a notification

#

is not in ur dms

#

no no no its in a public chat

#

yes

grand zodiac
#

man im just gonna lie this time idrc anymore

loud canopy
#

the thing is 99% of the servers my bot is in are fake servers

#

idk what is this but most servers are
new
filled with bots
dead

grand zodiac
#

yea they prioritise membercount over activity so its mostly botted by themselves or anyone that joins is an ad bot

#

and they cant do anything about the second case

loud canopy
#

but the servers are empty

#

they all look the same

#

"invite link has been changed to #join"

and it has 1 channel #join

grand zodiac
#

oh

#

is that the case for the 99% of ur servers?

loud canopy
#

all servers i checked on disboard were like that

#

the ones i cant check idk

grand zodiac
#

i see

quartz kindle
loud canopy
#

wdym

#

they ask if i do use it

#

and why

#

so i said yes and showed why

#

wdym it doesnt mean what

quartz kindle
#

to get the intent, your feature needs to pass two criteria:

  1. it cannot be made with slash commands (actually impossible to make, not just annoying or harder)
  2. they actually like it and think its good enough or interesting enough for them to allow it to exist
queen needle
#

2 is also partly uniqueness

quartz kindle
#

if your feature doesnt pass the first criteria, remake it using slash commands and move on
if your feature doesnt pass the second criteria, give up on it

loud canopy
#

literally

#

if i make something i test it with prefix commands

quartz kindle
queen needle
#

Test bot

#

Or guild only for a personal server for testing

quartz kindle
#

^

#

you can create guild-only slash commands that only exist in your guild

#

and you can use message commands by mentioning your bot

#

you dont need the intent for that

loud canopy
#

k

#

just makiung things annoying

#

for 0 reasons

quartz kindle
#

an afk detector still works without the intent though, since it doesnt need to read what the user sent, it only needs to see that the user sent something

loud canopy
#

@quartz kindle ok but tim

#

you want ppl to have the freedom to create their own stuff

#

but at the same stuff "well no actually you need to do it like this"

#

meanwhile there are bots that truly do fucked up stuff

#

like this system only annoys ppl who want to do things legally

#

lol

#

also all my commands prefixes dont work without my discord ID so even if it did listen it wouldnt work either ways unless its me

quartz kindle
loud canopy
#

and heres my deal

#

who stops you from doing something else get approved

#

and then change ur bot

#

i could say "yeah i do X" then i get approved and do Y

quartz kindle
loud canopy
#

yes thats what im saying

#

its a "are you 18+" question

pearl trail
#

"i do X" is the hardest part xD

loud canopy
#

lol

quartz kindle
#

a lot of people try to come up with random shit just to get the intent, and it never works

#

because they will only give it for something actually interesting, and if you have something like that, you are not gonna give up on it anyway

loud canopy
#

do prefix commands use message intent?

quartz kindle
#

if the bot needs to read the content of the message, yes it needs the intent

loud canopy
#

ok

quartz kindle
#

but if the message mentions your bot, it bypasses the intent

loud canopy
#

lemme just

queen needle
#

message intent allows you to get message content of any message the bot has access to

without it you can get every message content that mentions your bot

quartz kindle
#

so if you mention your bot in the message, you can read the full message without having the intent

loud canopy
#

hello discord i need message intent

pearl trail
#

i miss that time on mobile where you can quickly mention user by clicking the username

loud canopy
#

but make it

#

a prefix

#

instead of a / command

queen needle
pearl trail
#

:(

queen needle
# loud canopy a prefix

but it does not need message intent, they work without slash, you would need a command/function that discord is okay with, and only work with message intent

loud canopy
#

no my question is

#

"does PREFIX need message intent => Yes"

#

ok then i make prefix commands

pearl trail
#

make it @mention create_character etc

loud canopy
#

or are you telling me they are gonna say "use / commands instead"

pearl trail
#

better than nothing

quartz kindle
loud canopy
loud canopy
#

my current bot uses 1 / command

#

bc i hate ppl having to learn google docs of commands

#

but its annoying that i have prefix commands for debugging

#

and i cant

quartz kindle
#

read it again, they only give you the intent IF:

  1. your funcionality cannot be made with slash commands (actually impossible to make, not just annoying or harder)