#๐พ-core-development
1 messages ยท Page 246 of 1
will look soon

in the mean time can you try to change the find for PRESS_BADGE
bro reviewed is own pr
well, options
better yourself to provide alternatives if you know something you are doing might not be the best way and you want maintainers to check
Fair

vtest dev
Now testing! 
vhelp vtest
Reporter (report, vencord-reporter, test-patches, test)
Run the Vencord reporter workflow
Usage
vreporter [ref = dev] [branch = both]
Seems like everything is working fine (for now) 
Seems like everything is working fine (for now) 
Lol
thank you
@limber skiff if this is true, I'll add an error boundary in case it breaks in the future
new venbot feature!! failures get an id and PRs can mention those ids then venbot can link the pr in the embed
what??
husk
@jolly egret you might want to delete this, its fixed
https://canary.discord.com/channels/1015060230222131221/1344397971802030090
vext
The Vencord Chrome Extension is up to date! (v1.11.6)
done
what if the chrome extension just pulls vencord from github 
dont think thats possible
iirc chrome only allows signed extensions

otherwise, if the find fails, the app crashes
it's a modal tho
guhhhh somehow crashhandler was disabled
someone mention me
@limber skiff
okay thanks
@limber skiff
@limber skiff
alright done
i can't imagine why that would be happening
i don't have anything setup to clear dirs
@austere talon btw you should re-commit this https://github.com/Vencord/Vesktop/commit/e6c1a03c5955f8dff8ed741c59f5c9359afc7887
OAuth2AuthorizeModal conveniently broke right when i was trying to use it
why push a revert commit when you can rebase and remove it, then force push it 
you can maybe do this if no one uses your software
but if many people rely on it, force pushing will break many setups
and I need that commit for later
i love fixing obscure bugs 
one day we will force push Vencord main
iirc force pushing doesnt remove it from github, you still can checkout the commit and view it in the web if you have the commit hash. github themselves need to do a git gc so you can't view those lost commits
only on canary rn
๐ญ
that's not how mapMangledModule works
it wont have those properties if you dont map them too
they mangled it
of course they did
that wasnt meant to still be using byProps
(to avoid this exact issue)
anyways can you map the rest?
also improve the find in mapMangledModule to something more specific
once you have that the other finds for the functions dont need to be as good because it onlys targets that one exact module 
is something here good enough
getAssetImage: size must ===
guhhh thats not what i meant by the comment 
i mean they exist, but werent mapped (they're also not in the type)
@limber skiff i added the rest of the exports as well as some more types
Discords command list would have missing gaps in the IDs which would cause vencord commands to overlap with some discord commands causing a buggy UI after clicking around in it for a bit.
https://github.com/user-attachments/assets/a1184bcf-c7ad-481c-88db-e6ec75cd73c7
you used the wrong to in the comment 
me when i lie 
wait
i didnt see the second one ๐ญ

all my homies hate wumpus but at least hes getting special treatment today..
For some reason (please let me know if you know why), setSinkId errors when passed the string "default", despite discords code doing the same thing and not erroring. This can cause errors in the console and audio playback to stop if you swap to the default device after using a non-default device.
an empty string is the same as the default device
me when i have free time and open 4 prs in a day 
unemployed software developers clocking into their making 4 prs on open source projects shift
it's possible, its technically just a script
it wont get past cws review though
hi
I was using intellij's own psi file formatter before which took anywhere from 4-11 minutes lol
I'm currently using google's closure compiler to format before creating the psi file which takes about 20 seconds
i think anything is fine as long as its a pretty printer and not a formatter
@fossil inlet is this too hard to type?
tbh i didnt bother with the retrun type so i just put object
let me see if its easy
also seems like there are 5 methods, not 4?
they removed getAssetIds
coudlnt find it in the new module
okay
im going to try and type assets quickly
i ignored fetchAssetIds as it was already typed
seems to be a number and defaults to 1
but ill also do that
let me try to figure what it is
async function fetchAssetIds(applicationId, assets, n = 1) {
dispatch({
type: "APPLICATION_ASSETS_FETCH",
applicationId
});
let result = [];
let linkAssets = assets.filter(e => e?.startsWith("http:")) || e?.startsWith("https:");
if (
linkAssets.length > 0 &&
await N(applicationId, linkAssets),
A(assets, result)
) {
dispatch({
type: "APPLICATION_ASSETS_FETCH_SUCCESS",
applicationId
});
return result;
}
let fetchedAssets = await T(applicationId);
dispatch({
type: "APPLICATION_ASSETS_UPDATE",
applicationId,
assets: fetchedAssets
});
C(assets, result, fetchedAssets, n) ? y(applicationId).then( () => R(applicationId, assets, n - 1)) : dispatch({
type: "APPLICATION_ASSETS_FETCH_SUCCESS",
applicationId
});
return result;
}
it's kinda weird
hmm
tries is a smart guess
that would work
it looks like a recursive function with tries
was just about to say
asset names
so it only returns the asset names you choose?
it's these
lastfm-large
https urls will give you a mp:// url
which is media proxy
names will give you named assets
yes
try it and see :P
u can try it with this app 1108588077900898414
I got it already

wait
im really stupid
it takes the result, and maps the keys you specify in order
so for example, here the return result is [embedded_background: string]
weird that it returns an array
but it's basically an object in the form of an array in the correct order
that's gonna return nothing
cuz no asset name is called placeholder, right?
unless you made one troll
no, its a int instead of a string ๐ญ
for the id
either way if you wanna use those
and ive only seen one type of asset
this ok or would you rather just stick to any?
assets: Record<string, { id: string; name: string; type: number; } & any>;
that doesn't work lol
{ id: string; name: string; type: number; } & any = any
you wanna do & Record<string, any>
@fossil inlet, <t:1740014394:R>: check if discord has rolled back
they would never
still insane bundler change
|| Not for 3 more days||
its so weird because they're still using spreads in functions and arrays
even though object spreads have been around since 2017 on all major browsers
I feel more insane/ weird changes are going to be happening more often with them joining the open market soon
thats not all the possibilities silly
A user's presence is their current status and activity. Presences are usually per-guild, but user accounts also receive overall user presences for friends and implicit relationships (depending on...
@fossil inlet okay ngl I'm just gonna merge the find fix without the typings
I will do the typings another time, I dont wanna push something which isn't totally accurate but this module is kinda shit to type
Alr
Average #๐ฅ-vencord-support-๐ฅ users will enjoy this
update oneko script version, mainly to include https://github.com/adryd325/oneko.js/commit/b323d71 - now it actually appears on top of everything, rather than behind modals and some text
5eb4435 Fix plugins using ApplicationAssetUtils (like C... - sadan4
vtest dev
Now testing! 
Seems like everything is working fine (for now) 
Seems like everything is working fine (for now) 


what is the point in assigning r to the class that is being extended, when r isnt used anywhere else at all
it's probably just discord's code maybe
typescript is weird when doing extends foo.bar
SpotifyStore.ts: Lines 70-71
// For some reason ts hates extends Flux.Store
const { Store } = Flux;
SpotifyStore.ts: Line 78
class SpotifyStore extends Store {
weird
discords bundler so cursed / weird
it didnt tree-shake an unused function for some reason
and within that function, is code that will always error
* it wont always error, but it makes no sense
d is unused and PopoutWindowStore is not defined anywhere
it feels like that function only got partially minified
thats hilarious
they forgot to import it or smth
so the compiler can't minify it
cause it might be a global
why cant they if d is never used?
isnt that just basic tree shaking, remove functions that are never used
no clue lmao

ShowBadges has to be getting up there too
cake writer confused af rn
ill fix
crashes just after pressing the clone button 
what kind of error is it? cuz i know there's testing for patch fails so like what happened
just curious
runtime error
not a patch/find failing
eg (null).foo
ohhh so wait like the patch still works just a surrounding function got yeeted
in this case it isnt a patch, but discord chainging their internal API
@grizzled halo is this canary only or also stable?
ic 
stable
on another note, we really need to have our own discord types
the package being used just gets more and more outdated
alr, i made it a common in the first place because it was on the guild object, but nothing else uses it 
@austere talon why cast instead of type 
because type looks atrocious, especially for arrow function syntax
it's very hard to see on a glance whether it's a type or the real function
cast is much clearer
// type
const func: (guild: Guild) => number;
// actual function
const func = (guild: Guild) => number;
i agree with that, but only when a value is not assigned right away
something like
const func: (guild: Guild) => number = foo(/* ... */);
is pretty clear
cast is not much much better
typing a function is just cursed if there is an actual function being declared
anyway it doesn't matter
yop

am i crazy here, or is r.hydrateRoot a noop
because the assignment operator takes precedence over the comma operator
(yes getters can have side effects, but why would this code ever be generated in the first place)
why delete the head repo it takes nothing to keep it there 
couldnt bother
wouldnt do any more pull requests because cant bother to learn typescript
its just javascript ๐ญ
i sure hope you dont want copilot code in vencord
my javascript experience is just enough to make useable websites
@hollow musk would you mind if, some time in the future, i picked up the pr
i really like the client theme plugin
go ahead, not stopping you, anyways someone has to fix it, and if it isnt me, im fine
you weren't even asked to make changes it was just sitting there with no burden to you, could've just left it
no, i understand closing it. you dont want to have it pop up in your mind every so often
the humble public archive:
and the code is still there if anyone wants to open it in the future
why keep your pr open if you dont plan to do anything else with it respond / be active
oh i thought the code was gone nvm
its stupid, but usually i want some kind of comment when i made my pr, even if the comment is a 'you suck' or something
but that pr just staying there, no one reacting or being involved just gets me annoyed
usually i would wait about 1.5~ months before deciding to close it
exactly
commit history is still there btw, github needs to do a git gc on the pr manually to get rid of the history
Vendicated/Vencord #3168 @33c680b
maybe the bundler does this cause technically hydrateRoot could be a getter with side effects
lmaoo
yea, i mentioned that, but this seems like some generated code
and if its written by hand, i dont think they'd leave hydrate root laying around (linters, etc...)
and if its generated, why include hydrate root
this is what it looks like before & after
i opted for a red overlay instead of grayscale since it is hard to notice on certain kinds of images
i haven't seen any bugs with this after testing for a bit, and i don't think any of my changes have any negative unintended side effects
fixes #2249
i did and i got no support. i'm using a hackintosh, and after figuring out hardware acceleration, the installer worked.
they were running macos this entire time with no hardware acceleration??
also does the installer seriously have no way to default to software rendering?
that seems really stupid
so, i wanted to know a thing, should this be considered a pull request about vencord core, or a plugin
because, technically i edited the permissions viewer plugin, and added a feature there to make it more usable
Plugin, but you can talk about PRS here as well
oh, thanks
rnnoise is leagues better than krisp
sees 2 comments hidden as spam and 1 deleted
adds yet another useless comment
they are just adding a warning, it's their job
๐ญ
Relatively trivial change, but has bothered me on occasion
Thanks, this fixed the following bug:
#1127
Adds a plugin that adds more options to the Clips settings, for FPS and duration. More useful now that Clips can be taken without streaming!
Also adds RPC tagging so that games that you add for clipping but have no icon can adopt the icon of their Rich Presence (this would normally be the [?] icon):
![image...
that's gotta be the worst i've ever typoed a PR title holyyy shit
Plguin ๐ง
nah thats the vencord way
timedones
Content
Cannot find a reason for this to happen, started on last vencord update. It will show the first frame of the video, play audio, but never play the actual frames.
stable 375609 (871f03e) Host 1.0.9185 x64 (59498) Build Override: N/A Windows 11 64-bit (10.0.26100)
Vencord 5eb4435 (Standalone)
Electron 33.4.0
Chromium 130.0.6723.191
Request Agreement
- [x] I have read the requirements for opening an issue above
?remind 12pm bump a pr
Alright @fossil inlet, in 13 hours, 55 minutes and 30 seconds: bump a pr
wasnt that fixed with the esbuild update
hop on w3schools
https://www.w3schools.com/cssref/sel_nesting.php
w3schools is crap

@fossil inlet, <t:1741485870:R>: bump a pr
it might have been a throwaway or something
the one commit is by another account that still exists
and has the same pfp
why would you make a throwaway bruh
if your pr didn't get accepted, so be it
because if it had got accepted, then both accounts would have Contri
atleast thatโs my best guess
love how github is like "these conflicts are too complex to be resolved in the web editor" and then the ide just performs the merge without issue ๐ญ
yeah, then you just press . and click resolve button there
and it just works

wtf gh
thats not the web editor smh
i didnt even have to resolve anything i just told my ide to merge dev into my branch
and gh was like
someone should review
https://github.com/Vendicated/Vencord/pull/3272
What happens when the bug or crash occurs?
When I try to clone an emoji, this appears (https://imgur.com/a/EbOs4kQ) and I cannot clone any emoji, but can stickers...
What is the expected behaviour?
Umm.. I expect Vencord to open a window in which I can set up the name and on which server I want to clone an emoji, but discord says that it crashed, and it prevents me from doing it
How do you recreate this bug or crash?
- Right click an emoji
- Click "Clone Emoji"
- Opens win...
Wow thanks for answering, very nice
@austere talon contributor/collaborator check when:..
honestly at this point just close them and make https://bugs.vencord.dev forum
husk
Yall have a hive mind 90% of the time
why does discord embed a base 16 theme ๐ญ
how the fuck did i do it again
Detach your fork if you have no intention of contributing back to Vencord.
thats not the only thing forks are for...
nop
Sorry for the insane delay, but I just got around to this now.
The check is already in the code on lines 83-90 on main.go as well as lines 105-111 of routes/discord.go
What happens when the bug or crash occurs?
Please allow me to establish my reading comprehension first:
Yes, I did see that unless I am a contributor/was explicitly told in the support server to not use this form. Unfortunately, on my four separate accounts (only one of which has ever been in the server and I doubt ever interacted with anyone in a negative context to get banned), I am unable to accept the invite. If someone would like to contact me for information and then remove/clo...
I'll also note that that specific error log is from the web application with the official Vencord plugin (not tampermonkey). I'm able to provide one from in the client if requested.
Retested it on the injected client and it worked again, I truly have no idea
This is why you are told not to open an issue. This was fixed in c32680100e107c38fb793e0d54221b717d91c7df, however, the extension (web client as you call it) is only updated when a tag is pushed. The extension typically lags behind the other versions of Vencord because it takes time for tags to get pushed and for Google to review the new changes.
As I said, I've been unable to join the support server for months and on several different accounts at multiple points during that time. Thank you for the information.
wonder why he couldnt join the server
(he definitely didnt get banned)
does the vencord installer have any cli flags or anything to automate installing?
nvm checked the source code ^^ tysm to the person that added them
already fixed in #3275, it just hasnt been merged into main yet
already fixed in #3275, it just hasnt been merged into main yet
Ah sorry didn't see that, glad to hear!
Closing PR due to being fixed in #3275
oh peak i got a bug i had once before and managed to record it
like wtf is this shit ๐ญ
Hello !
i need Help
i wanna Create a Client Like Vencord but Named wsmXyz ! wich is Like Vencord but with Differnt Things !
??
what does this have to do with the development of vencord
i directed them here because they opened a ticket but i misunderstood what they were saying i suppose
You can fork just fine just follow the software license
i will pray for you and your sanity
Some day I will find the cause of the datastore bug
im too lazy to test it but i wonder if its related to arrpc being on but not connected
cuz thats what was the only different thing this time and the bug happened 
can that pr be merged already 
the crash has been on stable for days now
Yop
I also have another PR with another fix open
And a tag should probably be pushed
nuckyz and vee are dead. vencord will eol soon ๐
I will merge later today
would anything break if we did this on line 122 in scripts/runInstaller.mjs?
would allow passing args from pnpm run
(i.e. pnpm run inject -- --install --branch canary to save those couple extra clicks while developing)
it sounds like a good idea, but i don't think slicing with a constant is the best way to do it.
maybe something like parseargs (would also remove the -- after inject)
Content
When using quick reply, it will include blocked messages, without expanding the message being replied to.
Request Agreement
- [x] I have read the requirements for opening an issue above
bro owns 90% of issues 
/j
first time using parseArgs - is this fine or should i define all options?
id define them so --help works
also it can warn you if you pass something that isnt defined
fair
(it might also do types, not sure)
yea
thats the only types it supports lol
its either a flag or arg
wouldve maybe expected numbers i guess, i neither make nor use clis often enough to know whats standard
i dont think it makes that much sense when you think about it.
ex: would you parse a leading zero as an octal, do you support base prefixes, what's the default prefix, etc...
Changes the runInstaller.mjs to pass through CLI args.
This would allow for skipping the interaction bit which saves a microseconds when developing a plugin with native functions:
very convenient
@gritty canyon is that the right screenshot?
yea..?
why is there the --
wait, i missed the run
why not just pnpm inject --install --branch canary
without -- pnpm just eats the cli args
or node... im not sure
something eats them though
try doing this, then re run it without using pnpm run
- execFileSync(installerBin, args.positionals, {
+ execFileSync(installerBin, process.argv.slice(2), {
btw, nothing eats the args, pnpm just runs the script, which is just node file.js, so process.argv looks like [node, file.js, ...<rest of args>]
if i had to guess, pnpm run is a pnpm subcommand, meaning the args are passed to pnpm, not the script, but console.log(process.argv) in the script to find out
whats the args object 
args object is what parseArgs returns
๐ญ
i dont think you're using parseargs properly
this is how you use it
https://github.com/sadan4/AdventOfCode-kotlin/blob/main/scripts/common.mjs#L49-L61
common.mjs: Lines 49-61
const options = {
year: {
type: "string",
default: getToday().year,
short: "y"
},
day: {
type: "string",
default: getToday().day,
short: "d"
}
}
const {year, day} = node_parseArgs({args: process.argv.slice(2), options}).values;
why would you use process.argv.slice though when parseArgs returns you the parsed args...
wait i didnt see the node_parseArgs (its midnight and im tired)
@gritty canyon wait, i dont see you passing the processes args to parseArgs
you have to do that
hold on, im going to figure this out
im pretty sure #they dont want you to use args.positionals
(run the code instead of just staring at it and hoping it will work)
because args.values is always the same
but you cant use args.values in execFileSync because it expects an array for args (amazing)
nvm its not either args.positionals works or args.values
who made this
im now just converting args.values into an array or passing args.positionals if they are set, works with and without --
@gritty canyon i figured it all out
positionals is args that depend on their position
pnpm run inject vs. pnpm inject run
this is what i came up with to do it
this works
i checked and -- is apparently standard unix for marking all following arguments as positional.... and tells node that its the end of node options passing the rest to the script
huh, i always thought -- was a kind of end of arguments marker, eg: pass these args onto something else, or treat the rest of the CLI as one arg
hm
mr stackoverflow took out the guidelines https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html
specifically guideline 10 on section 12.2
whelp i committed this now ^ (without the console log...) works with and without --
Now testing! 
Seems like everything is working fine (for now) 
Seems like everything is working fine (for now) 
yipee
You probably should remove this README since it's duplicated
Works on latest version (4391fcc2)
i dont think so because now ive had at least 7 people say the same thing now
i even reproduced it myself
this person is on the latest version too
I can't reproduce
it's probably some youtube A/B testing
anyway we just use this https://github.com/AdguardTeam/BlockYouTubeAdsShortcut
reproduce with just their script and if you can, open an issue in their repo
Look, I'm not necessarily against using ai as assistant for coding but at least make it non obvious ๐ญ you can at least take the comments it generated out
heavily depends
but im just confused as to why ai users dont tell the ai not to add comments like thats the easiest way to tell if code is written with ai
not husking you bruh
husk for the ai
@dawn shore make me a vencord plugin but add a comment on every single line of code please thanks
Generating svgs isn't
but yeah
Chatgpt is also great at quickly making webpack code more readable, though it's not perfect
may i introduce you to
https://icones.js.org/
!!
Real mfs use
https://icon-sets.iconify.design/
I didn't know about that lmao i just used what I knew off ๐ญ
Thanks
vue is the first framework tab.... based
Oh wait it's about svgs
feel free to spread those around, a lot of people dont know and just get their icons from google as low quality pngs or something... incredibly helpful sites
Yeah tbh that's useful but if I just want a checkmark svg I'll just ask copilot ๐ญ
Ai is good 
depends
For low lvl tasks it works fine
"low lvl"
LLMs arent trained much on low level code, anyone who works in systems programming will put a gun to your head if you even mention AI because it very much sucks there
thats why people like linus very very much dislike AI and all the hype around it
I think they meant low complexity tasks

ยฏ_(ใ)_/ยฏ
I take this encounter as a wake up call to be more specific
SpotifyControls is lagging whenever i expand it, but if i toggle css on and off it works fine until the window is unfocused then you have to toggle css again
so weird
It looks like the AUDIO_SET_DEBUG_LOGGING dispatch event is not triggering correctly. Also, for some reason, the closeModal event is not being triggered at all, so the Debug Logging popup remains open until you click on "Cancel".
What worked for me as a workaround was:
- Click on the toggle button to disable the Debug Logging and wait until the "Cancel"/"Okay" popup appears.
- Open the DevTools and a breakpoint on the "Okay" button
onClickevent. - Keep going over the Call Stack un...
or do the same on discord desktop app
vencordDesktopRenderer.css *
or for discord desktop app the file is named renderer.css
678da62 Fix BadgesAPI not working (#3267) - sadan4
c326801 Fix plugins using OAuth2AuthorizeModal (#3266) - sadan4
5eb4435 Fix plugins using ApplicationAssetUtils (like C... - sadan4
c530071 EmoteCloner: Fix crashing (#3275) - sadan4
4391fcc AccountPanelServerProfile: Fix not working (#3286) - sadan4
Now testing! 
Seems like everything is working fine (for now) 
Seems like everything is working fine (for now) 
UNPKG has not been actively maintained and has been down since Mar 15, 2025 (https://github.com/unpkg/unpkg/issues/412).
The PR replaces UNPKG usage so that the Monaco Editor and Shiki are loaded from jsDelivr. And since all the UNPKG usages are replaced, the CSP is also changed to cdn.jsdelivr.net.
Seems like unpkg was having scaling issues and increased server count so it should be fixed now, but I guess it's still better to switch. Not just because jsdelivr is way more popular & stable but also to reduce the number of different CDNs used
We should really just stop using CDNs and instead bundle it, but this is good for now, thank you!
๐
Seems like unpkg was having scaling issues and increased server count so it should be fixed now, but I guess it's still better to switch. Not just because jsdelivr is way more popular & stable but also to reduce the number of different CDNs used
Also, jsDelivr is more actively maintained. Every time I mail jsDelivr's maintainers I get a response within 4 hours, while the maintainer of the UNPKG has more things to do (Remix, React Router, etc.), that's why it was taking them 18 hours to f...
Adds a plugin that displays a user's popular GitHub Repositories on their profile. It also adds an option to display all repositories of the user in a new window. See sample image to see how it looks like on a user's profile (forgive me cooki, found you on Vencord server).
insane
thats pretty cool imo (not that id use it tho)
@dusk blaze you 
i'd actually use that
but i'd disable the display of repos and only keep the show more
small quality of life change cause i keep typing in plugin names with spaces xd
Looks good, this has also been annoying me for a while.
replaces adguard with iridium - still needs some testing
Incomplete URL substring sanitization
'youtube.com' can be anywhere in the URL, and arbitrary hosts may come before or after it.
Incomplete URL substring sanitization
'youtube.com' can be anywhere in the URL, and arbitrary hosts may come before or after it.
virus
Why switch away from adguard, it worked perfectly fine
no it didn't
better off as an unofficial plugin imo
I HATE MANAGING FORKS AND PRS AND USER PLUGINS JUST LET ME ADD WITHOUT REBUILD SRUPID VENCOR
@austere talon woke security
userplugininstaller
malware
reminds me of @unkempt oak Song Spotlight on Vendetta
https://bunny.nexpid.xyz/song-spotlight/
HORROR PFP
...why
i can't think of a single time i've wanted to view someones gh repos within discord

so turns out vencords free nitro plugin [i think] forces native steaming on web, so now PWA has everything, max screenshare quality, global keybinds, launch on boot etc
memory usage is still sky high, but at least its not native app levels
idk it spiked
it spikes when it GC's
because we love react
welp, next step is steam PWA
cuz cef is actually worse than electron
my vscode uses x2 the ram of my main browser tho, that's funny
its all TS language server and eslint doe
...if only
I have gone insane trying to patch spotify native
you should NOT have said that
because now i'll milk you for help
Want me to just send you the GH repo
Oh, no
I'm hooking and injecting js code
And some native APIs for the js
into cef, or chromium
Cef
I don't think you can modify the c++ code, only the c code
Should be possible by hooking the c method
Start simple
Get a .so injecting that just prints something to stdout
Then, noop hook a cef function
Then work from there
yeah that description is enough for me to abandon the idea
my hatered of native runs deep
BlockTheSpot might be useful
I have JS code injecting already and have a native api injected 
I just need to work on writing all of vencords api in c++
why not JS tho
WDYM, you can't access the filesystem from js
Also window.open just doesn't work
I see
There is no node environment, it's all cef
CEF doesn't have easy APIs for communication between main and renderer?
or does it not have main at all
you'll just make an API for context escape then

Idk how electron works, but I just do this in my thing
And I can define all those functions with c++ code
sadantify
Created README-ru.md with russian translation
Translations like that just get outdated real fast
I'm gonna shoot myself for this
is the translation stuff still planned?
should the badgeapi also inject badges here?
does it not lol
i dont see them ๐ญ
so im guessing not
"thank you but this is not really useful"
Tbh I don't see how it'll be outdated quickly when the readme has been updated twice in a year
I'd get not wanting to set a precedent of supporting certain translations though
Would a PR that add an option that should be in vanilla discord fine
basically a button to reset profile theme colors
sadly you can do it with the API, you only need to replace the color by null, but discord doesn't have a way to do it vanilla
Nuckyz has a discord fixes plugin in a branch but I dunno if it's actually gonna be merged, could be part of that
i guess maybe ?
basically i'd just turn this into this
this is just "fancy" html editing here cause i'm not coding smth if it's gonna be refused anyway
can you just empty the field
ig emptying the field and pressing enter could be a trigger to reset the color
but it doesn't work as is in vanilla
also it's not really visual
this is way too niche for a plugin
Added a plugin for excluding specific channels from Do Not Disturb's message notification silencing
(this is cool)> ๐โโฌ
I'm sorry to tell you this, but, someone already made a PR for this plugin: #2239
Ah, I should've checked for that. Oh well! Thanks for letting me know.
Reopening this, I feel my implementation has some major advantages to the existing PR (https://github.com/Vendicated/Vencord/pull/2239).
people need to stop acting like the other implementations are better and that yours should be closed
like you aren't even a maintainer, you don't know what they want
Previously, a delta such as 25199000 would display as
However, this is just incorrect as it is actually
The logic on this should be correct now, I tested with a few different values.
@inland fable @west arch you love
Hi my screenshot is watermarked and licensed under OQL v1.1 i hope you understand

yeah why the hell did that have round
you don't wanna round time
you almost always wanna floor
i got confused looking at it 
was wondering where the extra day was coming from 
thanks
@grizzled halo thank you so much!
For IgnoreActivities, I can not find the module again. Given it was unused, I guess that it was deleted.
Yo, Iโm the maintainer of the other plugin, could you lmk what advantages you were thinking of?
Yo, Iโm the maintainer of the other plugin, could you lmk what advantages you were thinking of?
(Besides missing the simpler patch to do lol)
My discord username is @Inbestigator
This plugin has native support for custom/event sound packs, as it doesn't listen for MESSAGE_CREATE events and plays its own audio source, rather overrides Discord's own logic for determining whether a notification sound should be played. It also doesn't make a new HTTP request for each ping, wh...
wth thats fucking insane ๐ญ
its just not gonna play if they change the location
and people were telling this person there was already an existing PR and acting like it was actaully better ๐ญ
its not gonna play after one update thats a hash they change like every month
insane
@jagged reef is there a reason for that?
surely discord has to have a function that does that
it would just be better to hook into the notifications stuff that discord does instead of stupid stuff like this
and hey, the new plugin submission does exactly that
you're better off just suggesting changes to the other plugin now to merge in anything that yours does
wait yeah this plugin is def a better impl lol
much better
@limber skiff what do u think of hypothetically magically storing all cloudsync settings on discord
Sounds like potentially magically losing it all too
i mean this has been sitting dormant for something like 4 years now
how..
lol someone else made the sound thing and wanted it, so I just went โgood enoughโ
Planning on doing some sort of rewrite when I get home
๐ญ please dont rewrite and just suggest changes to the new implementation we dont need 2 competing implementations cuz then none of them will get merged
if you ever checked hn you'd know...
smh i dont check most of the channels cuz im locked to guest and everyone shitposts there anyway
but damn that could work
yeah lol 5mib is plenty
I mean, I imagine the asset would always be there as to not break old clients, but it is still an interesting way to go about it
omg dont tell me y'all found a way to store arbitrary values on proto settings
dm me about it ;)
what the hell are you guys talking about this is perfectly fine
the whole handling notifications yourself is terrible
the asset link is never gonna expire
you should not be manually playing the notification sounds
yes that's true
sure did lol
this doesn't respect anything
I mean, I wouldn't call downloading an asset every single time you receive a notification fine
its cached
true
cache exists??
but its still an awful way to do stuff
the entire discord app always loads assets every time
that's how Websites work
but it's usually cached
no
y not
I mean, is it cached? does the service worker actually intercept Audio objects
it should be cached
it is cached unless you specifically disable cache
no fun allowed
its ok ill store you inside my discord accounts proto settings dolfies
because why the hell would we use something we have 0 control over that can change at any time and requires us to mess with their proto when we already have a working solution that we have full control over and works flawlessly
do new plugins actually get merged anymore? I saw plugin requests are closed but I'm not sure if that applies here
cuz it's one less dependency and lets everything stay on discord
Yes they get merged
requests were just ass or duplicates so they were closed
understandable
everything good has already been requested
I'm sure with the release of new discord features there will be more good plugins to follow
could someone fix platform indicators so that they dont tank performance? they keep re-paining every frame inside profile badges
platform indicators?
these
the current code for them doesn't even update in real time, how would they be repainting
took me a day to figure out that they keep being re-mounted on the dom every few hundred milliseconds
\w platform indicator and without
green = repaint
it seems fine in the user list
huh has discord not pushed anything today, or is venbot broken
they haven't pushed
They're making up for lost time
VcNarrator toast alternative
Displays a configurable toast when someone joins / leaves a voice channel
match: /(?<=guildBanner:\i,animate:)\i/,
Lets just nuke it to not depend on visual refresh stuff
also confirmed the other ignore activities patch can be completely removed
can you test if changing NoBlockedMessages find to .__invalid_blocked, fixes it? @fossil inlet
yea, give me a few minutes to finish something else
if we remove that, and we should, it should be anchored to something that isn't just an identifier so it doesn't match a destructuring assignment and error
oh
just wanted to check this, can confirm that the audio requests on the existing pr are in fact not cached, and each ping redownloads the asset.
note the different values of the Date header
unsure what causes it not to be cached though
maybe the response code being 206 causes electron not to cache the asset? im unfamiliar with chromium caching logic so i wouldnt know
upon further research im relatively sure the response code is why the asset isn't cached
basic, but do you have disbale cache toggled in your network settings
๐ญ
match: /(?<=guildBanner:\i,animate:)\i(?=.{0,100}controller)/,
i feel like this is the best i can do to not rely on a visualReferesh prop
i feel like atp its just pick your posion
As stated above, I've combined the strengths of both to create one plugin, if you'd like to improve it feel free! (dw, the devs list has both)
Content
Discord implemented some changes earlier this week that simplified timestamps on messages significantly. I'd like to be able to get the old timestamps back but I have no idea how to go about coding this, so I am opening a suggestion for it. Hopefully a plugin for this can be added since I see no way of turning it back to the regular timestamps on the Discord settings itself.
Request Agreement
- [x] I have read the requirements for opening an issue above
Smh now I have to fix CustomMessageTimestamps
thank god CSS exists!
span[class*="timestamp_"] > [aria-label^="Today at"]::before {
content: "Today at "
}
for everyone actually thinking about making that a plugin
What did they change about tinestamps? I haven't noticed anything
they removed the "Today at"
yea
insane
how do they indicate days other than today now
they only removed the today at for... today
everything else is still there
if it doesn't say a date, its today
with a ... date?
What happens when the bug or crash occurs?
Plugin noServerEmojis not work
What is the expected behaviour?
Plugin noServerEmojis not work
How do you recreate this bug or crash?
Plugin noServerEmojis not work
!...
guh, @jagged reef why though, having 2 competing implementations feels silly
โ๏ธ
it looks gross now imo
by all means feel free to suggest changes to my implementation if you want to, I'm happy to give you credit for ideas, but I feel just updating yours will result in neither being merged
isn't there also just an experiment toggle ?
neither will get merged anyway 
also aria label trigger moment
does not work on my system cause Fr*nch
Also fixed account panel server profile
i hate the french anyway so not my problem
true
They keep changing the code there
This one should work for a while
@limber skiff thoughts on rewriting that patch, you could probably match the let at the top of the function
ye sure
Adds the ability to set the arRPC server port in plugin settings.
ws = new WebSocket(`ws://127.0.0.1:${settings.store.serverPort}`); // try to open WebSocket
is a restart needed for this, couldn't you just disconnect and reconnect with a onChange handler
Wouldn't that mean having to push the code in start up?
@limber skiff rewrote the patch, should be a bit more resilient now
this is extremely horrible but it works
span[class*="timestamp_c19a55 timestampInline_c19a55"]::before {
content: "Aujourd'hui ร "
}```
selecting that timestampInline thingy also prevents timestamps on the sides of messages breaking
This does not work no matter the language
Look in #๐จ-theme-development
The goal is to make it work on everything
Tho i'm not even sure it's doable with pure CSS
I hope it is
this specific css works fine for me but idk
change your language to english or anything else other than french
Since you did out french in content, it won't be translated
Also why use [class*=] but also have a hash in thereโฆ defeats the whole purposeโฆ since thatโs not really how it should be written
Damn
are the today at strings still in the i18n definitions?
check the mappings
I'll check later I was just hoping someone would happen to know
oh wait, doesn't discord just use momentjs? could hook into whatever calls that to make it add today at in all localisations
@sullen cobalt taking a closer look, discord doesnt use the common i18n system for dates
they use something else
pretty sure its just this
yeah
it's for sure moment
I mean I wasn't planning on doing anything, I was just curious
would it even be worth a plugin? anyone bothered enough by it can just add their own css
could you, wouldnt that just apply to any date, not just those today

oh true
real
i've noticed that when trying to change a timezone userplugin
i noticed i couldn't get the same custom format
btw where is that code / how could i access it in a userplugin to be able to format the dates the same way discord format them
moment is exported in webpack commons, I assume you just set the locale on that
moment my beloved
@limber skiff they pushed stable
I'll merge later, I can't now
alr
Combining means that there can be one implementation
If youโd rather your mr be the one, the code is there
lol
Ok!
eh, on second thought i dont think i will, there's still more i'd like to do with my version. whatever gets merged gets merged (or doesn't)
๐
Adding here for posterity that I won't be closing this PR, as there's still more I'd like to do with the plugin (i.e. support for call notifications, better settings menu), but I'm fine with either being merged. If a maintainer wants to close this PR instead feel free.
fixes decor works on stable
i cant test it myself as I don't have an avatar decoration via decor
I understand that this may be a burden as its an extra 2 patches to maintain but is there anything against me submitting a patch under unsafeViewAsRole?
thats really annoying because right now you can only select one role using that feature as the dropdown is still locked
I feel like if you're gonna offer it as a hidden setting it might as well be somewhat usable
a what 
what about it
is there even a plugin that does that
Vencord.Plugins.plugins["PermissionsViewer"].settings.unsafeViewAsRole = true; ๐
TIL
it should be as simple as setting this to true regardless & then patching the dropdown to show all roles, which is easy enough
tbh i feel like it would be better to just remove the feature, as its hidden anyway and i doubt many people use it
i mean all the feature does is just send a flux event
it doesn't use any patches
and if y'all remove it i'd just reimplement it as a third party plugin anyway, as this is still kinda useful for me
idrc either, its not something id ever have a use for
patch could be improved but that makes the menu accessible, doesn't make all the roles show up though, my brain is mush rn and i don't have patience for it :3
{
find: "impersonateType",
predicate: () => (settings.store as any).unsafeViewAsRole,
replacement: [
{
match: /\|\|\i\.isOwner\(\i.id\)/,
replace: "||true"
}
]
}
that one find shows the dropdown menu but it only shows roles equal or below your current top role, theres a couple arrays above in the code where it has everything but i just don't have the brain to match and patch it out
just merging fixes now
16910c9 VolumeBooster: Fix error when going back to the... - sadan4
d178dcc IrcColors: Dont color wumpus in Role Settings (... - sadan4
Email Jumpscare
vtest
Now testing! 
dcb7a59 Replace unpkg with jsDelivr (#3291) - SukkaW
48868f0 MessageLatency: Fix off by one error on some de... - sadan4
c4fc9ac Fix plugins for Discord update (#3298) - sadan4
94ee0c5 InvisibleChat: Fix crashing when message contai... - sadan4
16910c9 VolumeBooster: Fix error when going back to the... - sadan4
Seems like everything is working fine (for now) 
Seems like everything is working fine (for now) 
sorry for the lack of activity right now, been more busy and tired
dcb7a59 Replace unpkg with jsDelivr (#3291) - SukkaW
48868f0 MessageLatency: Fix off by one error on some de... - sadan4
c4fc9ac Fix plugins for Discord update (#3298) - sadan4
94ee0c5 InvisibleChat: Fix crashing when message contai... - sadan4
16910c9 VolumeBooster: Fix error when going back to the... - sadan4
I'll give it a bit and push extension later
no need to apologise, you've done great
all good 
@granite wharf
Kevin
vext
The Vencord Chrome Extension is out of date! (v1.11.6 vs v1.11.7)
vext
The Vencord Chrome Extension is out of date! (v1.11.6 vs v1.11.7)
The empty sidebar doesn't close for me till I do this extremely specific thing, I have drag a server till that green bar when rearranging server pops up and just put it in that position even if the position is the exact same, then the Sidebar goes away.
This just saved me a life long struggle thank you
?remind 9pm fix
Alright @fossil inlet, in 8 hours and 41 minutes: fix
i somehow reproduced it

can you consistently reproduce it (it doesnt matter if you dont know how)
i've enabled this option and than opened my normal profile






