#👾-core-development
1 messages · Page 174 of 1
i know but
const { foo } = findLazy(...);
if foo is a string
how do you make this work while still being lazy
foo will become a proxy
then it doesnt work
well the type will be wrong I guess but
you're passing a proxy as string that makes no sense
you should rarely use this anyways
before it would throw errors, now it doesnt at least
it's not perfect but it's the closest we can get
it seems really bad because you end up with not strings
how does passing that to className even work
in the old state it would error, now it doesnt error, but may cause an issue in the future depending on how you use
are you sure its not turning into [object Object]
Maybe the IDE is bugged
what do you mean the IDE is bugged
Uhm
I'm literally running on discord with it
that's right, the string turns into a function because that's what the proxy is
but will it cause issues besides with typeof, I don't know
I guess it calls toString internally always lmao
and how would toString() turn it into a string
and toString is accessing the inner toString
right
the actual string value
anyway i dont like this tbh
its weird
you rely on it doing some string operation or toString
its really hacky imo
do you want to throw error instead
idk what a good default behaviour is tbh
like
the other behavior is the ugly Reflect.get error
or proxyLazy too
when i tried it out it was like:
the target was 12321321123 and the prop was Symbol.toPrimitive
and i wanted to return obj without the reflect.get
but the return type was supposed to be a function (i think) so i just wrapped it in ()=>
oh yeah that makes more sense
i noticed it would proxylazy the primitive as well but i thought it was normal behaviour so i just only looked at primitives
mb
i made ur change
thanks for helping me
yeah the function it wanted the toPrimitive one
though idk if we are gonna merge it cuz as ven said it's weird for the primitives to become a proxied function
oh ok
i thought it was allowed bc of this
// meow here will also be a lazy
// `const { meow } = findByPropsLazy("meow");`
like couldn't meow originally be a primitive but since it's lazy it'd be a proxy
is it not supposed to be allowed
yeah but for primitives it doesnt work well
so is the ideal move to disallow this like u said (throw error) and fix startuptimings using the same tick thing instead
do u want me to try fixing startuptimings still?
okay throw the error
and let me show you how to fix startup timings super easy
that should fix it prob
yyeah it does
@austere talon you should set server icon to the rainbow vencord icon
nah
do it
and put in the same pr
i should probably be posting in #🌺-regulars
Thanks @Nuckyz for telling me how to actually fix startuptimings
import StartupTimingPage from "./StartupTimingPage";
throw new Error("proxyLazy called on a primitive value");
None
None
None
None
None
None
None
None
good
very nice
will be an epic merge
welcome back from the dead
Discord Account
No response
What happens when the bug or crash occurs?
Using git bash to inject vencord into discord, it's blocked by windows defender
What is the expected behaviour?
Inject vencord
How do you recreate this bug or crash?
- $ pnpm inject
- file: C:\Users\Chay\Vencord\dist\Installer\VencordInstallerCli.exe detected as trojan
Errors
$ pnpm inject
> vencord@1.7.4 inject C:\Users\Chay\Vencord
> node scripts/runInstaller.mjs
Downloa...
what's the "correct" way to dev vencord? i've just been using vesktop and running pnpm run watch
every time i update i do pnpm build and pmpn inject
yeah that's fine
false positive just exempt it
As I am compiling the source code, why not compile the injector locally too, this should remove any false positives...
As it shares a sha256 I assume somewhere in the injection code it's just downloading it...
if thats the best way then maybe it should be added to the contributing docs
that works, it's what i use as well
or you can just inject your dev build into normal discord desktop
docs are getting overhauled soon
oh nice
@austere talon can I merge this, unless you are against the find accepting an array of string or something https://github.com/Vendicated/Vencord/pull/2283
why tho
regex is not efficient
strings are more than enough
this is like the first case a module only has generic strings which need more than one to match properly
and it's still efficient
let me show you the module lmao
// [EXTRACTED] WebpackModule434479
// WARNING: This module was extracted to be more easily readable.
// This module is NOT ACTUALLY USED! This means putting breakpoints will have NO EFFECT!!
0,
function(e, t, n) {
"use strict";
n.r(t);
var l = n("735250")
, a = n("470079")
, s = n("803997")
, i = n.n(s)
, r = n("481060")
, o = n("858752")
, u = n("294639")
, d = n("697908");
t.default = a.forwardRef(function(e, t) {
let {renderIcon: n, text: a, selected: s, badge: c, showUnread: f=!1, ...h} = e;
return (0,
l.jsxs)(r.Clickable, {
...h,
innerRef: t,
tag: "li",
className: i()(u.containerDefault, d.wrapper, {
[d.modeSelected]: s
}),
children: [f ? (0,
l.jsx)("div", {
className: i()(d.unread, d.unreadImportant)
}) : null, (0,
l.jsx)("div", {
className: d.link,
children: (0,
l.jsxs)("div", {
className: o.content,
children: [(0,
l.jsx)("div", {
className: d.iconContainer,
children: n(d.icon)
}), (0,
l.jsx)("div", {
className: d.name,
children: a
}), c]
})
})]
})
})
}
//# sourceURL=ExtractedWebpackModule434479
it's what does this
and for obvious reasons the classes it uses are the same as the normal channels do
so this ends up only having generic stuff which all other modules have
but having find as an array let me match 2 strings which only this module has both
honestly it doesn't seem like u need to actually patch this module
you add your own component after , c right
c is passed via badge prop
yep
you can patch the parent and change badge to an array with your element
hmm I see
but at the same time, it doesn't hurt to allow find to be an array
and we can still enforce a single find always
I think this is something in the future will have to be done either way
for a case
so why not now
very minimal changes, the hardest part was the patch helper lmao (to interpret the array)
cba611c Better error for primitives on proxyLazy + fix ... - waresnew
it downloads the cli installer binary from https://github.com/Vencord/Installer. this is exactly the same as the gui you normally install with, just as a cli instead.
compiling it from source requires go installed and takes some time, so no this is not an option.
just whitelist it in defender
false positive. ignore it, unquarantine/whitelist the binary
there's nothing we can do. report it as false positive to microsoft if you care
description: 'Fixes "Message could not be loaded" upon hovering over the reply',
since this is gonna be a very rare occurence, i don't think having the hover requirement is necessary
u should verify that u got the right message
why is it rare
referenced message is only provided over gw iirc
so if you're going back through msg history unless it's cached it's gonna be unavailable
yo that's what i was about to say
lol
since this is gonna be a very rare occurence, i don't think having the hover requirement is necessary
In one of the servers I'm in, ctrl+F'ing for a certain term guarantees all the replies in the search results to be unloaded (maybe bc the results are spaced apart in terms of timestamp)
So I'm worried if not having a hover check would send like 10 requests at once if the user starts scrolling through the search results (or I could just use a queue)
i had the comment loaded up

Adds a context menu button to voice channels to quickly put the mentions of all users excluding yourself into the text box.
For Request: https://github.com/Vencord/plugin-requests/issues/253
Split this into multiple lines
Split, let me know if any other changes to that function are needed.
Pleaaase make it exist
It would be nice if this gets merged anyway and then can be updated later to work with new API's whenever they release..
I would love to if I just had the time for it. I might have some spare time
next week, I'll have to see.
On Mon, Apr 8, 2024, 9:34 PM TheCuteOwl @.***> wrote:
Pleaaase make it exist
—
Reply to this email directly, view it on GitHub
https://github.com/Vendicated/Vencord/pull/2123#issuecomment-2043417888,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AT6L3QK633QPMTSXTCOW4UTY4LPKPAVCNFSM6AAAAABCEDX4L2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZ...
Fulfills Vencord/plugin-requests#199
Main feature is changing the timer until your status gets set to idle (or preventing auto-idle forever)
There's also a "grace period" where it'll let you stay idle, even if you come back to Discord
Once you click "Stay idle", you ...
ngl i think it'd be better to do like a "You are currently still idle. Click the button to exit idle" bar instead of the grace period
lemme change that
keep in mind that this idle timer is coupled with mobile notifications. so if you set it to a very high number or disable it outright, it might break mobile notifications
keep in mind that this idle timer is coupled with mobile notifications. so if you set it to a very high number or disable it outright, it might break mobile notifications
oh ok i'll make a more precise patch for disabling then
whar
@heavy cedar afk: true is required for mobile notifications to be sent if you have an active session elsewhere
yeah i was planning to let it fire the idle event after 10 minutes like normal
and instead cancelling the actual status change
i rly hope mobile notifs don't check for the status to see if it's idle
yeah i think a lot of these are like a "this is cool" thing instead of being useful
like the streampreview one
yes
no
also afk != idle
if you're only affecting the auto idle change that's fine
notifications are determined by the afk parameter
isn't afk the one for voice
or did i underestand it wrong
i didn't touch afk at all (i was originally just patching the part where it dispatches IDLE)
hm maybe i should've tested with my phone first before editing stuff
ok i'm just gonna revert to what i had before and then test it with my phone later
whar
as long as this is still dispatched
and set to true
after the afk timeout
you're fine
surely the latest one overrides the previous one
fun fact: i did not know about dev mode until now
🥲
yes
this function is almost completely duplicated. why not make one function and have it take a second value boolean argument?
please type your arguments
function stopStreamerMode(data: { streamKey: string }) {
please don't use html. stick to simple markdown tags
what's the point of these brs?
your logger already has its name printed, so repeating the name here leads to duplicate info
also, you don't print any relevant additional info here other than the status code - why not just add it to the bot message content instead?
since discord now uses electron 28, it might be possible to use fetch
but i'm not sure if electron 28 rollout is 100% yet
3ecd2de plugin settings: fix filter dropdown having no ... - AutumnVN
is this compatible with TypingTweaks?
look forward to when mine is merged
which one
showBadgesInChat#2302
YIPPIE!!!!
i'm really glad this was merged
because now i can finally add more emotes to my server with ease

26f3618 TypingIndicator: Add an option to show user ava... - Sqaaakoi
by do not use raw dom i meant do not use document.querySelector at all. it's very hacky and not the ideal way to do it
we sit here waiting for mine to be merged #2302
lol
itll be soon 🙏
i rpomise
We're in the death straits
i have pinnk name cuz im cool 
gg
i’m executing you if it’s not /hj
KrystalSkull™©® says that they'll say my pr is amazing if I say theirs is.
This is a great PR
bruh
we had a deal
i will merge into my fork soon maybe idk
in all seriousness, it's a great plugin
thank you <33
38ffdd7 FriendsSince: Add icon to be consistent with "m... - Vendicated
thank you for the contribution!
this has a loot of issues such as
- dom manipulation instead of using discord module
- hardcoded colour instead of using discord css variable
- wrong size (should be 16px, not 18px)
- bad formatting
as such, i have fixed these issues myself and commited it (with you as co-author) via https://github.com/Vendicated/Vencord/commit/38ffdd7d9457858c6a79a5705f4c7746047f7561
Could you switch this to the 'dev' branch? I may have some conflicts on that branch so I want to fix those real quick
don't use minified variables like C
match: /\(0,\i\.jsx\).{0,150},children:.{0,50}\("source",{src:(\i)}\)}\)/,
this description should be more descriptive
i love finally not having to cherry pick the dev contant commit into new branches
proxyLazyWebpack is for when you have webpack search inside your proxyLazy factory
outside webpack modules are already tracked anyway
Messages: proxyLazy(() => ({
there are some plugins like ViewRaw that remove message logger properties
please see if any of them need adjustments to also remove this property
this seems a little too vague. please make it a bit more specific
instead of bool ? <Component /> : null, use bool && <Component />
when doing this, make sure your bool is actually a bool, if not convert it to one via !!bool. something like arr.length && <Component /> will render a 0 if the array is empty xd
github pr UI is stupid
ohhh
there are 2 edit buttons
the body of your first message
and the title and other information
i have worried "ono i cant rename this PR" today due to this shit UX
i mean
it also applies to issues
it was an issue I had the problem with
why type it as optional above only to then immediately non null assert?
it would be better to either explicitly check for non null or adjust the type to make it non nullable
huh refinedgithub?
i'm a bit confused. these separators don't show up in your screenshots. am i misunderstanding their purpose? or are your screenshots outdated
in any case, why not do this with ::before and ::after in css?
yep
what does it have to do with it
got it a few days ago
everytime i try to discard changes to a file
it gives me that error
i didnt know it was related to refinedgithunb
ohhhhh
the discard button
i thought u were getting that on the edit button
yeah discard changes is a refinedgithub feature
just fix ur token
this description is hard to understand imo. maybe something like
description: "Never hide image links in messages, even if it's the only content",
?
is this empty className intentional?
how often is dev merged into main

i’d believe it
All reviews should be fixed and resolved now, had to do some fuckery with pull requests and branch merging but testing it didn't seem to break anything thankfully
sooo this pr seems to patch the Guild thingie row component and check if props.text is GuildHome, then renders its own component
you could just directly patch the parent instead. the component takes a badge property that renders exactly in the position you want. you could just use that property and have a much cleaner patch without the hacky find for the super tiny generic module
yes, Discord codes adds a class I don't want when you dont have a className set
@austere talon should I change the patch but keep the array find stuff
don't include a Roadmap in the README. the user doesn't care
you should instead complete this roadmap before merge
this reduce is confusing. more logical syntax would be
discordBadges.filter(badge => (userFlags & 1 <<< badge[0])).map(badge => <RoleIconComponent ... />)
please add a comment saying that
otherwise someone might see it during refactor and remove it thinking its a "bug"
aight
it seems whoever wrote this ui code has no idea how react works, so i recommend learning basic react first with the official react guide
that wasn’t me, that was left from the old pr
prefer using the flux property instead of manually managing subscriptions
description: "Automatically enables streamer mode when you start streaming in Discord",
name: "StreamerModeOnStream",
vennie eye
34c74b4 new plugin UnlockedAvatarZoom: allows crop zoom... - nakoyasha
Adds a plugin that just follows the example usage of the ghostery adblocker for electron.
Currently the only activity I know of with ads is the WatchTogether one, but in theory this should also block ads in other activities since it's applied to the default electron session
Apart from the included .ts files, this adds a few dependencies
$ pnpm install --save-dev cross-fetch
$ pnpm install -...
7fa1259 NoMosaic: make loading image work with responsi... - AutumnVN
for me these two classes are on the same element, so this doesn't actually work
what works for me is changing line 11:
- .messagelogger-deleted-attachment,
+ .messagelogger-deleted-attachment:not([class*="hiddenAttachment_"]),
duplicate of https://github.com/Vendicated/Vencord/pull/2021
you just added half a megabyte of code (bundled & minified). please don't introduce new dependencies so carelessly
we love 3 dependencies adding 21 vencords to the bundle
what the fuck
Already did this, just forgor to delete this part
ok i just checked and it is not. how should i make it compatible?
i assume i should just add a predicate that disables the patch if typingtweaks is enabled.
ideally if both are enabled at once the typingtweaks names would display in the showmeyourname format. is cross-plugin behavior like that even allowed?
now it's almost a modern hello world example
What Flux property? I feel like this is already good enough. I was searching and couldn't find what you were talking about
a
closing this to reopen with all the changes made
^ I fucked up an accident closed this and now it’s not letting me reopen it so I’m gonna have to just open up a whole new one
Mostly to imitate vanilla Timestamp's behavior if not setting children. I think it's for accessibility and/or copypaste reasons.
@austere talon I think you should make up your mind on that one
did i give u suggestion to change it to that
past me is stupid in the head ignore them
what a stupid idiot 
sorry lmao
But it's the non-Webpack version that should be done there, since it doesn't do any webpack stuff (but does access another webpack-lazy object)?
yes non webpack version
i mean it doesn't matter really
but yeah xd
the outside lazy is already tracked on its own
Also is rebase+force-push supposed to mess up the commit list in the pr timeline?
there are projects that prefer rebase in prs??
why
it makes code review inconvenient
corporate professionalism bullshit
doubt
if u force push it messes up app the review comments and makes it hard to figure out what changes you made after review
horror
like usually i review then check the later commit to only review the changes
if u rebase and force push it forces me to read the entire code again
if u do prs right (aka one single feature per pr), then you want it as only one commit anyway, so you should squash
as such rebasing during the pr is pointless cause it will be rebased in the end anyway
i always squash + rebase prs so it doesn't matter whether you have clean commits or not
a lot of the time i commit shit as random keyboard smash or other stuff cause it's gonna get squashed anyway 
horror

where does PinDMs look inside the vesktop dir to get currently pinned dms?
before the category update it would look for channel ids inside settings/settings.json under json "plugins": { "PinDMs":{ "pinnedDMs": "ids-here" }, },
but now the json file is unaffected by pinning dms or creating categories
sorry if this considered a stupid question, im not really good at reading js/ts :(
Why would that be in vesktop dir? Somewhere in localstorage would make more sense (probably via DataStore)
horror
using datastore for that
WHY
yop it uses datastore
devs will make DataStore sync list api
Discord as of today disabled lootboxes, so i made this plugin that enables them back
grrrrr
it's the same thing honestly....
no it isn't. variable names may contain characters that are not matched by \w, such as $
i'm not sure how useful this is.
won't discord just remove the api / code for this very soon? longevity of this plugin seems unlikely
why not post it as a js snippet instead?
The api will never be removed, discord will just forget about this, a js snippet is not possible...
correct if i’m wrong and i’m slightly sleep deprived so i might be, But won’t discord notice activity on an api that shouldn’t have activity on it and get very suspicious
unless the api is set to ignore all checks and instantly suspend you for using it, no
trying to verify your email while already having a verified email used to do that but it wasnt meant to and was fixed
It adds a blank space to the end of the messages sent by the user, so that the height of the emojis (if the message only contains emojis) is reduced as if there was text in the message.
- The character can be changed in the settings.
- The character isn't added if the message doesn't contain any content (e.g. only an attachment) or if it has any links.
Enabled:
Disabled:


nitro only tho
i might be gaslighting myself but didnt they do some sort of custom sound thing before but it forced u to use server soundboard stuff
fakenitro
apparently its per guild only atm
so individual servers can have their own custom notification sound i guess?
which is probably why its also nitro only cuz u dont set anything really client side oh well
5636f9d Array support for find + ResurrectHome: View Se... - Nuckyz
couldn't this be merged with noReplyPing?
e0becc1 ShowHiddenChannels: Fix incompatibility with fa... - Vendicated
cba611c Better error for primitives on proxyLazy + fix ... - waresnew
3ecd2de plugin settings: fix filter dropdown having no ... - AutumnVN
ae01e88 EmoteCloner: fix low quality; don't count manag... - byeoon
26f3618 TypingIndicator: Add an option to show user ava... - Sqaaakoi
None
None
None
None
None
None
None
None
aight it won't affect mobile notifications now (it'll respect the setting in vanilla discord)
you can see here:
^ I'm online (disabled auto-idle) but I'm afk
Also changed the "grace period" thing to this:
It's not much but it will help a bit with the type signatures and create a more obvious place for things to go in the future if applicable.
It might be better to use the mergeDefaults in misc.tsx but it crashes due to the isMobile definition in there (ReferenceError: navigator is not defined) and I don't want to move around exports that might be used by e.g. vesktop.
u can just extract mergeDefaults to src/utils/mergeDefaults.tx
It is getting removed very soon #🔧-discord-changes message
bruh
wgats the icon look like
this one? or this one
🔥🔥🔥
10/10
10/10 might steal
who would want to replace this..
thats what im sayin
idk its fine it took me a bit to get used to not being the original discord icon but honestly i like gay vc better
Ah, would it be in the plugin constructor?
Speaking merged need to finish that plugin so that i can the pr
any update for this pr? 👀
supersedes the abandoned #1980 (Is also just complete rewrite of it
Shows the message author's badges beside their name in chat.
The badges include all built-in Discord badges.
It also proudly displays your Vencord donor/contributor badges.
The settings editor lets you:
- Drag to reorder
- Click to enable/disable a specific badge type
- Hover over a badge for the tool-tip about what badges it represents
An example of what the menu looks like ↓

If this were to be a update that was pushed upstream, this can't be the README.
I think they meant to close the pull request before that
Looks good and quite polished.
LGTM although will it show Nitro badges? (Boost, etc)
Yes
@jagged reef Yeah the two devs that made it seem too be quite good at this and they made a really good plugin
the reason is cause people kept abusing github actions to mine crypto currency and i think pr workflow runs take up resources from the target repo
"LGTM" also stands for 'let's get this money' if you are cool
Lmfao

Ngl I always thought it meant “let’s get this merged”
😭
hahaha my coworkers would have liked that
Also we should disable buttons on removed polls, but that probably should be in separate issue
honestly cant repro this anymore it might just be a certified discord moment:tm:
yeah i tried it a few days ago too and it showed it correctly
it could be, yes, but at the same time I don't want noReplyMention enabled,
I just want to be able to quickly toggle the mention on my reply and the
current name of noReplyMention doesn't reflect that functionality. If
there's a desire to merge this into that plugin and we can figure out a
better name for it as well then I don't see an issue with merging them.
On Tue, Apr 9, 2024 at 12:18 PM KraXen72 @.***> wrote:
couldn't this be merged with noReplyPing?
—
Reply to...
I am very sorry, This is like my third time using github, but I fucked up and this was my attempt to fix it. I hope it work. 😭
i have an idea
what if we enabled third party plugins by default
so you don't have to always first enable plugins when you're making them
is it really worth saving the at most 30 seconds it takes to enable a plugin
yes
don't you only need to do that once and you're done assuming you aren't renaming the plugin
what if it enables a broken plugin and then you have to disable like 10 plugins through console cause you dont know which one is the broken one
i like that idea
binary search!
Wouldn't be great for things like my repo which has a dozen plugins in it, some of which aren't useful for anyone except me (and a few not even for me)
But I do hacky stuff to get the folder to work at all, I can workaround that too
You can clone the whole repo into userplugins, or you can grab individual subfolders
Merge
Depends on #2346
Addresses plugin request https://github.com/Vencord/plugin-requests/issues/188
Many TODOs still but it's working pretty well for what it is so I figured I could put it in the review queue and if I get more time to work on it I'll just keep adding on.
Features (each can be enabled/disabled individually):
- (background) A 'safe' native interface that allows the user to select their media download folder without exposing direct file writing capabilities to the renderer...
how
yes it is 100%
how do you know if a plugin is
- 3rd party
- new
check if it's a dev install 
checking if it's new is easy
does the settings contain that key
3rd party? just add some flag for things in userplugins ig
what if it's a new plugin just in regular plugins that was just created
Thanks a lot for the fix. I was very excited when I read this in the changelog and even more when it actually worked.
On VirusTotal: https://www.virustotal.com/gui/file/466d2a0be1f380ddffed052df3cc132125fa34dc1af29312e14f13f358c8d2a2
Defender isn't the only thing flagging this, but I have also never heard of the other two AV solutions (Jiangmin & BitDefenderTheta) that are detecting.
On VirusTotal: https://www.virustotal.com/gui/file/466d2a0be1f380ddffed052df3cc132125fa34dc1af29312e14f13f358c8d2a2
Defender isn't the only thing flagging this, but I have also never heard of the other two AV solutions (Jiangmin & BitDefenderTheta) that are detecting.
EDIT: Also reported as a false positive to Microsoft, submission ID 3fe767c7-aedc-403e-b842-48212228c949.
Still false positives. Just ignore them
Refactored and cleaned up the patch stack some. Should be much easier to review commit-by-commit now.
Adds Read Receipts using hidden Gifs in messages which send a request to an external server that keeps track of when and if the message was read by the recipient, which gets forwarded back to your client.
For when your pookie leaves you on read
Oop, I probably should have renamed the "SilentMessageToggle" as it was reused, I do not know how to give credit to that, and not sure if I technically should, just a couple function from it was reused, as I didn't understand how to do a thing or two.
But uh yeah, It works, and it's cool
Why are they using query selectors 
well at least they didnt use nested if statements checking if the query selectors returned an element right
This won't get merged as it's stalking other people and creepy features like this this are unwanted in vencord; hence every request for this in https://github.com/Vencord/plugin-requests has also been closed.
Also the code sucks lol
the (multiple?) empty patches 🔥
About that..
lol yeah the code is uh, yeah, but I tried I guess lol, It exists.
I wanted to try and see what would happen if I tried to open a pr
and I prob should have read the plugin-requests
My bad
This plugin will not be added as it's an invasion of privacy as users won't know that you can see if you read them. Either way I'm going to leave this review in case you want to make a different plugin
whats with the comments here
Same thing with the channel id function- there is a much better way to do this and this is disgusting.
This is disgusting and there are many other ways to do this, look at other plugins
Oh yeah, There certainly is
It removes all instances of the link from showing on the client side, So that it just cleans up its appearance and invisible links won't be showing in any way
if that makes sense
This plugin will not be added as it's an invasion of privacy as users won't know that you can see if you read them. Either way I'm going to leave this review in case you want to make a different plugin
Lol yeah, First time working with Typescript, and plugins so, Don't expect much good,
Thanks for giving feedback, Sorry if my code has made you loose brain cells
All for this,
we need more contributions LMFAO
I'm not sure if this is the right channel but how could i export/build an installer for a vencord fork?
I don't really know how i can be more specific
I made a fork of vencord and id like to send it to my friend in installer format (cli or visual idrm)
Added Discord notification sound (toggleable ofc), thanks to Drakz for the snippet.
@limber skiff https://github.com/Vendicated/Vencord/commit/5636f9d9797bf64170db56447f4bf38f8fadf169 is causing
Error in handlePush TypeError: patch.find.every is not a function
at patchFactories (patchWebpack.ts:190:42)
at Array.handlePush (patchWebpack.ts:85:13)
at shared.eb18f7955c6b0fd48757.js:1:65
error
how did this make it into dev
Ah.
It's all Vesktop psuedo-plugin stuff
Hi, i fixed the css for the readallnotifications button, making it not transparent and making it towards the center and left and right margin not touch other elements of discord.
here is a image,
Thank you -@golonchy
**patchWebpack.ts: **Line 280
logger.debug("Function Source:\n", code);
Basically wherever ```js
if ((patch.find as string[]).every(f => code.includes(f))
is
you are assuming that patch.find did get patched
It is not patched in the case that custom clients like Vesktop try to inject their own patches
You should patch it here if it isn't patched
i forgot to include a before picture, silly me
here is before with the previous style
<img width="67" alt="Screenshot 2024-04-13 at 20 13 23" src="https://github.com/Vendicated/Vencord/assets/165617563/79197894-72cf-4a28-8417-3add8dd9cabb">
if ((Array.isArray(patch.find) ? patch.find : (patch.find = [patch.find])).every(f => code.includes(f))) {
code I am using
or similar
Womp womp, L
This actually fixes my issue with that button right now, but the color is too vibrant, maybe change the color of the button to the normal discord color #7785cc
is just an suggestion anyway.
also another thing, i should make this in plugin request but what if users can custom pick the color.
💕
This actually fixes my issue with that button right now, but the color is too vibrant, maybe change the color of the button to the normal discord color
#7785ccis just an suggestion anyway. also another thing, i should make this in plugin request but what if users can custom pick the color.
i have it the dark blue color so it's easy to see.
to make the color customizable i think i would need to change the index.ts and idk typescript lol

This actually fixes my issue with that button right now, but the color is too vibrant, maybe change the color of the button to the normal discord color
#7785ccis just an suggestion anyway. also another thing, i should make this in plugin request but what if users can custom pick the color.i have it the dark blue color so it's easy to see. to make the color customizable i think i would need to change the
index.tsand idk typescript lol
tbh we dont really need a color picker...
MessageLatency
Displays an indicator for messages that took ≥n seconds to send.
NOTE
- This plugin only applies to messages received after opening the channel
- False positives can exist if the user's system clock has drifted.
- Grouped messages only display latency of the first message
Demo
Chat View
Clock -ve Drift
![pissbot-on-to...
must merge asap
pissbot on top
what is this 💀
i wonder what it is
almost as if there are comments and code written
its basically when the nonce is higher than than the message id
which is usually the case when your system clock is ahead of the actual time
i say usually cause nonce can be manually controlled
the plugin is not foolproof
🍞
yes it's broken rn
i will partially revert it
and add a dedicated function for registering patches maybe
could be less rude
I tested a lot before merging, I just don't use vesktop and forget about it
smh smh
5
time to have a look at stable (theres 3 broken)
it's fixed just in another branch
oh ic
PronounDB (had no effect):
ID: 530
Match: /{user:(\i),[^}]*,pronouns:(\i),[^}]*}=\i;/
PronounDB (had no effect):
ID: 530
Match: /text:(.{0,10}.Messages\.USER_PROFILE_PRONOUNS)(?=,)/
ViewIcons (had no effect):
ID: 735336
Match: /style:\{(?=backgroundImage:(\i)\?"url\("\.concat\((\i),)/
extractAndLoadChunks(["openAvatarDecorationModal:"], /Promise\.all\((\[\i\.\i\(".+?"\).+?\])\).then\(\i\.bind\(\i,"(.+?)"\)\)/)
None
None
PronounDB (had no effect):
ID: 530
Match: /{user:(\i),[^}]*,pronouns:(\i),[^}]*}=\i;/
PronounDB (had no effect):
ID: 530
Match: /text:(.{0,10}.Messages\.USER_PROFILE_PRONOUNS)(?=,)/
ViewIcons (had no effect):
ID: 735336
Match: /style:\{(?=backgroundImage:(\i)\?"url\("\.concat\((\i),)/
ShowMeYourName (errored):
ID: 750858
Match: /(?<=onContextMenu:\i,children:).*?\}/
Error: Unexpected token ')'
SpotifyControls (had no effect):
ID: 720734
Match: /return ?(.{0,30}\(.{1,3},\{[^}]+?,showTaglessAccountPanel:.+?\}\))/
extractAndLoadChunks(["openAvatarDecorationModal:"], /Promise\.all\((\[\i\.\i\(".+?"\).+?\])\).then\(\i\.bind\(\i,"(.+?)"\)\)/)
None
None
ba dum tss
vendetta reference RIP🪦🕊️
i think canary and stable are now equally broken
anyway imma look into fixing spotifycommands and showmeyourname
Is blocking discord updates a bad idea?
Or atleast prompting people if they want to update before continuing
That way people could stay on the last working version while things get fixed
also viewIcons
btw should there be a PR for each plugin or is it fine to just fix multiple patches in the same PR?
Not really possible
probably pr for each plugin
Feels like I'm an annoyance if I open multiple one line prs but sure 
didnt see that one ty
you could do that in my pr 🙂
i deliberatyle made it transparent via https://github.com/Vendicated/Vencord/commit/8ab56f5bcfe720b8e6d03f85b5f4ada1a18bfc37 to be less obtrusive
if you think this is now too unnoticeable, you can propose an alternative solution but your current pr is very ugly. it would probably be ideal to make it in a similar style as these. as in, use the same colour and stuff
this pr also hardcod...
which pr
webpack changes
it means one commit when it's actually merged though
not great for history
ig if it's just small changes it's fine
"fix broken patches"
i think it's generally best pratice to limit scope of commits
if u actually make changes to plugins then yeah one change per pr
but these minor fixes that are essentially just a chore irrelevant to history
can be one pr
ig I can put this in my other pr in the next days
can't now cuz not home
but then I can make it more backwards compatible
well
i kinda wouldnt
there's no rush to add this feature
like u added it when it's not even used yet xd
what i propose is to export a function to register patches/entire plugins at runtime
then use that from vesktop
this way we won't ever have backwards compat issues again
so add that and when enough time passed we can start making these breaking changes
I mean it was but then it wasn't needed again
but its also in the scope of the other pr
it shouldn't cause any issues if I do it together
and the pr is needed anyways cause reporter
I don't see a reason not to do it now correctly, so someone in the future doesn't have issues with it
how's that going?
out of curiosity whats the use case for this
but yeah that can be done
tbh im still unsure about array find
why not just regex
array seems weird
regex more powerful
I don't see a reason why to risk regex
It's easy to find a module with more than one string of it
as long as u keep the regex simple it shouldnt cause performance issues
and might even be faster than checking the entire string twice or more
the small ones are hard for a single string
but perf doesnt matter that much, im mainly thinking convenience
regex seems overkill and a potential cause of performance
hmmm the second point is good
I can't figure out how to fix the Spotifycontrols
you won me with the second point
well the current patch is bad anyway
regex is prob faster than checking 2 times
whats way easier is changing eK to our own component
and passing eK as a prop
let me do that
ok sure
I will do it in the fut
you can tell how old that patch is cause it still uses .{1,3}
i learned a lot since writing that patch and wouldn't write it the same nowadays xd
tbh i just want to fix these issues and merge into main today
thats why i just reverted
tbh matching this is a bitch
maybe i can patch eK component instead
yeah no worries
I can't do any work on it anyways because I don't have my computer
lol its so unreadable
remove the escaping on {
its not needed
and helps little
also change +? to *?
in case for some reason that prop is the first one in the future
we are so back
if you want to bullet proof too do "jsxs?"
i had that but
I mean its okayy
and its not necessary cause jsxs means it is a .map()
why would they ever map the profile panel
yes
I didn't know
it's jsx runtime stuff
what difference does it even make
you could put the .jsxs?) in a look behind
wtf
its related to giving errors for missing keys
I see
actually ig that's semi plausible
ignore that it should be props: { children: ... }
you also wrote jsx when you should have wrote jsxs lol
wow
Don't have anyy
My skill issue turned out too big for Spotifycontrols and pronoundb
And the other one had a pr already
so what exactly is the use case? why would a user want this feature?
oh yikes
is it just pronoundb left now
Ye
tbh i wanted to rework pronoundb anyway
Also pronoundb has some cors error not sure if that's fixable but you might want to look into that (it's pretty annoying because it comes up a lot)
instead of the pronoun source, it could have better tooltips
like if u hover it shows both sources
i think pronoundb might just be bad find
It probably is
But without knowing what exactly it patched before I couldn't find anything really 
you know what
yeah its bad find lol
we should start putting other strings of the mod in every patch
so we can try searching for them and finding what used to be patched
Yeah
in a comment
xd
it was easy to fix
the rest of the diff is just refactor
can u run reporter @limber skiff
and remind me tmrw to merge webpack changes so we can get automatic reporter again xd
uh nop
need to merge into webpack changes
oh fun
I don't have my pc
okay wait
conflicts yayy
None
extractAndLoadChunks(["openAvatarDecorationModal:"], /Promise\.all\((\[\i\.\i\(".+?"\).+?\])\).then\(\i\.bind\(\i,"(.+?)"\)\)/)
None
None
right
haha
RoleColorEverywhere (had no effect):
ID: 805009
Match: /renderName\(\).{0,100}speaking:.{50,100}jsx.{5,10}{/
extractAndLoadChunks(["openAvatarDecorationModal:"], /Promise\.all\((\[\i\.\i\(".+?"\).+?\])\).then\(\i\.bind\(\i,"(.+?)"\)\)/)
None
None
it looks like it works anyway?
first argument
false positive?
it's just a broken find prob
I really doubt it's a false positive
the reporter is working fine
wtf is a brownout
unless something changed
APIv1 of PronounDB is currently in brownout. Service will resume tomorrow at midnight (UTC), but please be advised APIv1 is deprecated and will be permanently discontinued June 1st, 2024.
Make sure to migrate to APIv2 to avoid further service disruptions. https://pronoundb.org/wiki/api-docs
PronounDB is a browser extension that helps people know each other's pronouns easily and instantly.
does openAvatarDecorationModal: match a mod?
and does it have a single chunk loading
if it does screenshot it for me


