#👾-core-development

1 messages · Page 163 of 1

charred monolithBOT
lime stone
#

huh?

#

the point of .gitkeep is to create a folder with no files

spark pivot
#

!path/to/folder

lime stone
#

oh

#

what's that do

spark pivot
#

! Specifies to not ignore this file

#

Or folder in this case

#

Either way .gitkeep is the same thing just lesser-known

lime stone
#

but it's not ignored anyway wdym

spark pivot
#

Empty folders don’t get pushed

lime stone
#

i don't think that would fix it?

#

i don't think git can keep track of folders

#

do you know for sure it works?

spark pivot
#

You can specify folders in gitignore so it should work

lime stone
#

they refer to files under the folder

#

also they have a trailing slash, don't they?

#

i will just test xd

spark pivot
#

You can specify folders in gitignore any way you want

#

You can do no slashes if it’s top level

lime stone
spark pivot
#

Well I may be stupid

brazen bone
#

Git does not track folders at all

lime stone
#

that's why you use .gitkeep

#

🤦‍♀️

austere talon
#

you can just put a .gitignore in the folder you want it to keep.

#

.gitkeep is just a random convention that is not standardised in any way. you're adding a random file and pretending that it's a special git file - it's not

#

you could also create a file called shiddpooofart and it'd be the exact same

#

normally when you push an empty folder, it's because this folder holds something like build artifacts or other content that shouldn't be in version control

so by adding a .gitignore in the folder, you can make that gitignore ignore all the files and make the purpose of the folder clearer. it's a win win

or better yet add a README file to the folder to explain its purpose and why it's empty

charred monolithBOT
charred monolithBOT
charred monolithBOT
brazen bone
#

I think I'm gonna give that tex plugin request a shot

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
frail skyBOT
#
Bad Patches

Decor (had no effect):
ID: 688318
Match: /(?<=TryItOut:\i}\),)(?<=user:(\i).+?)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

vcDecorAvatarDecoration is not defined

#
Bad Patches

Decor (had no effect):
ID: 688318
Match: /(?<=TryItOut:\i}\),)(?<=user:(\i).+?)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

vcDecorAvatarDecoration is not defined

limber skiff
#

@junior olive IT'S OVER

#

decor is completely dead, 100% patched no way tofix!!!!

#

jokes aside this is not good

vcDecorAvatarDecoration is not defined

junior olive
limber skiff
#

this is because one patch depends on another

junior olive
#

Feel free to have a look

limber skiff
#

it should be a group unless that did not work

junior olive
limber skiff
#

oh

#

It might

#

you are right

#

it does

#

good catch

charred monolithBOT
limber skiff
#

oh yeah easy fix

#

it's just because they allow per guild decoration now

#

so they added guildId to this function

charred monolithBOT
#

89367e3 WebContextMenus: fix copying images - Vendicated
bc0a550 MessageLinkEmbeds: fix erroring on some invalid... - Vendicated
a501da6 MessageLinkEmbeds: fix group dm support, improv... - Vendicated
7b96071 fix ImageZoom patch (#2181) - Syncxv
c3030bb MuteNewGuild -> NewGuildSettings; add 'show all... - MopigamesYT

limber skiff
#

@austere talon I'm not gonna push to main yet if you want to do some stuff soon

charred monolithBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

brazen bone
dapper crest
#

Cool looking concept, would like

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
junior olive
#

@limber skiff we love

limber skiff
#

yeah it's fixed already

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
rugged spire
#

I've recently seen quite a few requests on injecting bot/client-side messages into channels.
Unfortunately, due to my own adventures into this, I've found doing this is unreliable, as Discord wipes the client-side messages when (re)loading a channel (and other stuff)
I propose an idea of a client sided message API within Vencord, so plugins can inject client-sided information messages, that don't disappear (until client restart)
Messages should look like normal non-ephemeral messages with this system, as there are cases where you want these to not be so.... obvious (and to not be so easy to dismiss and other stuff)
A system to register new message types would be useful for some kinds of system messages (see the VoiceChannelLog stuff I'm working on, I can't hijack the GDM stuff for this that well)
I have no idea how Discord's own embeds for invite links work, but a system to append information like that to messages created with this API would be useful
This could probably be implemented by stealing some code from the MessageLogger plugin no it cant really
Comments, ideas, code, and brain dumps are appreciated

austere talon
#

what's the use case

#

VoiceChannelLog
don't use messages. have your own log with a modal

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
thick kestrel
#

should I add READMEs to my plugins? I noticed some plugins have them and some don't

austere talon
#

yes

charred monolithBOT
charred monolithBOT
charred monolithBOT
spark pivot
lime stone
austere talon
#

it's actually really easy to accidently do

#

if you're working in a fork and trying to pr from one branch of the fork to another, it always suggests the upstream repo

lime stone
#

but the plugins they added husk

austere talon
#

happened to me multiple times in the past when i was new to github

#

i prd something like "remove useless shit" to microg

lime stone
#

I've accidentally PR'd to my own repo instead of upstream 😭

#

now that is an achievement

odd heath
#

LMAO

#

How do you even do that

odd heath
brazen bone
#

That guy is a genius

#

Should merge that plugin asap

austere talon
odd heath
spark pivot
crude hearth
#

what I dont get is

#

are those guys selling subscription lmao

jagged cloak
#

tf lmao

charred monolithBOT
austere talon
brazen bone
#

Nah that can be trivially done with textreplace I'm pretty sure

charred monolithBOT
thick kestrel
#

not sure if GPL actually disallows such checks, as you do have the source and can remove them

#

perhaps it does

#

IANAL

rugged spire
#

I am already building a log modal

thick kestrel
#

it is incredibly dumb regardless

#

why the fuck are you preventing people from using your dumb Discord mod

charred monolithBOT
thick kestrel
#

lol such timing

#

I replied just as you removed the message

rugged spire
#

lmao

still wasp
thick kestrel
#

best mode

still wasp
#

Lies

thick kestrel
#

absolute and objective truths

rugged spire
#

Compact mode but slightly larger profile pictures and hide repeating names please :3

thick kestrel
#

you can change the size of profile pictures with Compact++

#

they are also slightly larger by default

#

as you can see in the screenshot

#

hiding repeating names would be ugly and why so no (though I did start Compact++ as a reskin of Cozy mode instead of Compact mode which functioned like this, but then I realized changing Compact mode works better (surprise))

brazen bone
#

Yeah it's pretty ugly ```css
.message__80c10:not(.groupStart__56db5) > .contents_f41bb2 > .header__39b23 { visibility: hidden }

rugged spire
thick kestrel
#

since the README is not finished, to change avatar size you need to put:

:root {
    --compactplusplus-avatar-size: 22px;
}

into QuickCSS to change the size from the default 20px, replacing 22px with your desired value

rugged spire
#

aaaa
aaaaaa

#

hm

thick kestrel
#

changing the size could be achieved on regular, unthemed Compact mode as well, with a CSS snippet, but unthemed Compact mode is unappealing with how it works in general

rancid dragon
#

why are you unable to clone unicode emojis? does discord use a different format for saving the images or something?

austere talon
#

svg

#

and cloning them is kinda nonsense

rancid dragon
#

honestly my use case is spamming reactions so i guess that's fair

austere talon
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
#

i have a confession
i am learning react because of vencord

#

is this healthy for me

brazen bone
#

Same tbh

limber skiff
#

yes

brazen bone
#

Well, learning is learning

limber skiff
#

it is

rugged spire
#

Glad to see I'm not the only one who has/had no idea about React

limber skiff
#

you will learn basics of react and also how the compiled code works with it

rugged spire
#

i will also confess i never learned react because big jank bloat apps were made with it and that scared me away from it

limber skiff
#

so how your JSX/TSX looks like behind the scenes

brazen bone
#

Discord totally counts as big jank bloat app

limber skiff
#

it does

lime stone
#

react is bad l

rugged spire
#

this is a horrible question but

how do I get something to rerender once I update a log (idrc how it works)
what i am trying to do is reload the voice channel log thing i'm building when the log gets updated (the log gets updated by a flux event)

#

i probably have to make some kind of store thing don't I

brazen bone
#

I think useSyncExternalStore is meant for that? But yeah making a proper store is better

rugged spire
#

trolley Yeah I already kinda tried that and I think i'm doing something wrong

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
#

Describe the bug

OS language is set to English, and has both English and French enabled for spell checking.

French is correctly detected on Discord, but not on Vesktop, even when Vesktop's language is set to French.

OS is Arch Linux on KDE Wayland, and uses hunspell spell checking packages

Additional context

Spell check language is set in index.ts with VesktopNative.spellcheck.setLanguages(window.navigator.languages);.

Hardcoding ["fr-FR"] works, and logging `w...

charred monolithBOT
charred monolithBOT
charred monolithBOT
#

locale -a gives me the following output, even after rerunning locale-gen

C
C.utf8
en_US.utf8
fr_FR.utf8
POSIX

However, adding French in Regional Settings > Region & Languages > Language under English via KDE System Settings sets the $LANGUAGE env variable to en_US:fr and fixes the problem.

window.navigator.languages is now properly populated with both languages, and spell checking works as intended.

I must warn that KDE recommends against using other lang...

rugged spire
#

wish i found this sooner

#

current code is

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
turbid hatch
# charred monolith

@austere talon this is actually true, just running it from explorer is prompting me for admin rights, i havent tested any further than that

#

and of course running it from the command line does the same

glass jasper
turbid hatch
#

why tf are you doing that

glass jasper
#

idk

#

because this computer is for experimenting with stuff, so I actually use that account quite often

turbid hatch
#

wait a minute

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
brazen bone
#

Is there any specific process to get a pr reviewed or is it just patience and nagging?

rugged spire
#

patience and nagging

still wasp
brazen bone
#

I see

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
charred monolithBOT
brazen bone
#

But why?

charred monolithBOT
still wasp
charred monolithBOT
charred monolithBOT
charred monolithBOT
rugged spire
charred monolithBOT
rugged spire
#

@austere talon @crude hearth Do you consent to being blamed for me stealing code from ReviewDB to get a clickable avatar (this is really a cry for advice on how to do this properly)

crude hearth
#

I dont really care trolley

rugged spire
#

Great response. Anyway

fair wolf
#

Quick question for NoReplyMention couldn't we make more options than just user id, like per guild role, or by looking at the user name?
(should I do a PR?)

rugged spire
#

User allowlist API eta wen

fair wolf
rugged spire
#

But there should be IMO

#

I know I proposed something dumb a few days ago a user allowlist api would be great

fair wolf
rugged spire
#

Let me guess, rules say staff mustn't be reply pinged or something?

fair wolf
fair wolf
rugged spire
fair wolf
fair wolf
# fair wolf

Like adding this features to the existing plugins shouldn't be that hard

charred monolithBOT
charred monolithBOT
fair wolf
#

May I create a blank issue for the allow/deny list API?

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
rugged spire
austere talon
#

tbh i looked at that pr but didn't understand what it's supposed to do

rugged spire
#

it's a slight tearing effect?

#

idk how to describe it

#

just

#

watch the video carefully

#

especially around line edges

austere talon
#

i can't repro the video

#

doesn't happen for me

rugged spire
#

get a system level magnifier

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
#

How is this different from the existing delete message button?

The Delete Message button deletes the message you sent from everyone. The difference of this plugin is that it only deletes the message from your client, it does not send any API requests.

what's the use case for this even

Sometimes our friends and other people can send nsfw or disturbing images/content in a text channel that we don't want to see in a public place. This plugin removes the message f...

#

It would be nice if Vesktop had a single Universal Binary app for macOS. It would take away some confusion for average users since most macOS apps are distributed as Universal Binaries. Since it's architecture independent, it makes sharing across systems a lot easier. Compared to Vesktop, the official client — which is Universal — is only ~150MB larger.

If this isn't possible, making the installation instructions for macOS a bit more informative in the readme would be a good compromise.

#

making the installation instructions for macOS a bit more informative in the readme would be a good compromise

  1. this will stop being an issue once we add Vesktop to the vencord.dev site, because it can obtain your architecture from your browser to provide the right download
  2. feel free to contribute README documentation improvements
charred monolithBOT
odd heath
charred monolithBOT
charred monolithBOT
charred monolithBOT
#

Is your feature request related to a problem? Please describe.
An issue I've come across is the lack of middle click to scroll functionality within the Linux version of Vesktop. Usually this isn't something that matters to me but for browsers/PWAs I like being able to scroll fluidly without stepped motions.

Describe the solution you'd like
Either add an option to replace middle click to paste with scrolling or an option remove the middle click to paste functionality (so I can use...

charred monolithBOT
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
charred monolithBOT
#

(Fedora 39 KDE)
I had this problem while using the flatpak, installing the rpm resolved that exact issue. I am now able to see an unread notifications counter on the app icon in the taskbar. Unfortunately however, the system tray icon does not have this feature for me, is it supposed to? I normally have Discord minimized to the tray, so the taskbar app icon badge is not very useful for me. :alien:

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
#

Describe the bug

When clicking on a link inside the app, the link opens within Firefox or whatever your chosen browser is, but fails to bring the window to the foreground and focus it.

To Reproduce

Steps to reproduce the behavior:

  1. Send a message that contains a link
  2. Click it
  3. Browser is not brought to foreground, but link is opened in the background

Expected behavior

The browser is focused upon the link being clicked.

**Desktop (please complete the fol...

swift fjord
#

a staging branch for your staging branch

charred monolithBOT
austere talon
#

i want to require pr checks to pass before merging

#

but that also means you cannot push at all without a check pass

#

so nookies first pushes to dev2, waits for checks to pass then pushes to dev

swift fjord
#

i don't even use branch protections bc they interfere with my crowdin setup

charred monolithBOT
charred monolithBOT
odd heath
#

yop

charred monolithBOT
glass jasper
#

doesnt work on PTB either

odd heath
#

ptb is basically canary

glass jasper
#

true, just stating facts tho

rugged spire
#

why do people use PTB

glass jasper
#

testing

rugged spire
#

true

charred monolithBOT
#

Content

So, I was on the Vencord discord server, and brought an idea for a plugin.
An allow/deny list for the NoReply plugin, which brought @sqaaakoi to comment that there should be an API.

I decided to bring it upon myself to create such request, which since I've kinda dealt with this issue in the past I wanna try my best to help.

What would be included?

Allow/Deny listing:

  • By ID
  • By Name Substring
  • By Guild Role

Priority

I think a sensible priority wou...

#

When I mentioned API, I was also thinking

  • Settings component for managing these lists (maybe we could steal FriendRow or the report menu user component as it has a button)
  • Auto-generated context (sub)menu on users (and roles) to manage them being in lists

I am not sure how it would be stored, but I think storing roles should be separate from the list of users

rugged spire
#

can you store an array as a setting

limber skiff
#

if you make it private yea

#

take a look at ignore activities

rugged spire
#

👀

charred monolithBOT
#

yep we already discussed about this in the past

my basic idea was to allow plugins to define white-/blacklists with a function similar to defineSettings:

const lists = defineLists({
	userWhitelist: {
		type: "user",
		name: "Users to log messages from"
	}
})

const isUsedWhitelisted = lists.userWhitelist.includes(someId);

this would then automatically add a context menu and settings ui for you and
![image](https://github.com/Vendicated/Vencord/assets/45497981/b86596...

#

yep we already discussed about this in the past

my basic idea was to allow plugins to define white-/blacklists with a function similar to defineSettings:

const lists = defineLists({
	userWhitelist: {
		type: "user",
		name: "Users to log messages from"
	}
})

const isUsedWhitelisted = lists.userWhitelist.includes(someId);

this would then automatically add a context menu and settings ui for you and ![image](https://private-user-images...

charred monolithBOT
charred monolithBOT
#
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
rugged spire
#

so, regarding discord's new experimental mod view feature, I found that it uses standard API calls (not specific to the mod view feature) such as search tabs (I don't exactly know what this is, could be used in mobile) and audit log
the check to see if you can open it is entirely client side and I've developed a bypass for the guild member safety permission requirement
Would this be welcome as a plugin? I've currently got it named as "ModViewBypass".~~
additionally, how can I make it update the override for the 2023-08_guild_member_mod_view experiment to Treatment 1 so it works everywhere (or should I patch the check for that?)~~ I patched the check

charred monolithBOT
charred monolithBOT
charred monolithBOT
#

Discord Account

piranha2

What happens when the bug or crash occurs?

What is the expected behaviour?

It should show the reviews

How do you recreate this bug or crash?

  1. Log on to Discord
  2. Click on your profile

Errors

Vencord   React ErrorBoundary  Component Stack 
    at https://discord.com/assets/60053.c096bdf2ac7f79fc4994.js:1:267842
    at r
    at div
    at ig (VencordWeb:155:20988)
    at oa (VencordWeb:155:20120)
    at Zs (VencordWeb:153:...
charred monolithBOT
limber skiff
#

@crude hearth YOU

#

I was fixing it rn

crude hearth
limber skiff
#

can you test my fix instsead?

crude hearth
#

My lesson started sadly

#

Cant open pc now

limber skiff
#

okay

#

I will leave it here

#

appreciate if you can test it (since you know how it should work)

#

it's more powerful cuz it creates a proper channel instance

crude hearth
#

Yeah

#

Tbh as long as it allows you to use emojis

#

Its fine

#

Idk why I put 256 to flags but if you put that should theoritically same

limber skiff
#

yeah?

#

flags is prob not needed

#

hmm actually

#

there are a bunch of undocumented

crude hearth
#

Ig its fine

limber skiff
crude hearth
limber skiff
#

not needed then

charred monolithBOT
limber skiff
#

lol

crude hearth
#

Lmao

charred monolithBOT
crude hearth
#

I literally just press ed close pr

limber skiff
#

lmaoo

#

okay it works perfectly

charred monolithBOT
#

Is your feature request related to a problem? Please describe.
Clicking on a notification currently just focuses the Vesktop window, but clicking on a notification means I'm interested in it's content.

Describe the solution you'd like
The Vesktop window opening on the page of the message that triggered the notification.

Describe alternatives you've considered
Manually moving to the correct channel after vesktop opens

austere talon
crude hearth
limber skiff
#

should it block guild emojis?

crude hearth
#

ig it will show the current server in top

#

but doesnt really matter

austere talon
#

it shouldnt show custom emotes no?

#

unless you are admin or reviewdb donor

crude hearth
#

I looked into that last time

#

if you have nitro all emojis become available

#

if you dont none

austere talon
#

mmh so its normal but server tells you you cant use them?

crude hearth
#

yeah

#

its limited server side

austere talon
#

@limber skiff maybe you can add emote hiding

#

if u wanna

limber skiff
#

how so?

crude hearth
#

is that even possible

austere talon
austere talon
limber skiff
#

oh lol

crude hearth
#

then looked into fakenitro

austere talon
#

i was just suggesting it in case you wanted to

crude hearth
#

and gave up

austere talon
#

but its not important

austere talon
#

from reviewdb

crude hearth
#

oh

#

yop

austere talon
#

discord user yes

crude hearth
#

if you have flag 4

#

actually 1<<2 I think

#

you can use

austere talon
#

anyway iwant to make some refactors to vencord soon

#

mainly rewrite the settings api from scratch

crude hearth
limber skiff
#

they are crazy complicated

austere talon
#

not that lmao

#

the main issue is that it's awful to use settings in the main process

#

vesktop has a very similar settings api but it's much more polished and has reactivity in both processes

limber skiff
#

oh I see

austere talon
#

vesktop alsp has its settings api reusable by being a class

#

i plan to introduce a second kind of setting "native settings"

#

to securely store data from the main process without the renderer process being able to touch it

#

for example to specify folders that a plugin can read from via ipc

austere talon
austere talon
#

this is kinda cool

#

with that new pr and some css

charred monolithBOT
charred monolithBOT
austere talon
#

how did noone ever complain about that before

rugged spire
austere talon
#

now it is

#

oh

#

explode

rugged spire
#

reminder i am the same person who made a PR to fix an offset issue like this that 99% of users will not even realise is an issue

#

this is infinitely more obvious

austere talon
#

idk

rugged spire
#

definitely less visually distracting and more inline with other parts of the discord UI

austere talon
#

i stole that from spotify

rugged spire
#

the colour change hover effect is ehhhhhh not great

rugged spire
austere talon
#

yea

charred monolithBOT
austere talon
#

dont mind me

rugged spire
austere talon
#

@limber skiff so about your nitro permissions pr

#

what was the reason again that you need to change the patch

#

you said something about not clearing content

#

but i dont understand, how do you keep the content for a cancelled edit

limber skiff
#

i just copied we how do for send events

#

it just works lol

austere talon
#

wha

limber skiff
#

but the place we patched needed to change

austere talon
crude hearth
#

merge into main when

austere talon
#

later

limber skiff
austere talon
#

yes but

#

why is the old patch not okay

#

it works but you said something about clearing input

limber skiff
#

we cant return the object for not clearing in the old patch

austere talon
#

but you do clear, no?

rugged spire
#

also idk if anyone saw but mod view (real)

limber skiff
#

that actually the opposite haha

#

when we return that it doesnt clear the edit content

austere talon
#

wha

limber skiff
#

it just cancels it being disabled so you can modify and try again

#

check out the pr and try it for you to see

#

just remove the permission check to make it always happen

austere talon
#

do we want to call this? @limber skiff

#

onCancel

limber skiff
#

uhh

#

no idea

limber skiff
#

I'm very tired rn, prob going to sleep soon

austere talon
#
r.default.dispatch({
    type: "MESSAGE_END_EDIT",
    channelId: e,
    response: t
})
#

i think we do?

limber skiff
#

nono

#

I mean

#

actually no

#

if cancel is true the edit didnt end

#

dsfdsdsfds

austere talon
#

isnt it like 6am for you

limber skiff
limber skiff
austere talon
#

HORROR

#

why are you still awwake 😭

#

go sleep

limber skiff
#

DJFHDJSFHSFDS

#

I stayed awake all night

austere talon
#

FakeNitro needs a refactor badly

crude raptor
#

good god

lime stone
#

HORROR

limber skiff
#

lots of line but organized

austere talon
#

NO

#

you have become devilbro

limber skiff
#

NO

#

it could be separated in files yes

austere talon
#

uhh

#

your permission check is borked

#

im fairly certain i have embed perms here

limber skiff
#

wtf

#

that's discord fault

#

😔

austere talon
#

nop

limber skiff
#

what's wrong?

austere talon
#

channelID???

#

it takes a channel instance

limber skiff
#

OH

#

HORROR

#

we need proper typings on that I forgot

austere talon
#

works

#

i think

limber skiff
#

and I didnt test it permission check...

austere talon
#

lets find some server where i dont have perms

#

yep works

#

btw why did you use setImmediate for resolve false

#

also sleepeeee

austere talon
#

oh

#

right

#

cause it still fires for confirm

limber skiff
#

onCloseCallback runs before onConfirm adn others

austere talon
#

also you forgot about dms in your perm checks

limber skiff
#

horror.........

#

my brain did not work properly DFHDSF

austere talon
#

CLASS METHODS CANT ACCESSSS

verbal pumice
charred monolithBOT
austere talon
#

i still think these should be false not true

limber skiff
#

I literally just copied how the send api was made and it worked

charred monolithBOT
austere talon
#

u must eep

#

well anyway i made the match easier

#

ALSO WE HAVE TO UPDATE VENCORD HELPER TO SUPPORT _api and _core paths

#

😭

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
#

5e7b4e9 SpotifyControls: export album cover as CSS vari... - Av32000
b9d0a1c SpotifyControls: fix seekbar grabber alignment - Vendicated
27696ed whoReacted: fix reaction count being off by one... - WackyModer
ed5e1be Add permissions checks for FakeNitro actions (#... - Nuckyz
76de8c4 feat(plugin) FakeNitro: Allow customising hyper... - LualtOfficial

limber skiff
#

@austere talon what about the stickers

austere talon
#

welp

#

can add in the future

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
rugged spire
austere talon
charred monolithBOT
austere talon
#

oh i read it wrong

lime stone
charred monolithBOT
rugged spire
charred monolithBOT
charred monolithBOT
charred monolithBOT
limber skiff
charred monolithBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

FakeNitro (had no effect):
ID: 412745
Match: /(?<=isDiscoverable:\i,emojiComesFromCurrentGuild:\i,.+?}=(\i).+?;)(.*?return )(.{0,1000}\.Messages\.EMOJI_POPOUT_UNJOINED_DISCOVERABLE_GUILD_DESCRIPTION.+?)(?=},)/

NotificationVolume (had no effect):
ID: 895737
Match: /onloadeddata=\(\)=>\{.\.volume=/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
austere talon
# frail sky

maybe that error is related to the horror fakenitro spam

brazen bone
#

What's horror fakenitro spam?

austere talon
brazen bone
#

Oh, that

limber skiff
#

the scary error is my fault

#

it doesn't cause issues cuz I have a try catch I will fix it soon

limber skiff
#

I need to somehow make it more stable

austere talon
#

lmao

#

what does it do

#

maybe i can help

#

not now

#

tmrw

limber skiff
#

it's not because it's hard

#

It's because the code there sucks

#

it just adds the fake nitro emoji message to fake emojis

#
let o = e=>{
    let {isPremium: t, hasJoinedEmojiSourceGuild: n, isUnusableRoleSubscriptionEmoji: l, emojiComesFromCurrentGuild: i, isDiscoverable: a} = e
      , s = "Custom Emoji Popout";
    return t && !n && a ? s = "Custom Emoji Popout (Cross-Server)" : t || !n || l ? !t && !n && (s = a ? "Custom Emoji Popout (Upsell Not-Joined Cross-Server)" : "Custom Emoji Popout (Soft Upsell)") : s = i ? "Custom Emoji Popout (Upsell Joined Current-Server)" : "Custom Emoji Popout (Upsell Joined Cross-Server)",
    s
}
  , u = e=>{
    let {isPremium: t, hasJoinedEmojiSourceGuild: n, isUnusableRoleSubscriptionEmoji: l, isDiscoverable: i, emojiComesFromCurrentGuild: a, userIsRoleSubscriber: s, isRoleSubscriptionEmoji: o, shouldHideRoleSubscriptionCTA: u, onOpenPremiumSettings: d} = e
      , c = null;
    let {fakeNitroNode} = e;
    return Vencord.Plugins.plugins["FakeNitro"].addFakeNotice(1, c = t ? n ? o ? u && l ? r.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_PURCHASE_UNAVAILABLE_DESCRIPTION : l ? s ? r.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_UPGRADE_UPSELL_DESCRIPTION : r.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_PURCHASE_UPSELL_DESCRIPTION : r.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_SUBSCRIBED_DESCRIPTION : a ? r.default.Messages.EMOJI_POPOUT_PREMIUM_CURRENT_GUILD_DESCRIPTION : r.default.Messages.EMOJI_POPOUT_PREMIUM_JOINED_GUILD_DESCRIPTION : i ? r.default.Messages.EMOJI_POPOUT_PREMIUM_UNJOINED_DISCOVERABLE_GUILD_DESCRIPTION : r.default.Messages.EMOJI_POPOUT_PREMIUM_UNJOINED_PRIVATE_GUILD_DESCRIPTION : n ? u && l ? r.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_PURCHASE_UNAVAILABLE_DESCRIPTION : l ? s ? r.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_UPGRADE_UPSELL_DESCRIPTION : r.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_PURCHASE_UPSELL_DESCRIPTION : a ? r.default.Messages.EMOJI_POPOUT_CURRENT_GUILD_DESCRIPTION : r.default.Messages.EMOJI_POPOUT_JOINED_GUILD_DESCRIPTION : i ? r.default.Messages.EMOJI_POPOUT_UNJOINED_DISCOVERABLE_GUILD_DESCRIPTION : r.default.Messages.EMOJI_POPOUT_UNJOINED_PRIVATE_GUILD_DESCRIPTION.format({
        openPremiumSettings: d
    }), !!fakeNitroNode?.fake)
}
#

it's a fucking giant ternary

#

but now not anymore


  , d = e=>{
    let {isPremium: t, hasJoinedEmojiSourceGuild: n, isUnusableRoleSubscriptionEmoji: l, isDiscoverable: i, emojiComesFromCurrentGuild: a, userIsRoleSubscriber: s, isRoleSubscriptionEmoji: u, shouldHideRoleSubscriptionCTA: d, onOpenPremiumSettings: c} = e
      , f = null;
    if (t) {
        if (n) {
            if (u)
                f = d && l ? o.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_PURCHASE_UNAVAILABLE_DESCRIPTION : l ? s ? o.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_UPGRADE_UPSELL_DESCRIPTION : o.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_PURCHASE_UPSELL_DESCRIPTION : o.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_SUBSCRIBED_DESCRIPTION;
            else {
                let {enabled: e} = r.NitroBadgeOnEmojiHoverExperiment.getCurrentConfig({
                    location: "_getEmojiPopoutDescription_1"
                });
                f = e ? a ? o.default.Messages.EMOJI_POPOUT_PREMIUM_CURRENT_GUILD_DESCRIPTION_V2 : o.default.Messages.EMOJI_POPOUT_PREMIUM_JOINED_GUILD_DESCRIPTION_V2 : a ? o.default.Messages.EMOJI_POPOUT_PREMIUM_CURRENT_GUILD_DESCRIPTION : o.default.Messages.EMOJI_POPOUT_PREMIUM_JOINED_GUILD_DESCRIPTION
            }
        } else {
            let e = r.NitroBadgeOnEmojiHoverExperiment.getCurrentConfig({
                location: "_getEmojiPopoutDescription_2"
            }, {
                disable: i,
                autoTrackExposure: !i
            }).enabled ? o.default.Messages.EMOJI_POPOUT_UNJOINED_PRIVATE_GUILD_DESCRIPTION_V2 : o.default.Messages.EMOJI_POPOUT_PREMIUM_UNJOINED_PRIVATE_GUILD_DESCRIPTION;
            f = i ? o.default.Messages.EMOJI_POPOUT_PREMIUM_UNJOINED_DISCOVERABLE_GUILD_DESCRIPTION : e
        }
    } else if (n)
        f = d && l ? o.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_PURCHASE_UNAVAILABLE_DESCRIPTION : l ? s ? o.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_UPGRADE_UPSELL_DESCRIPTION : o.default.Messages.ROLE_SUBSCRIPTION_EMOJI_POPOUT_PURCHASE_UPSELL_DESCRIPTION : a ? o.default.Messages.EMOJI_POPOUT_CURRENT_GUILD_DESCRIPTION : o.default.Messages.EMOJI_POPOUT_JOINED_GUILD_DESCRIPTION;
    else {
        let e = r.NitroBadgeOnEmojiHoverExperiment.getCurrentConfig({
            location: "_getEmojiPopoutDescription_3"
        }, {
            disable: i,
            autoTrackExposure: !i
        }).enabled ? o.default.Messages.EMOJI_POPOUT_UNJOINED_PRIVATE_GUILD_DESCRIPTION_V2 : o.default.Messages.EMOJI_POPOUT_UNJOINED_PRIVATE_GUILD_DESCRIPTION.format({
            openPremiumSettings: c
        });
        f = i ? o.default.Messages.EMOJI_POPOUT_UNJOINED_DISCOVERABLE_GUILD_DESCRIPTION : e
    }
    return f
}
#

it's easier to do now I think 🙏 🙏 🙏

#

wait I got huge idea

#

I could just wrap that function call and use it's return

#

instead of modifying the return

austere talon
#

WHAT IS THAT

limber skiff
#

then I dont even need to create fakeNitroNode variable

limber skiff
#

this is so much better

#

wait it's a damn arrow function

#

I hate

charred monolithBOT
austere talon
#

cause that's the entire issue

limber skiff
#

hasnt using Headers class just caused issues

#

review db had issues cuz of using it too

#

and we dont seem to use the methods it provides

#

so there isnt really a reason to use it

austere talon
#

the sole issue is that the user script uses ipc to send the request data and it fails to clone the headers instance

limber skiff
#

Is gm polyfiill greasymonkey polyfill?

austere talon
#

yes

#

for userscript

limber skiff
#

I see

austere talon
#

it overrides fetch()

#

with GM_xmlHttpRequest

limber skiff
#

we could just export our own Headers class?

austere talon
#

to bypass csp

austere talon
#

classes can't be cloned

#

just need to edit the gm fetch polyfill to convert headers instances to a plain object

limber skiff
#

I see

#

if we use greasymonkey fetch to bypass csp, why doesnt like decor work for example

#

or it does work in firefox userscript?

limber skiff
charred monolithBOT
charred monolithBOT
#

Vesktop 1.5.0 for ARM64 on Mac is described as "damaged" when attempting to open application.

To reproduce:
Downloading either the Vesktop 1.5.0 ARM64 Mac .dmg or the .zip, then dragging Vesktop into the Applications folder, then opening it opens a pop-up that says "Vesktop is damaged and can't be opened. You should move it to the bin." And does not open

Expected behaiour:
Opening Vesktop app should open and show up as an "apple" app in activity monitor.

Screenshots:
...

charred monolithBOT
still wasp
#

I made a modification for showmeyourname, should i pr it?

crude hearth
charred monolithBOT
limber skiff
#

yes it is lovely

charred monolithBOT
rugged spire
uncut glen
rugged spire
uncut glen
rugged spire
#

Also idk if i fucked up decoding it but some of it looked jibberish when I ran it through node repl to decode it

grave mangoBOT
uncut glen
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
uncut glen
lime stone
#

you forgot the /nft tag

charred monolithBOT
uncut glen
charred monolithBOT
lime stone
austere talon
#

yes its not always correct unfortunately

#

theres no way to just get online count

#

you can only get online count from the channel member list

#

this thing

#

so the way the tooltip works is that it just picks the first channel in the server that you can access

#

and uses member count of that

#

if you have a better solution thatd be appreciated

#

well we could definitely use this but i think it only works for discovery servers probably

#

its good enough for now cause 99% of the time first channel you can access will be world accessable

jagged cloak
#

i didnt even notice xd

#

thought it was discord addition t b h

austere talon
#

do you mean this

jagged cloak
#

member count in tooltip lol

austere talon
#

wha

#

vencord never had that until i added it just now

jagged cloak
#

yeah i thought that was a discord update until i realized i was still on devbranch

austere talon
#

why does it sometimes go to low 😭

shy veldt
#

so joever

jagged cloak
#

mildly

shy veldt
jagged cloak
#

whatd they change this time

shy veldt
#

idk

austere talon
#

literally all of those modules are lazy loaded dziurwa

shy veldt
lime stone
shy veldt
#

i wonder what they did

charred monolithBOT
austere talon
#

guh this is so painful

shy veldt
#

btw besties

#

one patch broke

#

if not more idk i dont have every plugin enabled

charred monolithBOT
austere talon
#

okay enough forcepushing for today

austere talon
shy veldt
#

but someone needs to run that

#

🙄

austere talon
#

i just did

#

🙄

#

[Page Error] [Error: ReferenceError: za is not defined
at $n (VencordWeb:6:11668)
at ls (VencordWeb:6:12269)
at VencordWeb:6:12352
at [vencord.lazy.get] (VencordWeb:6:8700)
at VencordWeb:6:8842
at [vencord.lazy.get] (VencordWeb:6:8700)
at $a.<computed> [as apply] (VencordWeb:6:9260)
at Jl (VencordWeb:83:104)
at zN (VencordWeb:72:206)
at Object.start (VencordWeb:89:1813)]

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

austere talon
#

got damn quite a lot broke

#

discord needs to quit cookin

brazen bone
#

Why does the online count plugin say 13532 while GuildMemberCountStore says 16616?

austere talon
#

what?

lime stone
#

i ifxed the css

brazen bone
#

Vencord.Webpack.findStore("GuildMemberCountStore").getOnlineCount('1015060230222131221') gives a different number than the online count plugin says

frail skyBOT
#
Bad Patches

MoreUserTags (had no effect):
ID: 48694
Match: /(?<type>\i)=\(null==.{0,100}\.BOT;return null!=(?<user>\i)&&\i\.bot/

RoleColorEverywhere (had no effect):
ID: 523303
Match: /user:(\i),channel:(\i).{0,400}?"@"\.concat\(.+?\)/

ShowHiddenChannels (had no effect):
ID: 713282
Match: /(?<=getChannel\(\i\);if\(null!=(\i))(?=.{0,100}?selectVoiceChannel)/

VoiceChatDoubleClick (had no effect):
ID: 713282
Match: /onClick:(\i)(?=,.{0,30}className:"channelMention".+?(\i)\.inContent)/

CommandsAPI (had no effect):
ID: 785134
Match: /(?<=:(.{1,3})\.displayDescription\}.{0,200}\.source,children:)[^}]+/

NoProfileThemes (had no effect):
ID: 912661
Match: /=(?=\i\.\i\.isPremiumAtLeast\(null==(\i))/

USRBG (had no effect):
ID: 912661
Match: /(\i)\.premiumType/

USRBG (had no effect):
ID: 912661
Match: /(?<=function \i\((\i)\)\{)(?=var.{30,50},bannerSrc:)/

ViewIcons (had no effect):
ID: 912661
Match: /style:\{(?=backgroundImage:(\i&&\i)\?"url\("\.concat\((\i),)/

NewGuildSettings (had no effect):
ID: 19569
Match: /INVITE_ACCEPT_SUCCESS.+?,(\i)=null!==.+?;/

IgnoreActivities (had no effect):
ID: 952862
Match: /HANG_STATUS.+?(?=!\i\(\i,\i\)&&)(?<=(\i)\.push.+?)/

MoreUserTags (had no effect):
ID: 448755
Match: /;return\((\(null==\i\?void 0:\i\.isSystemDM\(\).+?.Types.ORIGINAL_POSTER\)),null==(\i)\)/

NormalizeMessageLinks (had no effect):
ID: 499001
Match: /\.concat\(location\.host\)/

NoMosaic (had no effect):
ID: 910347
Match: /null!==\(\i=\i\.get\(\i\)\)&&void 0!==\i\?\i:"INVALID"/

ShowHiddenChannels (had no effect):
ID: 629218
Match: /(?<=if\(null==(\i))(?=.{0,160}?getHasImportantUnread\)\(\i\))/g

PinDMs (had no effect):
ID: 637035
Match: /(?<=renderDM=\((\i),(\i)\)=>{.*?this.state,\i=\i\[\i\],\i=)((\i)\[\i\]);/

BetterFolders (had no effect):
ID: 160224
Match: /(?<=({className:\i\.guilds,themeOverride:\i})\))/

SecretRingToneEnabler (had no effect):
ID: 345336
Match: /500===\i\.random\(1,1e3\)/

SpotifyControls (had no effect):
ID: 901232
Match: /return ?(.{0,30}\(.{1,3},\{[^}]+?,showTaglessAccountPanel:.+?\}\))/

Decor (had no effect):
ID: 41347
Match: /(?<==)\i=>{let{children.{20,100}decorationGridItem/

Decor (had no effect):
ID: 41347
Match: /(?<==)\i=>{let{user:\i,avatarDecoration.{300,600}decorationGridItemChurned/

Decor (had no effect):
ID: 41347
Match: /(?<=\.Section\.PREMIUM_PURCHASE&&\i;if\()(?<=avatarDecoration:(\i).+?)/

MessageLogger (found no module):
ID: -
Match: THREAD_STARTER_MESSAGE?null===

MoreUserTags (found no module):
ID: -
Match: .hasAvatarForGuild(null==

NSFWGateBypass (found no module):
ID: -
Match: .nsfwAllowed=null

ReviewDB (found no module):
ID: -
Match: showBorder:null

ShowConnections (found no module):
ID: -
Match: {isUsingGuildBio:null!==(

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")
findComponentByCode(".Messages.USER_SETTINGS_PROFILE_COLOR_SELECT_COLOR", ".BACKGROUND_PRIMARY)")
findByProps("modalFooterShopButton")
extractAndLoadChunks(["openAvatarDecorationModal:"], /\.el\("(.+?)"\)(?<=(\i)\.el.+?)\.then\(\2\.bind\(\2,"\1"\)\)/)
extractAndLoadChunks(["stickerInspected]:"], /\.el\("(.+?)"\)(?<=(\i)\.el.+?)\.then\(\2\.bind\(\2,"\1"\)\)/)
LazyComponentWebpack(()=>{let e=Nu(".shopPreviewBanner");return G.memo(e)}...)
findComponentByCode("fileUploadInput,")
findByCode(".customizationSectionBackground")
findByProps("key", "removeBuildOverride")
findByProps("toggleShowAllChannels")

Bad Starts

None

Discord Errors

None

lime stone
#

wtf

austere talon
#

horror

#

whats up with the stores

#

names gone again?

#

well probably some goofy reporter bug

austere talon
#

what ternary what

austere talon
#

true

#

that's just the error we ignored 3 millenia ago

junior olive
#

3 broken decor patches have hit the vencord tester 😭

lofty helm
#

idk how is almost everything working for me

#

considering i had to restart the app because sound broke 😭

lofty helm
junior olive
lofty helm
#

they did a class reroll again 😭

austere talon
lofty helm
#

yes

#

i should probs checkout to dev

#

and use that

austere talon
#

only happens when you click something and can recover

junior olive
#

yeah

austere talon
#

as long as it's not an instant unrecoverable crash it doesn't matter much

junior olive
#

annoying that it broke like half of decor to begin with

austere talon
#

trolley

#

what'd they even do

junior olive
#

it broke both the extract and loads somehow

austere talon
#

did they modernise their bundler config again

lofty helm
#

i guess if css classes got rerolled

junior olive
austere talon
#

fully? or just partially

junior olive
#

this is all decor

lofty helm
#

fully i guess

austere talon
#

discord trying to shut down decor

austere talon
lofty helm
#

no wait partially

austere talon
lofty helm
austere talon
#

all vencord plugin css uses attribute selectors and literally none of it ever broke

junior olive
austere talon
#

horror new decors

junior olive
#

i think some new decors dropped guys..

austere talon
#

i wonder why the extracts broke

#

maybe see what it changed to

junior olive
#

1s

fringe basalt
junior olive
#
796538: function(e, t, n) {
    "use strict";
    n.r(t),
    n.d(t, {
        getDecorationSizeForAvatarSize: function() {
            return u
        },
        openAvatarDecorationModal: function() {
            return l
        }
    });
    var r = n("735250");
    n("470079");
    var i = n("974328")
      , a = n("521588");
    n("495366");
    var s = n("249606")
      , o = n("467006");
    function u(e) {
        return "number" != typeof e ? (0,
        i.getAvatarSize)(e) * s.DECORATION_TO_AVATAR_RATIO : e * s.DECORATION_TO_AVATAR_RATIO
    }
    let l = e=>{
        let {analyticsLocations: t, initialSelectedDecoration: s, isTryItOutFlow: u, guild: l} = e;
        (0,
        i.openModalLazy)(async()=>{
            (0,
            a.getHistory)().location.pathname === o.Routes.COLLECTIBLES_SHOP_FULLSCREEN && (0,
            a.transitionTo)(o.Routes.APP);
            let {default: e} = await n.el("796538@1309:1342").then(n.bind(n, "314945"));
            return n=>(0,
            r.jsx)(e, {
                ...n,
                analyticsLocations: t,
                initialSelectedDecoration: s,
                isTryItOutFlow: u,
                guild: l
            })
        }
        , {})
    }
},
#

i cant debug and fix this rn but it doesnt look all that different

shy veldt
shy veldt
lime stone
lofty helm
#

i think my theme broke...

junior olive
#

i modify a hook to add custom decors everywhere

#

and that's stayed intact

#

so only the ui is broken

#

(i dont want to hear any "this is why u use a website" thanks)

#

this is fine

#

ok so it's literally the extractandloads and the patches(?) that need fixing

#

oh ok so this is the only patch that's broken:

// Remove NEW label from decor avatar decorations
{
    match: /(?<=\.Section\.PREMIUM_PURCHASE&&\i;if\()(?<=avatarDecoration:(\i).+?)/,
    replace: "$1.skuId===$self.SKU_ID||"
}
austere talon
#

fyi the alternative to error boundary is crash

junior olive
#

the other 2 work, but seem broken because their modules arent getting loaded (which isnt a decor problem?)

austere talon
#

oh interesting

#

so patch helper is not loading all chunks correctly

#

that might mean most patches aren't actually broken

junior olive
#

tester but yeah i think so

#

oh decor doesn't use a custom extractandload regex at all

#

so the normal one is broken(?)

#
export const requireAvatarDecorationModal = extractAndLoadChunksLazy(["openAvatarDecorationModal:"]);
export const requireCreateStickerModal = extractAndLoadChunksLazy(["stickerInspected]:"]);
odd heath
lime stone
#

not error boundary

austere talon
#

they're the same thing :p

lime stone
austere talon
#

you can just tell the error boundary to noop (render nothing instead)

lime stone
#

well, you can use error boundary without component kinda

junior olive
#

I can't delve into this any further but I think this is a lot less scary of a breakage than it looks, it seems like reporter isn't loading all chunks. Advanced usage like extractAndLoadChunks seems to be broken too which is kinda related

lime stone
#

i guess it's still technically a component

grave mangoBOT
# austere talon https://github.com/Vendicated/Vencord/blob/main/src/components/ErrorBoundary.tsx...

**ErrorBoundary.tsx: **Lines 77-104

render() {
    if (this.state.error === NO_ERROR) return this.props.children;

    if (this.props.noop) return null;

    if (this.props.fallback)
        return <this.props.fallback
            children={this.props.children}
            {...this.state}
        />;

    const msg = this.props.message || "An error occurred while rendering this Component. More info can be found below and in your console.";

    return (
        <ErrorCard style={{ overflow: "hidden" }}>
            <h1>Oh no!</h1>
            <p>{msg}</p>
            <code>
                {this.state.message}
                {!!this.state.stack && (
                    <pre className={Margins.top8}>
                        {this.state.stack}
                    </pre>
                )}
            </code>
        </ErrorCard>
    );
}
lofty helm
#

Uhh did the update get pushed to stable?

glass jasper
# frail sky

discord failed the try not to break canary challenge

frail skyBOT
#
Bad Patches

MoreUserTags (had no effect):
ID: 48694
Match: /(?<type>\i)=\(null==.{0,100}\.BOT;return null!=(?<user>\i)&&\i\.bot/

RoleColorEverywhere (had no effect):
ID: 523303
Match: /user:(\i),channel:(\i).{0,400}?"@"\.concat\(.+?\)/

ShowHiddenChannels (had no effect):
ID: 713282
Match: /(?<=getChannel\(\i\);if\(null!=(\i))(?=.{0,100}?selectVoiceChannel)/

VoiceChatDoubleClick (had no effect):
ID: 713282
Match: /onClick:(\i)(?=,.{0,30}className:"channelMention".+?(\i)\.inContent)/

CommandsAPI (had no effect):
ID: 785134
Match: /(?<=:(.{1,3})\.displayDescription\}.{0,200}\.source,children:)[^}]+/

NoProfileThemes (had no effect):
ID: 912661
Match: /=(?=\i\.\i\.isPremiumAtLeast\(null==(\i))/

USRBG (had no effect):
ID: 912661
Match: /(\i)\.premiumType/

USRBG (had no effect):
ID: 912661
Match: /(?<=function \i\((\i)\)\{)(?=var.{30,50},bannerSrc:)/

ViewIcons (had no effect):
ID: 912661
Match: /style:\{(?=backgroundImage:(\i&&\i)\?"url\("\.concat\((\i),)/

NewGuildSettings (had no effect):
ID: 19569
Match: /INVITE_ACCEPT_SUCCESS.+?,(\i)=null!==.+?;/

IgnoreActivities (had no effect):
ID: 952862
Match: /HANG_STATUS.+?(?=!\i\(\i,\i\)&&)(?<=(\i)\.push.+?)/

MoreUserTags (had no effect):
ID: 448755
Match: /;return\((\(null==\i\?void 0:\i\.isSystemDM\(\).+?.Types.ORIGINAL_POSTER\)),null==(\i)\)/

NoMosaic (had no effect):
ID: 910347
Match: /null!==\(\i=\i\.get\(\i\)\)&&void 0!==\i\?\i:"INVALID"/

NormalizeMessageLinks (had no effect):
ID: 499001
Match: /\.concat\(location\.host\)/

ShowHiddenChannels (had no effect):
ID: 629218
Match: /(?<=if\(null==(\i))(?=.{0,160}?getHasImportantUnread\)\(\i\))/g

PinDMs (had no effect):
ID: 637035
Match: /(?<=renderDM=\((\i),(\i)\)=>{.*?this.state,\i=\i\[\i\],\i=)((\i)\[\i\]);/

BetterFolders (had no effect):
ID: 160224
Match: /(?<=({className:\i\.guilds,themeOverride:\i})\))/

SecretRingToneEnabler (had no effect):
ID: 345336
Match: /500===\i\.random\(1,1e3\)/

SpotifyControls (had no effect):
ID: 901232
Match: /return ?(.{0,30}\(.{1,3},\{[^}]+?,showTaglessAccountPanel:.+?\}\))/

Decor (had no effect):
ID: 41347
Match: /(?<==)\i=>{let{children.{20,100}decorationGridItem/

Decor (had no effect):
ID: 41347
Match: /(?<==)\i=>{let{user:\i,avatarDecoration.{300,600}decorationGridItemChurned/

Decor (had no effect):
ID: 41347
Match: /(?<=\.Section\.PREMIUM_PURCHASE&&\i;if\()(?<=avatarDecoration:(\i).+?)/

MessageLogger (found no module):
ID: -
Match: THREAD_STARTER_MESSAGE?null===

MoreUserTags (found no module):
ID: -
Match: .hasAvatarForGuild(null==

NSFWGateBypass (found no module):
ID: -
Match: .nsfwAllowed=null

ReviewDB (found no module):
ID: -
Match: showBorder:null

ShowConnections (found no module):
ID: -
Match: {isUsingGuildBio:null!==(

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")
findComponentByCode(".Messages.USER_SETTINGS_PROFILE_COLOR_SELECT_COLOR", ".BACKGROUND_PRIMARY)")
findByProps("modalFooterShopButton")
extractAndLoadChunks(["openAvatarDecorationModal:"], /\.el\("(.+?)"\)(?<=(\i)\.el.+?)\.then\(\2\.bind\(\2,"\1"\)\)/)
extractAndLoadChunks(["stickerInspected]:"], /\.el\("(.+?)"\)(?<=(\i)\.el.+?)\.then\(\2\.bind\(\2,"\1"\)\)/)
LazyComponentWebpack(()=>{let e=Nu(".shopPreviewBanner");return G.memo(e)}...)
findComponentByCode("fileUploadInput,")
findByCode(".customizationSectionBackground")
findByProps("key", "removeBuildOverride")
findByProps("toggleShowAllChannels")

Bad Starts

None

Discord Errors

None