#๐Ÿ‘พ-core-development

1 messages ยท Page 236 of 1

hexed cloak
#

yes

limber skiff
#

works fine

hexed cloak
#

hm

limber skiff
#

PinDMs uses it and it works fine

hexed cloak
#

I'm getting this

#

I'm not sure if this is because of me or because of vencord

fossil inlet
#

are you up to date?

hexed cloak
#

I believe? how can i check

limber skiff
#

you are using canary right?

#

then you need to pull dev changes again

hexed cloak
#

Yeah

limber skiff
#

dev, not main

hexed cloak
#

ah

limber skiff
#

since we haven't pushed to main yet

hexed cloak
#

I see

#

that makes so much sense i don't know how i didn't think of that earlier

#

๐Ÿ˜ญ

limber skiff
#

there are way more broken things than just openModalLazy lmao

hexed cloak
#

rip

limber skiff
#

but it's all fixed already

hexed cloak
#

Good luck!

#

oh

#

Well done!

#

๐Ÿ˜ญ

limber skiff
#

let me show you

#

vtest main

nimble pendantBOT
limber skiff
#

now we wait

hexed cloak
#

You know I thought for a while that vencord was all about writing your own patches but now that there's an actual API for some things like opening modals is amazing news to me

#

I wish there was actual documentation

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

hexed cloak
#

ooooo

limber skiff
#

wait for it lol

frail skyBOT
#
Bad Patches

PermissionFreeWill (had no effect):
ID: 156699
Match: ```
/{(\i:function(){return \i},?){2}}/


**__ConsoleJanitor (had no effect):__**
ID: `173840`
Match: ```
/(?<=&&\()console.log\(`Deprecated.+?`\),/

ChatInputButtonAPI (had no effect):
ID: 258696
Match: ```
/return(!\i.\i&&(?=(\i.isDM.+?(\i).push(.{0,50}"gift")/


**__IgnoreActivities (had no effect):__**
ID: `293273`
Match: ```
/HANG_STATUS.+?(?=!\i\(\)\(\i,\i\)&&)(?<=(\i)\.push.+?)/

ShowTimeoutDuration (had no effect):
ID: 464891
Match: ```
/(\i).Tooltip,{(text:.{0,30}(?:.AeYyLy)))/


**__ShowHiddenChannels (had no effect):__**
ID: `557135`
Match: ```
/(?=&&\i\.\i\.selectVoiceChannel\((\i)\.id\))/

iLoveSpam (had no effect):
ID: 598077
Match: ```
/if((\i)<=(?:1<<30|1073741824))return/


**__MentionAvatars (had no effect):__**
ID: `644956`
Match: ```
/children:\[\i&&.{0,50}\.RoleDot.{0,300},\i(?=\])/

OpenInApp (had no effect):
ID: 952164
Match: ```
/!(0,\i.isDesktop)()/


**__BetterSettings (had no effect):__**
ID: `493544`
Match: ```
/\(0,\i\.useTransition\)\((\i)/

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


**__ShowHiddenChannels (had no effect):__**
ID: `473403`
Match: ```
/(?<=\.wrapper:\i\.notInteractive,)(.+?)if\((\i)\)return (\i\.MUTED);/

ShowHiddenChannels (had no effect):
ID: 473403
Match: ```
/.LOCKED;if((?<={channel:(\i).+?)/


**__BetterFolders (had no effect):__**
ID: `179809`
Match: ```
/(?<=(?:\.xV9hVl).+?useTransition\)\()/

ShowHiddenChannels (had no effect):
ID: 424785
Match: ```
/!(\i).isRoleSubscriptionTemplatePreviewChannel()/


**__ViewIcons (had no effect):__**
ID: `217314`
Match: ```
/.Avatar,.+?src:(.+?\))(?=[,}])/

ViewIcons (had no effect):
ID: 753898
Match: ```
/.Avatar,.+?src:(.+?))(?=[,}])/


**__ImplicitRelationships (had no effect):__**
ID: `270759`
Match: ```
/(\(0,\i\.jsx\)\(\i\.TabBar\.Item,\{id:\i\.\i)\.BLOCKED,className:([^\s]+?)\.item,children:\i\.\i\.string\(\i\.\i(?:\["4bDptL"\])\)\}\)/

CtrlEnterSend (found no module):
ID: -
Match: ```
.ENTER&&(!


**__FakeNitro (found no module):__**
ID: `-`
Match: ```
.PREMIUM_LOCKED;

MessageLogger (found no module):
ID: -
Match: ```
useMessageMenu:

Bad Webpack Finds
waitFor("FormItem", "Button")
waitFor("MenuItem", "MenuSliderControl")
findByProps("ModalRoot", "ModalCloseButton")
findByProps("openModalLazy")
proxyLazyWebpack(()=>Hr.openModalLazy...)
proxyLazyWebpack(()=>Hr.openModal...)
proxyLazyWebpack(()=>Hr.closeModal...)
proxyLazyWebpack(()=>Hr.closeAllModals...)
findExportedComponent("BlobMask")
findByProps("useMessageMenu")
findComponentByCode("Button.Sizes.NONE,disabled:")
findExportedComponent("HiddenVisually")
findExportedComponent("ColorPicker", "CustomColorPicker")
findByProps("useStatusFillColor", "StatusTypes")
findExportedComponent("Dots", "AnimatedDots")
findComponentByCode(".AvatarSizeSpecs[", "getAvatarURL")
Bad Starts

None

Discord Errors

None

hexed cloak
#

oh uhh

limber skiff
#

that's on main

hexed cloak
#

god damn

limber skiff
#

dev has all fixed

hexed cloak
#

how are you guys so good at patches

limber skiff
#

and they work in both stable and canary

odd heath
limber skiff
hexed cloak
#

I suppose but I can't actually read gibberish

limber skiff
#

but yeah there are other Vencord APIs for making things easier

jolly egret
#

patches really aren't that bad its knowing what to patch that is harder

odd heath
#

this

hexed cloak
#

I've just been smashing my head against the source trying to learn from doing

#

but that doesn't really work well for me

odd heath
#

well where are you stuck rn

hexed cloak
#

well, finding stuff

odd heath
jolly egret
hexed cloak
#

Like how the flip flop am i meant to read gibberish to find the part that I want to change

jolly egret
#

a lot of poking with devtools

#

reading it is a different story but its not really that bad? like use devtools and breakpoints

odd heath
fossil inlet
opaque silo
#

if what youre patching has text strings find where those strings are used

hexed cloak
#

oh, breakpoints?

odd heath
#

i should build dev but im lazy

jolly egret
#

you haven't been using breakpoints? ๐Ÿ˜ญ

fossil inlet
#

@hexed cloak if you tell me what you want to patch, i can try and point you in the right direction

fossil inlet
odd heath
hexed cloak
fossil inlet
#

they can be good sometimes

odd heath
#

ye ik

fossil inlet
#

recently, ive been using companion to traverse the code

#

it helps across components

limber skiff
#

if only breakpoints were good for components

hexed cloak
#

more specifically where they are being put into a list to be rendered

odd heath
#

btw @fossil inlet can u take a look at my pr im too dumb to figure out why it rerenders on each click, search modal specifically

hexed cloak
#

I think nuckyz might remember this

limber skiff
#

yeah I do lol

hexed cloak
opaque silo
odd heath
#

yop

jolly egret
odd heath
opaque silo
#

elvyra eats rocks

fossil inlet
hexed cloak
odd heath
#

yeah

#

so good

#

(hav ent tried it yet)

odd heath
opaque silo
#

left to rot

fossil inlet
scenic brook
odd heath
scenic brook
#

I need to get back on that, there's quite a bit that's only half done

fossil inlet
#

(IntelliJ platform)

odd heath
#

i thought you meant idea ultimate guhhhhhhh

scenic brook
#

I don't have webstorm to try it out unfortunately, I only have idea ultimate

odd heath
#

i have every intellij ide via student pack

hexed cloak
#

same

odd heath
hexed cloak
#

Yeah well i'm at the point of the code

scenic brook
hexed cloak
#

i'm still trying to figure out what to do

#

lol

#

is there a way to go back after you ctrl+click an identifier?

scenic brook
hexed cloak
#

so yeah

fossil inlet
#

@scenic brook i have client side patching planned with a form of life-patching where as you write your patch, it will run it and show it in a read-only sidebar, formatted

odd heath
#

FIRE

hexed cloak
#

damn that sounds like something i made for discord bots

scenic brook
#

I wondered what you meant by live patching when you mentioned it recently

odd heath
#

however isnt that just patch helper ๐Ÿ˜ญ

hexed cloak
#

what's patch helper

scenic brook
#

I figured you just meant the thing I PR'd a while back lol

#

I made a mess of that PR somehow, it's completely fucked

odd heath
hexed cloak
#

I see

#

how can I evaluate this?
E.intl.string(E.t.hHMYbW)

limber skiff
#

me when I never use patch helper

hexed cloak
#

like should i just set a breakpoint or something

jolly egret
#

intl is so doomed

#

you can't turn the hash into the string without guessing or brute force

fossil inlet
hexed cloak
#

I want to see the string

odd heath
#

Iirc

hexed cloak
#

Well yes but I want to know how to get there myself

odd heath
#

I think that's the one I searched for earlier trolley

fossil inlet
#

@limber skiff does i18n.t work for you in console shortcuts?

hexed cloak
#

oh

#

What.

scenic brook
#

Vencord.Util.getIntlMessageFromHash("hHMYbW")

#

in console

odd heath
#

This

limber skiff
hexed cloak
#

how did you get the hash?

fossil inlet
#

oh, forgot about those

jolly egret
#

wait how does that work Thonk

fossil inlet
#

thats the fun part, you dont

hexed cloak
#

...

odd heath
hexed cloak
#

oh wait

fossil inlet
hexed cloak
#

I was looking at a different hash lol

jolly egret
hexed cloak
jolly egret
#

surely thats fine to pin

limber skiff
hexed cloak
#

to read the source

#

and know what string hashes are

limber skiff
#

getIntlMesage* is for when you need to use a translated string in your code

#

ues this instead

fossil inlet
#

@hexed cloak

hexed cloak
#

why is that better?

limber skiff
#

Vencord.Util.getIntlMessageFromHash("hHMYbW") gets a translated string

hexed cloak
#

Yeah

limber skiff
#

FORM_LABEL_INPUT_DEVICE is the key for that translated string

#

which when hashed gets transformed to hHMYbW

jolly egret
#

which works with every language

hexed cloak
#

Okay, that makes sense

#

but what can i do with knowing "FORM_LABEL_INPUT_DEVICE"

limber skiff
#

you can use the non hashed key for better redeablity

#

Vencord.Util.getIntlMessage("FORM_LABEL_INPUT_DEVICE")

hexed cloak
#

Ah, I see

limber skiff
#

that utility automatically hashes it for you

#

and you can also use the non hashed key for finds

#

find: "#{intl::FORM_LABEL_INPUT_DEVICE}"

hexed cloak
#

That's useful okay I see

limber skiff
#

"#{intl::FORM_LABEL_INPUT_DEVICE}" gets transformed into ".hHMYbW", which if you search in your devtools you will find where it's being used

hexed cloak
#

That's cool okay

limber skiff
#

you probably remember the old .Messages.FORM_LABEL_INPUT_DEVICE

#

it's basically the same, but Discord changed their intl lib and they now hash the keys too

#

so you have to do magic to use the old non hashed keys in your code

hexed cloak
#

I see, stupid discord ๐Ÿ˜ 

limber skiff
#

Vencord abstracts all of that for you

hexed cloak
#

Is there somewhere i can find docs for Vencord.Util?

#

it seems like it is very useful

limber skiff
#

x.Messages.FORM_LABEL_INPUT_DEVICE is the equivalent of E.intl.string(E.t.hHMYbW)

hexed cloak
#

I see that

#

I remember when my old code broke and you showed me

#

now i understand

limber skiff
#

some have descriptions for what they do

hexed cloak
#

I see

limber skiff
#

others are self-descriptive

hexed cloak
#

Hmm I see

#

why does this happen again?

fossil inlet
#

what horror code is discords sidebar made out of

hexed cloak
#

I'm 100% on development

fossil inlet
hexed cloak
#

okay

sterile oak
hexed cloak
#

That seems to have just nuked vencord?

#

I built with dev and then injected

#

and now I don't have vencord

#

no matter if i inject with --dev as a build param or not

scenic brook
#

You don't need to inject again, only build

hexed cloak
#

oh

#

so what now, I still don't have vencord

#

repair maybe

#

nope, installing / repairing / uninstalling / reinstalling did nothing

limber skiff
#

check your devtools

#

you might have a top level error which just prevents vencord completely from running

hexed cloak
#

oh one of my plugins had broken source

#

Yeah that fixed it

odd heath
#

always throws me off so much when i have devtools closed and reload

limber skiff
#

aha these finds are not good

#

actually they might be

#

nvm yeah they are good

fossil inlet
#

WHY THE FUCK IS SPLICE IN PLACE

#

GUHHHHHH

somber thorn
fossil inlet
#

wait

#

did i mistake splice for slice

#

HUSKKKKK

somber thorn
#

.splice modifies the array and .slice gives you a part of the array

#

so possibly

fossil inlet
#

no wonder my code isnt working

charred monolithBOT
limber skiff
charred monolithBOT
limber skiff
#

vtest dev

nimble pendantBOT
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

scenic brook
#

fwiw most of the changes to the devcompanion plugin are done by sadan, I'm mostly just reimplementing the extension

#

@fossil inlet you switched it to a userplugin didn't you? What did you do about reporter integration?

hexed cloak
#

is there a faster way to test changes?

#

(than to reload after pnpm build --dev --watch)

scenic brook
#

You can use pnpm watch to automatically build whenever you save changes but you still have to reload

scenic brook
hexed cloak
#

aw

charred monolithBOT
fossil inlet
#

There is a user-plugin version

#

However, I maintain it with the full version

scenic brook
#

Gotcha

left sequoia
#

whats the expected vencord dev workflow btw?

#

i'm struggling hard to enter this

#

i'm coping and dont want to believe that doing vencord.webpack in devtools is the expected way to dev this

fossil inlet
left sequoia
#

yeh

fossil inlet
#

My general flow is

  • use react devtools to find code that I need to patch
  • locate a temp find from the code (just to start writing the patch
  • use patch helper to write the patch
  • put the patch in the plugin
  • repeat until your code works
limber skiff
#

also use consoleShortcuts to test for things easier

left sequoia
#

what is patch helper, what are consoleshortcuts

limber skiff
#

consoleShortcuts is a plugin

left sequoia
#

ah

#

yeah that one isnt useful

#

ic it

#

i cant find any references for patch helper doe

#

is patch helper just the Webpack utils?

scenic brook
#

It's in the settings menu if you run a dev build

limber skiff
#

alright it's time

#

vtest

nimble pendantBOT
scenic brook
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

left sequoia
#

which is cool

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

you can

#

you just have to buildWeb with --dev

left sequoia
#

yeah so gotta modify the scripts for that

#

KUL

#

could be worse

limber skiff
#

pnpm buildWeb --dev

#

you dont need to modify lol

charred monolithBOT
#

21ded87 Settings API: Add utility to migrate a setting - Nuckyz
f43badd NoBlockedMessages: Add ignored messages (#3126) - jamesbt365
cdc7561 Settings API: Fix erroring if plugin settings d... - Nuckyz
33d4f13 Fix everything broken by recent Discord update ... - Nuckyz
7415367 Add missing MenuSearchControl webpack find - Nuckyz

jolly egret
#

real

limber skiff
#

now how many issues will this bring

jolly egret
#

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

#

guess we see

left sequoia
#

I assume patch helper is undocumented too?

jolly egret
#

userplugins moment

limber skiff
#

beautiful

scenic brook
#

My userplugin breakages were almost exclusively icons thankfully

#

Nice and easy to fix

limber skiff
#

super easy to change Icons.xxx to a webpack find with the svg path

jolly egret
#

in this case i just deleted the user plugin because i only installed it to test to approve for #1256395889354997771

#

lol

scenic brook
#

Apart from IconViewer, that's just a whole other level of fucked now

hexed cloak
#

my amoled theme is different on canary than on stable??

jolly egret
#

not exactly uncommon

scenic brook
#

lol that's almost exactly the find I used

limber skiff
#

you cant have the names but you can have all icons

scenic brook
#

Not my plugin though so I'm not messing too much atm

scenic brook
left sequoia
#

annoying that no new devs can actually make extensions because it requires hidden black magic knowledge about a process which is known to a select few

scenic brook
#

tbh you kinda just have to start small and learn as you go

scenic brook
#

I'm fairly new here but I got the hang of it eventually

hexed cloak
#

until today

#

well

#

i still think that

dusk blaze
#

second one explains patching

hexed cloak
#

oh thank you

#

i wish someone had shown me that earlier lol

left sequoia
jolly egret
#

idk man i just looked at git history on the main repo and found it lol

austere talon
left sequoia
#

sir, i worked with WASM

#

where testing a single change takes 30+ mins of compiling

dusk blaze
left sequoia
#

pressing a single button isnt a problem

dusk blaze
#

or do you allways need to reload browser

left sequoia
austere talon
left sequoia
#

its not really that bad

austere talon
#

at least as far as I know

jolly egret
#

if you're a developer just install something you can reload easily lol

left sequoia
#

and most of the stuff i want to test can be tested on desktop anyways

jolly egret
#

idk why you would want to torture yourself by developing solely on web, vencord works the same regardless of platform

left sequoia
#

its just that

#

none of the find functions, actually find what i need to find

dusk blaze
#

forgot about that

left sequoia
#

and here we are

fossil inlet
#

If you want to develop for web run the Userscript with a local Require

dusk blaze
hexed cloak
#

patch helper and console shortcuts seem to go hand in hand it seems

austere talon
# left sequoia yeah idk i give up, this shit isnt made for humans

it's honestly really simple once you understand the concept and know regex

the find string is used to find the correct module so it needs to be a unique string that only appears in the module you want to patch

then the patches is just regex replace (see mdn docs, especially for string replacement placeholders)

fossil inlet
left sequoia
#

idk nothing works here

#

and its driving me mad

dusk blaze
fossil inlet
sterile oak
fossil inlet
scenic brook
sterile oak
scenic brook
sterile oak
#

fire, ty

fossil inlet
charred monolithBOT
jolly egret
#

@limber skiff screensharing seems to be broken on vesktop after updating btw

limber skiff
#

because it probably used Modals.ModalRoot instead of ModalRoot directly

austere talon
#

did you remove the Modals export entirely

limber skiff
#

ugh

#

yes it was only used in one place in Vencord

austere talon
#

add back

limber skiff
#

so I made it use directly

jolly egret
#

lol

limber skiff
#

grr Vesktop

charred monolithBOT
limber skiff
#

this should be changed

jolly egret
#

should leave it for a while not everyone updates vesktop

charred monolithBOT
limber skiff
#

I know

#

I'm just saying

charred monolithBOT
limber skiff
#

@jolly egret okay you can tell to update now

jolly egret
#

๐Ÿ‘

hexed cloak
#

How can i enable devcompanion on vesktop?

jolly egret
#

you enable it as normal

hexed cloak
#

I can't inject into it

jolly egret
hexed cloak
#

Oh wait- I did an admin install for all users

#

it's not in appdata is it

#

why is there a vesktop installation in my appdata...

#

ah there's a section for vesktop cool

charred monolithBOT
limber skiff
charred monolithBOT
limber skiff
#

vtest patcher-rewrite

nimble pendantBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
limber skiff
#

vtest patcher-rewrite

nimble pendantBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

hehe

#

that really was the cause of it

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

now it's fast again

charred monolithBOT
limber skiff
#

@austere talon holyyy shit what is this

#

what are these PES_Think

#

esbuild stuff?

heady gyro
#

when yall gonna push the nest tag, cause that feels like a good time to revert

jolly egret
#

our patches work on both get fucked

limber skiff
#

vtest strict-csp

nimble pendantBOT
jolly egret
#

though a lot of people are complaining more than earlier maybe they changed something again

limber skiff
#

I wanna see if they pushed to stable

frail skyBOT
#
Bad Patches

PermissionFreeWill (had no effect):
ID: 156699
Match: ```
/{(\i:function(){return \i},?){2}}/


**__ConsoleJanitor (had no effect):__**
ID: `173840`
Match: ```
/(?<=&&\()console.log\(`Deprecated.+?`\),/

ChatInputButtonAPI (had no effect):
ID: 258696
Match: ```
/return(!\i.\i&&(?=(\i.isDM.+?(\i).push(.{0,50}"gift")/


**__IgnoreActivities (had no effect):__**
ID: `293273`
Match: ```
/HANG_STATUS.+?(?=!\i\(\)\(\i,\i\)&&)(?<=(\i)\.push.+?)/

ShowTimeoutDuration (had no effect):
ID: 464891
Match: ```
/(\i).Tooltip,{(text:.{0,30}(?:.AeYyLy)))/


**__ShowHiddenChannels (had no effect):__**
ID: `557135`
Match: ```
/(?=&&\i\.\i\.selectVoiceChannel\((\i)\.id\))/

iLoveSpam (had no effect):
ID: 598077
Match: ```
/if((\i)<=(?:1<<30|1073741824))return/


**__MentionAvatars (had no effect):__**
ID: `644956`
Match: ```
/children:\[\i&&.{0,50}\.RoleDot.{0,300},\i(?=\])/

OpenInApp (had no effect):
ID: 952164
Match: ```
/!(0,\i.isDesktop)()/


**__BetterSettings (had no effect):__**
ID: `493544`
Match: ```
/\(0,\i\.useTransition\)\((\i)/

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


**__ShowHiddenChannels (had no effect):__**
ID: `473403`
Match: ```
/(?<=\.wrapper:\i\.notInteractive,)(.+?)if\((\i)\)return (\i\.MUTED);/

ShowHiddenChannels (had no effect):
ID: 473403
Match: ```
/.LOCKED;if((?<={channel:(\i).+?)/


**__BetterFolders (had no effect):__**
ID: `179809`
Match: ```
/(?<=(?:\.xV9hVl).+?useTransition\)\()/

ShowHiddenChannels (had no effect):
ID: 424785
Match: ```
/!(\i).isRoleSubscriptionTemplatePreviewChannel()/


**__ViewIcons (had no effect):__**
ID: `217314`
Match: ```
/.Avatar,.+?src:(.+?\))(?=[,}])/

ViewIcons (had no effect):
ID: 753898
Match: ```
/.Avatar,.+?src:(.+?))(?=[,}])/


**__ImplicitRelationships (had no effect):__**
ID: `270759`
Match: ```
/(\(0,\i\.jsx\)\(\i\.TabBar\.Item,\{id:\i\.\i)\.BLOCKED,className:([^\s]+?)\.item,children:\i\.\i\.string\(\i\.\i(?:\["4bDptL"\])\)\}\)/

CtrlEnterSend (found no module):
ID: -
Match: ```
.ENTER&&(!


**__FakeNitro (found no module):__**
ID: `-`
Match: ```
.PREMIUM_LOCKED;

MessageLogger (found no module):
ID: -
Match: ```
useMessageMenu:

Bad Webpack Finds
waitFor("FormItem", "Button")
waitFor("MenuItem", "MenuSliderControl")
findByProps("ModalRoot", "ModalCloseButton")
findByProps("openModalLazy")
proxyLazyWebpack(()=>zr.openModalLazy...)
proxyLazyWebpack(()=>zr.openModal...)
proxyLazyWebpack(()=>zr.closeModal...)
proxyLazyWebpack(()=>zr.closeAllModals...)
findExportedComponent("BlobMask")
findByProps("useMessageMenu")
findComponentByCode("Button.Sizes.NONE,disabled:")
findExportedComponent("HiddenVisually")
find(e=>e.Types?.[0]==="BOT"...)
findExportedComponent("ColorPicker", "CustomColorPicker")
findByProps("useStatusFillColor", "StatusTypes")
findExportedComponent("Dots", "AnimatedDots")
findComponentByCode(".AvatarSizeSpecs[", "getAvatarURL")
Bad Starts

None

Discord Errors

None

jolly egret
#

fun

#

nelly.tools hasn't updated yet

frail skyBOT
#
Bad Patches

PermissionFreeWill (had no effect):
ID: 156699
Match: ```
/{(\i:function(){return \i},?){2}}/


**__ConsoleJanitor (had no effect):__**
ID: `173840`
Match: ```
/(?<=&&\()console.log\(`Deprecated.+?`\),/

ChatInputButtonAPI (had no effect):
ID: 258696
Match: ```
/return(!\i.\i&&(?=(\i.isDM.+?(\i).push(.{0,50}"gift")/


**__IgnoreActivities (had no effect):__**
ID: `293273`
Match: ```
/HANG_STATUS.+?(?=!\i\(\)\(\i,\i\)&&)(?<=(\i)\.push.+?)/

ShowTimeoutDuration (had no effect):
ID: 464891
Match: ```
/(\i).Tooltip,{(text:.{0,30}(?:.AeYyLy)))/


**__ShowHiddenChannels (had no effect):__**
ID: `557135`
Match: ```
/(?=&&\i\.\i\.selectVoiceChannel\((\i)\.id\))/

iLoveSpam (had no effect):
ID: 598077
Match: ```
/if((\i)<=(?:1<<30|1073741824))return/


**__MentionAvatars (had no effect):__**
ID: `644956`
Match: ```
/children:\[\i&&.{0,50}\.RoleDot.{0,300},\i(?=\])/

OpenInApp (had no effect):
ID: 952164
Match: ```
/!(0,\i.isDesktop)()/


**__BetterSettings (had no effect):__**
ID: `493544`
Match: ```
/\(0,\i\.useTransition\)\((\i)/

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


**__ShowHiddenChannels (had no effect):__**
ID: `473403`
Match: ```
/(?<=\.wrapper:\i\.notInteractive,)(.+?)if\((\i)\)return (\i\.MUTED);/

ShowHiddenChannels (had no effect):
ID: 473403
Match: ```
/.LOCKED;if((?<={channel:(\i).+?)/


**__BetterFolders (had no effect):__**
ID: `179809`
Match: ```
/(?<=(?:\.xV9hVl).+?useTransition\)\()/

ShowHiddenChannels (had no effect):
ID: 424785
Match: ```
/!(\i).isRoleSubscriptionTemplatePreviewChannel()/


**__ViewIcons (had no effect):__**
ID: `217314`
Match: ```
/.Avatar,.+?src:(.+?\))(?=[,}])/

ViewIcons (had no effect):
ID: 753898
Match: ```
/.Avatar,.+?src:(.+?))(?=[,}])/


**__ImplicitRelationships (had no effect):__**
ID: `270759`
Match: ```
/(\(0,\i\.jsx\)\(\i\.TabBar\.Item,\{id:\i\.\i)\.BLOCKED,className:([^\s]+?)\.item,children:\i\.\i\.string\(\i\.\i(?:\["4bDptL"\])\)\}\)/

CtrlEnterSend (found no module):
ID: -
Match: ```
.ENTER&&(!


**__FakeNitro (found no module):__**
ID: `-`
Match: ```
.PREMIUM_LOCKED;

MessageLogger (found no module):
ID: -
Match: ```
useMessageMenu:

Bad Webpack Finds
waitFor("FormItem", "Button")
waitFor("MenuItem", "MenuSliderControl")
findByProps("ModalRoot", "ModalCloseButton")
findByProps("openModalLazy")
proxyLazyWebpack(()=>zr.openModalLazy...)
proxyLazyWebpack(()=>zr.openModal...)
proxyLazyWebpack(()=>zr.closeModal...)
proxyLazyWebpack(()=>zr.closeAllModals...)
findExportedComponent("BlobMask")
findByProps("useMessageMenu")
findComponentByCode("Button.Sizes.NONE,disabled:")
findExportedComponent("HiddenVisually")
find(e=>e.Types?.[0]==="BOT"...)
findExportedComponent("ColorPicker", "CustomColorPicker")
findByProps("useStatusFillColor", "StatusTypes")
findExportedComponent("Dots", "AnimatedDots")
findComponentByCode(".AvatarSizeSpecs[", "getAvatarURL")
Bad Starts

None

Discord Errors

None

limber skiff
#

yeah they did

#

vtest

nimble pendantBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

jolly egret
#

makes sense

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

jolly egret
#

support channel isn't super insane right now but it is more chaotic than usual

#

Anyway, we should probably tag push because this is on stable

limber skiff
#

wait a bit

#

to make sure there are no other bugs

#

a lot was changed

fossil inlet
#

Did they push stable

jolly egret
#

yes

fossil inlet
#

Were all the fixes pushed to main yet, or are they still on dev?

odd heath
#

At least merge into main though?

jolly egret
#

it is

#

everything is fixed, people just need to update

odd heath
#

o

#

I never saw the merge commit

jolly egret
#

combination of these and peoples themes breaking from class changes is really annoying now

#

lock support?

#

its so doomed

opaque silo
#

built-in vencord class mapper when

fossil inlet
opaque silo
#

no idea

#

I'm on mobile

jolly egret
#

class changes

brazen bone
#

Though its mappings are a bit outdated

austere talon
#

we should push tag

jolly egret
#

yeah

#

i think we're fine but some people are complaining that theres no discord logo on the startup stuff lol

#

its just a black square

austere talon
#

?

jolly egret
#

nvm its one guy but he whined about it like 5 different times so i thought it was different people

#

100% not a vencord issue though lol

jolly egret
#

they said without themes too but i guess this is why you can't trust users lol

charred monolithBOT
#
[Vendicated/Vencord] New tag created: v1.11.3
jolly egret
#

I'm glad we made the choice to make a fix for the mangling this time lol

sterile oak
limber skiff
#

another stable push

#

and no revert

#

vtest

nimble pendantBOT
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

jolly egret
# limber skiff and no revert

the amount of times this has touched canary and been reverted the fact that it hit stable pretty much means its staying

#

i would be very surprised if they did lol

scenic brook
#

What are the chances the time you finally decide to make it work mangled is the time they keep the change

brazen bone
#

Pretty nice of them to tease that change in advance

limber skiff
#

didn't change anything teasing because we only did the fixes now

brazen bone
#

But you had time to prepare them before it hit stable, no?

austere talon
#

lol im just imagining jason citroen telling discord devs they need to tease major changes for a few days for vencord to catch up

#

thanks @heady gyro

brazen bone
#

Is that the ceo of discord or something

heady gyro
brazen bone
#

Based

charred monolithBOT
#

Thanks for the merge!

there's actually one bug I noticed: for people who use the colour dot instead of role name (or use BetterRoleDot), the roledot has the wrong colour

I think I already said this on Discord (a year ago, when I initially created the branch lol), but I don't really see value in having the role dot on while having the plugin enabled. Really, I considered patching out the dot completely, but decided against it because it's an additional patch that requires work (lazy) a...

charred monolithBOT
charred monolithBOT
#

Discord Account

thecandle389

What happens when the bug or crash occurs?

The bug makes it so that the color of the themes doesn't load, but the font does and it makes it really really weird. It happened for the first time today. I think its something wrong with my client, but I have uninstalled and reinstalled discord multiple times, including upgrading vencord too.

What is the expected behaviour?

I open Discord. The theme then should load automatically.

How do you recre...

hollow wing
charred monolithBOT
#

Wow, this commit does a lot more than it says it does.

One of these things is replacing FNV with xxhash64. While xxhash64 is a great algorithm for some use cases, FNV is significantly faster for small data, like user IDs here. I wrote a benchmark, comparing my simple FNV implementation with the xxhash64 implementation from the xxhash-rust library. While the benchmark is in Rust (I do not know how to do anything in JS, like measuring time or even starting a new project), it should be a go...

austere talon
#

less code = better

limber skiff
#

very little amount of elements and it's memoed too

#

@austere talon can u enable stars notifications for vencord again

austere talon
#

LOL why

limber skiff
#

it was kinda nice seeing them and nowdays it's not as much as before

austere talon
#

youre insane

#

can make a thread if u want

limber skiff
#

ig sure

#

do separate than forks

#

those I do not care

austere talon
#

[Vendicated/Vencord] New star added

thick kestrel
# charred monolith

Also, JavaScript implementations are definitely slower than the Rust implementation, the difference can build up. Time spent on calculating colors can be better spent elsewhere (snappy rendering), or nowhere (battery life).

#

(edit)

austere talon
#

it calculates it for maybe like 100 people buddy we're talking about a few milliseconds here at most

#

it makes no difference in the grand scheme of things

thick kestrel
#

yes

austere talon
#

fwiw it's probably faster than converting it to a BigInt and using the old algo

thick kestrel
#

welp whatever

austere talon
#

if the new thing is actually worse in usability / colours it generates then sure

#

but if it's just microperformance then it's kinda pointless and having less code is better

thick kestrel
#

I would say performance over code size, but since I didn't actually benchmark the JS implementations then I guess my opinion doesn't matter

#

(I don't want to fight with JS again)

austere talon
#

you need to realise that this function is 0.001% of the performance

thick kestrel
#

I know

austere talon
#

and the other percent are react bloat

thick kestrel
#

I still don't like it

#

skill issue ik

thick kestrel
charred monolithBOT
limber skiff
#

@austere talon it's impossible to webpack find the specific scrollers to monkey patch in better discord lol

#

nvm they can monkey patch the createScroller function

shut vineBOT
#

@fossil inlet, <t:1738104512:R>: fix port issue with rolling reporter

charred monolithBOT
#

@RyfterWasTaken I personally haven't found any actions without keybinds that are as useful as the jump button- It would be really nice to have a plugin that changes arbitrary keybinds, but I would consider that worthy of a separate plugin altogether (if someone wants to make such a plugin, I would support it the whole way through!).

In addition, I don't necessarily think there's anything wrong with having extremely specific plugins- just look at AlwaysAnimate, AlwaysExpandRoles, BetterGifA...

limber skiff
#

another day another removed feature

fossil inlet
limber skiff
#

i dont remember

glass jasper
glass jasper
median rapids
#

it was functional tho

#

๐Ÿ˜”

charred monolithBOT
jolly egret
#

so silly

#

apparently rebasing your commit using github doesn't sign it, dumb, it wiped my signature so i had to do it with git and force push it myself lol

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

AlwaysAnimate (had no effect):
ID: 276264
Match: ```
/(?<=.activityEmoji,.+?animate:)\i/


**__IgnoreActivities (had no effect):__**
ID: `293273`
Match: ```
/HANG_STATUS.+?(?=!?\i\(\)\(\i,\i\))(?<=(\i)\.push.+?)/

ImplicitRelationships (had no effect):
ID: 270759
Match: ```
/((0,\i.jsx)(\i.\i.Item,{id:\i.\i).BLOCKED,className:([^\s]+?).item,children:\i.\i.string(\i.\i(?:["4bDptL"]))})/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

shit

#

of course... they removed hang status

fossil inlet
#

doesnt look that bad

#

should be quick

jolly egret
#

should've expected it lol

charred monolithBOT
sly veldt
#

๐Ÿ˜”

charred monolithBOT
limber skiff
#

cant be compatible with stable?

fossil inlet
#

going to get the other 2 working on dev first, then ill do stable compat

jolly egret
#

though 82 commits that history is wild

fossil inlet
#

got always animate done

jolly egret
#

wait how long was this broken anyway?

fossil inlet
jolly egret
#

lmao

limber skiff
jolly egret
#

so basically changed it from in a guild to in a private channel incredible

fossil inlet
jolly egret
#

both vee and nuckyz missed that

fossil inlet
jolly egret
#

i wouldn't have either i'm shit with logic

#

god knows how i get anything working when i write code

limber skiff
#

@fossil inlet I will change this one

fossil inlet
limber skiff
#

location is tracking and I dont like those to rely on those either

#

it's more unlikely to change than experiments but still ehh

fossil inlet
#

ill remember that for next time

#

@limber skiff just realized my implicit relationship patch isnt good (can show with suggestions page (same thing but in stock discord))

and i dont think its possible to have stable compat for this patch

#

went from this

#

to this

limber skiff
#

yep

#

eh

#

that's kinda bad to make compatible

fossil inlet
#

i updated my implicit patch to resepct the suggestions page

limber skiff
#

wdym

fossil inlet
#

realized it was bad

#

fixed it

sly veldt
shut vineBOT
#

@rugged spire, <t:1738135243:R>: fix

limber skiff
#

honestly

#
// Sections header
{
    find: "#{intl::FRIENDS_SECTION_ONLINE}",
    replacement: {
        match: /,{id:(\i\.\i)\.BLOCKED,show:.+?className:(\i\.item)/,
        replace: (rest, relationShipTypes, className) => `,{id:${relationShipTypes}.IMPLICIT,show:true,className:${className},content:"Implicit"}${rest}`
    }
},
#

should just do this @fossil inlet

#

but lets remove it from your pr

#

we push the other fixes to main

#

and wait for this one to reach canary

fossil inlet
#

oh im stupid

#

i misunderstood

fossil inlet
limber skiff
#

ya that

fossil inlet
#

alr, ima run reporter on my branch rq

jolly egret
limber skiff
#

@fossil inlet is it good?

fossil inlet
#

looks fine to me

charred monolithBOT
limber skiff
#

vtest

nimble pendantBOT
fossil inlet
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

ImplicitRelationships (had no effect):
ID: 270759
Match: ```
/((0,\i.jsx)(\i.\i.Item,{id:\i.\i).BLOCKED,className:([^\s]+?).item,children:\i.\i.string(\i.\i(?:["4bDptL"]))})/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

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

๐Ÿ˜ญ

#

JDSFJDFDJSDS

#

vtest fix/implicit-relationships

fossil inlet
#

LMAO

nimble pendantBOT
limber skiff
#

do you want credit for it?

fossil inlet
#

idrc

limber skiff
#

alright

fossil inlet
#

credit doesnt matter that much on small stuff for me

frail skyBOT
#
Bad Patches

ImplicitRelationships (had no effect):
ID: 270759
Match: ```
/,{id:(\i.\i).BLOCKED,show:.+?className:(\i.item)/

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
#

funny title

#

oops

charred monolithBOT
odd heath
#

When are we adding patch versions so we don't have to wait for merges blobcatcozy

limber skiff
odd heath
#

I know

#

๐Ÿ˜ญ

limber skiff
#

lol

odd heath
#

Vee should merge finally

charred monolithBOT
odd heath
#

Wrong channel smh

limber skiff
#

vee busy rn

limber skiff
#

vtest

nimble pendantBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

ImplicitRelationships (had no effect):
ID: 270759
Match: ```
/((0,\i.jsx)(\i.\i.Item,{id:\i.\i).BLOCKED,className:([^\s]+?).item,children:\i.\i.string(\i.\i(?:["4bDptL"]))})/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
limber skiff
#

vext

nimble pendantBOT
limber skiff
#

holy shit the amount of people joining

#

it has been going for hours

fossil inlet
limber skiff
#

lol

jolly egret
#

yeah we can't open the support channel yet lol

#

i wonder if we have negetavie reviews on the extension yet

#

apparently not!

fossil inlet
#

@austere talon is this your account ๐Ÿ˜ญ

limber skiff
#

yeah that's them lmaoo

fossil inlet
#

vee too bias, 5 stars smh

dusk blaze
#

Vendy Machine

austere talon
#

or 3 billion people comment BROKEN HELP SIRR

opaque silo
#

extention only popup that tells people shit is hroken

fossil inlet
#

openModal and openModalLazy both fail to find

opaque silo
#

no like a page popup/notice

fossil inlet
#

?remind tomorrow migrate from TS 4.9.5 to 5.7.x

shut vineBOT
#

Alright @fossil inlet, in 1 day: migrate from TS 4.9.5 to 5.7.x

opaque silo
dusk blaze
#

@austere talon vencord emergency alert system

#

WebSocket runs before vencord even starts

#

then you can broadcast announcements and code that will be evaled

fossil inlet
#

horror

dusk blaze
#

so that if wanted you can remotely disable broken things...

fossil inlet
#

actual malware

odd heath
#

Did anything happen to that one safe mode pr?

median rapids
odd heath
#

is there a way to get a user id from a user name

fossil inlet
median rapids
#

build is in plenty places

long stream
median rapids
#

that too

#

good girl

woeful sable
fossil inlet
long stream
#

np

median rapids
#

every single function name getting minified is acc so annoying

#

for spot-check datamining

fossil inlet
#

@median rapids train an AI on discords code that demangles all of it

fossil inlet
#

GUHHH TYPESCRIPT, THERE IS LITERALLY A TYPEGUARD RIGHT THERE

median rapids
#

ts will be uninvented

fossil inlet
#

nop, so good

#

love the ast parsing

#

how the fuck does an export fucking vanish

median rapids
#

i ate it

fossil inlet
#

GUHHHHW AHT

#

NOW IT WORKS

#

thanks tsserver, very cool

#

Vencord Companion now working with the new arrow funcs

glass jasper
fossil inlet
#

i made this type to keep my util functions typesafe with inference

#
export type AssertedType<T extends Function, E = any> = T extends (
    a: any
) => a is infer R ? R extends E ? R : never : never;

export type CBAssertion<U = undefined> = <
    F extends (n: Node) => n is Node,
    R extends Node = AssertedType<F, Node>,
>(
    node: Node,
    func: F extends (n: Node) => n is R ? F : never
) => R | U;

#

im not using ts-ignore unless i have to

shut vineBOT
#

@fossil inlet, <t:1737955097:R>: look into this

fossil inlet
#

is it possible to check what percentage of users have an experiment

charred monolithBOT
#

Will there be an option to set tag colors as the guild member color (similar to #2161)? I personally think user tags are informative but very ugly when members' tags use the bot colors because it makes it harder to differentiate between priviliged members and bots at first glance.

Your plugins add a bunch of new patches which caused this plugin to get deleted

I might try to recreate it using decorations, then they will be a lot more useful

charred monolithBOT
#

I would love to hear answers to the following questions by someone (Vee or Nuckyz):

  • Should data attributes be supported like in an original plugin?
  • Tags inside of a profile require 3 patches ( for both bots and users ), which are going to be dependent on one another. Should I support it? If one of the patches breaks, default tag will be displayed ( none for users, app for bots )
  • If adding a plugin idea from @OIRNOIR, it's probably to use DecorationsAPI, but will require a patch to remo...
charred monolithBOT
#

A unified plugin to regroup most of the single use plugins, such as F8Break.

  • Settings to change each plugin's keybind easily
  • Easy to add a keybind, eg: Add this to the keybinds.tsx file.
   restart: {
       name: "Restart",
       desc: "Restarts your discord client",
       default: {
           enabled: false,
           key: "R",
           ctrl: true,
           shift: true,
           alt: false,
       },
       action: () => {
           relau...
scenic brook
#

I feel like this would be good as an API maybe

charred monolithBOT
long stream
#

i wonder if discord has a shortcutsapi

#

okay it appears they do not

#

all of the shortcuts appear to be hard-coded

rugged spire
#

there is a central shortcuts system

scenic brook
#

This looks like a big collection of all the shortcuts, maybe you can add to that

long stream
#

o

scenic brook
#

This is SERVER_NEXT

#

and prev

hollow wing
left sequoia
rugged spire
left sequoia
#

for shortcuts its hardcoded

#

flux store has KEYBINDS_REGISTER_GLOBAL_KEYBIND_ACTIONS

#

which emits all keybinds when they are changed

long stream
#

okay okay i get it ๐Ÿ˜ญ

limber skiff
#

vext

nimble pendantBOT
limber skiff
#

vtest

nimble pendantBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

MessageEventsAPI (had no effect):
ID: 287746
Match: ```
/({openWarningPopout:.{0,100}type:this.props.chatInputType.+?.then()(\i=>{.+?let (\i)=\i.\i.parse((\i),.+?let (\i)=\i.\i.getSendMessageOptions({.+?});)(?<=)(({.+?})).then.+?)/


**__ImplicitRelationships (had no effect):__**
ID: `270759`
Match: ```
/(\(0,\i\.jsx\)\(\i\.\i\.Item,\{id:\i\.\i)\.BLOCKED,className:([^\s]+?)\.item,children:\i\.\i\.string\(\i\.\i(?:\["4bDptL"\])\)\}\)/
Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

that again

odd heath
#

Love

limber skiff
#

patch just got easier

charred monolithBOT
limber skiff
#

vtest fix/implicit-realtionships

nimble pendantBOT
limber skiff
#

vtest fix/implicit-relationships

nimble pendantBOT
frail skyBOT
#
Bad Patches

MessageEventsAPI (errored):
ID: 287746
Match: ```
/let (\i)=\i.\i.parse((\i),.+?let (\i)=\i.\i.getSendMessageOptions({.+?});(?<=)(({.+?})).then.+?)/

Error: ```
Unexpected identifier 'Vencord'

ImplicitRelationships (had no effect):
ID: 270759
Match: ```
/,{id:(\i.\i).BLOCKED,show:.+?className:(\i.item)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

odd heath
#

Oh

#

It's just incompatible

#

Makes sense

charred monolithBOT
charred monolithBOT
limber skiff
#

vtest dev2

nimble pendantBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

MessageEventsAPI (had no effect):
ID: 287746
Match: ```
/({openWarningPopout:.{0,100}type:this.props.chatInputType.+?.then()(\i=>{.+?let (\i)=\i.\i.parse((\i),.+?let (\i)=\i.\i.getSendMessageOptions({.+?});)(?<=)(({.+?})).then.+?)/


**__ImplicitRelationships (had no effect):__**
ID: `270759`
Match: ```
/(\(0,\i\.jsx\)\(\i\.\i\.Item,\{id:\i\.\i)\.BLOCKED,className:([^\s]+?)\.item,children:\i\.\i\.string\(\i\.\i(?:\["4bDptL"\])\)\}\)/
Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
limber skiff
#

also

#

so many people are going to complain again once that hits stable

#

because it affects MessageEventsAPI, which affects FakeNitro

#

I should make it compatible with stable for a bit, and then once they push I remove the compatibility

#

just to try to avoid so many people complaining

charred monolithBOT
limber skiff
#

vtest dev2

nimble pendantBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

ImplicitRelationships (had no effect):
ID: 270759
Match: ```
/((0,\i.jsx)(\i.\i.Item,{id:\i.\i).BLOCKED,className:([^\s]+?).item,children:\i.\i.string(\i.\i(?:["4bDptL"]))})/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

okay nice

charred monolithBOT
limber skiff
#

// FIXME: Simplify this change once all branches share the same code

#

why did I write change instead of patch lmao

#

whatever tho

#

@austere talon how did it work for MenuItemDemanglerAPI if apparently there's a fixme for dependencies of dependencies lol

#

was it just because of required: true

#

I rememember you mentioned ContextMenuAPI having MenuItemDemanglerAPI as dependency at one point

jolly egret
#

I have successfully ran into the most bullshit thing ever

#

most useful error too

#

how does removing an unused line do that, whot he fuck knows

fossil inlet
jolly egret
#

it works... absolutely fine with that one line there but its... unused

#

i have no idea what the fuck is going on

#

that line SINGLEHANDEDLY props up the entirety of vencord

scenic brook
#

That function memos the hash

#

Guess the hook is important suffoPeepoShrug

jolly egret
#

This has been the most ass thing to debug and it comes down to THIS?

#

what the fuck do I do

scenic brook
#

Is the line being there causing an issue?

jolly egret
#

that const color line (one with the comment above it) prevents it from crashing, it works completely fine without it

#

what witchcraft is going on ๐Ÿ˜ญ

granite sky
#

It was pain the ass

#

xxhash seems fast enough to be used without hashing

unkempt oak
#

why does Vencord use eslint-plugin-simple-import-sort instead of eslint's built in import sorter? curious

jolly egret
#

so like... what do i do

unkempt oak
#

go outside and cry

jolly egret
#

how is the hook important here

unkempt oak
#

maybe its doing some react hook black magic and it throws a tantrum when the function uses a different amount of hooks for different users

#

idk if that made sense but i know RN does that sometimes

jolly egret
#
// Calculate a CSS color string based on the user ID
function calculateNameColorForUser(id: string) {
    const { lightness } = settings.use(["lightness"]);
    const idHash = useMemo(() => h64(id), [id]);

    return `hsl(${idHash % 360n}, 100%, ${lightness}%)`;
}
unkempt oak
#

yeah useMemo

#

maybe it loads in user.colorString later?

#

causing it to:
first render - 0 hookk
2nd render - 1 hook
and die

#

whatever it is you can just tsx const color = calculateNameColorForUser(id); if (!context.color) return color
( @jolly egret )

jolly egret
#

i feel bullied

#

js why ๐Ÿ˜ญ

unkempt oak
#

love react

jolly egret
#

i'm adding a setting to only apply to people with no role colour

#

w/e i'll just refactor this so its called once at the start of the block and it'll basically be no different

granite sky
#

Is useMemo really unessesery there?
I've removed it from my pr cause it was impossible to use RoleColorsEverywhere with it

xxhash can generate 1000 hashes in...

jolly egret
#

idk it was added some time after the plugin was merged so i'm just gonna leave it lol

jolly egret
#

refactoring it to this... crashes!

#

so i basically have to call that calculatenamecolorforuser even if i'm not using it which is just silly

charred monolithBOT
#
[Vendicated/Vencord] New branch created: de2
limber skiff
#

NOT DE2

jolly egret
#

de2

charred monolithBOT
jolly egret
#

๐Ÿ”ฅ

charred monolithBOT
#
[Vendicated/Vencord] branch deleted: de2
fossil inlet
#

wake up, germany 2 just dropped

granite sky
granite sky
jolly egret
#

ah yes, removing roles ๐Ÿ˜‹

#

i hate hooks

limber skiff
#

I fixed the hook issue

limber skiff
#

my mistake for not realizing when I did it

charred monolithBOT
charred monolithBOT
jolly egret
#

surely if i rebase this... j ust works

granite sky
#

Like this

#

Wait a minute, i can try running it with ?

jolly egret
#

WebpackModule995340:2 Error: Rendered fewer hooks than expected. This may be caused by an accidental early return statement.
๐Ÿ˜ญ

#

this is stupid lol

limber skiff
#

did it not work?

jolly egret
#

this is the diff

#

changing roles of users makes it shit itself

granite sky
jolly egret
granite sky
#

sometimes it runs

#

sometimes it's not

#

either remove hooks or calculate color and then check if you should use it

limber skiff
jolly egret
#

well... this doesn't work?

#

oh i'm calling it twice oops

granite sky
#

AAAAAAAAAAAAA

jolly egret
#

and it still doesn't work

#

oh i guess maybe its in my other function

#

yep, sorted

fossil inlet
jolly egret
#

pretty sure yeah but i don't really flatten if statements until i'm sure it works because then if it doesn't or i want to change something i have to reverse it and its ass

jolly egret
#

fuck hooks but i guess i learnt something

#

irccolors is neat in dms but idk if i want it in servers, its nice to know when somebody is a whitename

#

should i add a setting to that too?

#

i see usecase for myself, so surely somebody else would too

fossil inlet
jolly egret
#

guess i'll throw another setting in there

scenic brook
#

Imagine being a whitename suffoClueless

jolly egret
#

being able to distinguish whitenames is important for me as a moderator of 2 massive servers that tend to have abnormal levels of trolling KannaSip

#

but at the same time... irccolors in dms is like... fire so these settings are great

fossil inlet
#

just a few blobcatcozy

jolly egret
#

more plugins please ๐Ÿ˜

fossil inlet
jolly egret
#

do not the equicord

fossil inlet
#

horror

scenic brook
#

A friend has mentioned submitting my plugins to equicord a couple of times because they get accepted quicker but I just don't want to lol

fossil inlet
#

I just don't want to lol
dont worry, they'll do it for you husk

granite sky
#

at least they've left me as an author

#

lmao

fossil inlet
granite sky
#

well

#

it's same for me

scenic brook
granite sky
#

i've took a look at it last week and they use old ass version

#

also i haven't checked did discord nuke it

fossil inlet
#

just a few

granite sky
#

horror

jolly egret
granite sky
#

Like it just allows more people to use it

granite sky
limber skiff
#

equicord prs are like Add #xxxx from Vencord

#

and it's just added

scenic brook
#

Yeah I figured

jolly egret
#

god knows how anything works over there

scenic brook
#

I don't have the energy to be involved in two things at once

jolly egret
#

i won't use it because chances are they'll merge malware one day

#

and i like faster upstream support if something breaks & i don't need half the shit they add lol

charred monolithBOT
#

Content

Hi Vencord Team,

I've noticed that the MoreUserTags feature is no longer available in Vencord. This was a really useful feature for displaying additional user tags in the UI, and its removal has negatively impacted my experience.

Iโ€™d love to see this feature added back or an alternative provided. Could you share any insights into why it was removed? Was it due to a Discord update, technical issues, or something else?

Request Agreement

  • [x] I have read the requirements fo...
fossil inlet
#

sanest vencord issue

prime dew
#

the good ending

hexed cloak
#

how many times does discord update canary damn

fossil inlet
hexed cloak
#

WHAT

#

How do you guys manage

fossil inlet
#

@hexed cloak

fossil inlet
hexed cloak
#

I see

#

damn that's crazy

#

what are they even changing ๐Ÿ˜ญ

glass jasper
#

Itโ€™s not a good record, but usually itโ€™s just small stuff here and there

hexed cloak
#

oooo that's cool

glass jasper
#

Plus, Iโ€™m like 90% sure that theyโ€™re not actually the ones pushing to Canary and that they have some kind of bot that does it automatically

hexed cloak
#

So they're pushing automatically when something changes?

#

well somewhat automatically

#

that's crazy

hollow wing
#

but why update so frequently, can't they test it out a bit first

hexed cloak
#

they test it out in canary i suppose

#

who needs a user environment when they can just push updates like crazy

hollow wing
#

they push at an average of 1 every 6m tho

#

2x that on peaks

hexed cloak
#

also I noticed that after updating they completely change the app folder which also changes the app.asar installed by vencord, how do you guys stay on top of that? is the updater itself inside of the old version that downloads a newer version and runs that?

scenic brook
hexed cloak
#

Ah, that's cool

glass jasper
hexed cloak
#

I see a lot of discord's code is just out there, but google says that it's not opensource

median rapids
#

pretty sure they have some requirement to use it

glass jasper
fossil inlet
hexed cloak
glass jasper
fossil inlet
glass jasper
hexed cloak
hexed cloak
jolly egret
#

discord is hosted on gh itself btw

hexed cloak
#

oh

jolly egret
#

discord/discord exists

hexed cloak
#

meant to reply to 708275751816003615

glass jasper
hexed cloak
#

which i don't know if it does much for the client

#

and the update.exe

jolly egret
#

bruh

still maple
#

i've done the same things so often

#

when discord propose you to PR to upstream instead of to origin

stiff cove
#

im sorry github wants us to merge with vencord so bad ๐Ÿ˜ญ

limber skiff
#

I swear why dont they push stable today

jolly egret
#

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

austere talon
#

lol

#

cant blame em

#

keep it private if u dont want people to copy

austere talon
#

make a new repo

jolly egret
#

would delete their issues

fossil inlet
jolly egret
#

tbf they're all 7 hours old basically

stiff cove