#๐Ÿ‘พ-core-development

1 messages ยท Page 253 of 1

limber skiff
#

I was able to generate this with custom-background-theme

#

but settings look so bright for some reason

#

feels like this wont work blobwob

#

yeah no this doesnt achieves good results

austere talon
#

no clue what this means

#

@limber skiff

limber skiff
#

ugh

#

I have no idea how to fix client theme lol

#

they changed completely how the colors for each thing are calculated

#

same main background, but everything else changed

austere talon
#

maybe we can ask someone who knows this stuf better to do it

#

like some theme dev

limber skiff
#

it does work, it's just different now

austere talon
#

or maybe cassie wants to do it afterall :P

limber skiff
#

before it was this "primary"

#

now it's "neutral"

#

which by itself is already different than primary

austere talon
limber skiff
#

yeah

#

I agree

austere talon
#

i used to use the plugin but now i stopped using it

limber skiff
#

before and now

#

you can see the main background is still the same primary color

#

but the rest is all cooked

limber skiff
#

what color did you use to have?

austere talon
#

the preset green

limber skiff
#

second one?

austere talon
#

looks so bad

gritty canyon
#

i just add themes to the official theme picker and it works well

austere talon
#

gradient puke

limber skiff
austere talon
limber skiff
#

was it this one

austere talon
#

it looks very different

limber skiff
#

do you have a screenshot of before lol

gritty canyon
austere talon
#

im looking rn

limber skiff
gritty canyon
#

you can look into that if you want to, of course doesnt change the text color though

limber skiff
#

but it doesnt work well with dark themes

gritty canyon
#

wdym

limber skiff
#

also doesnt match the old behavior anyways

austere talon
#

(also combined with nitro theme)

#

this is new with nitro theme

#

it changes text colours for example

#

it shouldnt imo

limber skiff
#

so it was like this?

fossil inlet
# austere talon

guhhh is that another version of the freeze bug i found a bit ago

limber skiff
#

I'm not seeing so many differences

#

but I agree it's different

#

and worse

limber skiff
austere talon
#

here's a pure variant

#

WINDOWS

limber skiff
#

awful

austere talon
#

honestly the worst aspect is just the text

limber skiff
#

they cooked this app sohard

fossil inlet
limber skiff
#

hmm

#

I have an idea

#

to get old behavior we would need to have neutral the same as primary

#

im asking gpt ๐Ÿ”ฅ

austere talon
#

๐Ÿ˜ญ

#

vibe coding

austere talon
#

are u still working on it or did you give up

limber skiff
#

still working

#

I interporlated the neutral colors the way the old primary colors were

#

which goes from ~+12 to ~-30

#

but it looks shit

#

lol

limber skiff
#

@austere talon there's no easy way to get back the exact old behavior

#

we can do our best to try to get it close, but exact would require manually changing so many vars

#

they changed the way they use to calculate the colors and how they use them

opaque silo
#

Why aren't you guys just generating these and telling the client its in the custom theme mode

limber skiff
#

already am

opaque silo
limber skiff
#

it's different

opaque silo
#

wdym

limber skiff
#

the colors are different

opaque silo
#

im confused ๐Ÿ˜ญ

limber skiff
#

then ignore it

opaque silo
dusk blaze
#

cookie science

fossil inlet
#

guhhhh vscode css api so bad

#

i have to provide my own language server to add css completions

dusk blaze
charred monolithBOT
jolly egret
#

that just isn't true though

#

watch is dev, no?

jolly egret
#

thought so

clear jasper
#

I just tried

jolly egret
scenic brook
clear jasper
fossil inlet
charred monolithBOT
charred monolithBOT
fossil inlet
#

@limber skiff found the hang bug

limber skiff
#

its always related to the tree

#

not sure how what I changed causes it

fossil inlet
#

yeah

#

wasn't you

#

discord changed something i think

#

(i love my n key being broken blobcatcozy )

charred monolithBOT
austere talon
#

they never change t or e so how is the condition ever supposed to change?

fossil inlet
austere talon
#

yes but

#

they never change t or e

#

so they always assign the same value to r

#

it never changes

fossil inlet
#

wait yeah

#

weird

#

the only thing i can think of is that getNode has some side effect

#

but that would be really cursed

austere talon
#

it seems to me like they just used the wrong variable

#

e instead of r

fossil inlet
#

yeah, but it works fine without better folders

austere talon
#

maybe cause t or t.parentId is null without betterfolders

#

idk i think it's a clear sign that the betterfolders experiment failed

#

let's remove it

#

Also I tried earlier and it worked fine for me... is it some setting?

fossil inlet
#

I managed to "fix" it, but it should be done in a better way

fossil inlet
#

why is it even a for loop

#

it's just getting the parent folder ref

#

and you can't nest them

charred monolithBOT
charred monolithBOT
fossil inlet
limber skiff
#

that's hacky

austere talon
#

okay but Discord's code is literally shitcode

limber skiff
#

the actual issue is still present

austere talon
limber skiff
austere talon
#

okay so the issue is

limber skiff
#

the other time we had something like that was because of a missing memo in the new tree calculation, which ended up building a new tree everytime and triggering an effect

austere talon
#

this is null with BetterFolders

#

which is why it enters the broken loop

#

for Discord that is not null

limber skiff
#

that was the same function that caused the issue last time ๐Ÿ˜ญ

#

it was called by an effect iirc

austere talon
#

it calls that function when you click on a guild in a folder

limber skiff
#

oh nvm I remember now

austere talon
#

the way it happens with betterfolders is when you quickswitch to a guild in a closed folder

limber skiff
#

the one I'm talking was an issue where the scroll would reset

#

๐Ÿ˜‚

#

kinda related but hmmm

limber skiff
#

need to see why that is null

#

it could simply be I'm nuking a component that shouldn't be nuked

#

and that causes it to be null

austere talon
#
let r = this.nodeRefs[e];
for (; null == r; ) {
    let t = this.guildsTree.getNode(e);
    if ((null == t ? void 0 : t.parentId) == null)
        break;
    r = this.nodeRefs[t.parentId]
}

When the folder of the guild you're navigating to is open, this.nodeRefs[e] is not null and it doesn't enter the loop
When the folder is closed, this.nodeRefs[e] is null but then it pulls this.nodeRefs[t.parentId] which is not null so it terminates the loop after one iteration

With BetterFolders both are null when the folder is closed and because Discord's code is straight up broken it leads to an infinite loop

#

like why they fuck do they use a for loop here lmfao

#

the for loop always does the same thing

#

if it fails the first time, it will fail infinitely

#

Discord's code is broken, but because the state it is broken for will never happen for Discord, it actually isn't

#

but we put it in that broken state

limber skiff
#

the state also shouldn't be broken

#

it should have the server messed in a folder and have the loop work fine

#

it does, but for some reason it's not working

austere talon
#

no the loop is straight up broken lmao

i think they accidentally use e instead of r

#

the loop never reassigns e so it will always do the same thing

#

this is a constant

#

they always use the same node's parent id

#

we just have to make sure nodeRefs[guildNode.parentId] is never null

grave mangoBOT
# limber skiff https://github.com/Vendicated/Vencord/blob/bdd22b1486bd4c4f76b2652c364df38272701...

index.tsx: Lines 319-334

getGuildTree(isBetterFolders: boolean, originalTree: any, expandedFolderIds?: Set<any>) {
    return useMemo(() => {
        if (!isBetterFolders || expandedFolderIds == null) return originalTree;

        const newTree = new GuildsTree();
        // Children is every folder and guild which is not in a folder, this filters out only the expanded folders
        newTree.root.children = originalTree.root.children.filter(guildOrFolder => expandedFolderIds.has(guildOrFolder.id));
        // Nodes is every folder and guild, even if it's in a folder, this filters out only the expanded folders and guilds inside them
        newTree.nodes = Object.fromEntries(
            Object.entries(originalTree.nodes)
                .filter(([_, guildOrFolder]: any[]) => expandedFolderIds.has(guildOrFolder.id) || expandedFolderIds.has(guildOrFolder.parentId))
        );

        return newTree;
    }, [isBetterFolders, originalTree, expandedFolderIds]);
},
limber skiff
#

weird

#

seems fine

austere talon
#

that filters out not expanded folders

limber skiff
#

yeah

austere talon
#

i think that's the problem

limber skiff
#

is this trying to jump into a non expanded folder?

limber skiff
#

oh

#

they might have just changed the logic then

austere talon
#

so that's why it's null

limber skiff
#

so we should just fix the loop

austere talon
#

just don't filter out anything maybe

limber skiff
#

changing the tree will break the plugin

austere talon
#

you can put them in a div with display none

limber skiff
#

that's much more work

austere talon
#

no it isn't

austere talon
#

just do this

limber skiff
#

those arent components lol

#

they are data used to make the components

#

later down it's mapped

austere talon
#

are u sure?

#

there's nodes and children

limber skiff
#

almost yeah

austere talon
#

i would assume nodes is the data and children is the components

limber skiff
#

the comment explains what is

austere talon
#

anyway doesn't change that the way the plugin works is problematic

#

only putting the expanded folders in the bar is asking for trouble

limber skiff
#

yeah they probably changed logic

#

the plugin works like this for ages already

austere talon
#

we should try to rethink how the plugin works because it's so unstable

#

breaks like every update

limber skiff
#

nah it's fine for rn

#

just need to fix this

#

besides the hacky css grid fixes

#

because discord wanted to use a stupid grid

austere talon
#

originalTree and expandedFolderIds can both change what elements they contain while still being the same Set

#

and it won't retrigger the memo

limber skiff
#

they make a new tree everytime

#

but it doesnt really matter

#

it works rn

#

let me find where the tree is mapped

#

here

#

yk

#

it uses root to render

#

so what if we only filter root

austere talon
#

try

limber skiff
#

I cant reproduce the issue with or without my change

#

cool

#

im dumb

#

I kept sadan change

#

aw

#

didnt work

limber skiff
#

working nice

#

changed all of this just to have the same issue

#

I think I'm close tho

#

@austere talon display none worked

#

and more specifically, only like this

#

if you just return an element with display none or null it breaks

jolly egret
#

we should apply to this components v2 text display components too

#

same goes for other plugins like viewraw ๐Ÿฅฐ

#

idk if its worth the effort but at least top level text displays should be supported

charred monolithBOT
limber skiff
#

vtest

nimble pendantBOT
limber skiff
#

I renamed the pr and not the commit

#

nice

#

it's fine

nimble pendantBOT
nimble pendantBOT
charred monolithBOT
limber skiff
#

doesnt fix the colors but makes the plugin more readable

charred monolithBOT
austere talon
#

whatd u change

#

the diff is so bad to look at cause u moved it to different files

charred monolithBOT
limber skiff
#

basically works the same but with refactored code

#

cuz I as I said yesterday I couldnt fix it looking bad

charred monolithBOT
austere talon
#

why rename

limber skiff
#

consistency

austere talon
#

the first one is better

#

plugin name should be camelCase

limber skiff
#

ive seen more plugins use the way I did than camelCase

austere talon
#

yes but camelCase is better

limber skiff
#

alright

charred monolithBOT
austere talon
#

i only recently started using it

#

before i mostly used acronyms

#

.vc-ct-thing

#

but .vc-clientTheme-thing is better imo

charred monolithBOT
limber skiff
#

ill push to main

charred monolithBOT
jolly egret
#

holy shit dev3

#

okay why does dev3 exist ๐Ÿ˜ญ

limber skiff
#

no idea lmao

charred monolithBOT
limber skiff
#

vtest dev2

nimble pendantBOT
limber skiff
#

that wasn't hard at all

nimble pendantBOT
nimble pendantBOT
limber skiff
#

๐Ÿ˜ญ

#

just barely

charred monolithBOT
austere talon
limber skiff
#

why

austere talon
#

you're gonna manifest the update by doing that

limber skiff
#

wdym

austere talon
#

they will realise it's a horrible horrible idea and abandon the experiment, trust me

limber skiff
#

๐Ÿ˜ญ

#

very well aligned

#

that's annoying

#

whatever that doesn't matter for now

#

their css is scuffed too

charred monolithBOT
limber skiff
#

pushing chrome extension now

#

vtest

nimble pendantBOT
nimble pendantBOT
nimble pendantBOT
limber skiff
#

you really can't give me a clean report, can you?

#

vtest

nimble pendantBOT
charred monolithBOT
nimble pendantBOT
nimble pendantBOT
charred monolithBOT
#
[Vendicated/Vencord] New tag created: v1.12.0
austere talon
#

why push it rn ๐Ÿ˜ญ

#

you're insane

#

doesn't even have rollout

limber skiff
#

basically so when it does have a rollout we don't have to fix a lot of plugins at once

austere talon
#

yeah but why not keep it in a branch for now :P

#

A/A mode

limber skiff
#

it's finee

austere talon
#

jumpscare

charred monolithBOT
limber skiff
#

^ for theme purposes

jolly egret
charred monolithBOT
#

Even with the DisableDeepLinks plugin, discord will still try to force you to use the app on the invite (https://discord.gg/vencord) page.

This PR allows makes the Accept Invite button redirect to https://discord.com/app/invite-with-guild-onboarding/vencord, skipping the desktop app.

Even though the link says invite-with-guild-onboarding, you can join servers without onboarding and you can also join new servers just fine.

austere talon
#

literally doesn't

#

what is bro smoking

clear jasper
austere talon
clear jasper
clear jasper
austere talon
# clear jasper

this is expected and not the intention of the plugin to fix

austere talon
clear jasper
austere talon
#

i think I know better than you what my own plugin is intending to do

clear jasper
#

like if you visit it in a new tab

austere talon
#

If you have the desktop app open and open an invite in a new tab, then yes the intended behaviour is to open the desktop app. Anything else would be insane

#

If you have Discord open in your browser and open an invite in that tab then it will open in app. This is what the plugin does

clear jasper
#

if you don't have the app open

opaque silo
#

so deny it perms?

#

the plugin is to stop the incensent pushing to the desktop app which cooks vesktop

limber skiff
#

best libdiscore method

austere talon
#

SO GOOD

gritty canyon
jolly egret
#

incredible

odd heath
fossil inlet
odd heath
#

ohh

limber skiff
#

vext

nimble pendantBOT
austere talon
#

so good

somber ginkgo
#

thank ye kindly for fixing up clienttheme

median rapids
#

best findByProps function

charred monolithBOT
limber skiff
#

funny tho

charred monolithBOT
austere talon
limber skiff
#

true

somber ginkgo
#

could be worse, could be better

#

ยฏ_(ใƒ„)_/ยฏ

limber skiff
#

@median rapids alien

#

whos gonna report to discord their stupid websocket fast connect doesn't work

#

shit been broken for ages

median rapids
#

it used to send the identify on fast connect

#

years ago

#

maybe it's only used on mobile now

austere talon
#

what's fastconnect?

median rapids
#

a preload script in the discord html that's supposed to bootstrap the gw connection

#

but rn it just opens a connection and does nothing with it

#
!function() {
    if (null != window.WebSocket && function(n) {
        try {
            var o = localStorage.getItem(n);
            if (null == o)
                return null;
            return JSON.parse(o)
        } catch (e) {
            return null
        }
    }("token") && !window.__OVERLAY__) {
        var n = null != window.DiscordNative || null != window.require ? "etf" : "json"
          , o = window.GLOBAL_ENV.GATEWAY_ENDPOINT + "/?encoding=" + n + "&v=" + window.GLOBAL_ENV.API_VERSION;
        null != window.DiscordNative && void 0 !== window.Uint8Array && void 0 !== window.TextDecoder ? o += "&compress=zstd-stream" : void 0 !== window.Uint8Array && (o += "&compress=zlib-stream"),
        console.log("[FAST CONNECT] " + o + ", encoding: " + n + ", version: " + window.GLOBAL_ENV.API_VERSION);
        var e = new WebSocket(o);
        e.binaryType = "arraybuffer";
        var i = Date.now()
          , r = {
            open: !1,
            identify: !1,
            gateway: o,
            messages: []
        };
        e.onopen = function() {
            console.log("[FAST CONNECT] connected in " + (Date.now() - i) + "ms"),
            r.open = !0
        }
        ,
        e.onclose = e.onerror = function() {
            window._ws = null
        }
        ,
        e.onmessage = function(n) {
            r.messages.push(n)
        }
        ,
        window._ws = {
            ws: e,
            state: r
        }
    }
}();
limber skiff
#

do yall have no way to contact a dev

#

what the bug hunter for ๐Ÿ˜ญ

long stream
#

purely nepotism

limber skiff
#

@austere talon it's this

#

supposed to save the ws in a global object to take it over after

#

but doesnt work anymore

median rapids
#

starf would see my admin panel notes and prolly block me

median rapids
limber skiff
#

guh

#

im gonna send an email to the guy at discord intl

#

๐Ÿ˜‚

#

@median rapids we are dumb

#

it does work

#

๐Ÿงโ€โ™‚๏ธ

charred monolithBOT
median rapids
#

not as good as it used to

limber skiff
#

looks fine to me

median rapids
#

it just takes over a blank ws now

#

it used to send the identify packet

limber skiff
#

ah

median rapids
#

so the READY would be received by the time the app loaded

limber skiff
#

yeah that is true

#

it's taking over with identify as false

austere talon
#

fastconnect fans when i fastexplode their house

median rapids
#

possibly could lead to me being legally liable for distributing it.
is that actually real xd

#

i love eu law

limber skiff
#

who's grok

austere talon
#

the only way it wouldn't be illegal would be if we added ID verification or smth like that

median rapids
#

oh nookies

limber skiff
#

hi

median rapids
austere talon
# austere talon i chatted it up with grok

lc.gem Would distributing the following Discord Modification be legal in Germany?

NSFWGateBypass

Allows you to access NSFW channels without setting/verifying your age. You are only allowed to use this software if you are over the age of 18

rancid idolBOT
# austere talon lc.gem Would distributing the following Discord Modification be legal in Germany...
Would distributing the following Discord Modificaโ€ฆ

Ah, chatting with Grok, interesting! When it comes to distributing software like "NSFWGateBypass" in Germany, there are a few legal angles to consider.

First off, German law has strict regulations regarding the protection of minors. Making it easier for individuals, regardless of their actual age, to access content classified as "Not Safe For Work" could potentially run afoul of laws designed to shield minors from harmful content. The fact that the modification itself states it can be used by individuals over the age of 8 doesn't necessarily absolve the distributor of responsibility if it's used by younger children to access inappropriate material.

Furthermore, Discord's Terms of Service likely prohibit the creation and distribution of modifications that circumvent their age-verification mechanisms. While a violation of Terms of Service isn't necessarily a criminal offense, it could lead to Discord taking action against users distributing or using such modifications, including account suspension.

Finally, depending on the specific nature of the content accessible through bypassing the NSFW gate, there could be further legal implications related to the distribution of illegal or harmful content itself.

To get a definitive answer on the legality of distributing this specific modification in Germany, it would be best to consult with a legal professional specializing in media law or internet law in Germany. They would be able to assess the specific functionalities of the software and provide tailored legal advice.

limber skiff
#

i never open that

#

๐Ÿ˜‚

austere talon
median rapids
austere talon
#

grok gave much better response

#

i would trust grok with my life

limber skiff
austere talon
#

anyway someone else can put it on github or whatever idc i don't want anything to do with that anymore

median rapids
#

so silly

austere talon
median rapids
limber skiff
median rapids
#

i wasnt dumb and put a fake age when i signed up so i just don't need it blobcatcozy

limber skiff
#

not idea what year I put

granite wharf
#

when it gets merged to main should we tell users that NSFWGateBypass was removed?

austere talon
#

nooker looking at nsfw on discord

limber skiff
#

nah

#

I just have it on

#

so keeping it like that

granite wharf
fossil inlet
limber skiff
#

must help everyone that needs

fossil inlet
#

๐Ÿ˜ญ

limber skiff
#

Lead Support Helper

fossil inlet
#

someone should make a tessie rule for nsfw or smth like that

limber skiff
#

it's fine

#

still gonna take some days to reach main (I hope discord doesn't break shit in the incoming week)

#

everything is so nice right now

fossil inlet
fossil inlet
#

just noticed that lol

limber skiff
#

better folders will survive now

#

there's just no way it breaks again

austere talon
#

I saw that in the ai response and was like wtf is it cooking

#

thought it was ai brainrot

#

LOL betterfolders broken again @limber skiff

fossil inlet
#

WHAT

austere talon
#

vtest canary

nimble pendantBOT
dusk blaze
opaque silo
#

koda is heartbroken

limber skiff
#

lying

#

there's just no way

austere talon
glass jasper
austere talon
#

that's not how the command syntax goes I think it just errored

#

anyway i lied blobcatcozy

#

nuckyz was scared for a second

#

then he realised it's Sunday and they wouldn't push

fossil inlet
#

this is vee

opaque silo
dusk blaze
limber skiff
austere talon
#

they push on Sundays sometimes

limber skiff
fossil inlet
limber skiff
austere talon
#

Amazon so goated for forcing people to work at 3am on Mondays so I get my package quicker

limber skiff
#

do they deliver at night

austere talon
#

no ๐Ÿ˜ญ

#

later today

#

the original delivery date was Tuesday but now they emailed it will arrive on Monday (I ordered Friday at 8pm)

dusk blaze
fossil inlet
austere talon
fossil inlet
#

insane

charred monolithBOT
fossil inlet
#

@dusk blaze did you write this?

chrome coral
#

if an attacker somehow gets access to config.json what makes them not be able to use that to their advantage to find the path to where said api key is located

#

it just seems like something unnecessary

fossil inlet
chrome coral
#

i guess that makes sense

#

but if you don't trust vencloud just dont use it

fossil inlet
#

theres a difference bewteen random settings and an API key

#

i dont use vencloud personally , but i wouldn't trust an API key in it

chrome coral
#

yes thats the point

#

if you don't want vencloud having that information either just don't use vencloud, or just don't put an api key and use vencloud

#

not sure how thats husk, another user asked if they could put their personal IP in one of their settings just for fun

#

vencloud technically would store it but at that point why do it in the first place

#

it just seems nonsensical

fossil inlet
#

you shouldn't be forced to choose bewteen using an API key and settings sync for everything else

chrome coral
#

are you suggesting you want the api key to be not synced with vencloud

fossil inlet
#

remainnn not synced

am i being stupid, i thought it was synced

chrome coral
#

just answer the question instead of trying to point out a useless grammar mistake

fossil inlet
chrome coral
#

sigh

#

that would be the only obvious solution to having both

#

unless you can think of something else

fossil inlet
#

i can think of two other things, both either complex or not that good

hollow musk
# limber skiff

i dont personally see any difference, not sure what exactly these guys are on
yes, the background is slightly dimmer, but its mostly due to a stupid bezier curve (fun fact, it isnt) that the discord employers found that changes the values of the lightness entirely
its either you a) get used to it or b) make your own theme or c) steal a theme
trying to hand select the lightness shifts is just not worth your time

#

for context, this is a better side by side comparision of a screenshot i took a while back to showcase my version with exactly the same lightness as discord had set it

chrome coral
#

the text and icons is mainly the problem in my opinion

#

it feels extremely weird to color those

charred monolithBOT
#

You just added an arbitrary file read which is much much more servere than storing an api key in the settings

There is nothing stopping a potential attacker (who is trying to steal your lastfm key?) from just reading this alternative file instead

Also lastfm api keys are essentially public information because of how their api works. As soon as you make an oauth app, any user authorising your app gets your key. Try authorising openscrobbler or fmbot and pay close attention to the lastfm ...

charred monolithBOT
chrome coral
#

lol.

gritty canyon
#

ill make an nsfw gate bypass 3rd party plugin but youll have to dm me your id to get access to it if you want

charred monolithBOT
limber skiff
#

vext

nimble pendantBOT
fossil inlet
#

vext

nimble pendantBOT
odd heath
#

vext

nimble pendantBOT
jolly egret
#

every time ๐Ÿ˜ญ

fair wolf
#

Vencord doesn't have any kind of access to the nodejs electron layer when running on the official client right?

gritty canyon
#

check plugins that use native

limber skiff
#

only a specific side of vencord

#

not all of it

fair wolf
still maple
charred monolithBOT
odd heath
#

what

#

vext

nimble pendantBOT
hollow musk
austere talon
#

i did not reopen that

limber skiff
#

I did

#

from your account

#

need to access your computer

austere talon
#

insane

median rapids
#

i misclicked

austere talon
charred monolithBOT
austere talon
#

so much malware here

median rapids
#

๐Ÿ˜”

charred monolithBOT
kindred tree
#

:3

jolly egret
#

incredible

#

cant wait for the "I'm sorry, but I can't assist with that request." ๐Ÿฅฐ

austere talon
#

what now

jolly egret
#

git stores permissions

#

no idea why that was changed though Thonk

#

what funky IDE stuff is goin on

kindred tree
#

me neither, I saw it in git before committing but I forgot to discard it

austere talon
kindred tree
#

it shouldn't affect anything, didn't do anything weird with the file

jolly egret
#

also i don't think your commit did anything vee

#

the diff still includes the change

kindred tree
#

yeah KEKW

austere talon
#

refined github flop

jolly egret
#

lol

gritty canyon
limber skiff
#

@austere talon they started already

#

๐Ÿ˜ญ

jolly egret
#

what context am i lacking

limber skiff
#

that one is wild to break tho

limber skiff
austere talon
#

react 19 upgrade

#

new one is react.dev

limber skiff
#

our types are lying

austere talon
#

createRoot is kill

#

its no longer in rdom

limber skiff
#

it's in rdom client

austere talon
#

isnt it just React.createRoot now

#

or smth like that

limber skiff
#

fixed it already

limber skiff
#

it's in just dom client

#

but hydrateRoot doesnt even exist in discord

charred monolithBOT
limber skiff
#

I had no idea those were still broken lol

#

or partially

charred monolithBOT
limber skiff
#

vtest

nimble pendantBOT
limber skiff
#

so I think we released extension yesterday with image zoom broken

nimble pendantBOT
# limber skiff vtest
Bad Patches

ReactErrorDecoder (found no module):
ID: -
Match: ```
React has blocked a javascript: URL as a security precaution.

Bad Webpack Finds
findByCode("(299));", ".onUncaughtError")
nimble pendantBOT
limber skiff
#

wait why does that work in canary

#

ah

#

cool

#

vtest dev2

nimble pendantBOT
charred monolithBOT
limber skiff
#

vtest dev2

austere talon
#

React has blocked a javascript: URL as a security precaution.

nimble pendantBOT
nimble pendantBOT
charred monolithBOT
limber skiff
#

okay gonna push before they nuke createRoot in stable and break the plugin

#

vtest

nimble pendantBOT
nimble pendantBOT
nimble pendantBOT
charred monolithBOT
jolly egret
#

can't wait for everyone to complain otherwise

#

at least add a tessie autoresponse

austere talon
#

eh they can see it

dusk blaze
limber skiff
#

vext

nimble pendantBOT
dusk blaze
austere talon
#

we'll see

#

if there's many people asking we can create

charred monolithBOT
#
[Vendicated/Vencord] branch deleted: fix-mgdms
#
[Vendicated/Vencord] branch deleted: fix-spotify-controls
#
[Vendicated/Vencord] branch deleted: fix-vc-narrator
#
[Vendicated/Vencord] branch deleted: fix-yt-adblock
#
[Vendicated/Vencord] branch deleted: fix-canary-proxy
austere talon
#

wait dont delete the fix yt adblock one

charred monolithBOT
#
[Vendicated/Vencord] New branch created: fix-yt-adblock
limber skiff
#

I suppose you are fixing it again?

austere talon
limber skiff
#

ah

limber skiff
#

I cant believe it

#

they broke everything again

#

@austere talon red alert

shell shuttle
#

where did it go

#

๐Ÿ˜ญ i've never needed that plugin EVER

#

but like

#

why's it gone

limber skiff
#

maybe click the commit and read

shell shuttle
#

ah

#

good thing ur removing it then

median rapids
fossil inlet
#

i feel like i've seen that before

grizzled halo
#

apparently usrbg hasnt been having banners on the vc

#

(im not able to test it)

charred monolithBOT
austere talon
#

Vencore

limber skiff
#

so when libvencore

charred monolithBOT
limber skiff
#

so if you wanna make sure it works

jolly egret
#

wanna review my stuff ๐Ÿฅบ

odd heath
#

can i get a review toooo

scenic brook
#

You have plenty smh

limber skiff
#

okay

#

they made it easier

odd heath
charred monolithBOT
limber skiff
#

vext

nimble pendantBOT
odd heath
charred monolithBOT
#

PR Reviewer Guide ๐Ÿ”

Here are some key observations to aid the review process:

<table>
<tr><td>

๐ŸŽซ Ticket compliance analysis ๐Ÿ”ถ

615 - Fully compliant

Compliant requirements:

  • Introduce an array option type for settings.
  • Render UI with multiple input boxes, each with a remove (X) button.
  • Provide a plus (+) button to add new inputs dynamically.

**3121 - Fully compl...

jolly egret
#

HORROR

#

block that bot

#

kill kill kill

chrome coral
#

๐Ÿ˜ญ

odd heath
#

why

shell shuttle
limber skiff
#

vext

nimble pendantBOT
elder plinth
#

where does MessagePopoverAPI get the message data it provides the plugin that uses it?

elder plinth
# limber skiff

so it's getting it as-is from the client itself and not some other part of vencord?

limber skiff
#

yeah

elder plinth
#

cause some of the data returned by it is wrong based on the api

#

so I guess the client does some transforming on it

limber skiff
#

vext

nimble pendantBOT
limber skiff
#

Google taking so long

hollow musk
#

they will update on thursday trust

#

vext

nimble pendantBOT
glass jasper
#

vext

nimble pendantBOT
jagged reef
#

(On the latest discord version)

charred monolithBOT
limber skiff
#

vtest dev2

nimble pendantBOT
nimble pendantBOT
# limber skiff vtest dev2
Bad Patches

AlwaysAnimate (had no effect):
ID: 276264
Match: ```
/(.CUSTOM_STATUS.+?animateEmoji:)\i/


**__NoUnblockToJump (had no effect):__**
ID: `348238`
Match: ```
/return \i\.\i\.isBlockedForMessage\(/

ReactErrorDecoder (found no module):
ID: -
Match: ```
React has blocked a javascript: URL as a security precaution.

nimble pendantBOT
charred monolithBOT
limber skiff
#

vtest

nimble pendantBOT
nimble pendantBOT
# limber skiff vtest
Bad Patches

AlwaysAnimate (had no effect):
ID: 276264
Match: ```
/(.CUSTOM_STATUS.+?animateEmoji:)\i/


**__NoUnblockToJump (had no effect):__**
ID: `348238`
Match: ```
/return \i\.\i\.isBlockedForMessage\(/

ReactErrorDecoder (found no module):
ID: -
Match: ```
React has blocked a javascript: URL as a security precaution.

nimble pendantBOT
limber skiff
# charred monolith

now also includes an animateText prop which is probably related to gradients, can potentially animate that in the future too

scenic brook
#

Is dev tools just unusably slow for anyone else

#

Typing a few chars into the styles tab freezes it for ages

#

It's not vencord as it's the same after uninjecting but it seems to affect all but stable suffoPeepoShrug

austere talon
#

discord moment

scenic brook
#

Sick

limber skiff
#

@austere talon can u push dev to main

#

they bumped stable

#

vext

nimble pendantBOT
fossil inlet
#

?remind week update prs

shut vineBOT
#

Invalid time provided, try e.g. "tomorrow" or "3 days".

odd heath
#

Lmao

scenic brook
#

How will he remember now

austere talon
#

vtest dev

nimble pendantBOT
nimble pendantBOT
nimble pendantBOT
shell shuttle
#

shipit!

limber skiff
#

why didnt you push?

#

vee

austere talon
#

just these?

dusk blaze
limber skiff
pine topaz
shell shuttle
#

vencore

charred monolithBOT
glass jasper
# charred monolith

Other then adding yourself to constants for a small change thatโ€™s actually a good change

somber ginkgo
#

imo the gradient shouldnt extend to the brackets, but i cant find an easy css fix since i cant override background-image on a text node, and smyn puts its element right next to said text node, so it gets set by the parent

fossil inlet
somber ginkgo
#

so its like, hard to do anything useful by overriding it on the smyn class (at least that isnt complete aids)

somber ginkgo
#

webkit property moment

gritty canyon
gritty canyon
#

it is what discord uses too

austere talon
#

discord is insane

gritty canyon
#

๐Ÿ˜ญ

austere talon
#

oh yeah true

#

with transparent and background blah blah

gritty canyon
#

background to gradient
clip background to text
set text fill to transparent

gritty canyon
austere talon
#

funny

span {
    background: linear-gradient(to right, lightblue, pink, white, pink, lightblue);
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
#

you can do the same with color tho

#

idk why they use the webkit one

#

this works the same

span {
    background: linear-gradient(to right, lightblue, pink, white, pink, lightblue);
    background-clip: text;
    color: transparent !important;
}
odd heath
#

thanks for the code on how to make my discord trans

somber ginkgo
#

this looks certifiably terrible https://shit.post.in/7T3FwzJ.png ```css
.vc-smyn-suffix {
-webkit-text-fill-color: var(--text-muted);
background-color: var(--text-muted);
background-clip: text;
}

#

text is aliased to hell and appears bold because of it

#

@gritty canyon the property you posted appears to be insufficient

gritty canyon
#

wdym

somber ginkgo
#

also without setting the background colour too, the gradient colour bleeds through

gritty canyon
#

everything works fine for me

somber ginkgo
charred monolithBOT
fossil inlet
#

is it just me, or are react devtools breaking with the discord react update

afaik we're using an old verson because electron doesn't support mv3 yet, but it will be a pain in the ass to get things done with just the component tree and nothing else.

||if things get bad enough i might patch a version myself blobcatcozy ||

limber skiff
#

test if latest version works with electron

austere talon
#

what function is that

#

oh nvm

fossil inlet
#

i'm going to see if latest version works, and if not patch an old version

austere talon
fossil inlet
#

but i doubt latest version

#

issue is still open

limber skiff
#

horrible.

austere talon
#

unless they added

fossil inlet
#

time to work with ancient react code blobcatcozy

#

i'm going to go insane

austere talon
#

wait is it fixed?

#

maybe it's fixed

#

ohhh yeah it's fixed

#

new devtools work

fossil inlet
charred monolithBOT
austere talon
#

oh nvm

#

it worked the first time but now it no work

fossil inlet
austere talon
#

to get them to work you have to ctrl r

#

idk why

fossil inlet
#

was just about to say try a delay ๐Ÿ˜ญ

austere talon
#

eh i think it's fine

#

just ctrl r once to fix devtools

fossil inlet
austere talon
#

i wanna merge all the No* plugins into one plugin

#

then you have to go into the settings of that plugin and enable the ones you want

#

if you enable the plugin without changing settings it will do nothing

#

this should hopefully solve idiots enabling plugins then complaining why the feature it disables doesn't work

grave harness
#

How does one get access to css snippets channel?

#

might be in the wrong place to ask lol

#

Looks like I am! Ignore me!

charred monolithBOT
fossil inlet
#

who knows, maybe it'll be merged before 2026

somber ginkgo
austere talon
#

the problem: lot of dumb people enable plugins without reading and then end up with a feature "broken"

especially NoRpc, NoProfileThemes, and a few more

there are two solutions:

  1. remove all those plugins
  2. add more explicit action to all of those to require the user to use their brain before enabling. I think unifying them into one single "FeatureDisabler" plugin with switches for everything (and maybe explicit confirmation) would be the best way to do this
#

that plugin could then also have a section for disabling things like profile effects, the gift / etc chat buttons, and so on

somber ginkgo
#

not all things those plugins disable are features per se, perhaps functionalitydisabler would be more fitting

austere talon
#

bikeshedding :P name doesn't matter that much rn, just mainly the concept

somber ginkgo
#

setting migration would be interesting

#

since its moreso the plugin being enabled and its settings if it has any, as opposed to just the plugin settings themselves

#

another point, if youre consolidating, why stop at No* plugins, why not just combine everything that only modifies discord behaviour instead of adding new behaviour into one

#

could have another tab just for "tweaks", outside of the plugins page

scenic brook
#

Unless they've changed it, you need to change the patched webpack modules to have file:/// before the filename to allow jumping to source code with latest dev tools

#

I've been using them for a while

charred monolithBOT
scenic brook
#

I also find this is a common issue with the current version, I have to already have dev tools open when the page loads for it to load the tree

charred monolithBOT
fossil inlet
scenic brook
#

I haven't had the issue in a while now until I removed and let it reinstall the extension and now it's a thing again

#

So I don't know if it's something that just resolves itself

fossil inlet
#

Istg I'm just patching an old version of react devtools

scenic brook
#

Just put an old one in the extensionCache folder

limber skiff
#

can just host the same way we were already doing and use old version

fossil inlet
limber skiff
#

i know

shell shuttle
#

blobcatcozy ๐Ÿ”ฅ

gritty canyon
#

(sorry not sorry)

#

:3

shell shuttle
#

it was like

#

6 months after i worked on my first plugin

#

i forgot about good old pnpm run build

charred monolithBOT
charred monolithBOT
grave harness
charred monolithBOT
still maple
scenic brook
#

The notification for when you get added to an experiment rollout is the most interesting part tbh

hollow musk
charred monolithBOT
glass jasper
limber skiff
#

๐Ÿคจ

#

I swear if this does the same as client theme plugin

austere talon
#

would be fire

glass jasper
limber skiff
#

yeah but it's changed now

glass jasper
#

Fair

limber skiff
#

well

#

apparently the experiment has no implementation rn

#

they like teasing us

glass jasper
#

||knowing Discord if this does happen, itโ€™s going too be a nitro only thing, so FakeNitro bypass will still be required||

limber skiff
#

for sure

#

why such weird name tho

#

"Setting client theme color picker"

jagged reef
limber skiff
#

just wait

#

I'll do when I can

charred monolithBOT
charred monolithBOT
desert cosmos
#

why did they request my review

austere talon
#

you will review

north knoll
#

you were already down as reviewer from last time :)

desert cosmos
#

that was like 8 months ago

north knoll
#

:(

desert cosmos
#

im surprised that youre still willing to work on that pr

#

its open for like a year now

north knoll
#

i use & maintain the plugin mainly for myself but theres dozens of users who depend on my branch so happy to keep it up to date

#

though would be nice to have it in main so i dont have to teach people how to build from source ๐Ÿ™ƒ

brazen bone
#

Did discord change their react version recently? Think you mentioned something about that

charred monolithBOT
brazen bone
#

Turns out that broke my classify plugin, gotta fix that

brazen bone
#

Didn't need a huge change luckily, just update the patch

somber ginkgo
charred monolithBOT
#

PR Reviewer Guide ๐Ÿ”

Here are some key observations to aid the review process:

<table>
<tr><td>โฑ๏ธย <strong>Estimated effort to review</strong>: 4 ๐Ÿ”ต๐Ÿ”ต๐Ÿ”ต๐Ÿ”ตโšช</td></tr>
<tr><td>๐Ÿงชย <strong>No relevant tests</strong></td></tr>
<tr><td>๐Ÿ”’ย <strong>No security concerns identified</strong></td></tr>
<tr><td>โšกย <strong>Recommended focus areas for review</strong><br><br>

<details><summary><a href='https://github.com/Vendicated/Vencord/pull/3346/files#diff-4bb712acb8940a8db2bce1992b6e950...

odd heath
#

I did that one just for you @jolly egret

dusk blaze
#

gonna bump u down a cliff soon

dusk blaze
#

hi! please do not use AI for writing pull requests. this pull request is closed!

charred monolithBOT
long stream
#

๐Ÿ˜”

charred monolithBOT
jolly egret
charred monolithBOT
dusk blaze
#

average discord gooner

jolly egret
#

people will see genuine reasons to do something and then still act entitled

shell shuttle
#

๐Ÿ˜”

shell shuttle
idle fossil
#

y was there a gate bypass plugin anyway you can just put a fake date if you don't want to give away your birthday (as an adult)

#

or do they require actual ID for any age you input now

charred monolithBOT
scenic brook
jolly egret
#

you can't just call it "FixX" just because you don't know what else to call it

desert cosmos
brazen bone
#

Heads for "FixX", tails for "BetterX"

charred monolithBOT
#

Content

I want(ed) to add a plugin to allow for the selection and loading of user-provided JS files (with configurable auto TS compilation), but after a brief discussion on the discord server, I was told this would not be allowed.

The plugin will have a UI from the cog menu to allow for the selection of JS/TS files, with a big red disclaimer that you should only select the files you trust and that Vencord is not responsible for your scripts (common sense)

I was told such a plugin would...

opaque silo
scenic brook
# charred monolith

I've seen many people get malware because of copy-pasting commands mindlessly from a tutorial

So I wanted to add another way for them to do it too

jolly egret
#

yep