#👾-core-development

1 messages · Page 221 of 1

high oracle
#

Oh!

#

Nope

limber skiff
#

dang

high oracle
#

Once you submit, you have to wait

limber skiff
#

that sucks

high oracle
#

The best you can do is wait

jolly egret
#

goddamn it we have to wait, to submit another fix to wait again?

limber skiff
#

yep

jolly egret
#

that just sucks

limber skiff
#

horror

#

let me find the old key

#

@fossil inlet BLOCKED_MESSAGE_COUNT

fossil inlet
#

+FcYMz

#

yup

#

@limber skiff should i make a searchable thing of all old keys and their hashes

limber skiff
#

let me send you a mapping

#

sex

#

@fossil inlet wait are you planning in putting that json inside vencord

#

don't do DJSFHDJSFDS

jolly egret
#

10 minutes after being shafted by automod later for trying to say a word nuckyz said, i have returned to ask if that also fixes message logger with collapse deleted enabled?

limber skiff
#

no idea

rugged spire
#

HORROR

#

@limber skiff they pushed to stable yet?

#

no?

limber skiff
rugged spire
#

yes trolley

still maple
#

they pushed intl changes

rugged spire
#

i had to force reload

#

ok time to merge branches in

limber skiff
#

someone delete messages for me

rugged spire
#

guhhhhh fuck off

limber skiff
#

ugh

rugged spire
#

FORCE PUSHING IS A FUCK

#

i hope this branch gets to die soon

#

?remindme 3mo hey have you made a v3 of "your stable plugins" yet due to git hell

shut vineBOT
#

Alright @rugged spire, in 3 months: hey have you made a v3 of "your stable plugins" yet due to git hell

rugged spire
#

funny

limber skiff
#

ugh

#

we are gonna have to figure out how to add a new message

fossil inlet
#

fixed both blobcatcozy

limber skiff
#

to fix that

fossil inlet
#

i hate discords new formatting system

limber skiff
fossil inlet
#

i have no idea how it works, but i made the message

limber skiff
#

NO

rugged spire
limber skiff
#

that's not happening

fossil inlet
#

tbh it would be best to just copy disords impl

rugged spire
#

IS DISCORD USING AN ENTRIES LIKE FORMAT BECAUSE THEY CANT SET ARRAYS AS KEYS

#

insane as fuck

charred monolithBOT
rugged spire
#

i know what it is

#

squash merge fucked stuff up on that branch

#

i should've pulled

dusk blaze
#

on that note

#

we should really have something to push messages to all vencord users

#

similar to revanced alerts

dusk blaze
rugged spire
dusk blaze
#

not a plugin tho

#

@rugged spire the origins of nin0chat

rugged spire
#

the origins of you running sudo init 0 and getting trolled

#

@dusk blaze@dusk blaze@dusk blaze@dusk blaze@dusk blaze@dusk blaze@dusk blaze do you know what this message means

#

vfjd?

nimble pendantBOT
rugged spire
#

im stupid

dusk blaze
#

what is this thing

rugged spire
#

git submodule hell

limber skiff
#

I have no idea what they use to generate an ast

#

and I'm looking at the non minified source

#

it might not even be included in the client

fossil inlet
#

its parsed and generated at compile-time

limber skiff
#

yeah

fossil inlet
#

ive been looking at it for the past bit

limber skiff
#

but if we can find where

fossil inlet
#

its native rust code

limber skiff
#

oh

fossil inlet
#

this is the farthest ive gotten

#

and i hate rust

limber skiff
#

damn

limber skiff
fossil inlet
#

im going to try and iml it in js

#

but not soon

limber skiff
#

and add @TODO: Find a better way to generate this

fossil inlet
#

@limber skiff am i crazy or did your review vanish

limber skiff
#

I deleted it

fossil inlet
#

ah

limber skiff
#

i made a mistake

limber skiff
#

mark it as ready

fossil inlet
#

alr did 😭

charred monolithBOT
fossil inlet
#

@jolly egret

#

someone update the known issues thread

limber skiff
#

we should work together and make a package for generating the ast

#

which other mods can use too

fossil inlet
#

alr

fossil inlet
limber skiff
#

yeah

#

but that's for another time

fossil inlet
#

any plans to type i18n

limber skiff
#

ehh

#

depends on how deep we go

fossil inlet
#

i figured go deep on .intl and .t , but dont to that deep on other props

jolly egret
austere talon
#

apparently TypingTweaks only works in english

fossil inlet
#

@austere talon

austere talon
#

@shy veldt

shy veldt
fossil inlet
#

HORROR

#

@odd heath you

odd heath
#

me

fossil inlet
charred monolithBOT
brazen bone
#

A sha256 of the original filename? ...why

fossil inlet
#

isnt this a node module

#

also ??

brazen bone
#

Why does it change the svg

#

Oh, it moves the } to the same line. That took a while to find

#

And removes the noop: true? What is this guy smoking

fossil inlet
#

this isnt a bad idea, but it does a bunch other random stuff

fossil inlet
brazen bone
#

I think noop: true makes it give nothing instead of large red box

shy veldt
#

its turk

fossil inlet
#

the syntax just confuses me

shy veldt
#

what did you expect :3

brazen bone
#

Which is probably good if the element is smaller than the large red box

glass jasper
fossil inlet
#

his pinned repos

shut vineBOT
#

@rugged spire, <t:1730674213:R>: find a suitable name and description for simplifiedprofilenotes

austere talon
jolly egret
#

you get a bunch of junk prs

#

like so many

austere talon
#
function MyComponent() {
  throw "balls";
}

const MySafeComponent = ErrorBoundary.wrap(MyComponent);
const MySafeSilentComponent = ErrorBoundary.wrap(MyComponent, { noop: true })

<MyComponent /> // crashes entire app
<MySafeComponent /> // renders red error box
<MySafeSilentComponent /> // renders nothing
austere talon
#

same way

brazen bone
#

The component returned by ErrorBoundary.wrap behaves exactly like the wrapped component except it doesn't crash

#

It's something like ```js
function wrap(Component, errorProps) {
return (props) => (<ErrorBoundary {...errorProps}><Component {...props} /></ErrorBoundary>);
}

grave mangoBOT
brazen bone
#

Oh so there's a wrappedProps too. That's surely useful for... something

austere talon
#

it's used in onError

#
const Thing = ErrorBoundary.wrap(Component, {
  onError: ({ error, props }) => {
    console.log("Failed to render Component with foo =", props.foo);
  }
});
#

i don't think this is used anywhere tho xD

charred monolithBOT
fossil inlet
#

i think i know whats causing the typing tweaks crash @shy veldt

#

discord issue that results in vencord issue

#

discord tries to format the username to be bold

#

but for some reason it results in a markdown string instead of a <strong> react element

#

note the markdown string doesnt get formatted

#

it just shows up as **user** is typing

#

@austere talon do i fix the bug in discords i18n if the plugin is enabled

long stream
#

wouldn't that be out of scope for the plugin though

#

especially since it's gonna be fixed in like a week or two probably

fossil inlet
#

yea, prob

austere talon
#

eh bad fix

#

use React.isValidElement

#

or something else

#

the .username check is very weird

fossil inlet
#

like this?

austere talon
#

idk

#

test it

#

how does that even work for discord

#

we're just returning their "element"

#

why does it crash for us but not them

jolly egret
austere talon
#

or does it crash on stock discord too

fossil inlet
jolly egret
#

bruh the fix was broken despairge

fossil inlet
#

user object gets passed instead of name wrapped in strong/>

fossil inlet
jolly egret
#

oh

austere talon
fossil inlet
#

only for Japanese locales

fossil inlet
#

where it should be bold

austere talon
#

I found something similar to this that caused crashes on most locales and got $2k bug bounty from their hackerone

#

trol

fossil inlet
#

@austere talon is there something like react.isvalidelement for anything react can render

#

string, elements, ...

austere talon
#

idk really

fossil inlet
#

wait

#

this bug is in all Japanese strings

#

lol

austere talon
#
const isInvalid = e => typeof e === "object" && !e.type
#

maybe this

#

no

#

hmmm

#

it's $$type or smth like that

#

I'm not at my computer

#

I still don't understand how this causes crashes for us not but discord

austere talon
#

so good

#

find a way to abuse this to crash someone (not yourself) using the Japanese locale

#

if you manage and report it to discord, you can claim free moneys

jolly egret
#

spreads a problem around publicly (on an alt) so it becomes a big issue then reports it to discord to get even more money 😎

#

(don't do this)

austere talon
#

it doesn't have to be a big issue

#

that's the point of bug bounties

#

finding issues before they become problems and cause damage

#

it just has to be impactful, e.g. if you can crash other people just by doing something

fossil inlet
#

who reacted determins if something is a user component by checking if it a react element with the strong type

normally the children looks something like this [<strong>username</strong>, "is typing"]

however, the Japanese i18n is broken and returns ["**", userObj, "**istyping"]
normally this would be ["**username**istyping"], but because typing indicators replaces the map of usernames, with userObjs, discord

#

's parser returns ["**", userObj, "**istyping"] instead

#

@austere talon guhhhh

austere talon
#

lmao

fossil inlet
#

this is the fix i have now

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

fossil inlet
jolly egret
#

it should have calmed down by now

limber skiff
#

done

rugged spire
fossil inlet
#

does anyone know why where is an extra char in the short hash here

#

@rugged spire explain

rugged spire
#

idk trolley

cunning canyon
#

devbuild vs not devbuild

fossil inlet
#

ive been looking the code but cant find it

austere talon
#

their fork is not on github

#

codeberg or gitlab

rugged spire
#

oh wtf

#

how does that work

brazen bone
austere talon
#

the short commit length is implementation dependant

charred monolithBOT
jolly egret
#

👍

charred monolithBOT
#

Plugin Description:
Adds a "Mute/Unmute and Block/Unblock" button for all users. Unlike the standard Block/Unblock button, which only restricts certain users from messaging you, this option also mutes them in voice channels for added control.
Includes an automatic feature that mutes blocked users in voice channels, enhancing visibility and manageability.
This plugin effectively transforms standard blocks into "real" blocks, creating a smoother and more organized communication environment.
...

astral bone
#

I wonder how hard the logic for that plugin will be

charred monolithBOT
jolly egret
astral bone
#

Yeah

jolly egret
#

Is it just me thats experiencing occassional weirdness in the positioning of Vencords settings? Sometimes its pinned to the bottom (restarting discord fixes it)

limber skiff
#

that's weird

jolly egret
trim gull
astral bone
brazen bone
#

What is there to wonder

#

The code's right there

jolly egret
#

thats what i'm sayin

charred monolithBOT
fossil inlet
#

i think better folder might be a tad folders

#

@grizzled halo has anyone reported this yet?

grizzled halo
#

Do you have autoclosed enabled

#

Because afaik that’s intentional

fossil inlet
#

ive never had this happen before blobcatcozy

fossil inlet
#
diff --git a/src/plugins/betterFolders/index.tsx b/src/plugins/betterFolders/index.tsx
index bb1a67ebb0..50dee4f563 100644
--- a/src/plugins/betterFolders/index.tsx
+++ b/src/plugins/betterFolders/index.tsx
@@ -274,12 +275,16 @@ export default definePlugin({
     },
 
     makeGuildsBarGuildListFilter(isBetterFolders: boolean) {
-        return child => {
-            if (isBetterFolders) {
-                return child?.props?.["aria-label"] === i18n.Messages.SERVERS;
-            }
+        try {
+            return child => {
+                if (isBetterFolders) {
+                    return child?.props?.["aria-label"] === getIntlMessage("SERVERS");
+                }
+                return true;
+            };
+        } catch {
             return true;
-        };
+        }
     },
 
     makeGuildsBarTreeFilter(isBetterFolders: boolean) {

@limber skiff i might be stupid, but shouldn't this try-catch be inside of the returned function

limber skiff
#

what did I do

#

nah it's fine

fossil inlet
limber skiff
#

but yes it's better if it was

#

oh

#

wait

#

LOL

fossil inlet
#

because i dont think returning a function can throw

limber skiff
#

you are right

#

😭

#

pr it

fossil inlet
#

alr

charred monolithBOT
brazen bone
#

Oh

fossil inlet
jolly egret
#

tbf, if PRs were merged more often there would be less duplicates

#

especially with a project like this where discord breaks stuff so PRs go constantly stale Maintainers time is precious and we all love you

shut vineBOT
#

@fossil inlet, <t:1730322928:R>: plugin to replace github links with lines with the actual code

limber skiff
#

how?

#

the link should be returning as webp

#

that's the whole point of animated in getEmojiURL

fossil inlet
#

discords media proxy doesnt support it

limber skiff
#

I see

fossil inlet
#

unrelated but fear

limber skiff
#

god everything is broken

fossil inlet
#

idk if this was a thing before

charred monolithBOT
scenic brook
#

I kinda wanted to add settings so you could define url replacements, so if you clicked show embed on, say, a twitter link, it'd give you a vxtwitter embed instead

#

But maybe in future

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
limber skiff
#

#{intl::+2QBZW::raw}

charred monolithBOT
scenic brook
#

What's the difference between that and just using "+2QBZW" directly?

limber skiff
#

gets transformed to ["+2QBZW"]

#

just like if you used the non hashed key

#

it's meant to be a universal way of targetting intl keys

#

so that we can easily change things

scenic brook
#

Gotcha

gritty iris
charred monolithBOT
limber skiff
#

raw is for when you are using the hashed key

gritty iris
#

ah alr

charred monolithBOT
#
[Vendicated/Vencord] branch deleted: i18n-fix
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

rugged spire
#

this will fuck up my feature branches soon

limber skiff
scenic brook
# charred monolith

I have another plugin that shares a lot of code with this but I feel like they do different enough things that I'm not sure if I should keep them separate or just merge them into one

ShowMessageEmbed lets you fetch and embed for a link in a message
EmbedReplace fetches a new embed with TextReplace-like rules applied to the url first and replaces the original embed

At the moment I have them slightly integrated anyway so that you can prevent the Show Embed button appearing for an embed that's been EmbedReplaced

#

But I don't know if maybe the EmbedReplace rules should just be part of the ShowMessageEmbeds settings

dusk blaze
rugged spire
#

sorry

#

i mean

#

i fix my plugins on what is apparently a stable API

jagged cloak
#

well dont bse on temp branches or just deal wit xd

charred monolithBOT
fossil inlet
#

is it possible to set the path vesktop loads from in console

opaque silo
#

nop

#

actually you can modify the path in the settings.json

#

but not as a launch arg if thats what you meant

#

you could sed "match" && vesktop

fossil inlet
# opaque silo nop

not sure if this works but after a bit of digging i found VesktopNative.fileManager.selectVencordDir

opaque silo
#

OHHH

#

you meant chromium console 😭😭

#

not the terminal

fossil inlet
#

yea 😭

#

my vesktop was stuck on a old commit and it wouldnt update

#

so i needed to swap it

opaque silo
#

buh

charred monolithBOT
austere talon
#

but it doesn't take argument, instead it shows a file picker prompt

fossil inlet
#

Yea, that was all I needed

jolly egret
#

Anyway chrome extension is updated now, so if you wanna push a second round of fixes you can do that

fossil inlet
#

i think i have a few fixes open rn

#

@jolly egret have people found any bugs that arent fixed yet?

jolly egret
#

uhh

#

it hink there was but i can't remember

#

theres most likely a PR anyway

fossil inlet
#

i also found the most minor possible bug in permission viewer

jolly egret
#

incredible

fossil inlet
#

it doesnt render formatted permission info tooltips, only the raw text

odd heath
odd heath
#

Uh

#

Okay

#

Because I get full crash on loading vesktop on canary

#

Looks like it's only decor tho?

fossil inlet
#

Ah

#

I don't use decor

#

I'll check it out

odd heath
#

yeah its decor

jolly egret
#

bruh

spice python
jolly egret
#

probably

spice python
#

no normal human writes this many comments

#

ok yeah

fossil inlet
#

looking into decor now blobcatcozy

brazen bone
#

It's weird that ai manages to squeeze in so many comments despite being trained on human code

jolly egret
#

ai slop

jolly egret
scenic brook
#

Also for the crybabies on discord:
Seems a bit unnecessarily antagonistic suffoPepeHmm

scenic brook
jolly egret
#

can anybody reproduce the crash with Decor on ptb/canary?

#

I can't reproduce it, but others can. I just want something conclusive before i throw anything in #1257025907625951423

scenic brook
#

Yeah I ran reporter on ptb and it crashed me

jolly egret
#

aight i'll post something then

scenic brook
#

These three finds fail

#

Well two finds and map

limber skiff
#

I'll be home in an hour

#

so if no one fixes

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds
findByCode("will be removed in v4")
findByCode("[zustand persist middleware]")
mapMangledModule("expression-picker-last-active-view", {
	useExpressionPickerStore: t=>typeof t!="function"?!1:Ia(Function.prototype.toString.call(t),e)...
})
Bad Starts

None

Discord Errors

None

limber skiff
#

woah

jolly egret
#

wtf is the second one 💀

limber skiff
#

it's a code filter

#

reporter doesn't extract its deeper arguments

fossil inlet
#

first

austere talon
#

mapMangled

jolly egret
#

nah, i get cursed stuff but i'm trying to figure out what the zustand persist middleware is doing in discords code

austere talon
#

zustand library

#

logger

jolly egret
#

ah

charred monolithBOT
fossil inlet
#

?remind saturday review

shut vineBOT
#

Alright @fossil inlet, in 2 days: review

edgy nova
#

I just noticed the sorting itself may not be working no longer;
The dates work 100%

scenic brook
#

Yeah the sorting definitely doesn't work

#

Oh unless the sort is by name then yeah it's fine

edgy nova
#

No that's the default behaviour

#

I believe

odd heath
#

name is default yeah

edgy nova
#

No idea how to fix it; They can change the name to FriendListDates if needed, or if someone want to help out fix the sorting that would work out too I guess

#

It's just been super useful for me to clean my friend list, so thought of sharing it

odd heath
#

if its only for dates it should probably be integrated with friendsSince

#

because it does the same thing just in another place

edgy nova
#

To be fair it should be integrated with friend requests and change the name, then fix the sorting

#

that would make the most sense imo

fossil inlet
#

ill work on it tonight

#

maybe

edgy nova
#

Is it possible to get the "last active" date of a user?

odd heath
#

not unless you manually log it

#

iirc

scenic brook
#

Which would become creepy

odd heath
#

yeah

edgy nova
#

I mean, dont think it's creepy? I just want it for friend purging

limber skiff
#

plot twist

edgy nova
#

But tracking would be weird

limber skiff
#

they might have updated to v4

#

😂

scenic brook
#

I guess if it's only on friends it's not too bad

scenic brook
#

Just in case you missed it filling the entire console

edgy nova
#

Is that the friend plugin?

scenic brook
#

Nah just discord in general

edgy nova
#

Ah alright

scenic brook
#

Just changing to type 1 fixes

limber skiff
#

oh

#

they updated zustand to v5

#

jesus christ

charred monolithBOT
#

This is a small plugin I made for toggling themes with a hotkey or if you start a stream. You may also show a popup once you toggle the theme. All of the mentioned options are configurable, you can find a picture below for reference.

I'd also want to give some credit to Kodarru, also credited in the code. I used fragments of the code she wrote for the StreamerModeOnStream plugin for the theme disable functionality.

Hope you like it :)

![image](https://github.com/user-attachments/asse...

fossil inlet
#

could be wrong

limber skiff
#

oh yeah

#

v5 drops default exports

#

remind me to never do what zustand did

fossil inlet
odd heath
#

one thing i also noticed

#

with pindms the non-pinned dms dont show up anymore

limber skiff
#

so many issuesss

charred monolithBOT
limber skiff
fossil inlet
#

dev2 wires

limber skiff
#

@fossil inlet

#

how are emojis being returned as webp

fossil inlet
#

did discord change it

limber skiff
fossil inlet
limber skiff
#

still works

fossil inlet
#

are you on stable or canary

limber skiff
#

oh

#

lmao

#

they did change it

limber skiff
limber skiff
#

I knew something was wrong

fossil inlet
#

are you going to fix this some other way?

charred monolithBOT
limber skiff
#

we just gotta wait for discord to bump stable to canary

#

which should happen soon

#

let me fix this

charred monolithBOT
fossil inlet
limber skiff
#

yeah

#

still annoying

fossil inlet
#

that has annoyed me more times than i can count

limber skiff
#

@fossil inlet what does this fix exactly?

limber skiff
#

I didnt remember lol

fossil inlet
#

let me find the message

limber skiff
#

does it crash

fossil inlet
#

yes

#

whenever someone types on jp i18n

fossil inlet
#

but idk how many users actually use that

#

and discord will prob fix

charred monolithBOT
odd heath
#

idk

#

they just arent there for me

#

what if you have multiple categories

charred monolithBOT
limber skiff
#

you didnt just collapse direct messages right?

odd heath
#

oh i did

#

i didnt even know that was an option tbh 😭

fossil inlet
#

yea

odd heath
#

sorrryyy

fossil inlet
#

tbh i didnt either untill someone else told me

odd heath
#

is that a stock feature or is pindms adding that

fossil inlet
charred monolithBOT
limber skiff
#

don't worry

#

happens to all of us blobwob

odd heath
#

good to know

charred monolithBOT
austere talon
#

its a pindms feature

#

not stock

limber skiff
#

oh really?

austere talon
#

yes lol

#

its honestly kinda bad

limber skiff
#

I could swear it was stock

austere talon
#

cause it confuses people

limber skiff
#

yeah it doesnt have a proper indication

charred monolithBOT
limber skiff
#

I almost did a huge mistake

#

and pushed dev to main

frail skyBOT
#
Bad Patches

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'


**__ConsoleJanitor (found no module):__**
ID: `-`
Match: ```
[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead.

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.


**__ConsoleJanitor (found no module):__**
ID: `-`
Match: ```
[DEPRECATED] `context` will be removed in a future version. Instead use `import { createStore, useStore } from 'zustand'`. See: https://github.com/pmndrs/zustand/discussions/1180.

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Default export is deprecated. Instead use import { shallow } from 'zustand/shallow'.

Bad Webpack Finds
mapMangledModule("useSyncExternalStoreWithSelector:,Object.assign", {
	zustandCreate: e=>typeof e=="function"...
})
mapMangledModule("expression-picker-last-active-view", {
	useExpressionPickerStore: t=>typeof t!="function"?!1:Ia(Function.prototype.toString.call(t),e)...
})
Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

astral bone
#

How does vencord reporter work

#

How does it check for bad patches

limber skiff
#

launches a headless chrome instance, injects vencord and loads the discord website

#

then force loads everything and checks what wasn't applied after

astral bone
#

Very cool

#

Is it also opensource

#

I wanna peep at it's code

#

Like

#

How does it launch it

#

And force run everything

limber skiff
#

this launches chrome, opens discord and injects vencord

#

and also listens for console messages to capture failed patches logs, or the signal to end

#

and this is what loads everything and checks for bad patches or finds

#

beware the code is kinda messy

astral bone
#

Impressive

#

Thanks

#

Well appreciated 🙏

limber skiff
astral bone
#

So it js runs everything on the login screen?

limber skiff
#

yeah

#

it current does a login with a token

#

but you dont actually need to be logged in

astral bone
#

And how would i run it locally

#

If i wanted to

#

Bcs i assume it checks for patches even in dev shell

#

So is it possible that i find errors in dev shell with it?

junior olive
#

i love zustand

limber skiff
#

then

pnpm buildReporter
pnpm esbuild scripts/generateReport.ts > dist
node dist/generateReport.js
brazen bone
astral bone
limber skiff
#

it will output in your terminal only

astral bone
#

Alright great, new side quest made blobcatcozy

glass jasper
#

why do i have to spam Ctrl Shift I couple times before the dev console actually pops up

glass jasper
#

yeah

fossil inlet
#

ive heard the amd driver binds that as a hotkey

glass jasper
#

NAH IM A NIVIDA USER!!!!

glass jasper
jolly egret
#

nooo

charred monolithBOT
frail skyBOT
#
Bad Patches

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'


**__ConsoleJanitor (found no module):__**
ID: `-`
Match: ```
[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead.

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.


**__ConsoleJanitor (found no module):__**
ID: `-`
Match: ```
[DEPRECATED] `context` will be removed in a future version. Instead use `import { createStore, useStore } from 'zustand'`. See: https://github.com/pmndrs/zustand/discussions/1180.

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Default export is deprecated. Instead use import { shallow } from 'zustand/shallow'.

Bad Webpack Finds
mapMangledModule("useSyncExternalStoreWithSelector:,Object.assign", {
	zustandCreate: e=>typeof e=="function"...
})
mapMangledModule("expression-picker-last-active-view", {
	useExpressionPickerStore: t=>typeof t!="function"?!1:Ia(Function.prototype.toString.call(t),e)...
})
Bad Starts

None

Discord Errors

None

#
Bad Patches

NoTrack (found no module):
ID: -
Match: ```
.installedLogHooks)


**__ConsoleJanitor (found no module):__**
ID: `-`
Match: ```
[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] getStorage, serialize and deserialize options are deprecated. Use storage option instead.


**__ConsoleJanitor (found no module):__**
ID: `-`
Match: ```
[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] context will be removed in a future version. Instead use import { createStore, useStore } from 'zustand'. See: https://github.com/pmndrs/zustand/discussions/1180.


**__ConsoleJanitor (found no module):__**
ID: `-`
Match: ```
[DEPRECATED] Default export is deprecated. Instead use `import { shallow } from 'zustand/shallow'`.
Bad Webpack Finds
mapMangledModule("useSyncExternalStoreWithSelector:,Object.assign", {
	zustandCreate: e=>typeof e=="function"...
})
mapMangledModule("expression-picker-last-active-view", {
	useExpressionPickerStore: t=>typeof t!="function"?!1:Ia(Function.prototype.toString.call(t),e)...
})
Bad Starts

None

Discord Errors

None

jolly egret
#

oh it hit stable

fossil inlet
jolly egret
#

oh

charred monolithBOT
#

Why aren't you modifying the existing SortFriendRequests plugin to support this use case, especially considering the code is almost the same? I know the name would be wrong, but plugin settings can be kept after a rename by statically calling migratePluginSettings(newName, ...oldNames) (see how other plugins do it for an example)

<sub>also how do you have 1k friend requests??</sub>

rugged spire
#

@scenic brook thank you for making this PR blobcatcozy

charred monolithBOT
charred monolithBOT
scenic brook
#

I'll upload it as it currently is later thumb

charred monolithBOT
charred monolithBOT
frail skyBOT
#
Bad Patches

NoTrack (found no module):
ID: -
Match: ```
.installedLogHooks)

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

NoTrack (found no module):
ID: -
Match: ```
.installedLogHooks)

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
fossil inlet
#

@limber skiff could you run reporter

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

Settings (had no effect):
ID: 991346
Match: ```
/({(?=.+?function ((?:\i)).{0,120}((?:\i))=(?:\i).useMemo.{0,60}return (?:\i).useMemo(()=>(?:\i)(\3).+?function(){return )\2(?=})/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

fossil inlet
#

alr

#

not that bad

limber skiff
#

not my backup patch

fossil inlet
limber skiff
#

they added this huge key

limber skiff
#

it's a backup in case this patch fails

fossil inlet
limber skiff
#

yep

fossil inlet
#

neat

#

wait

#

why are all the \i's

#

in non capturing groups

limber skiff
#

😭

#

just an error in reporter parsing

#

fixed already

charred monolithBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
astral bone
#

🔥

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
limber skiff
#

@grizzled halo any new broken things that people mentioned or everything seems fine now?

grizzled halo
#

Everything seems fine

limber skiff
#

alright

charred monolithBOT
limber skiff
#

I suppose I can push a tag without pushing to main

charred monolithBOT
limber skiff
austere talon
#

don't do that

jolly egret
#

Actually, do y'all wanna investigate the weird behaviour with imagezoom?

#

multiple users now have reported that its not saving the zoom level properly

#

i can kinda reproduce it?

#

it sometimes sticks, othertimes not

cunning canyon
#

is it about zoom by scrolling wheel

limber skiff
charred monolithBOT
spark pivot
#

lmao

brazen bone
#

Just adblock it then

shut vineBOT
#

@fossil inlet, <t:1730995961:R>: review

glass jasper
#

Did Nuckyz and Elias not add the icon for a NSFW Vc into userVoiceShow?

limber skiff
#

nop

glass jasper
#

ok...

#

Also doesnt show stages?

limber skiff
#

unsure

#

I think it does

fossil inlet
glass jasper
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

marsh spruce
#

where can I find an example of modal buttons doing ui?

rugged spire
fossil inlet
#

is that for server events

rugged spire
#

Yes

#

Fun fact

#

That button doesn't work on Vesktop because it tries to open a blob URI in a new tab

#

Worth making an issue?

fossil inlet
rugged spire
#
f.isPlatformEmbedded ? s.Z.fileManager.saveWithDialog(n.toString(), "discord-event.ics") : window.open(n.toURL(), "_blank")
#

where n is the event object

#

s.Z is likely DiscordNative

fossil inlet
#

yea

#

thats what i figured

#

if i had the time/cared about this

#

id impliment that native func on vesktop

rugged spire
#

This is in webpack module 70877

fossil inlet
#

then just patch it

marsh spruce
rugged spire
#

what are you trying to do

marsh spruce
#

I had a suggest about the group dms thing before,
me and someone else managed to figure out how to patch the button I was talking about before in

#

however we are not sure how to render the group dms in the response to the react button

rugged spire
#

are you talking about the thing in your bio you want discord to make but you know they wont

marsh spruce
#

I assume the response needs to come from the button callback but we are not sure how that would work

rugged spire
#

There is a lot of stuff that will break and generally isn't clean in the button itself

marsh spruce
#

so where should the callback go?

#

the button callback should call a function right?

rugged spire
#

You should be using Discord's own react components

marsh spruce
#

React components like what, their discord react components?
we patched in a button similar to the friends button

rugged spire
#

can you show me an example of where you are talking about

rugged spire
#

@marsh spruce Please just take a look at how MutualGroupDMs does things

marsh spruce
#

did my accquitance render it incorrectly?

#

was the react object supposed to be rendered by something else?

rugged spire
# marsh spruce what do you mean I tried to recreate everything from scratch?

1: don't do https://github.com/nebulamoe/Vencord/blob/main/src/plugins/groupDMs/components/GroupDMsButton.tsx#L4-L17 instead do findByProps with a unique set of those keys
2: There are so many react components that already exist and are better than writing the raw HTML elements every time. Doing that is much easier to read
3: Additionally, hardcoding the icon is a bad idea. You should try using #1293357944498556969 and importing Icons from @webpack/common and using those components
4: MutualGroupDMs code already likely has what you are after and can be easily tweaked for your needs

grave mangoBOT
# rugged spire 1: don't do https://github.com/nebulamoe/Vencord/blob/main/src/plugins/groupDMs/...

GroupDMsButton.tsx: Lines 4-17

const classes = {
    channel: "channel_c91bad",
    container: "container_d91ad9",
    interactive: "interactive_f5eb4b",
    linkButton: "linkButton_c91bad",
    link: "link_c91bad",
    avatarWithText: "avatarWithText_c91bad",
    layout: "layout_ec8679",
    avatar: "avatar_ec8679",
    linkButtonIcon: "icon_fc4f04",
    content: "content_ec8679",
    nameAndDecorators: "nameAndDecorators_ec8679",
    name: "name_ec8679"
};
marsh spruce
#

We're using the memberlist here

marsh spruce
#

or an example?

rugged spire
#

Go to Vencord source code and search for findByPropsLazy( there are tons of examples of that

marsh spruce
rugged spire
#

That is found for you

#

Please just go read through some other plugins

#

It will help a lot

marsh spruce
#

I barely know javascript so what plugins?

rugged spire
#

just go look at https://github.com/Vendicated/Vencord/blob/main/src/plugins/mutualGroupDMs/index.tsx and if you have an IDE such as vscode, you can hover over the functions to see what they do, most of the common webpack finding things explain how they work that way

I don't think I can help further if you're not able to take a look and understand how similar existing plugins work

GitHub

The cutest Discord client mod. Contribute to Vendicated/Vencord development by creating an account on GitHub.

versed fern
#

looking at existing plugins was by far the most helpful thing for me when i made my plugin.

rugged spire
#

This

#

The documentation is effectively the comments on commonly used functions

marsh spruce
rugged spire
#

you can grab the icon using webpack

marsh spruce
#

I see the div path uses icon_fc4f04

rugged spire
#

that suffix should not be relied upon

marsh spruce
#

well it is called the
"Hide Member List"
"Show Member List"

button

rugged spire
#

you need to find a set of keys in the object (same as the prefix of the class name) that are unique and not shared by any other classes object

#

do note you can leave it and it will work fine, it'll just break eventually as those suffixes change

marsh spruce
#

This is what the html renders:

rugged spire
#

here is an example taken from permissionviewer of finding one of these classes; the arguments map to keys of the object

you may notice that I use findByProps directly here, findByPropsLazy is used in the code as it won't look for the object until the properties are used in your code, without that your plugin will try to look for it immediately on start, fail to find it, and crash

marsh spruce
#

I see, so lazy works when the code actually needs it and findbyprops runs on client startup?

rugged spire
#

findByProps does the find immediately

#

which is good for when you are manually checking

marsh spruce
#

so lazy is the way to go then?

rugged spire
#

Yes

#

You should never statically declare a find of any type (props, code in a function, etc) without it being lazy loaded

#

Most of this is more relevant to generally developing a plugin rather than this use-case specifically

marsh spruce
#

aria-label="Hide Member List"
aria-label="Show Member List"

marsh spruce
#
<div class="iconWrapper_fc4f04 clickable_fc4f04 selected_fc4f04" role="button" aria-label="Hide Member List" tabindex="0"><svg x="0" y="0" class="icon_fc4f04" aria-hidden="true" role="img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24"><path fill="currentColor" d="M14.5 8a3 3 0 1 0-2.7-4.3c-.2.4.06.86.44 1.12a5 5 0 0 1 2.14 3.08c.01.06.06.1.12.1ZM18.44 17.27c.15.43.54.73 1 .73h1.06c.83 0 1.5-.67 1.5-1.5a7.5 7.5 0 0 0-6.5-7.43c-.55-.08-.99.38-1.1.92-.06.3-.15.6-.26.87-.23.58-.05 1.3.47 1.63a9.53 9.53 0 0 1 3.83 4.78ZM12.5 9a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM2 20.5a7.5 7.5 0 0 1 15 0c0 .83-.67 1.5-1.5 1.5a.2.2 0 0 1-.2-.16c-.2-.96-.56-1.87-.88-2.54-.1-.23-.42-.15-.42.1v2.1a.5.5 0 0 1-.5.5h-8a.5.5 0 0 1-.5-.5v-2.1c0-.25-.31-.33-.42-.1-.32.67-.67 1.58-.88 2.54a.2.2 0 0 1-.2.16A1.5 1.5 0 0 1 2 20.5Z" class=""></path></svg></div>

idk what I am looking for here

charred monolithBOT
charred monolithBOT
charred monolithBOT
astral bone
#

Ppl love vendroid

shut vineBOT
#

@fossil inlet, <t:1730653179:R>: update all my prs

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
#

This plugin adds easier ways to type the blue letter emojis (:regional_indicator_*:).


Option 1: Autocomplete

Makes e.g. a and aa suggest 🇦 first, b and bb suggest 🇧 first, etc.

https://github.com/user-attachments/assets/8a8dc738-6c55-406c-a57b-078a1354eda3

This will not insert the emoji if e.g. :bb: is typed.

Option 2: Alias

Makes typing e.g. :cc: correct to 🇨. Single letters like :c: don't work to avoid conflicts with 🅰️ and 🅱️.

https://gith...

rugged spire
rugged spire
#

what about reactions?

#

this is much cleaner than textreplace anyway

rugged spire
#

userplugger time

#

this seems fine to me other than that Vencord.Settings.plugins.LetterEmojiShortcut should be replaced with settings.store throughout the whole plugin file

charred monolithBOT
desert cosmos
charred monolithBOT
charred monolithBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
jolly egret
#

and then force push them outside of history so people don't have to pull an extra 100kb every time they clone the repo

fossil inlet
jolly egret
#

oh right forgor we squash merge

fossil inlet
#

@rugged spire i will squash you

clever sierraBOT
# fossil inlet <@259558259491340288> i will squash you

@fossil inlet's Message: @rugged spire i will squash you

3.84% Identity attack 
7.63% Compassion (beta) 
7.84% Sexually explicit 
15.6% Inflammatory 
21.9% Severe toxicity 
24.15% Profanity 
36.81% Affinity (beta) 
54.82% Toxicity 
61.64% Threat ```
Powered by <https://www.perspectiveapi.com/>
fossil inlet
#

it worked

rugged spire
#

were you baiting me into running that

fossil inlet
#

no

#

i mean it was accurate

#

there should be something like vencord bisect to find out which plugin is causing a bug

#

@rugged spire rate idea

charred monolithBOT
still maple
#

I have this tag for it

A binary search can be used to quickly find a specific mod causing trouble, which can be especially useful when logs don't give a conclusive answer to your issue.
Start by removing or disabling half of your mods, then test if the problem still occurs. If it does, remove half of the remaining mods and test again. If it doesn't, add back half of the mods you just removed.
Keep in mind you don't have to stick strictly to halves each time, and may have to enable some library mods like Fabric API out of order.
By repeating this on an increasingly smaller set of mods, you'll find the problematic mod within a few iterations.

#

Making a command to do it automatically like what git bisect do would be 300IQ+ move proving you are 100 parallel universe ahead of us

fossil inlet
fossil inlet
#

@limber skiff can you repro

only seems to happen with stock group icons

charred monolithBOT
long stream
#

(also please turn off desktop audio in obs omfg)

fossil inlet
#

Setting a custom one didn't work

scenic brook
#

Including the music in your screen recording is the fun part

rugged spire
#

idk if I didnt merge in buggy code yet or it just doesnt occur for me

#

guhhhh

limber skiff
#

I'll see later

jolly egret
scenic brook
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds
findByCode("will be removed in v4")
findByCode("[zustand persist middleware]")
mapMangledModule("expression-picker-last-active-view", {
	useExpressionPickerStore: t=>typeof t!="function"?!1:Ia(Function.prototype.toString.call(t),e)...
})
Bad Starts

None

Discord Errors

None

limber skiff
#

bitches

charred monolithBOT
austere talon
#

push a crash fix to main rn

#

why does it even crash

frail skyBOT
#
Bad Patches

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'


**__ConsoleJanitor (found no module):__**
ID: `-`
Match: ```
[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead.

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.


**__ConsoleJanitor (found no module):__**
ID: `-`
Match: ```
[DEPRECATED] `context` will be removed in a future version. Instead use `import { createStore, useStore } from 'zustand'`. See: https://github.com/pmndrs/zustand/discussions/1180.

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Default export is deprecated. Instead use import { shallow } from 'zustand/shallow'.

Bad Webpack Finds
mapMangledModule("useSyncExternalStoreWithSelector:,Object.assign", {
	zustandCreate: e=>typeof e=="function"...
})
mapMangledModule("expression-picker-last-active-view", {
	useExpressionPickerStore: t=>typeof t!="function"?!1:Ia(Function.prototype.toString.call(t),e)...
})
Bad Starts

None

Discord Errors

None

limber skiff
#

okay...

#

nvm that's stable

frail skyBOT
#
Bad Patches

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Default export is deprecated. Instead use `import { create } from 'zustand'


**__ConsoleJanitor (found no module):__**
ID: `-`
Match: ```
[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Default export is deprecated. Instead use import { shallow } from 'zustand/shallow'.

Bad Webpack Finds
mapMangledModule("expression-picker-last-active-view", {
	useExpressionPickerStore: t=>typeof t!="function"?!1:Ia(Function.prototype.toString.call(t),e)...
})
Bad Starts

None

Discord Errors

None

limber skiff
#

nvm...

austere talon
#

make all webpack finds fail and fix any

limber skiff
jolly egret
#

fun!

limber skiff
#

lol

#

I swear they must have forked zustand

#

to disable all their shit logs

fossil inlet
limber skiff
#

v4

long stream
limber skiff
#

the warnings are kinda stupid actually

austere talon
#

u don't have to fork

#

it's more likely they just patched it with pnpm

limber skiff
#

right

austere talon
#

like we patch eslint to make it recognise \i

limber skiff
#

yeah

austere talon
#

nvm

#

later

#

should we make that a build type?

#

force enables every plugin & makes every webpack find fail

#

to detect potential crashes

limber skiff
#

okay I fixed crashing

charred monolithBOT
limber skiff
#

what's the worst that can happen by try catching a hook

#

lets just hope it always errors when it does LOL

austere talon
#

is it like a hook it calls inside patch?

limber skiff
#

yeah

#

there's no escape

charred monolithBOT
austere talon
#

im sure there are more things that could cause crashes

#

maybe we can even automate that test somehow

#

like detect if there are any unusual errors

limber skiff
#

yeah

#

there sure is

#

I think we should have branch specific builds too

#

anyways I'm pushing this to main

austere talon
#

we would have to base it on build id

#

but we cant get that that early can we?

limber skiff
#

nop

austere talon
#

GLOBAL_ENV.SENTRY_TAGS.buildId

long stream
#

build hash you can get from response headers

#

build id you can get from the chunkloader

limber skiff
#

well yes

#

but that's not as early as vencord loads

austere talon
long stream
#

o

charred monolithBOT
limber skiff
#

uhh

#

I guess the bump commit is gonna stay there

#

but lets push the tag another day

austere talon
#

oh i thought u alr did

charred monolithBOT
limber skiff
#

nop

#

I was kinda expecting somethign like this to happen

#

or another plugin to have an issue which we didnt see

limber skiff
#

peak commit

charred monolithBOT
frail skyBOT
#
Bad Patches

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use import { useStore } from 'zustand'.


**__ConsoleJanitor (found no module):__**
ID: `-`
Match: ```
[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead.

ConsoleJanitor (found no module):
ID: -
Match: ```
[DEPRECATED] context will be removed in a future version. Instead use import { createStore, useStore } from 'zustand'. See: https://github.com/pmndrs/zustand/discussions/1180.

Bad Webpack Finds
mapMangledModule("useSyncExternalStoreWithSelector:,Object.assign", {
	zustandCreate: e=>typeof e=="function"...
})
mapMangledModule("expression-picker-last-active-view", {
	useExpressionPickerStore: t=>typeof t!="function"?!1:Ia(Function.prototype.toString.call(t),e)...
})
Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds
mapMangledModule("expression-picker-last-active-view", {
	useExpressionPickerStore: t=>typeof t!="function"?!1:Ia(Function.prototype.toString.call(t),e)...
})
Bad Starts

None

Discord Errors

None

limber skiff
#

ughhh

charred monolithBOT
limber skiff
#

alright finally

charred monolithBOT
limber skiff
#

but not in servers

grizzled halo
#

can someone lock support I cant be bothered dealing with people who cant read

jolly egret
#

or push fixes faster !!!!

#

ITS SO OVER

charred monolithBOT
limber skiff
#

LOL

#

NO WAY

#

they havent pushed stable have they?

jolly egret
#

yes

#

its on stable

limber skiff
#

oop

charred monolithBOT
limber skiff
#

@granite wharf tell people to update

jolly egret
#

All fixed?

limber skiff
#

yeah

granite wharf
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

jolly egret
#

maybe lets... wait an hour

limber skiff
#

yeah

#

I fixed the crash partially at first 😭

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

but either way most people wouldnt have updated in time

#

as soon as update is pushed the join activity goes down lmao

#

I just remembered we have a popup to update to Vencord when it crashes

#

I hope that still works

grizzled halo
#

it did, i got it

limber skiff
#

that has to be the reason a lot of people dont even complain

#

since a lot wouldnt know they had to use the installer or something to fix it

granite wharf
#

just keep it broken so we gain 5k members like that one time

grizzled halo
#

Break things to inflate the member count

glass jasper
austere talon
#

should release browser extension if its on stable now

charred monolithBOT
sterile oak
scenic brook
#

If they're joining because their vencord is crashing they're not gonna see it

rugged spire
rugged spire
glass jasper
rugged spire
#

ah fuck

#

this is why I dont bother updating

austere talon
#

updates now are all just: added new ai slop

#

even dotnet 9

rugged spire
#

vscode loves shoving so much useless fucking info in my face

fossil inlet
rugged spire
fossil inlet
#

needed to find out what plugin was causing an issue so i made this

#

normally, you would reload after pressing each button but i didnt want the video to be five years long

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

fossil inlet
#

stock discord bug my beloved

rugged spire
#

LMAO

#

is this fr or fr

fossil inlet
#

the stock discord bug being you cant filter by tags in forum channels you dont have the permission to set

rugged spire
#

lol wtf

#

is that true

fossil inlet
#

@limber skiff was trying to fix viewicons opening when it shouldnt with gdm icons

#

and ran into weird issue

#

this patch

        {
            find: /\.recipients\.length>=2(?!<isMultiUserDM.{0,50})/,
            replacement: {
                match: /null==\i\.icon\?.+?src:(\(0,\i\.\i\).+?\))(?=[,}])/,
                replace: (m, iconUrl) => `${m},onClick:()=>$self.openAvatar(${iconUrl})`
            }
        },
#

applies to module 515753

#

but when i add this patch

#

which only matches module

#

266076

#
        {
            find: "[\"aria-hidden\"],\"aria-label\":",
            replacement: {
                match: /(src:(.*?))(?=})/,
                replace: "$1,onClick:()=>$self.openAvatar($2)"
            }
        },
#

the first patch matches module 266076 and fails with a syntax error

#

nevermind

#

i found it out