#๐Ÿ‘พ-core-development

1 messages ยท Page 242 of 1

jolly egret
#

they are LITERALLY closing it and reopening it every commit

charred monolithBOT
charred monolithBOT
odd heath
#

guzh i wanna make that

austere talon
#

i am making it

#

discord loves having the same string 3 times

brazen bone
#

Maybe they're different in some languages

fossil inlet
jolly egret
#

incredible

brazen bone
#

But probably not

odd heath
#

stealing my free contrib

#

review my pr instead /j

scenic brook
#

not /j

odd heath
odd heath
#

yop

#

soon

#

when im in stuttgart again

left sequoia
#

i want webPWA first

fossil inlet
odd heath
#

i literally just stole it from discord trolley

rugged spire
#

I give you the right to steal my code that does this for the stock icons under the condition that you don't get mad that Discord breaks patches by adding a single character

#

TRUE STORY BTW

austere talon
rugged spire
odd heath
odd heath
rugged spire
#

discord is actually in the process of nuking said button anyway

rugged spire
fossil inlet
left sequoia
#

web as for vencord web

#

because you could be assine and call it desktopPWA

odd heath
left sequoia
#

which in theory is possible, but utterly useless

rugged spire
rugged spire
left sequoia
#

its 3LOC

#

its a normal thing idfk

rugged spire
left sequoia
#

idk why going off topic

#

just pwa for vencord plz ;-;

rugged spire
#

The functionality seems cursed until you realize that it's actually a reasonable feature

left sequoia
#

its reasonable because you dont duplicate chrome processes, instead re-use your already running browser, other than that you get most of the desktop features, a dedicated shortcut, auto-start on boot, global keybinds, notfications etc

odd heath
#

settings array better tho

rugged spire
charred monolithBOT
rugged spire
austere talon
#

what if plugin that just moves these buttons into one single button

#

that when hovered opens a tooltip

#

with the buttons

austere talon
#

thats kinda mid

rugged spire
#

yop

austere talon
#

tooltip like this

#

with the buttons there

rugged spire
left sequoia
rugged spire
#

^^^^^^^

austere talon
#

ui refresh will literally come out in 4 years

rugged spire
#

i was just about to say it would go to waste due to that

left sequoia
rugged spire
left sequoia
#

see, why waste effort on something that will change, when we can have PWAs instead

rugged spire
left sequoia
#

padding is gut doe

left sequoia
#

u have no idea

rugged spire
#

shrimply make a huge pr and find out a month after you made it that the whole thing has a major bug

rugged spire
#

they are literally adding padding to stuff in visual refresh without making the container bigger so the items end up being smaller (server list)

left sequoia
rugged spire
rugged spire
left sequoia
#

exactly

#

XD

#

this quite literaly just competes with vesktop

#

tho from my understanding it will fall short in the "media handling on linux" part, since chromium still doesnt to it well?

rugged spire
left sequoia
#

but for the pentium with 4gb of ram users this goes hard for reducing resource usage

rugged spire
left sequoia
#

yeah in my case its a "dont give a fuck, let ur chromium browser of choice handle it"

rugged spire
#

its entirely an audio and gpu acceleration issue

left sequoia
#

but problem is, screensharing is hardcoded to 720p30fps

rugged spire
#

one of those is a vesktop issue that nobody really complains about and the real issue is a chromium moment

left sequoia
#

i'll make a plugin to fix it on web, but only once webpwa is actually merged

#

since its a big undertaking, and there's 0 reason to do it, if the base for it isnt merged anyways

left sequoia
#

idk how else to define types for this

rugged spire
#

is this a typescript not having support for standard web apis moment

left sequoia
#

well

#

"standard" is a stretch

#

this entire plugin is for chrome only anyways

austere talon
#

ts doesnt type shit thats only in some browsers

left sequoia
#

^

left sequoia
grave mangoBOT
left sequoia
#

idk what ur practices for that are

rugged spire
#

My brain too eepy

left sequoia
#

yeah

#

i usually dont do ts ignore

#

instead add the type definitions

austere talon
#

gonna bump u down a cliff soon

left sequoia
fossil inlet
charred monolithBOT
jolly egret
#

tfw dms

desert cosmos
#

not for me

jolly egret
#

it doesn't work in dms because it uses the wrong input type

#

that fix is likely valid

#

though don't like them putting themselves as an author for that though

charred monolithBOT
jolly egret
#

oh my god shhh this isn't instant messaging

#

wait

jolly egret
#

the echo command from MoreCommands also uses the BOT type so that also can't be used in dms but i don't think thats a big deal lol

#

thats the only use left that haven't been changed

charred monolithBOT
jolly egret
#

Wonder why users make it so cryptic though and then get confused when the devs close their PRs

#

like at least say why its broken (or why you think that)

charred monolithBOT
shell shuttle
austere talon
odd heath
#

@austere talon i think you should make the reporter link to the workflow run if its too long for a message

#

maybe

#

if thats even possible

fossil inlet
jolly egret
#

not in my opinion

idle fossil
#

yeah sounds fine

#

idk how else you'd say it

#

i mean maybe "Could you be more specific next time?"

#

that's about the same level of passive-aggressiveness

fossil inlet
fossil inlet
limber skiff
#

someone tell discord to enable concatenate modules optimization

#

they have modules which just export a single string

fossil inlet
limber skiff
#

they already had it enabled in the past

fossil inlet
charred monolithBOT
jolly egret
#

incredible

charred monolithBOT
fossil inlet
#

i have used devtools in quickcss before for debugging csp issues

chilly parcel
left sequoia
#

cuz when its broken it flat out dont open

#

XD

granite wharf
#

had to screenshot some stuff related to quickcss devtools for vee

#

because it just broke all of a sudden for the chrome extension for some reason

austere talon
#

well

#

i didn't

#

it fixed itself

#

idk how or why

#

Like

#

I could reproduce the whitescreen

#

made some unrelated changes (updated esbuild from v15 (very old) to v24)

#

but with those changes it works again lol

#

maybe it was some esbuild bug or smth

austere talon
jolly egret
#

gotta love changing nothing and it fixing itself lmao

limber skiff
#

@austere talon what if we decrease the time considered slow for a patch if testing in stable

#

since it runs way less times (which means more unlikely it to have a slow patch that is false)

#

if a patch has constant 3+ ms that means it is slow, for example

#

and if we keep increasing the number we cant catch that

fossil inlet
#

its just raw text

limber skiff
#

nah its just the engine shitting itself

fossil inlet
#

wonder how long it takes if you just remove the lookbehind and add $&

limber skiff
#

nah thats not the issue

#

it's a one time time thing as I said

#

false positive

fossil inlet
#

love

median rapids
granite sky
#

Why...

#

Isn't it like bot api?

fossil inlet
#

?remind sunday not a terrible idea

shut vineBOT
#

Alright @fossil inlet, in 2 days: not a terrible idea

shell shuttle
#

i'm unfortunately not That One Person In Particular Who Knows Fucking Everything About The Inner Workings Of Discord Without Being An Intern And No I Am Not Saying They Should I Just Have An Avid Dislike For Them

scenic brook
#

Allows you to split gateway events across multiple connections

scenic brook
#

It's used when bots are in tons of servers

granite sky
scenic brook
#

Same

jolly egret
#

also kinda shady if you can do it at all it'll probably ban you

charred monolithBOT
scenic brook
#

Vesktop icon turned me gay ๐Ÿค˜๐Ÿ˜”

grizzled halo
odd heath
#

Ever since I started using vesktop I turned into a girl

scenic brook
#

I haven't used vesktop myself so I resisted somewhat but I've seen the icon and it was traumatising

still maple
#

๐Ÿคฃ i sadly now wear developer socks and use arch linux since i joined this discord e^i/10 rating for the icon

woeful bisonBOT
jolly egret
still maple
#

i'm sure nvidia would be happy to ear they have such people in their team

long stream
#

they have a bot that adds you to the org so you can access the source

#

i forgot why

still maple
#

ah ic likely with the CLA or smth

long stream
#

ye i think

left sequoia
#

i wish we got to see more

#

peak animation

median rapids
#

it works perfectly actually lol

jolly egret
#

why its like 200 servers max

#

thats 1/5 of the recommended sharding for bots

fossil inlet
#

uh oh, howd i screw up this badly blobcatcozy

limber skiff
#

what did you do lol

still maple
# jolly egret why its like 200 servers max

i've thinked about making some kind of weird modification to discord client to have multiple discord accounts active at once on a single instance to basically explode that limit
but every time i'm thinking this is way too hard for me to tackle, i'll just continue using the 4 available discord
for little context i'm in near 700* servers due to being active in many different kind of communities such as mc modding, other games, school stuff, etc
* 4 clients is fine-ish for now as i'm only really regulary active in like 350 of these

fossil inlet
#

nothing good trolley

fixed it, just a quick jumpscare blobcatcozy

fossil inlet
#

wall of text

still maple
still maple
# scenic brook You may have a problem

yes, at some point i was doing translations for a lot of stuff so i needed to stay in all the servers to get the pings and be able to contribute before the release
i could do some cleanup at this point since with my internship and my bachelor's thesis to finish uni, i don't have time to commit to stuff anymore

limber skiff
#

discord client is not designed to work like that

still maple
#

there is the option to build a client from the ground up with the unofficial user API docs, but you'd need to be mad to try that

jagged cloak
#

people have tried that time and time again

fossil inlet
still maple
jagged cloak
#

not many

#

go search github

#

discord client filter for repos ig

hexed cloak
#

Is there no version history e.g. tracking the old code and seeing everything they change whenever they push an update, and not just the strings?

#

Because I really do wish to be able to see what discord did to break my patch

scenic brook
#

Your best bet is catching it in between canary and stable so you can look at the before and after

fossil inlet
#

im working on something to do that on and off, so dont expect it any time in the future

hexed cloak
hexed cloak
#

I mean I could start archiving old versions

#

and then vscode diff files?

fossil inlet
#

your best bet is to locally cache a working build, then compare with what you see in devtools

opaque silo
#

isnt there a discord build archive

long stream
hexed cloak
fossil inlet
#

yea, but thats not formatted or split into modules iirc

long stream
#

also from their intl system

fossil inlet
#

best thing is just visually comparing with browser

hexed cloak
#

man

opaque silo
hexed cloak
#

ooo i know someone who is still on an older client version and i'll just ask them to give me the problem snippet

fossil inlet
hexed cloak
#

it says download installer

#

intersting

opaque silo
hexed cloak
#

what is a native archive

opaque silo
#

@torpid vessel still working on web archives ig

charred monolithBOT
#

Descriรงรฃo

Este plugin adiciona um botรฃo ร  interface do Discord para simular o estado de "mudo" e "surdo".

Como usar

  1. Ative o plugin nas configuraรงรตes do Vencord.
  2. Um botรฃo "๐Ÿคซ" aparecerรก no canto inferior direito da tela.
  3. Clique no botรฃo para ativar/desativar a funcionalidade.
  4. Use o botรฃo "โŒ" para desativar tudo e remover os botรตes.

Captura de Tela

![image](https://imgur.com/a/CCZ...

fossil inlet
#

archives on discords native modules

fossil inlet
hexed cloak
#

.

fossil inlet
hexed cloak
#

lmao

opaque silo
#

no way they pred fake deafen ๐Ÿ˜ญ

scenic brook
limber skiff
#

@hexed cloak search for this --custom-app-panels-height",

#

that's the module from #{intl::ACCOUNT_A11Y_LABEL}

opaque silo
#

omg its totally ai too

limber skiff
#

(I have stable open for so many days)

hexed cloak
#

I have results

#

but i'm not sure what to do here

opaque silo
#

i love native-function

hexed cloak
#

the replace is just broken

opaque silo
#

my favourite event

limber skiff
hexed cloak
#

this is my patch

glass jasper
hexed cloak
#

and i fixed it to this

#

what it is currently

limber skiff
#

you said it

hexed cloak
#

well I mean

#

I didn't mean it in the way as if my find is broken

#

my patch for that find is broken

#

i see how that's misleading

opaque silo
#

what is the find for

limber skiff
#

// [EXTRACTED] WebpackModule374005
// WARNING: This module was extracted to be more easily readable.
//          This module is NOT ACTUALLY USED! This means putting breakpoints will have NO EFFECT!!

0,function(e,t,n){n.d(t,{b:()=>I});var i=n(200651),l=n(192379),r=n(393238),a=n(540059),s=n(720734),o=n(840780),c=n(235555),d=n(746508),u=n(210724),h=n(905423),m=n(316173),p=n(410575),g=n(981631),_=n(388032),f=n(195093);function E(e){let t=(0,h.Z)(e=>{let{guildId:t}=e;return t});return(0,i.jsx)(o.Z,{...e,guildId:t})}function I(){let e=(0,a.Q3)("AppPanels"),t=l.useRef(null);return(0,r.P)(t,t=>{let{height:n}=t;e&&document.body.style.setProperty("--custom-app-panels-height","".concat(n,"px"))},[]),(0,i.jsxs)("section",{ref:t,className:f.panels,"aria-label":_.intl.string(_.t.StREWF),children:[e&&(0,i.jsx)(m.Z,{}),(0,i.jsx)(u.Z,{}),(0,i.jsx)(c.Z,{}),(0,i.jsx)(p.Z,{section:g.jXE.ACTIVITY_PANEL,children:(0,i.jsx)(E,{className:f.activityPanel})}),(0,i.jsx)(p.Z,{section:g.jXE.RTC_CONNECTION_PANEL,children:(0,i.jsx)(d.Z,{})}),(0,i.jsx)(p.Z,{section:g.jXE.ACCOUNT_PANEL,children:(0,i.jsx)(s.Z,{})})]})}}
//# sourceURL=ExtractedWebpackModule374005
#

It's probably old enough for your old patch to work

hexed cloak
limber skiff
#

and if you want formatted

hexed cloak
#

You are amazing yippie

opaque silo
#

nookies smh

limber skiff
#

what?

opaque silo
#

give a man a fish and you feed him for a day. Teach him how to fish and you feed him for a lifetime

limber skiff
#

he is asking for a diff from the old module and the new

#

I have the old module, so I just gave it to them

#

no trick to get it, I just have a client open for days without changes

#

literally nothing to teach lol

hexed cloak
#

Oh, I see

#

I was wondering

#

wait no, i'm still wondering

#

why does it say extracted?

fossil inlet
#

?remind monday finish live reporter + diffing + formatted modules + history

shut vineBOT
#

Alright @fossil inlet, in 3 days: finish live reporter + diffing + formatted modules + history

opaque silo
limber skiff
#

I used a vencord utility for extracting it

#

first off just test if your old patch works on it

hexed cloak
#

yup one second

limber skiff
#

then if it matches it means it's the old one you want

#

just look what changed from the new one and adjust it

hexed cloak
#

seems like it works

limber skiff
#

๐Ÿ˜ญ

hexed cloak
#

lmao

limber skiff
#

are you sure that's what it matched before?

hexed cloak
#

I mean

#

I mean

#

No i'm not really sure lmao

#

maybe?

#

I mean it seems like it works

limber skiff
#

no way lmao

#

show me the capturing groups it matched

hexed cloak
#

yeah

#

the more i look at it

#

the more it doesn't seem too right

#

actually

fossil inlet
hexed cloak
#

maybe it seems right

#

i mean it looks ok

fossil inlet
#

it seems pretty right to me

hexed cloak
#

yeah it fits in

limber skiff
hexed cloak
#

lmao

limber skiff
#

these two colors

#

literally could NOT see the difference

hexed cloak
#

...?

limber skiff
#

I love colorblindness

fossil inlet
limber skiff
#

LOL

hexed cloak
#

oh

#

lmao

#

๐Ÿ˜ญ

limber skiff
#

I was looking and couldnt find where the third group was

#

because I only saw two colors

fossil inlet
limber skiff
#

the green and the blue

hexed cloak
#

how can i copy a part of the code as minified?

limber skiff
#

btw

hexed cloak
#

or can i minify it myself

limber skiff
#

you can nuke this

#

and that's gonna simplify your match a lot

hexed cloak
#

okay done

#

Well

#

It changes what it matches

#

It goes to the function above instead

limber skiff
#

oh

#

of course that thing was un-greedy

#

okay just keep it lol

hexed cloak
#

okay I shall

limber skiff
#

I'm confused tho

#

are you sure it's not working?

hexed cloak
#

it says this when i try to run the patch:

#

oh wait

#

one sec

#

I don't exactly know what this means

#

I just assumed this means the match fails

fossil inlet
#

just run the patch in the patch helper in settings

hexed cloak
fossil inlet
#

eaiser to find out whats wrong

limber skiff
#

means after the replacement applied your code is invalid JS

hexed cloak
hexed cloak
#

man i would love to have the settings button right about now

#

that completely nuked my user panel

#

๐Ÿ˜ญ

#

is there a hotkey to open settings?

#

wait nevermind

#

i'll just remove the patch first

#

that is strange

#

it adds an additional quote

limber skiff
#

did I

#

fuck up?

fossil inlet
limber skiff
#

(no)

fossil inlet
#

๐Ÿ˜ญ

limber skiff
fossil inlet
hexed cloak
#

...

charred monolithBOT
hexed cloak
#

what does this mean?

#

...

limber skiff
#

that it's not your fault

hexed cloak
#

i see

limber skiff
#

it's just the patch helper and dev companion broke

#

but the actual patch still works

#

and if it doesnt it's not because the patch is broken but something else

charred monolithBOT
hexed cloak
#

well it does seem that the patch ran

#

and it always ran

#

because it gets called

limber skiff
#

yeah

limber skiff
#

or else everything would be broken

#

and they are not

hexed cloak
#

hmm

#

yippiee

#

but then again

#

the function's second and third param are undefined

#

which is odd

limber skiff
#

this being undefined is expected

hexed cloak
limber skiff
#

and well

#

the original function has no arguments

hexed cloak
#

hm

limber skiff
#

did it use to have?

hexed cloak
#

I don't remember

#

this is ancient

limber skiff
#

likely not the issue then

hexed cloak
#

yeah

median rapids
# charred monolith
const modifyWebSocket = () => {
    WebSocket.prototype.send = function(data) {
        if (isFakeDeafenEnabled && data instanceof ArrayBuffer) {
            const decodedData = textDecoder.decode(data);
            if (decodedData.includes("self_deaf")) {
                const modifiedData = decodedData.replace('"self_mute":false', '"NiceOneDiscord"');
                const encoder = new TextEncoder();
                data = encoder.encode(modifiedData).buffer;
            }
        }
        this.originalSend.apply(this, [data]);
    };
};
#

sweet baby jesus

fossil inlet
#

would discord notice "NiceOneDiscord"

median rapids
#

this is jst invalid json

#

LOL

#

good way to crash your gateway

fossil inlet
#

oh, im stupid ๐Ÿ˜ญ

#

didnt know it was json

median rapids
#

it's overriding the websocket send

fossil inlet
#

i know that, but i forggot the websocket used json

hexed cloak
# limber skiff did it use to have?

I do think it used to have now, because the error is because the third param "functionArguments" is empty in Reflect.apply()
and this is the first time this is causing an issue

#
        componentResult = Reflect.apply(oldComponent, thisContext, functionArguments || []);

doing this fixed the issue

#

but only made it go down the line

austere talon
#

it probably picked this up from some of the existing FakeDeafen plugin

hexed cloak
median rapids
fossil inlet
#

@limber skiff didnt discord add react-dnd a bit ago

limber skiff
#

since ages

fossil inlet
limber skiff
#

lmao

fossil inlet
limber skiff
#

lovely

fossil inlet
#

tbh it might be better to just copy and paste it so i dont have to rely on a find

opaque silo
median rapids
#

vencord users always taking my bait

limber skiff
#

love the unused var

fossil inlet
limber skiff
#

ya

#

me too

#

and then I was looking at the source and it just has a non used var

limber skiff
#

@long stream did you ever test again if you can still get old upload limit by changing the build number?

long stream
#

one of my friends did and they confirmed it didn't work iirc

#

@astral birch hii im pretty sure it was u

astral birch
#

The experiment was removed from both clients and the api

limber skiff
astral birch
#

file uploads are limited to 10mb everywhere

limber skiff
#

that's sad

#

they should have forgotten about the API as always

limber skiff
#

@fossil inlet holy shit

#

I was right, by making patched source be the same string used as the eval JS doesnt make a new string for the source

#

it's the same reference

austere talon
#

like

#

eval(func[patchedSource])

#

?

limber skiff
#

yeah

#

kinda

#

eval(patchedSrc)... original.patchedSrc = patchedSrc

#

instead of let patched eval(...) ... original.patchedSrc = patched.toString()

#

it was a guess I did and it turned out to be correct

#

another guess was that when you use a Proxy it's handler is a single referenced shared among all

#

and that was also right, so we do avoid creating a lot of new functions and closures

fossil inlet
#

@limber skiff does this happen for you when clicking on the gift button

limber skiff
#

woah

#

let me see

#

yeah

fossil inlet
#

Vencord: v1.11.4 โ€ข 8773d057b (Dev) - 14 Feb 2025
Client: canary ~ Vesktop v1.5.4
Platform: Linux x86_64
โš ๏ธ Vencord DevBuild
โš ๏ธ Has UserPlugins

#

not running my horrorcode

limber skiff
#

so we are now catching stripe webpack instance

fossil inlet
limber skiff
#

nop

fossil inlet
#

prob just test for stripe in baseurl

limber skiff
#

why does it error tho

#

oh my god it's returning a module from discord wreq

#

ngl huge discovery

#

that means my implementation has some issues

#

yes, catching it is incorrect, but it should also not be having issues

#

okay I know why

limber skiff
#

.p is not yet defined here

dense fossilBOT
#

is has 0 total scrobbles

austere talon
#

I told you this was gonna happen ๐Ÿ˜ญ

fossil inlet
limber skiff
#

the issue is we ended up catching an instance we shouldnt be

#

I know how to fix it breaking stripe webpack instance

#

but I also need a way to ignore it

fossil inlet
limber skiff
#

I can fix it

#

but it is not how I want

#

okay

#

I need an old sentry build before we started erroring it to disable

#

I have a good idea, I just need to check something

limber skiff
#

this got more complex than I wanted it to be

charred monolithBOT
limber skiff
#

okay I will finish fixing this tomorrow

#

I did it already just gotta clean it up

limber skiff
#

I found a bug which I dont know how it didnt cause issues

#

moduleId: ""

torpid vessel
charred monolithBOT
brazen bone
#

That seems more like a faulty config imo...

#

Though I guess requiring ampersand for explicitness isn't completely unreasonable

charred monolithBOT
halcyon blaze
#

I would like to have the vimium browser plugin available, now it doesn't need to be a vencord specific plugin.
does vencord support JS injections? or any way i can grab browser plugin in vencord?

#

or any patch i can put on vencord to enable this?

fossil inlet
halcyon blaze
rugged spire
#

I've just looked at the vimium documentation; I don't think it would be as simple as just injecting their extension (for example, what element to scroll, the vomnibar isnt really needed or compatible)

#

Have you tried vimium with vencord in your browser?

#

I would HIGHLY recommend trying that before attempting to inject the extension with Vencord (so you don't get disappointed that it doesn't work after you put a lot of effort in)

#

isn't electron chrome extension support very limited?

halcyon blaze
rugged spire
#

how well does it work?

opaque silo
#

better off reimplementing it as a plugin

halcyon blaze
# rugged spire how well does it work?

he says it works fine, and tbh i just want a few of it's features like f one and some other,
as it is obvious F will fail coz discord client won't have another tab option.

halcyon blaze
# opaque silo better off reimplementing it as a plugin

I was thinking if vencord could extend discord's keybinding ability somehow, and then user can map their suited binds for stuff.
Implementation of modes like insert and normal will be overkill and overimplementation. just switching focus and clicking on available stuff how vimium highlights and does will be nice.

hexed cloak
#

is there an easy way to extract a webpack module?

rugged spire
#

turn on consoleshortcuts and use wpex

hexed cloak
#

I remember nookies extracted it somehow

#

wpex

#

ooo ty

fossil inlet
#

@limber skiff thoughts on an extension for regex101 to get it to support \i

limber skiff
#

I wonder if monkey patching RegExp is enough

fossil inlet
#

That would make it a lot easier

#

World if regex101 was open source

rugged spire
#

@fossil inlet do you love github being used as an issue tracker

still maple
hexed cloak
#

Does vencord have an API thing that lets me add a button above my user panel?

#

because I managed to fix whatever was broken, the regex was missing a \)\}

limber skiff
#

it does not

brazen bone
#

There's usually apis for things if there are multiple plugins that use them

hexed cloak
#

I see

#

I suppose this mess will do then

limber skiff
#

btw

#

the way you are wrapping the old components you dont even need to pass this or functionArguments (they actually dont do anything how you did it)

#

by wrapping you create a closure which means they would alrady have access to any variable they used to do before

#

so just wrap and call the function normally

#

const componentResult = oldComponent()

hexed cloak
#

let me try

#

(btw it does have functionArguments)

#

that is not undefined

limber skiff
#

is it not an empty array

#

lol

hexed cloak
#

maybe it is

#

that worked

limber skiff
#

either wrap, look how you wrap it

function(){$1}

hexed cloak
limber skiff
#

so by calling that function with functionArguments it does not change anything, because your function doesnt even name any arguments

hexed cloak
#

it's a [{}, {}]?

#

oh, key value?

limber skiff
#

idk honestly

hexed cloak
#

for named args

#

idk

limber skiff
#

@fossil inlet you are not gonna believe how much more work I had to do just because of this stripe thing

#

still finishing it

limber skiff
#

but basically because I dont wanna hardcode discord endpoint here

#

I had to take another route which ended up being super complex

limber skiff
#

now I have to explain what magic is going on here

charred monolithBOT
limber skiff
#

vtest dev2

nimble pendantBOT
nimble pendantBOT
nimble pendantBOT
charred monolithBOT
limber skiff
#

okay I think that is it

fossil inlet
#

@limber skiff love all the comments in the new patch webpack

Will make things a lot easier when I go to understand it blobcatcozy

limber skiff
#

yeah I tried to explain what is happening

#

since it's very tricky now

left sequoia
#

kinda tempted to make a plugin which converts all translates into translate3ds

left sequoia
#

oh right i got distracted and forgot to elaborate

#

translate3d is INSANELY faster than just normal translate

#

on a scale of "its unfunny"

still maple
#

i have a wild idea for a plugin
allow the laptop camera to take pictures just like on the mobile app

left sequoia
#

there are apps for that

#

no need

glass jasper
left sequoia
#

....why?

glass jasper
#

i dont have access to my 1984 gif folder

left sequoia
#

...i dont get it

#

windows even has a dedicated camera app for this

limber skiff
brazen bone
fossil inlet
limber skiff
#

and spam !important?

#

ehh

fossil inlet
#

Idk if thats possible

limber skiff
#

by deleting and re-creating the element, yes

still maple
charred monolithBOT
rugged spire
shut vineBOT
#

@fossil inlet, <t:1739516579:R>: not a terrible idea

left sequoia
#

rendering wise nO!

#

translate3d doesnt cause any paint updates

#

while it does cause render updates, because duh it needs to render to display, it doesnt cause paint updates, which is insane cuz u can make entire animation or render updates using JS without any paint updates

jagged cloak
#

getting rid of camera is crazy lol

#

i can understand the other windows apps

charred monolithBOT
jolly egret
#

moderation
just use the FUCKING member tab

limber skiff
#

they generated the readme with AI too ๐Ÿ˜ญ

brazen bone
#

I'm sure users are very interested that it uses FluxDispatcher

idle fossil
#

maybe it's a good thing ven doesn't allow custom plugins by default

desert cosmos
#

i think vee should accept all pull requests

charred monolithBOT
limber skiff
#

vtest dev2

nimble pendantBOT
limber skiff
#

why haven't we done this before lol

nimble pendantBOT
nimble pendantBOT
charred monolithBOT
fossil inlet
#

guhhhhhh did discord just shit itself

#

just woke up

limber skiff
#

vtest dev2

nimble pendantBOT
fossil inlet
#

my discord is fucked rn

nimble pendantBOT
# limber skiff vtest dev2
Bad Webpack Finds
waitForStore("DraftStore")
waitForStore("UserStore")
waitForStore("UserProfileStore")
waitForStore("ChannelStore")
waitForStore("SelectedChannelStore")
waitForStore("SelectedGuildStore")
waitForStore("GuildStore")
waitForStore("GuildMemberStore")
waitForStore("RelationshipStore")
waitForStore("PermissionStore")
waitForStore("PresenceStore")
waitForStore("ReadStateStore")
waitForStore("GuildChannelStore")
waitForStore("MessageStore")
waitForStore("WindowStore")
waitForStore("EmojiStore")
waitForStore("ThemeStore")
mapMangledModule("defaultLocale:"en-US"", {
	t: (m) => m[props[0]] !== void 0...
})
findStore("ChannelRTCStore")
findStore("ExpandedGuildFolderStore")
findStore("SortedGuildStore")
findStore("AuthSessionsStore")
findStore("ApplicationStreamPreviewStore")
findStore("ApplicationStreamingStore")
findStore("ClientThemesBackgroundStore")
findStore("StickersStore")
findStore("StickersStore")
findStore("UserSettingsProtoStore")
findStore("RunningGameStore")
findStore("UserAffinitiesStore")
findStore("GuildMemberCountStore")
findStore("ChannelMemberStore")
findStore("ThreadMemberListStore")
findStore("PrivateChannelSortStore")
findStore("SessionsStore")
findStore("ActiveJoinedThreadsStore")
findStore("GuildAvailabilityStore")
findStore("UserGuildJoinRequestStore")
proxyLazyWebpack(() => {
        const { Store } = Flux;
        const SpotifySocket = findByProps("getActiveSocketAndDevice");
        const SpotifyAPI = findByPro...)
findStore("TypingStore")
findStore("UserGuildSettingsStore")
findStore("VoiceStateStore")
findStore("MediaEngineStore")
findStore("PendingReplyStore")
nimble pendantBOT
desert cosmos
#

jumpscare

fossil inlet
#

tbh this doesnt seem that bad because its all stores

#

find a way to fix stores and it works

limber skiff
#

but is it my fault lol

#

vtest main

nimble pendantBOT
fossil inlet
#

i tried checking a few commits ago and the issue was still there

austere talon
#

what if they remove that method

#

and finding every time is meh too

#

if you really wanna do this, create a Record<string, Store> once and just get it from there

fossil inlet
limber skiff
#

what if they end up loading a store lazily

limber skiff
fossil inlet
#

looks like venbot issue

austere talon
fossil inlet
#

yea, i get the same issues

#

on main

austere talon
odd heath
#

canary is completely fuicked lmao

#

i should not have reloaded vesktop

austere talon
#

IntlMessagesProxy

fossil inlet
odd heath
austere talon
fossil inlet
fossil inlet
odd heath
#

refresh then u can

limber skiff
odd heath
austere talon
#

i18n proxy

odd heath
#

think they reverted whatever they made? nvm

dapper tiger
odd heath
#

for some reason my vesktop works again

austere talon
fossil inlet
dapper tiger
#

Gulf of Vencord renamed to Gulf of BetterDiscord

odd heath
#

btw idk if this is a bug or a config issue on my end but if you click on the "click here to restart to apply settings" from cloud sync while on discord desktop it wont start again (on arch)

austere talon
#

okay i fixed it

#

but the fix cant find intl

charred monolithBOT
#
[Vendicated/Vencord] New branch created: fix-canary-proxy
austere talon
# charred monolith

but this makes it so we can't find i18n anymore so we need a solution for that

limber skiff
#

how does that work

austere talon
#

because it returns thing for EVERYTHING

#

all findByProps calls will return it

limber skiff
#

omggg

#

that is so hackyyy

#

LMAOO

vapid nest
#

rip canary

austere talon
#

didnt read anything above award

vapid nest
#

real

vapid nest
limber skiff
#

@austere talon making a pr on discord intl to add a symbol to their proxy

#

Symbol.for("webpackFinds.shouldIgnore")

austere talon
#

why

#

horror

limber skiff
#

LMAOO

#

im kidding lol

charred monolithBOT
austere talon
#

this try catch is stupid

limber skiff
#

huh?

#

why?

#

you told me to add it lmao

austere talon
#

because it completely breaks stuff like this

limber skiff
#

anyways let me take a look later

#

to try to find a better solution

#

the culprit

#

what if we check for these instead?

austere talon
#

wait they are supposed to be non enumerable

#

why does it still access them

limber skiff
#

the proxy isn't

austere talon
#

ah

charred monolithBOT
austere talon
#

because it future proves

#

it will work for any proxy that behaves like this

limber skiff
#

why not symbol then

austere talon
#

because stuff might not expect symbols / only do it for strings

#

it's safer to use a string

charred monolithBOT
limber skiff
#

oh yeah this proxy is i18n.t right?

#

hmm how would we find it

austere talon
#

lol this is unused

#

oh they have a lot of instances

#

63252

#
63252: function(e, t, n) {
            "use strict";
            n.d(t, {
                Z: () => s
            });
            let {createLoader: i} = n(469918)
              , r = i({
                bg: () => n.e("50698").then(n.t.bind(n, 705533, 19)),
                cs: () => n.e("76030").then(n.t.bind(n, 563837, 19)),
                da: () => n.e("49423").then(n.t.bind(n, 868293, 19)),
                de: () => n.e("290").then(n.t.bind(n, 617342, 19)),
                el: () => n.e("3088").then(n.t.bind(n, 828314, 19)),
                "en-GB": () => n.e("99931").then(n.t.bind(n, 765828, 19)),
                "es-419": () => n.e("625").then(n.t.bind(n, 162790, 19)),
                "es-ES": () => n.e("21310").then(n.t.bind(n, 18398, 19)),
                fi: () => n.e("14478").then(n.t.bind(n, 362667, 19)),
                fr: () => n.e("25724").then(n.t.bind(n, 142594, 19)),
                hi: () => n.e("36050").then(n.t.bind(n, 197010, 19)),
                hr: () => n.e("37952").then(n.t.bind(n, 597512, 19)),
                hu: () => n.e("56577").then(n.t.bind(n, 30612, 19)),
                id: () => n.e("58055").then(n.t.bind(n, 121594, 19)),
                it: () => n.e("24327").then(n.t.bind(n, 167375, 19)),
                ja: () => n.e("12129").then(n.t.bind(n, 931104, 19)),
                ko: () => n.e("80770").then(n.t.bind(n, 543409, 19)),
                lt: () => n.e("67463").then(n.t.bind(n, 621118, 19)),
                nl: () => n.e("8815").then(n.t.bind(n, 465509, 19)),
                no: () => n.e("11600").then(n.t.bind(n, 81518, 19)),
                pl: () => n.e("12645").then(n.t.bind(n, 729987, 19)),
                "pt-BR": () => n.e("25621").then(n.t.bind(n, 247443, 19)),
                ro: () => n.e("88255").then(n.t.bind(n, 953154, 19)),
                ru: () => n.e("31744").then(n.t.bind(n, 761684, 19)),
                "sv-SE": () => n.e("13040").then(n.t.bind(n, 377289, 19)),
                th: () => n.e("53885").then(n.t.bind(n, 158575, 19)),
                tr: () => n.e("38618").then(n.t.bind(n, 985333, 19)),
                uk: () => n.e("71699").then(n.t.bind(n, 570604, 19)),
                vi: () => n.e("14039").then(n.t.bind(n, 156039, 19)),
                "zh-CN": () => n.e("22417").then(n.t.bind(n, 211714, 19)),
                "zh-TW": () => n.e("40270").then(n.t.bind(n, 234597, 19)),
                "en-US": () => n.e("76180").then(n.bind(n, 485464))
            }, "en-US")
              , {makeMessagesProxy: a} = n(469918)
              , s = a(r)
        },
#

finding this with webpack find is pain anyway

#

we can mapMangledModule it

#

the way i18n works changed too

#

different api

#

oh nvm

#

but their i18n module also exports the stupid proxy

#

we could refactor the blacklisting

#

so it doesn't blacklist the entire module but rather only bad exports

#

but for that we also need to patch webpack so doesn't make exports unconfigurable

austere talon
#

should I do that

#

and make that change?

limber skiff
#

gotta monkey patch it

austere talon
#

ye

limber skiff
#

and completely re implement wreq.d

austere talon
#

im doing that rn

limber skiff
#

๐Ÿ˜ญ

austere talon
#

well

#

i already had a userplugion for that lol

limber skiff
#

then move that hack to _shouldIgnoreValue

#

and instead of doing allNonEnumerable, make the single export non enumerable

austere talon
#

oh

#

there shouldnt be setter

limber skiff
#

why tho

austere talon
#

yes i removed it

limber skiff
#

actually

#

add it

austere talon
#

nah

#

we dont want people monkeypatching lmao

austere talon
#

and wouldnt do anything

#

my brain turned off

limber skiff
#

okay yeah remove it

austere talon
#

me wondering why it didnt work

#

do you notice why

dusk blaze
glass jasper
austere talon
#

why doesnt this use findByProps

#

we can't mapMangledModule it

#

cause t is also that shitty proxy

#

we can't get t here

#

two solutions:

  1. change i18n to findByProps
  2. add an includeBlacklisted argument to mapMangledModule
charred monolithBOT
austere talon
#

@limber skiff thoughts?

limber skiff
austere talon
#

cause

#

configurable

#

it should be enumerable

#

๐Ÿ˜ญ

limber skiff
#

lmaoo

limber skiff
#

anyways use Reflect.defineProperty

#

that doesn't error if it's somehow not configurable

austere talon
#

it's kinda difficult to do

#

mapMangledModule checks including inherited

#

we have to recurse over the object prototype

limber skiff
#

ehmm

austere talon
#

cursed

limber skiff
#

what if

austere talon
#

the fallback

limber skiff
#

you add the proxied values into another export

#

inside a wrapper

#

and then you check that into mapMangledModule

charred monolithBOT
austere talon
#

@limber skiff

#

nice typo

charred monolithBOT
limber skiff
#

ill look in a bit

#

instead of nested just look for the top level non enumerable keys @austere talon

#

and concat with the normal Object.keys

#

no need to check for all the prototype

austere talon
#

nah that doesnt work

limber skiff
#

how tho?

austere talon
#

Object.keys is only own too

#

this won't work for classes

limber skiff
#

ill show you after

#

I got an idea

austere talon
#

well

#

actually

#

it doesnt work with classes anyway

#

because class properties are non enumerable by default

austere talon
#

and performance impact is irrelevant

#

funniest shit ever

#

BD is unaffected

#

wanna know why

grave mangoBOT
# austere talon because of their stupid module "censoring" https://github.com/BetterDiscord/Bett...

shared.ts: Lines 6-13

export const wrapFilter = (filter: Webpack.Filter): Webpack.Filter => (exports, module, moduleId) => {
    try {
        if (exports instanceof Window) return false;
        if (exports?.default?.remove && exports?.default?.set && exports?.default?.clear && exports?.default?.get && !exports?.default?.sort) return false;
        if (exports.remove && exports.set && exports.clear && exports.get && !exports.sort) return false;
        if (exports?.default?.getToken || exports?.default?.getEmail || exports?.default?.showToken) return false;
        if (exports.getToken || exports.getEmail || exports.showToken) return false;
        return filter(exports, module, moduleId);
austere talon
#

actually it is affected but only if you do manual byProps filter

limber skiff
#

LMAOOO

austere talon
#

anyway we need to merge this fix FAST

#

and push to main

#

if we want to test webpack changes for more time we need to cherry pick this onto main

limber skiff
#

it's sunday ๐Ÿ˜ญ

#

no way they push to main

austere talon
#

they might push tomorrow

limber skiff
#

okay ill review in a bit wait

charred monolithBOT
fossil inlet
austere talon
#

yes

charred monolithBOT
limber skiff
#

let me change mapMangledModule a bit

limber skiff
#

@austere talon it doesn't matter

#

they do the same

#

expect Reflect doesn't throw

#

which is better, what if it's not configurable somehow?

#

The Reflect.defineProperty() static method is like Object.defineProperty() but returns a Boolean

austere talon
limber skiff
#

well but webpack is meant to not just break

austere talon
#

using a different method than it usually does is dumb

limber skiff
#

we are modifying it

#

oh

#

you did the same lol

austere talon
#

yeah

#

well technically the behaviour is very slightly different but it doesn't matter

austere talon
limber skiff
#

hmmm

#

alright

austere talon
#

btw we are very luck webpack even uses wreq.d for it so it's this easily patchable lol

#

imagine if they hardcoded it or referenced it from a local variable

limber skiff
#

they make everything so easy lol

austere talon
#

lmao yeah

limber skiff
#

all the important things are assigned to the function

austere talon
#

there's no reason for them to even put anything on the function

#

it could all be local variables

limber skiff
#

I mean some they need

austere talon
#

well tbf in some websites m and c aren't exported for whatever reason

#

but that's easy to fix

limber skiff
#

but others nop

austere talon
#

bd just hardcoded those names

#

but they made it so that you can't even find i18n

#

lol

#

either that or nested export search doesn't work

#

I think it's the latter actually

limber skiff
#

nothing against zerebos but they are just merging everything at this point, with barely any review

austere talon
#

no he does review

austere talon
#

but yeah he doesn't care about BD that much anymore

limber skiff
#

like what even is this

limber skiff
austere talon
limber skiff
#

"Add wrap in hook"

austere talon
#

they need it so they can monkeypatch things

limber skiff
#

that explains nothing

austere talon
#

yeah the commit message sucks

limber skiff
#

disables every single plugin

austere talon
#

BD installer does the same thing when u press repair xd

limber skiff
#

oh my god...

cyan bloom
#

I think it is pretty insane that the discord breaking update just happend and it's already in current fixing, i really really have to appreciate this, tysm vencord team

limber skiff
#

yeah we normally try to always fix these huge changes before they hit stable

cyan bloom
#

ik you guys tried to change before stable, but discord only update for me like 1h ago and its surprising how fast it is

limber skiff
#

well it's not on stable yet

#

only on canary

cyan bloom
#

yea yea ik i use canary x3

limber skiff
austere talon
#

we should add that