#development
1 messages · Page 278 of 1
Events > Logs
I checked the event logs and nothing was logged
last log was of the user being created
Is it the same situation as DO blocking smtp i guess
Maybe im not allowing SMTP through
I mean
I am opening up all ports on TCP through GCP policies
and gcp doesn't block smtp ports from what I know
Yea no it doesn't
port 587 is open
by default
so I can send emails from it
No event log for emails are being created tho
Fixed it
For reference, when you use AWS SES you are put into a sandboxed environment initially
and you can only send mail to and from verified identities
the email I was trying to send to wasn't "verified"
I appreciate all your help :D
Self hosting for 1/3rd the cost my beloved
Enterprise solution right there
To be real though those enterprise solutions for AWS/GCP/Azure have hidden costs and dark patterns to get you to pay more especially stuff like "advanced endpoint protection" just for extra security and people that can ddos the service to charge you more.
AWS especially is confusing when it comes to bills and services that you actually need to run
I think they even try billing you for over extending free trial and free to use stuff aswell
I locked myself out of authentik

Gotta love that
LMAO how
Well
Not even my fault
but turns out compatibility mode isn't fully compatible with all password managers
It should be hmm
so now I am not prompted for authenticating with my passkey
:))
I used to be, before I turned it on
so now im wishing I fuckin didnt
And you didn't bother with a backup code xD
Not at all, didn't cross my mind

My only option is to wait for proton pass developers to fix their shit cause apparently its a them issue, and authentik has notified them of it
or to restart everything
Me when i take a page from Discord 
lmao
I have not yet updated to the new release yet
I am too lazy
:))
OH MY FUCKIN GOD
I GOT IN
TY GOOGLE CHROME
😭
Fuckin google chrome comin in clutch
Allowing me to scan a QR code on my phone that has proton pass on it that I can then use the passkey from it
💪
Turned off compatibility mode fuck that shit
my system is searching for the user via the code supplied is that a good idea or should i do something else?
You should probably set an expiration date on that code to like 15 mins, also remove the code after it's been used.
You should also check if the code is 0/empty (default) to prevent issues.
yeah rn it expires after 24 hours
also what HTTP code would i return if its expired?
added
https://pastes.dev/KjJteVnQcX say I have this client component that takes in children (This is for doing a layout)
Then I use said client component in my root layout passing in the children (aka all the pages and such)
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
const theme = createTheme({
fontFamily: 'Noto Serif',
});
return (
<html lang="en" {...mantineHtmlProps}>
<head>
<ColorSchemeScript defaultColorScheme={'auto'} />
</head>
<body>
<MantineProvider theme={theme} defaultColorScheme={'auto'}>
<LayoutShell>{children}</LayoutShell>
</MantineProvider>
</body>
</html>
);
}```
Would I still be able to use SSR in the pages, or would they then be bundled with the client because im passing them to a client component that then gets finally rendered in said component
Surely it doesn't right? Because technically they are rendered in the layout and then passed on as fully rendered children right?
I am very tired so sorry if I am making 0 sense
if a layout is a client component, then it's childs will be rendered as a client component too
if i'm not mistaken
The layout itself isn't a client component
I am simply passing the children from the layout to a client component
Since I can't do the interactivity for mobile without doing it this way
I need to make use of hooks
sorry idk why I said child I meant client 😭
oh wait, yes you can, sorry. https://nextjs.org/docs/app/building-your-application/rendering/composition-patterns#supported-pattern-passing-server-components-to-client-components-as-props
as long as you don't render it directly
atp should i use a switch case instead of if?
Oh cool so it doesn't fuck with SSR in any of the children
Sweet
🔥
lmfao yeah
I am also implement internationalization early
so fuck my life

Doing shit I have never done before
gotta love it
good luck, yeah i never done that before too
oh, it's json based
i see
which means I can use stuff like crowdin
:p
In case I want to outsource translations
One thing I want to do is implement automatic translations at some point
Since people's content won't always be translated, I can translate their page dynamically
use apis to translate?
Maybe
I wonder how veld does it
Oh he was thinking of getting people to manually translate them
💀
yikes
just like discord app directory
oh yeah This project is mainly for pet projects and prototyping 
yea
i'd need to use something like yandex or some other translate api with paid plans
Though tbh
Idrc
Don't have your language? Oh well I am not perfect

acceptable 
I love [object Object]
said error:
I mean, you could? But the real question is why are you checking each individual status? I doubt that differentiating between a 410 and a 404 here is going to be useful
i already did it
better to not log that 
When you have 3 or more condition checks, use a switch
huh
You’re doing more error handling here than necessary imo. On fatal errors, I usually just redirect users to an error page that shows the status and a message if it exists.
Also not sure why you’re using .then if you’re gonna pass it an async function right after anyways
Just use one or the other
Stash
omg thank u
Stash, pull, branch, pop stash, resolve merge conflicts, merge back into main/whatever branch you wanted
thats fun
when you pull your files onto your VPS and it just fuckin dies
how am i just getting this error on the server but not in development...
So language switcher was actually rather easy
const [_, startTransition] = useTransition();
const router = useRouter();
const pathname = usePathname();
const params = useParams();
const t = useTranslations('LocaleSwitcher');
const locale = useLocale();
function handleLocaleChange(event: ChangeEvent<HTMLSelectElement>) {
const nextLocale = event.target.value as Locale;
startTransition(() => {
// @ts-expect-error -- TypeScript will validate that only known `params`
// are used in combination with a given `pathname`. Since the two will
// always match for the current route, we can skip runtime checks.
router.replace({ pathname, params }, { locale: nextLocale });
});
}
<NativeSelect onChange={handleLocaleChange} defaultValue={locale}>
{routing.locales.map((cur) => (
<option key={cur} value={cur}>
{t('locale', { locale: cur })}
</option>
))}
</NativeSelect>
Shrimple as that
finally everything works...
"locale": "{locale, select, de {:flag_de: Deutsch} en {:flag_us: English} other {Unknown}}" wonder how this syntax works. Because it is able to grab the right locale
Wondering how each option doesn't become English Deutsch right after
Ah
It uses ICU format
Ty google
is it like refresh
hm?
IT simply replaces the pathname in the url
EN -> example.com/en
DE -> example.com/de
no refresh happens
ohh, your route will start with locale?
yuh
Instead of saving the locale in cookies i'd figure this would be easier
Sure it'd be nice if I want to save their locale
but again
don't care enough rn 🧌
I am simply doing a quick implementation of everything. I will go back and polish later.
Hey
How to configure
VOTE REWARD SYSTEM ON BOT
ah fair, i myself not really a fan of putting locale to the route. but ig if it works, then it works 
For now it works yeah
I will go back later and allow them to choose a locale and save it to state
rn I just want something quick and dirty
Just so for sanity sake I know it works 💀
use the api and recieve the webhooks when users vote
Ohk
Cloudflare ip masking to prevent ddos worth it or not?
But only that like i dont want the stupid captchas
cloudflare handles ddos attacks automatically when detected
I havent implemented any services of cloudflare
you can fine tune those in the WAF rules
But i was just thinking of masking my servers ip
you could do this, I do it myself too because I self host everything
Oh okay, i dont really do that but sometimes i do stupid shit like open ports in my vps
Also datalix has been great. Give it a try if u plan on not using ur pc to host
thanks but won't happen anytime soon 😅
how can i become a discord bot developer
Just make a bot I guess
like how to make one , where to learn to make one
do you know how to code?
i know html and css and a bit of java
java or javascript?
java
i cant understand anything in there
then you need to learn more java
like is there a way to become a developer
from the start
like where can i learn
learn a programming language
java is just one of many languages
if you like it and have experience with it, stick with it
otherwise you can try others like javascript and python, both are beginnner friendly
why is multithreading with rayon in rust so easy 🥀 ```rs
let worker_pool = Arc::new(
rayon::ThreadPoolBuilder::new()
.num_threads(threads)
.build()
.unwrap(),
);
let error = Arc::new(RwLock::new(None));
worker_pool.in_place_scope(|scope| {
for entry in archive.into_entries() {
scope.spawn({
let error = Arc::clone(&error);
let chunk_index = self.chunk_index.clone();
let destination = destination.clone();
move |scope| {
if let Err(err) = Self::recursive_restore_archive(
&chunk_index,
entry,
&destination,
progress,
scope,
Arc::clone(&error),
) {
let mut error = error.write().unwrap();
if error.is_none() {
*error = Some(err);
}
}
}
});
}
});
if let Some(err) = error.write().unwrap().take() {
return Err(err);
}
there are lots of places you can learn for free, like codecademy, udemy, youtube, etc
you can try googling stuff like "java for beginners" or something like that
ok
any changes i should make or is this good?
I really hate gradients in text but that’s just me
Developing more components for modals 
Gradients for roles 
right wtf
Got this error last night but no fuckin clue what it means. I somehow fixed it but its back again
oh wait
Right so now I want to actually implement it properly, but how the fuck do I do this
Cause like
I can set it in a cookie
but the client can't access that cookie
so I can't set it when they change it

Is that like a packaging software or something?
hello
still need help?
If you have any ideas yes
you can create and get cookie using document.cookie
you can see here https://www.w3schools.com/js/js_cookies.asp for example to get and set one
thank you
Will this triger a re-render of the pages?
Because when they change their locale I need to make sure it fetches the new translations
nope, you gotta rerender it yourself
idk is rerender enough or not
What does this page even do? I still have no idea
It should
As long as like obviously the content pulls the translation then a rerender would show the new translation for updating language
its from when apps used to be games
and you'd get someone to test the application on discord
now its used for VC interactions where you have to be marked as a tester to gain access
Oh
i should prob move away from PM2 someday about to run out of slots
I just started to another Next project after a long time, and received the following error for the first time (it hadn't taken place before):
next/font error:
Unknown font Geist
⨯ app\layout.js
Switch the import to next/font/google
There is hardly any documentation for it but you can use it to test/debug game activities and it also bypasses the apps in-app subscription purchases using the test mode below?
It also gives you access to
It also worked to remove the .variable section from the fonts, it turns out that it was a problem caused by Next itself due to the latest version being beta
just switch to using plain systemctl for tracking processes
systemd technically i just call it by the tool name
Huh
Much better

super cool watching progress on this overtime though 👀
How do you trigger a re-render
nvm
figured it out
can just use router.refresh()
:D
W works
W
sorry i just woke up 
you might want to differentiate colors of healthy state (i assume "idle / ready") and running state (i call it "active")
same with action buttons
layout-wise well done
All good, I figured it out
What are your thoughts on components v2 on discord? 
As someone who got to try them early, I'm quite happy with them. I think this alleviates some design pain points I've had as a bot developer over the years. The only negative thing I have to say about it is that all of the text is at a limit of 4000 characters which is a bit below the 6000 char limit of embeds and their fields considering cv2 is supposed to replace both content and embeds
One example of a pain point would be embeds having to have a color for the left border. You couldn't have anything flush for all color schemes. Another one being you'd have to use an embed to embed a link to media. Also having to worry about permissions attached to embeds if you're creating a message. Luckily interaction responses don't follow this permission
I am also positively surprised. They look nice and give a lot of flexibility when it comes to the appearance of these "embeds". Finally, bot messages will not be so boring, each of these messages can be "unique" in its own way
This is probably one of the best updates aimed at bot developers in recent years imo
Let's just hope Discord doesn't ruin it with their future decisions 
I doubt it. dv8 seemed quite passionate about a particular design philosophy
I'm stuck with something, I'm trying to code a dashboard for my bot, I've been doing good witth the design but I'm curious how I'm supposed to handle API requests while making them secure so people won't be able to send and data change requests for any Discord servers that they're not an administrator of?
I've searched about it but I still haven't found a clear answer
@solemn latch support scam
ty
❤️
On Next.js
use server
This error keeps popping up after i pulled files from GIT idk whats causing it
ive reverted back to 2 updates and its still not working
node server.js?
@hidden gorge ^^
hmm i've been running node server for months and never had this issue
omfg im so stupid
i was running in the WRONG DIR
oopsies
😭
huehuehuehuehue
out of the loop here, what are the changes? when release?
Welp
basically when you supply a new message flag, you lose content and embeds, but you get access to some new components that allow you to build more rich messages
without needing to be in a container like an embed
the gate is lifted rn and can be use by anyone
Use new Discord components in messages for free and stylize your server however your want.
I used this to mess around with them
does this look good?
time to blow up your API with a bunch of images
hope you have a limit for your s3 bucket
i thought about this already dw
each ticket will allow 10 files per hour
also all images and messages are deleted after the ticket is closed
oh wait this is live chat mb
each chat will have 10 images per hour and all data will be deleted after the chat is closed
Time to open 30 tickets
Also limiting that
1 ticket per user
What sucks rn is I'm basically hitting the limit of my server
A fancy pm2 dashboard is probably not helping you out in terms of performance
Honestly I'm using PM2 during development
Docker is the way to go
Then I'm gonna use something else
Kubernetes if you really want to be overkill and plan on having much higher performance demands
Rn I'm using PM2 bc i can access it anywhere and its easy to start new instances
I used pm2 once, didn’t really like it.
Ever since I’ve learned a bit of docker I’ve been a much bigger fan of using docker and docker compose
Super easy orchestration
Me when running a bunch of screen sessions back in the early days 
this
I did this so much
before I learned of pm2 and docker
😭
Needed to run lavalink? screen
need my bot to stay online? screen
I remember doing this too a few years back.
Isnt there plans of video embeding?
I thought I saw something along those lines
any idea of what i should replace Articles with? it doesn't fit imo
Yea, you can use components v2 to embed videos
Although I don't fully understand how this is supposed to work yet
It seems to me that it is simply an improved embed video, such as the one created when you paste a link to a video directly into the chat
man i'm so glad i don't do that anymore
that was such a horrible setup
what are them supposed to be?
written articles?
I found one of your mods on curseforge I think
I dont remember what it was
but I swear the name looked familar
💀
incredible lmao
It was so random
I was like hol up that name is familar, but I couldn't remember how you spelled your name 😭
Oh right
It was create mods
This you?
I usually just randomly bump into thund on reddit
As a minecraft modder, what resources do you use?
It's a bit murky on what to use, but I am intrigued on learning about the process
tbh the best way to learn mc modding is to try to contribute to an already existing mod
just to get the gist of how it works
Interesting
Is there any like documentation on it all?
or is it a smack rock against rock until something works kind of thing
kind of, depends which modding framework. fabric is ok, but when modding you're often going to have to use minecraft's internals which have no docs at all... but there's a lot of information on forums
sometimes it's a dead end and you have to figure out how something works by yourself
just how modding is
Yea
That makes sense
I heard of a thing called MCCreator
or something like that
Sounded very similar to what happened with discord bot makers

don't know much about it, those scratch-like editors are good for entry level modding
it's mostly for people who don't have actual exp with java
resources as in, what like tools etc i use or what i used to learn mc modding?
Tools, and how you learned
I see its common that most just try it and see
Okay
Will do
I wonder if i can change that on my phone or not
Oh I can
I primarily use intellij, and then for modeling and textures there's blockbench and aseprite, but personally i don't use those myself since i suck at art 
the way i learned was really just jumping into the deep end, would not recommend doing that as it wasn't a great idea at all
best resources are just properly learning java first, and then making your first mod, and looking at other mods to see how they work
also learn how mixins work, very useful tool when you need to change vanilla's code
I notice a lot of errors relating to mixins in my forge console
with mods I use
Seems like people do it wrong often 
yeah
I mean, I heard if you know C# you pretty much know java with a few caveats
most people use mixins to bypass needing to interact with humans and request apis
which results in terrible mixins into other mods that break quickly

I also hate how some mods are not compatible with each other 
I have mods on my mc server with my gf that have the same ores but somehow different so you can't use the counterparts in the other mod
Which sucks cause of terrain gen putting majority of one mods ores in

all create addons basically do this
and everytime create has a semi-major update every addon breaks, and due to improper dependency declarations they result in crash logs that the average user can't understand
c# was born as a way for microsoft to own java without owning java, they just didn't name it java++ cuz sun gave them a slap on the wrist
There are mods that add tags to the ores if not exists and then modify recipes that use the ores to accept the new tag
Oh really?
Yup. One example for forge is all the ores from the all the mods team
someone know how to do this cmds "clickable"?
Interesting
Don't put it in ` and use </commandName:commandId> for mentioning commands
im trying but idk how to i can get this command id
from the post application commands response, it gives you an array of commands and the command obj has the id
or you can get your application commands without posting
Or you can right click on this box above the chat input while typing a command
console.log(cmd)
const appCmd = applicationCommands.get(cmd.name);
console.log(appCmd)
Shazam {
name: 'shazam',
description: 'Recognize a song from an attached audio or video file.',
usage: [ 'shazam <attachment>' ],
aliases: [],
options: [
{
name: 'file',
description: 'file to analyze. (MP3, MP4, MPEG, MOV)',
type: 11,
required: true
}
],
category: 'utils'
}
undefined
why appCmd returning me undefined?
bruh xddd. nvm i got it, thanks for help
Does anyone know how to update the top.gg bot name? I’ve updated it from discord dev portal
Use "refresh data" button
Then you should probably ask on #support
Idk if they fixed issue with refreshing data or not
You seem to know minecraft mods, do you know what this one is?
Cause I really cant find it
Hu?
Being able to view information about what you are looking at is sounding very helpful rn
but I cant find the mod
Ah you mean the overview
Yeah
There's a few. More modern versions tend towards jade, but they're forks of what am I looking at
or waila
Would this work for AE2 do you know?
Gotcha!
Hell yeah, component rework
Hm, now we're not limited to text top/buttons below
And can add columns apparently
Oh, embeds are free form too
{
message: 'decryption operation failed',
stack: 'JWEDecryptionFailed: decryption operation failed\n' +
' at gcmDecrypt (webpack-internal:///(rsc)/./node_modules/.pnpm/jose@4.15.9/node_modules/jose/dist/node/cjs/runtime/decrypt.js:67:15)\n' +
' at decrypt (webpack-internal:///(rsc)/./node_modules/.pnpm/jose@4.15.9/node_modules/jose/dist/node/cjs/runtime/decrypt.js:92:20)\n' +
' at flattenedDecrypt (webpack-internal:///(rsc)/./node_modules/.pnpm/jose@4.15.9/node_modules/jose/dist/node/cjs/jwe/flattened/decrypt.js:143:52)\n' +
' at async compactDecrypt (webpack-internal:///(rsc)/./node_modules/.pnpm/jose@4.15.9/node_modules/jose/dist/node/cjs/jwe/compact/decrypt.js:18:23)\n' +
' at async jwtDecrypt (webpack-internal:///(rsc)/./node_modules/.pnpm/jose@4.15.9/node_modules/jose/dist/node/cjs/jwt/decrypt.js:8:23)\n' +
' at async Object.decode (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.24.11_next@15.3_c73b67e76e797616b730a43a574824c9/node_modules/next-auth/jwt/index.js:56:7)\n' +
' at async Object.session (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.24.11_next@15.3_c73b67e76e797616b730a43a574824c9/node_modules/next-auth/core/routes/session.js:39:28)\n' +
' at async AuthHandler (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.24.11_next@15.3_c73b67e76e797616b730a43a574824c9/node_modules/next-auth/core/index.js:136:27)\n' +
' at async getServerSession (webpack-internal:///(rsc)/./node_modules/.pnpm/next-auth@4.24.11_next@15.3_c73b67e76e797616b730a43a574824c9/node_modules/next-auth/next/index.js:129:19)\n' +
' at async RootLayout (webpack-internal:///(rsc)/./app/layout.tsx:35:21)',
name: 'JWEDecryptionFailed'
}
I do no fucking understand
What am I doing wrong
next-auth tell me
cause what it tells me to do o nthe docs doesn't seem to solve shit
Oh lord
Whats the point of having a fucking secrets option if you won't use it
Gotta use the damn env variable instead ig 
need help despite putting in the scope to know what servers the user is in my bot during login verification to my next.js website doesn't ask user for permission to know what servers they are in
https://discord.com/oauth2/authorize?client_id=1344537164813439017&response_type=code&redirect_uri=https%3A%2F%2Fdiscord-auth-backend-jet.vercel.app%2Fapi%2Fauth%2Fcallback%2Fdiscord&scope=identify+email+guilds+gdm.join
it only asks for username avatar and banner permission
and when i try to verify without going though my website and just going by the link i get error
https://discord-auth-backend-jet.vercel.app/api/auth/signin?error=OAuthCallback
Try signing in with a different account.
Sign in with Discord
please help been stuck on this for 3 days
it's asking normally for me
from top to down:
- access your username, avatar and banner
- access your email address
- know which servers you're in
- join private groups for you
try authorising
itll give a call back error
https://discord-auth-backend-jet.vercel.app/
and when you rty to login via website itll not ask for permission to know what servers ur in
despite scope in the url
If you're just trying to make auth for a dashboard or serverlisting, you shouldn't really need email and joining gourps for someone, howcome you requested those?
there are bots that allow joining servers through dashboard, I think either mee6 or dyno had that
it's still a fairly dangerous grant though
The join private groups is bit
but other than that email and list servers is common for dashboards
Email is still a bit confusing, I understand the usecase but lots of people do it for like updates or things and never use it
i was testing too see if if i have scope issue trying out different things
callback.ts
// src/app/api/auth/callback/route.ts
import { NextRequest, NextResponse } from 'next/server';
import { exchangeCodeForToken, getUserInfo, getUserGuilds } from '@/utils/discordOAuth';
export async function GET(req: NextRequest) {
const { searchParams } = new URL(req.url);
const code = searchParams.get('code');
if (!code) {
return new NextResponse('Missing code parameter.', { status: 400 });
}
try {
const tokenData = await exchangeCodeForToken(code);
console.log('Token Data:', tokenData); // Log the full token response
console.log('Token Scopes:', tokenData.scope); // Check if "guilds" is included
const userData = await getUserInfo(tokenData.access_token);
const userGuilds = await getUserGuilds(tokenData.access_token);
console.log('User Guilds Response:', userGuilds); // Log the guilds response
console.log('User Guilds:', userGuilds);
console.log('Authenticated User:', userData);
console.log('User Guilds:', userGuilds);
return NextResponse.json({
message: `Welcome ${userData.username}#${userData.discriminator}`,
guilds: userGuilds,
});
} catch (error) {
console.error('OAuth Callback Error:', error);
return new NextResponse('Authentication failed.', { status: 500 });
}
}
auth.ts
import { NextAuthOptions } from "next-auth";
import DiscordProvider from "next-auth/providers/discord";
export const authOptions: NextAuthOptions = {
providers: [
DiscordProvider({
clientId: process.env.DISCORD_CLIENT_ID!,
clientSecret: process.env.DISCORD_CLIENT_SECRET!,
}),
],
secret: process.env.NEXTAUTH_SECRET,
};
// src/utils/discordOAuth.ts
import axios from 'axios';
const CLIENT_ID = process.env.DISCORD_CLIENT_ID!;
const CLIENT_SECRET = process.env.DISCORD_CLIENT_SECRET!;
const REDIRECT_URI = process.env.DISCORD_REDIRECT_URI!;
export async function exchangeCodeForToken(code: string) {
const params = new URLSearchParams();
params.append('client_id', CLIENT_ID);
params.append('client_secret', CLIENT_SECRET);
params.append('grant_type', 'authorization_code');
params.append('code', code);
params.append('redirect_uri', REDIRECT_URI);
const { data } = await axios.post('https://discord.com/api/oauth2/token', params, {
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
});
return data; // { access_token, token_type, expires_in, refresh_token, scope }
}
export async function getUserInfo(access_token: string) {
const { data } = await axios.get('https://discord.com/api/users/@me', {
headers: { Authorization: `Bearer ${access_token}` },
});
return data;
}
export async function getUserGuilds(access_token: string) {
const { data } = await axios.get('https://discord.com/api/users/@me/guilds', {
headers: { Authorization: `Bearer ${access_token}` },
});
return data;
}
also login.ts
// src/app/api/auth/login/route.ts
import { NextResponse } from 'next/server';
export async function GET() {
const redirectUrl = `https://discord.com/oauth2/authorize?client_id=1344537164813439017&response_type=code&redirect_uri=https%3A%2F%2Fdiscord-auth-backend-jet.vercel.app%2Fapi%2Fauth%2Fcallback%2Fdiscord&scope=identify+email+guilds+guilds.join+gdm.join&prompt=consent`;
return NextResponse.redirect(redirectUrl);
}
Your link on the page is different from the link you sent here in the login.ts file
i dont get it what do u mean
This is the link you are redirected to after clicking this button:
https://discord.com/oauth2/authorize?client_id=1344537164813439017&scope=identify%20email&response_type=code&redirect_uri=https%3A%2F%2Fdiscord-auth-backend-jet.vercel.app%2Fapi%2Fauth%2Fcallback%2Fdiscord&state=Yp5qt7LR_dE_iLeh1vK91jg-D9CGWCQO48BWMRUvSAk
so?
"and when you rty to login via website itll not ask for permission to know what servers ur in
despite scope in the url"
The scope responsible for knowing which servers a given person is on is not included in this link
wtf does this even mean
what hydration errors?
Well no I understand hydration errors
but there isn't anything even going on to cause this
dark reader isn't even enabled
Like its a disabled extension
I mean it doesn't impact anything
it still functions normally
but its weird this is occuring and im wondering how I can resolve it in case it does cause impact
im so sorry im confused so how do i resvolve it?
What exactly are you trying to do
wait
cause from the sounds of it you are missing a scope on your auth url
which is the guilds scope if you want to know what guilds they are in
and if you want them to join a server on your behalf its guilds.join
/oauth2/authorize?client_id=1344537164813439017&response_type=code&redirect_uri=https%3A%2F%2Fdiscord-auth-backend-jet.vercel.app%2Fapi%2Fauth%2Fcallback%2Fdiscord&scope=identify+email+guilds+guilds.join+gdm.join&prompt=consent
so this is correct string?
???????
Sure but do you need the guilds.join and gdm.join scopes?
yea cuz it didnt work
what didnt work?
i don't think you can do that with object?
--darkreader-...
unless it's next or other things, idk
when i login to my website via discord it doesnt ask for permission to know what serevrs the user is in
despite the permission in the scope url
something dark reader does
is there any docs for that?
im pretty sure react component can't do that, also with the dashed props, aria-label -> ariaLabel
HELP
this is transpiled html
oh
I think it is anyways
try this
import dynamic from 'next/dynamic';
const IconChevronDown = dynamic(() => import('...').then(mod => mod.IconChevronDown), {
ssr: false,
});
yeah now i see
This gets rid of the error
nice
Why is my dam code not working?
Have you tried debugging 
yea no errors nothing discord issue not my code i put the string with scopes correctly
you need to give us something to work with, cant solve an issue if there's no error or console output to know what even is the issue
just redact the tokens before sending (and stop printing them to console)
everything worked thanks!
If you use quotes for the object key, this would be valid
yeah, right

Taking a page from Discord, gonna change the pre-defined colors
managed to get super tokens working with custom UI 
How can I make a side nav instead of a top nav
return (
<>
<SessionProvider session={session}>
<div className={'grid h-screen grid-rows-[auto_1fr_auto]'}>
<div className={'grid grid-cols-1 md:grid-cols-[auto_1fr]'}>
<Sidenav />
<main className={'p-4 space-y-4'}>{children}</main>
</div>
<footer className={'p-4'}>(footer)</footer>
</div>
</SessionProvider>
</>
);
It all squishes together because there is not 3 divs or elements in there
This is what it looks like if I put a div above the second one
https://discord.mx/i/MueSqsQuvf.png?
This was the last time I did a side bar, and it was done like this:
<main className="flex h-screen w-full flex-col">
<div className="w-full h-full grid grid-cols-[0.4fr_2fr]">
<Sidebar />
<div className="flex items-center justify-center p-4">
<div className="w-full max-w-4xl">
<h2 className="text-xl font-semibold mb-4">Your content goes here</h2>
<p>This is the main content area that will be centered while the sidebar stays on the left.</p>
</div>
</div>
</div>
</main>
If that is any help
It should be thank you!
it was a project i started and then abandoned lmao
My issue was the footer not being stuck to the bottom
I think because of me using grids it wasn't working properly
Got it!
Thank you a lot
I want to try something a little less traditional in terms of navigation 
Always see top navs but im getting bored of em
the color 💀 (ik it's to test layout)
Am I dumb
why is my transition not applying
.sidenav {
transition: all 1000ms cubic-bezier(0.250, 0.250, 0.160, 1.025);
}
.sidenav:hover {
width: 10rem;
}
do you have the width set without hover?
yes iirc, try it
You're a god send
Also how can I make the main content not move when the sidebar is opened?
have sidebar with absolute or fixed position, and set top, bottom and either left or right to 0
Interesting
yep, and for that, you can set padding or margin on the content based on the navbar's width if you like
the width of the content is like..fucked no?
hmm, nope
you use padding or margin?
I use a mix of both
'use client';
import { ReactNode } from 'react';
import { SessionProvider } from 'next-auth/react';
import { Session } from 'next-auth';
import Sidenav from '@/components/sidenav/Sidenav';
export default function LayoutShell({ children, session }: { children: ReactNode; session: Session | null }) {
return (
<>
<SessionProvider session={session}>
<div className={'flex h-screen w-full flex-col'}>
<div className={'w-full h-full grid grid-cols-[auto_1fr]'}>
<Sidenav />
<main className={'bg-red-500 p-4 mx-[3.5rem] w-full space-y-4'}>{children}</main>
</div>
<footer className={'p-4 bg-green-500'}>(footer)</footer>
</div>
</SessionProvider>
</>
);
}
import './Sidenav.css';
export default function Sidenav() {
return (
<>
<div className={`bg-orange-500 p-1 sidenav`}>
<h1>hello</h1>
</div>
</>
);
}
.sidenav {
transition: all 1000ms cubic-bezier(0.250, 0.250, 0.160, 1.025);
width: 3.5rem;
position: fixed;
top: 0;
bottom: 0;
left: 0;
}
.sidenav:hover {
width: 10rem;
}
hm, your main supposed to be full width ?
yes
with sidenav's position is fixed, your w-full h-full grid grid-cols-[auto_1fr] is no use anymore. that parent div is basically only styling the main
so you can try removing that, and for main, you don't actually do mx, since it margins both left and right. in this case, you only want to margin left
also fyi, you can do transition and hover in tailwind
smth like this can do it transition-all duration-1000 top..etc w-x hover:w-y
Seems to work thank you!
your welcome ^-^
Welcome to Mac
This looks a little weird
The main content seems to stretch over into the sidenav
and also there are elements in the sidenav completely missing
Never mind
turns out I was using the wrong component (imported one from a diff lib)
Looks good. Using next js?
Yea
Indeed
https://tumeden.dev/ if you wanna check it out. Your sidebar nav looks like it'll be a lot cleaner then what i got going on.
Projects and tools by Tumeden
i have some fancy animations, but my navbar feels like 💩
Yeah i have a lot of redundancy with the links going on that i definitely need to clean up lol.
fairly certain a footer is supposed to be at the bottom
I really
can't for the life of me
figure out how to get this to work with flexbox
<>
<SessionProvider session={session}>
<div className={'flex h-screen w-full flex-col'}>
<div className={'block md:hidden'}>
<header className={'flex flex-row justify-end p-2'}>
<Burger opened={opened} onClick={toggle} />
</header>
</div>
<div className={'flex flex-row h-full'}>
<Sidenav opened={opened} />
<main className={'p-4 md:ml-[3.5rem] grow z-0 space-y-4'}>{children}</main>
</div>
<footer className={'p-4 md:ml-[3.5rem]'}>(footer)</footer>
</div>
</SessionProvider>
</>
Anyone can figure out and teach me, be my guest
I swear I am brain dead at css
I read some fuckin stackoverflows and I swear they were useless
that shouldn't happen 
what happen if you remove this <main className={'p-4 md:ml-[3.5rem] grow z-0 space-y-4'}>{children}</main>
yeah, is it really that element "renders twice" or not
Well
main renders this
'use client';
export default function Home() {
return (
<>
<div className={'h-full space-y-4'}>
<div className="h-full flex items-center justify-center">
<h1 className={'text-4xl'}>HereForUs</h1>
</div>
<div className="h-full flex items-center justify-center">
<h1 className={'text-4xl'}>HereForUs</h1>
</div>
</div>
</>
);
}
So its supposed to be there twice
ohh
but the footer for whatever reason just wants to ruin the party and get in the middle

what happen if you remove flex and flex-col on the parent div (first one)
Assuming I am to bring back the main element
this happens

export default function LayoutShell({ children, session }: { children: ReactNode; session: Session | null }) {
const [opened, { toggle }] = useDisclosure();
return (
<>
<SessionProvider session={session}>
<div className={'min-h-screen w-full'}>
<div className={'block md:hidden'}>
<header className={'flex flex-row justify-end p-2'}>
<Burger opened={opened} onClick={toggle} />
</header>
</div>
<div className={'flex flex-row grow'}>
<Sidenav opened={opened} />
<main className={'p-4 md:ml-[3.5rem] h-0 grow z-0 space-y-4'}>{children}</main>
</div>
<footer className={'p-4 md:ml-[3.5rem] grow'}>(footer)</footer>
</div>
</SessionProvider>
</>
);
}
oh well
this, remove h-full on the parent. or use h-fit
and put this back in
wait, lemme do quick testing
Okay
you got it?
well basically with this code, the parent says h-full. and then 2 childrens are h-full too, both those children have the width of 100% it's parent. which is the same. they wont be splitted
I somehow put the footer way off the page
if you remove h-full, it'll collapse because there's no height set
you can do min-h-screen and remove h-full on the parent

is it working? (i guess it's not)
Erm
high chance it will not work. for the parent's class name, you can do min-h-screen flex flex-col, then for the childs, instead of h-full, use flex-1
I am confused
you actually need to put the content first tbh for the child's height to be there
I mean I had this, but the content's height is still off
export default function LayoutShell({ children, session }: { children: ReactNode; session: Session | null }) {
const [opened, { toggle }] = useDisclosure();
return (
<>
<SessionProvider session={session}>
<div className={'min-h-screen w-full flex flex-col'}>
<div className={'block md:hidden'}>
<header className={'flex flex-row justify-end p-2'}>
<Burger opened={opened} onClick={toggle} />
</header>
</div>
<div>
<Sidenav opened={opened} />
<main className={'p-4 md:ml-[3.5rem] h-full z-0 space-y-4'}>{children}</main>
</div>
<footer className={'p-4 md:ml-[3.5rem] absolute bottom-0'}>(footer)</footer>
</div>
</SessionProvider>
</>
);
}
I ended up using absolute
the main
hm, so you'll have footer always there?
Always at the bottom?
if your main content is long enough, it'll scroll behind footer
yes
I want it always at the bottom
IS that not good?
-# I want it on record that I really hate css
yea
so
I hate css please save me from my suffering
if you still want to do that, put relative on the parent div
I just want the footer to stick to the bottom

Why is this so hard
I would much rather prefer walking on hot coals right now
uhm, my question to clear this is, will your content have an actual content that's long enough?
Well, my goal was to make the content take up full width
uh, height?
'use client';
export default function Home() {
return (
<>
<div className={'h-full space-y-4'}>
<div className="h-full flex items-center justify-center">
<h1 className={'text-4xl'}>HereForUs</h1>
</div>
<div className="h-full flex items-center justify-center">
<h1 className={'text-4xl'}>HereForUs</h1>
</div>
</div>
</>
);
}
Make each div take up full height so it's scrollable
yea height my bad
im also tired

haha it's fine, then what is the "full height" you refer
I only have night time to work on things since I spend the day with my gf 
full screen height?
so you do this
export default function Home() {
return (
<>
<div className={'space-y-4'}>
<div className="h-screen flex items-center justify-center">
<h1 className={'text-4xl'}>HereForUs</h1>
</div>
<div className="h-screen flex items-center justify-center">
<h1 className={'text-4xl'}>HereForUs</h1>
</div>
</div>
</>
);
}
Well that would cause issues
what happen?
It'd add more overflow than needed
do you want this <div className={'space-y-4'}> to take full screen and split those 2 childs into 50 50 height?
Doesn't this look off?
i mean idk how you want the page to be actually look like so..
🙏 🙏
Seemingly the footer is still inside the content
Unless im lookin at it wrong
Eh whatever
It seems fine
Seemingly works now I think
is this what you wanted?
Not really. I want to be able to scroll between content 1 and 2
hm yeah i don't quite get what layout do you want 🙏
what?
At this point im confused on whats confusing
It's the basic layout of every website
take cloudflare for example.
https://www.cloudflare.com/
it has content that is scrollable, and at the very bottom there is a footer
Make employees, applications and networks faster and more secure everywhere, while reducing complexity and cost.
The easiest way I found in the past was to set the parent div of the layout to h-screen, and then in my pages use h-full
but introducing a footer seems to mess this up
you want this part?
Right so not the animation, I guess cloudflare was a terrible example
I am explaining this the best I can, but it seems my words are just not making sense
I am just going to shelve this for tmrw. I am getting frustrated cause of how late it is and I want to sleep
and I dont want to take my frustration out on you
sorry, might be my english limitation. just trying my best 🙏
No it’s not your fault
It’s 2am almost and I’m irritable right now for numerous reasons
I thought coding would calm me down guess not 
Thank you for all the help hope you have a good rest of your day!
you too!
can i still like try to help for this case now? or maybe later
alright see you later :)
change_presence discordpy not working in cog
how do i fix?
my code looks like this:
import discord
from discord.ext import commands
import asyncio
class StatusChange(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.bg_task = None
async def cog_load(self):
print("Cog is loading...")
self.bg_task = asyncio.create_task(self.rotate_status())
async def rotate_status(self):
statuses = [
discord.Game("📅 Holiday tracker!"),
discord.Game("🌙 Stars counter!"),
discord.Game("☀️ Shadow length measurer!"),
discord.Game("🌆 City lights admirer!")
]
while True:
for status in statuses:
await self.bot.change_presence(status=discord.Status.online, activity=status)
print(f"Status updated to: {status}")
await asyncio.sleep(3600)
async def cog_unload(self):
if self.bg_task:
self.bg_task.cancel()
async def setup(bot):
await bot.add_cog(StatusChange(bot))```
Like you see section 1, then you scroll to section 2, then section 3? But it's only showing one section at a time and you scroll to view the next?

That was my original idea but now I’m not so sure after sleeping on it
How do you guys usually make your pages?
i tried replicating it, is this the kind you want?
Yeah, but I’m wondering if that’s the best way to handle it
I think if there’s not enough content to fit in each section then it might end up looking weird
oh yeah
then i suggest making it like min-h-[50vh] for each "hereForUs"
or more or less
Hm how would you normally do it?
hmm, depend on how much the content is. if it's like 50% of the screen, i do 100vh and center the content
or just make the content bigger 
good luck :>

🤨
I'm working on a bot dashboard, will I have to check every time a user updates a setting for a server (for example auto-role) if they're permitted in the server using Discord API?
I think you would quickly reach the rate limit this way
Could you please let me know a better way? I'm kind of lost
It checks it for the first time once the user logs in to make sure the servers are loaded properly
I'd appreciate any help
Yes, I'm pretty much stuck with making it secure so people won't be able to change other servers' settings using GET on the API link
it's up to you to implement the security. before the user interacts with a guild on your side, you can use the token they authenticated with to fetch the latest information about themselves
this endpoint seems to be in your lane
I think this is pretty much what the issue is, checking it every single time would hit the rate limit of the API
so ratelimit the user on your backend so it doesn't hit discord's rate limits
but I don't think that's what you should do
you should be using the user's token to fetch that information, which is in its own ratelimit bucket from your bot and other users
yeah now that I think about it, you should probably throttle the user on your side
allow them to try to manage a server to something realistic, like 3 requests/1.5sec
doing it that way actually protects your endpoint from being spammed & also gets the benefit of not hitting discord rate limits for free
in a production app, ratelimits should be applied to all of your endpoints anyway. sometimes alongside anti-csrf mechanics and basically anything else that allows the user to abuse your app
There we go nice

@pearl trail Did you ever tell me how to fix this, I can't remember
Cause I swear I fixed it
and now its a problem again
💀
@sharp geyser yea you talked about it before
Yea I saw that and removed it
but at the end of it I can't remember if we actually solved it
cause I did end up going to sleep 
Lol
can i see the latest code?
<SessionProvider session={session}>
<div className={'w-full flex flex-col relative'}>
<div className={'block md:hidden'}>
<header className={'flex flex-row justify-end p-2'}>
<Burger opened={opened} onClick={toggle} />
</header>
</div>
<div>
<Sidenav opened={opened} />
<main className={'p-4 md:ml-[3.5rem] z-0 space-y-4 mb-1'}>{children}</main>
</div>
<footer className={'border-t-2 border-white/10 px-[3.5rem] absolute bottom-0 w-full overflow-x-hidden'}>
<div className={'flex flex-col md:flex-row justify-between items-center space-y-2 md:space-y-0 p-4'}>
<h1>HereForUs</h1>
<Group>{items}</Group>
<Group gap={'xs'} justify={'flex-end'} wrap={'nowrap'}>
<ActionIcon
onClick={() => router.push('https://discord.com')}
size={'lg'}
variant={'default'}
radius={'xl'}
>
<IconBrandDiscord size={20} stroke={1.5} />
</ActionIcon>
</Group>
</div>
</footer>
</div>
</SessionProvider>
<div className={'relative h-screen'}>
<Container
className={'h-[500px] md:h-[700px] flex flex-col justify-end items-start pb-48 z-1 relative'}
size="md"
>
<Title className="title">Build Your Love Story Online</Title>
<Text className="max-w-full !text-white !text-lg md:max-w-[600px]" size="xl" mt="xl">
A beautiful, easy website builder for couples to celebrate, share, and preserve their journey — forever.
</Text>
</Container>
<Container
className={'h-[500px] md:h-[700px] flex flex-col justify-end items-start pb-48 z-1 relative'}
size="md"
>
<Title>Wh</Title>
</Container>
</div>
I wanted to add more content after the first container, but that seems to cut into the footer
My guess is you'll need to add an overflow: if it's cutting into the footer
i assume that header is this?
<header className={'flex flex-row justify-end p-2'}>
<Burger opened={opened} onClick={toggle} />
</header>
```?
header is that yea
It only shows when in mobile view tho
Thinking about it I likely don't need it, I can probably keep the sidenav open all the time, I think old code made it impossible

lemme analyze a bit more
so like, the Burger is the actual header, yes? (the HereForUs,,, Contact,Privacy,ToS, discord Logo)
huh no
oh it's the footer?
wait am I misunderstanding
is this footer or header
The burger is the header for when its in mobile view, so they can open and close the sidenav (I dont use a top nav)
what you circled is the footer
ahhh
huehuehue
what happen if you remove absolute bottom-0 on the footer?
It does go down a tad bit (literally an inch or two)
kaboom happens
wdym a bit thats a huge difference
:^)
Yea but still not at the very bottom 😭
but is it at the bottom of main?
Why is the second container being rendered outside the main element

what happen if you remove h-screen ?
haha no problem :D
wait hm
Adding a second container messes with stuff, so I figured I'd remove it, and just add in the content all in that single container (idk if thats a good idea)
and then this happens
I really am not cut out for frontend work
I have no idea what im doing 
ah, so you only have 1 container now, and the height is still h-[500px] md:h-[700px] right?
Yea
Welcome to frontend dev 🙂
well, the screenshot makes sense. the footer is placed right after h-[500px] md:h-[700px] ended
I mean I know it makes sense
but I dont really understand how to get the effect I want

i haven't tried it yet, but you may want to do min-h-screen on the very top of the parent, then on the footer, add mt-auto. 
hoping that mt-auto will margin the empty space so the footer is at the bottom
You are a genuis
is it working?
Yes
wow
nice, now you can add as many as container as you want, and the footer is still at the bottom
there will be no problem anymore
So I can put another container in that page
yes
🙏
for just in case, use min-h-dvh. it'll look ugly on mobile with address bar with just vh
gotcha
Thanks a lot
I don't understand how you are able to think of all this
but your brain is really meant for frontend work 
kekw, i'm still learning :) thank you tho
Yea well, compared to me you are like an abundant book of knowledge
Do you mind if I bug you about my questions?
I know I ask for a lot of help 💀
Don't wanna be a bother
oh yeah sure (i mean yes you can ask)
i'll help if i'm availale
Thanks 

Right this is getting annoying
Rate my way of laying things out
<SimpleGrid cols={1} spacing={500} mt={50}>
<Container className={' flex flex-col justify-end items-start z-1 relative'} size="md">
<Title className="title">A Home for Your Heart</Title>
<Text className="max-w-full !text-white !text-base md:max-w-[600px]" size="xl" mt="xl">
A beautiful, easy website builder for couples to celebrate, share, and preserve their journey — forever.
</Text>
</Container>
<Container className={' flex flex-col justify-end items-start z-1 relative'} size="md">
<Title className="title">What is HereForUs?</Title>
<Text className="max-w-full !text-white !text-base md:max-w-[600px]" size="xl" mt="xl">
HereForUs is a website builder made for love — a space where couples can celebrate their story, preserve
memories, and mark every milestone together.
</Text>
<Text className="max-w-full !text-white !text-base md:max-w-[600px]" size="xl" mt="xl">
We’re building a platform for heartfelt expression — for those who want to honor their bond and create
something lasting for the one they love.
</Text>
</Container>
<Container className={'flex flex-col justify-end items-start z-1 relative'}>
<div>
<Title className={'title'}>What does HereForUs offer?</Title>
<Text ta={'center'} mt={'md'} c={'dimmed'}>
Make use of our feature rich component library to build your love journey
</Text>
</div>
<SimpleGrid cols={{ base: 1, md: 3 }} spacing={'xl'} mt={50}>
{features}
</SimpleGrid>
</Container>
</SimpleGrid>

I am honestly contemplating walking on hot coals over doing this
good enough, nothing's wrong
Really?
Surely I thought using 500 spacing was absolutely wild
My old code just wasn't responsive, and trying to get it responsive was annoying as all hell
i mean if it works, it works right?
if you don't want to use that, you can use like min-h-[500px] on each container
idk but imo the very first container is placed a little bit too top
Wym
hmm, that's just my theory
you can keep it as it is
no like
Idk what you are saying to do
😭
Im a little slow today, once again mind is all over the place
oh, make the first container placed around that red box
Interesting
May I ask how you'd do the html?
Cause I have been trying to get this stuff to be not super compact
but every time i try it is either too close together, or too far away
and they have to scroll ages
hmm, probably i'll reduce the gap between them like only ~96px, then set each container's height to be min-h-[60vh]
Surely this isnt what you meant right?
Spacing looks uneven
Idk it just looks so funky like this
I keep playing around with the min-h
and it just looks off to me

why the first element is too bottom? 💀 is it the margin?
No
I removed the margin entirely and still like that
<SimpleGrid cols={1} spacing={'96px'}>
<Container className={'min-h-[50vh] flex flex-col justify-end items-start z-1 relative'} size="md">
<Title className="title">A Home for Your Heart</Title>
<Text className="max-w-full !text-white !text-base md:max-w-[600px]" size="xl" mt="xl">
A beautiful, easy website builder for couples to celebrate, share, and preserve their journey — forever.
</Text>
</Container>
<Container className={'min-h-[50vh] flex flex-col justify-end items-start z-1 relative'} size="md">
<Title className="title">What is HereForUs?</Title>
<Text className="max-w-full !text-white !text-base md:max-w-[600px]" size="xl" mt="xl">
HereForUs is a website builder made for love — a space where couples can celebrate their story, preserve
memories, and mark every milestone together.
</Text>
<Text className="max-w-full !text-white !text-base md:max-w-[600px]" size="xl" mt="xl">
We’re building a platform for heartfelt expression — for those who want to honor their bond and create
something lasting for the one they love.
</Text>
</Container>
<Container className={'min-h-[50vh] flex flex-col justify-end items-start z-1 relative'}>
<div>
<Title className={'title'}>What does HereForUs offer?</Title>
<Text ta={'center'} mt={'md'} c={'dimmed'}>
Make use of our feature rich component library to build your love journey
</Text>
</div>
<SimpleGrid cols={{ base: 1, md: 3 }} spacing={'xl'} mt={50}>
{features}
</SimpleGrid>
</Container>
</SimpleGrid>
This is my most recent try
and the first element is still miles from the top
because there's no way h-50vh is that big to fill the entire screen
can you like inspect the first container
Yea, it's height is proper but the thing is the content sits at the bottom of it.
I tried centering it
but that didn't seem to do anything
oot, but do you prefer 1st one or 2nd one on closed navbar? the 3rd pic shows how it looks on opened navbar
First
ngl i agree
alright, thanks!
No problem
scam link gone
🙂 nice even a resources view of what the role can access
Hello all, could anyone help me out with how to use CSS? I had a chat with support earlier today and they pointed me here. Basically, I have a custom background image but I want it to be more prominent and cover the entire page, and they had said CSS may be able to achieve this. I know less than nothing about CSS so any help would be great!
Hey, sorry i missed your message, I'm using the websites "Background Url" box in the bots info page, and it does display properly, however its very hard to see and to my understanding, a custom CSS would be able to make this more prominent. I have toyed around with the inspect element shenanigans and i actually managed to edit it in a way i like and captured a screenshot. however, obviously I know nothing about web stuff and don't know how to..save it?
if you messed with the css propeties and captured a screenshot, just modify those same properties in the long description
I'm not 100% on how to do that, what I did was right clicked, hit inspect and eventually found the lines that edited my image and then tampered with those, I'm not sure how to I guess "properly" do it
Googling was not super helpful, they all included some kind of custom css button in the website itself which topgg lacks
I did see a video from a while ago where he had elements in the description itself, so would i find the relevant portion with inspect again, paste it there and edit it?
iirc you can use inline styles in the long description, @shell tundra could correct me on this
would it matter the order in which it is placed in the description like python? or could i put it either on top or the bottom of the rest of the description
I imagine it would go first but figured id double check
I can't answer beyond this, I haven't done it before so I have no idea
can
I think its just a style tag at the top of the description
-htmldesc
@scenic horizon
You can achieve this using Markdown or HTML in your bot's description. You can ask in #development for help or use this HTML and Markdown cheatsheet for more resources.
the cheatsheet will be helpful
thank you! I'll have a look and see if I can figure it out
I'm trying to ultimately edit the opacity of the background image i have set using the websites built in setting, i can attach the screenshot of what im trying to achieve
yeah that'd be helpful
can you send me the page link please?
That's..actually what i originally wanted before i compromised with my screenshot, the only thing really now is the colour, and its just a little zoomy, i love the aesthetic of topo so if it could show more of the design thatd be awesome
oh it just refreshed, thats amazing, maybe a 15% opacity boost?
hows this?
hmm, i can't decide whether i want more colour or if i want the fade, they both look good imo, could you try a little closer to the screenshot opacity just so I can see?
can't get it to do the fading for some reason
oh that's totally fine, i think for how the website is, a little more on the darker side is better, just enough to give it that personal touch
this is the best i can do
honestly, i love it
its what i was aiming to do originally (whole page coverage) but struggled with immensely haha
yes fs, I will 100% be doing that after starting to port my little projects into..big ones 😂 thanks so much for helping me!!
I really do love them both, the second one (if I was a wizard) I'd add boxes or something to make the foreground elements stand out and be more legible
It's off to YouTube university for me 🤓
Ouuu hold on I like that
hold on let me do something else
@scenic horizon you like this?
i was making something similar for my topgg page too i just copied the code 
Honestly I don't have words, are you my dad
LMAO
Whatever they're paying you it ain't enough
I'm sweeping AND mopping for this
0.5$ please
i need to feed my family
ok i should study, rest is up to you. good luck!
Don't worry about rent this month, I'll do extra chores 🙂↔️
Seriously thanks so much, that's WAY more than I expected
np

Hey, is it possible to check user statusses and how long theyve been playing it for?
Its for a game like black ops
Probably yes, I remember one meme where someone made a bot that banned people who played League Of Legends for more than 30 minutes
Best bot ever
@solemn latch I know you usually use NextAuth but have you heard of this https://www.better-auth.com/
Just found it
Looks pretty legit
Yeah I have
Ever used it?
Nah
Lowkey might give it a try to see how well it works. Cause it could likely replace the need of a traditional IDP
I have no issues with next auth, since I just use the basic stuff anyway
Yea
I mean tbf next auth also isn't like a authentication library
more of a middleman situation that helps you connect with idps
Yeah
I'm trying to refrain from changing things just to change them, use what I know
Looks like better auth makes an attempt to replace self-hosted or cloud idps like authentik, authelia, zitadel, ory, etc
and use whats already existing
That is honestly fair
You can but good luck making it public with more than 100 servers.
It requires the presence intent which is a lot harder to get verified for.
It aint public
Just 1 server
Then you'll be good
Tyy
Yoo whats going on with discord?
Been seeing a lot of posts on social media declaring the end of discord?
new CEO



Yup already on a beta v1.0.24 been doing a lot of updates to improve it
