#๐พ-core-development
1 messages ยท Page 135 of 1
the settings for this plugin ๐
What plugin
that actually would be great
but dont display the general ones
those would only be annoying
each of those badge sources are toggleable + you can change the order of them
(enmity custom badges 1 and 2 are in the same group)

im interested
(discord profile badges are not retrieved with fetch so they are not stored with usestate)
- discord nitro badges
ah thats a pain in the butt
so thats 16 sources

i have the key for the show relationshipDB badges as "Show relationshipDB Badges"
yet it shows in the settings modal as Show relationship D B Badges
why are string literal keys parsed?
This was already discussed in the server, casting to any is fine here
discord-types are outdated
why are u doing it like that anyway
to get it to show correctly
if i do showRelationshipDBBadges it doesnt show as Show relationshipDB Badges
just use description?
the setting title still shows
what else am i supposed to call relationshipDB
this is insane
i think it would be more beneficial to have a way to not have setting keys auto parsed
add sponsors xd
bro why did github rename the PR after i changed it to dev
i named it and then targeted it to dev and it fucking renamed it to sponsors lmao
Do you have a useEffect that fills the state arrays @dire trench
yes
Turn each of those into their own hooks lol like useEnmityBadges
the react docs recommend this way
resync dev
u have collaborator after all
im react noob ngl
i dont even know why stuff is being pushed into main instead of dev so im not gonna touch it
so make a function named useEnmityBadges that takes a user, has a useState and a useEffect and return the useState value
this what i got
please separate that out into separate hooks PLEASE
it's way more readable lmao
idfk lol they seem independent sometimes
readme change in main some random prs in dev
only badge source i can think of that i dont have is reviewdb
but the api sucks for it
and u cant fetch badges for users
u just get the badges on the users when u fetch reviews
@dire trench
function useEnmityBadges(user: User) {
const [badges, setBadges] = useState([])
useEffect(() => {
if (settings.store.fetchEnmityBadges) maybeFetchJSON("blah blah").then(setBadges)
}, [])
return badges
}
sooo much more readable by seperating them out into their own hooks
yeah i think that will work better
cuz im gonna try to do profile badges too
and i dont need to do the vencord ones cuz theyre already there
then u just use the hook like
const enmityBadges = useEnmityBadges(user)
is this not just globalbadges..
but better
cuz they show in chat and ive added more sources
and im not relying on the api that global badges uses
im getting the badges from their official sources
o and theres no longer a vencord plugin
also the api for global badges has a ratelimit of 20 requests per 15 minutes ๐
pretty sure it does that
it uses api.obamabot.me
are we talking about the wolfie or domi plugin
wolfie
bc domi gets from official sources
domi uses his own gh repo which he manually updates
thats manual?
i dont think so
maybe with a script
what part of it does
the only way arround that is to use a service worker to intercept the fetch
and change the response status
so u just gotta hide network in devtools console
hear me out: there's these magical things called cloudflare workers
cuz im fetching badges like this: https://raw.githubusercontent.com/Aliucord/badges/main/users/${author.id}.json
make a worker that handles getting badges from all sorts of sources and boom
bro why does every mod and like 5 plugins have badges
mods i get
but seriously reviewdb, usrpfp do not need their own?? ๐ญ
the fetch implementation sucks
??
the .catch chained onto fetch is not called if the fetch 404s
well no
there is no way to handle the 404
yes there is lol
and ur just stuck with console spam
yeah with service workers
it not catching is fine because the request did succeed
it just got a not found response
just check if req.ok
in the .then
there should be a way to catch the 404 tho
ok then make a small wrapper around it that does that lol
it's not like it's not possible
nah i dont even think you can wrap it in a try catch
...
am i stupid
.then(i=>if(!i.ok) throw)
literally
nah try it
i swear i went through everything on stackoverflow mentioning it
and everyone says its impossible
without service workers
bro
**api.ts: **Lines 31-42
export async function fetchApi(url: RequestInfo, options?: RequestInit) {
const res = await fetch(url, {
...options,
headers: {
...options?.headers,
Authorization: `Bearer ${useAuthorizationStore.getState().token}`
}
});
if (res.ok) return res;
else throw new Error(await res.text());
}
not quite the same but u get the idea
is that for any url?
yes
obviously remove the authorization stuff (specific to decor) but yes
i still get 404s
fetch("https://api.shig.gy/asijdiuashdo").then(i=>{if(!i.okay) throw "not ok";return i}).then(console.log).catch(e=>console.log("error",e))```
you cant suppress those
@nimble plaza hop on fn
im on laptop 

also i had to disable it because we were fucking with genai last night and someone tought it to say "hop on fn"

i think thats cuz that api does not return 404 when it cant find what ur requesting
maybe not
it literally does right there
i still get 404s
you cant suppress them
i tried with a nonexistant github url
in my plugin there are 8 sources where a 404 is expected
and it fetches those 8 for each message loaded
it so much spam that it causes lag
there is one way:
https://stackoverflow.com/questions/4500741/suppress-chrome-failed-to-load-resource-messages-in-console/75848002#75848002
vee isnt gonna accept a service worker for that
and you cant register a service worker in a userplugin
also yea idk if electron supports service workers
the other solution for this specific case is to load the list of files in each of the badge repositories using the github api
and cache them
but a lot of those are in the MB size range
what apis are meant to return 404
and the github api has a strict rate limit without authorization
which ones
`https://wedlock.exhq.dev/v2/marriage?userid=${author.id}`
`https://adu.shiggy.fun/v1/${spouseID}.json`
`https://raw.githubusercontent.com/WolfPlugs/BadgeVault/main/User/${author.id}.json`
`https://raw.githubusercontent.com/Aliucord/badges/main/users/${author.id}.json`
`https://raw.githubusercontent.com/enmity-mod/badges/main/${author.id}.json`
`https://raw.githubusercontent.com/enmity-mod/badges/main/data/${author.id}.json`
`https://raw.githubusercontent.com/enmity-mod/badges/main/data/${author.id}-2.json`
`https://replugged.dev/api/v1/users/${author.id}`
the enmity custom badge ones i could suppress by checking if the user has custom badges on the main/userid.json file
i gtg to class
whats guh about that
are you caching
like
when you get a 404, mark the userid as not having those badges
so it doesnt spam requests
I have no idea if anybody cares or if this is the right channel lol, but I made a very basic aur package for the cli installer for vencord. Ideally this would be automated but I just wanted to slap something together and publish it. If you want to beat me to figuring out how to automate this and pull request it to the vencord installer repo, please do that would be very nice, also let me know about it so I can give you this aur listing or something, but until then here y'all go:
https://github.com/NullCub3/aur-vencord-installer-bin
https://aur.archlinux.org/packages/vencord-installer-cli-bin
is there something like insertTextIntoChatInputBox that can replace all text in the textbox or something that can clear it out?
you can maybe do something with findByProps("SlateTransforms") but even then you'll still probably need to patch the chatbox
was hoping i wouldnt have to lol
When will relationshipDB support polygamy
i wonder what happens if you delete the nodes that store the text....
No
you could also just fuck around and look for something
mmm yes this is good code
doesnt even work -_-
which is probably a good thing
what even is this thing
@rare shale your name is being slandered, defend yourself
@MrShelbySann Sadly, but it not working for NixOS, btw armcord is work properly from box.
Add Discord's new tracking parameters that are added when copying a link to an image or video from a chat
Why? they will be needed to view them at all eventually.
Why? they will be needed to view them at all eventually.
Sorry, why is that? Removing the tracking parameters currently doesn't have any effect on the media linked.
Why? they will be needed to view them at all eventually.
Sorry, why is that? Removing the tracking parameters currently doesn't have any effect on the media linked.
In the future they will be required. Not sure if this matters in client and the client will just refresh all cdn links, but I don't see the point of removing them at this point
Why? they will be needed to view them at all eventually.
Sorry, why is that? Removing the tracking parameters currently doesn't have any effect on the media linked.
In the future they will be required. Not sure if this matters in client and the client will just refresh all cdn links, but I don't see the point of removing them at this point
Just asking out of interest, how are you certain they will be required?
Why? they will be needed to view them at all eventually.
Sorry, why is that? Removing the tracking parameters currently doesn't have any effect on the media linked.
In the future they will be required. Not sure if this matters in client and the client will just refresh all cdn links, but I don't see the point of removing them at this point
Just asking out of interest, how are you certain they will be required?
They will be used to auth...
yeah cause you're on nix, ofc its not going to work
nix is insane
what's quick search?
bad is subjective
a headache if you're not willing to help yourself through shit and expect other developers to support you
imo nixos is only good for servers
nix is inherently bad simply because its users are annoying
nix users are even more unbearable than arch users
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/
PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
Experiments (found no module):
ID: -
Match: ("showNewSearch")
None
None
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/
PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
Experiments (found no module):
ID: -
Match: ("showNewSearch")
None
None
almost forgot about userpfp
gonna add those badges too
im at 818 lines rn ๐
what in the world are you doing
badges
global badges has been prd before and rejected
your plugin will have the same fate
why rejected
the point of vencord badges is to point out vencord contributors and donors. displaying badges from other mods is really silly and goes against the point
im pretty sure every other client mod has a global badges like plugin
and they display vencord badges
ok
if the users want it i dont see why not
i can still third party release it tho right?
yes
Discovered bug with Rust not being a valid language tag, despite Discords builtin code block markdown accepting it.
I haven't had time to work on it in ages and there are other plugins that take care of the most used feature now (keyword notifications)
understandable
i should probably pr my plugin to bypass dnd for specific people
implying im ever going to fix it up anytime soon
maybe i'll revisit it later to add the different notification options (like some users being able to bypass DND) but maybe later
i fixed it for rspack was actually p easy to
yeah it's really easy now
pre-vencord regex patches I had to rewrite the whole notification logic function
it was like one big 1000 character boolean logic statement
it was terrible
VENCORD NOT OPENNING
you are banned from vencord
someone give this person needy for support
took me a bit to find, might also open a PR in shiki codeblocks
bruh
channel specific to #๐ง-off-topic-iceman-only and now requires nixos as the keyword
I think the native client for linux sucks because of electron not being able to utilize hardware acceleration? I don't know Electron all too well but maybe, since this project uses Gluon, there might be other ways of solving this issue?
โ๏ธ
most comprehensible github issue
I think the native client for linux sucks because of electron not being able to utilize hardware acceleration?
it does use hardware acceleration
I don't know Electron all too well
i can tell
but maybe, since this project uses Gluon
it does not
there might be other ways of solving this issue?
i'm thinking there isnt even an issue considering the accuracy of the rest of the paragraph
where do people get blatant misinformation like that from??
No its great, Ven is just insane
I've been using it for weeks, best distro I've ever used
i didnt know im cynthia and rini now
big if true
Wdym
You said #๐พ-core-development message
I am trying to install vencord on ubuntu, I have discord installed using the .deb package from their website. I use 2 users on ubuntu, and when I try to access discord from the one that I didn't use when installing vencord (User B), it doesn't open, as the configuration files are stored in the home directory of User A. The installer shows the directory at the top, and says if I wish to change it, I need to change the VENCORD_USER_DATA_DIR variable, how do I do this? I have looked inside the ....
Google it, it's a simple thing search "set environment variable Linux"
we don't use gluon.
I dont know how I possibly miss-read the readme this bad lol
Honestly I would like to try to fake having the discord window always on focus.
I've noticed that when I click on my discord window and that the stream shows on the client (not showing the black thing to "use less ressources") it's way more smooth.
But is it possible to prevent that screen and function to come ?
ah man, this is so braindead
found where keybinds are stored, found how to get which button is assigned to it
uiohook has its completely separate keycode numbering system though
if only that was ever standardized 
the up arrow is like in the 5ks apparently
Are you sure that's really what fixes it? I've tried streaming things that don't require me to have the game focused (Beat Saber in particular) and the verdict was pretty clear - the framerate started dropping when there was a lot of movement on screen, but it would go back to relatively normal when there was not much happening. Tabbing back to Discord means you're not doing anything on the screen, which would improve bitrates. It seems to me like the upload is somehow getting throttled.
Are you sure that's really what fixes it? I've tried streaming things that don't require me to have the game focused (Beat Saber in particular) and the verdict was pretty clear - the framerate started dropping when there was a lot of movement on screen, but it would go back to relatively normal when there was not much happening. Tabbing back to Discord means you're not doing anything on the screen, which would improve bitrates. It seems to me like the upload is somehow getting throttled.
...
wtf
okay there we go
horror
Stable 244133 (351234d) Vencord 86e9434 (Vesktop V0.4.3) Electron 27.0.2 Chromium 118.0.5993.89 Windows 10 64-BitHere's a video I recorded after uninstalling, deleting all vencord-related folders from %appdata% and %localappdata% and installing. Didn't touch any settings after logging in.
It says the video has been archived. Can you upload it to youtube instead?
Might be a long-standing chromium bug that we could work around
will test when my friends rise from their graves
now we can remove it
they arent using showNewSearch anywhere but the experiment definition
and I tested and search works
meow :3
nya
Looks good but avoid PRing from the main branch
c080a0e shikiCodeblocks: transform lang to lower case t... - xero-lib
MessageLogger patches are beautiful
@dawn coyote
oh
sorry
lmao why are you hardcoded as message tags response author
4a2657f fix(channeltags): message author should be clyd... - MeguminSama
i think cause they made it and wanted themselves to be the message author lol
ยฏ_(ใ)_/ยฏ
When trying to install pnpm modules in vesktop, I receive this error:
$ pnpm i
Lockfile is up to date, resolution step is skipped
Packages: +560
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 0, reused 539, downloaded 0, added 560, done
node_modules/esbuild: Running postinstall script, failed in 40ms
node_modules/esbuild postinstall$ node install.js
โ node:internal/erro...
Content
Can i bring this back and ask why no one has actually made this yet. Its an amazing idea. and would make writing super long messages easier
Request Agreement
- [X] I have read the requirements for opening an issue above
I mean not to be that guy, but if Vendetta has it, why doesn't the main thing have it
LMAO
Vendetta isn't made or maintained by us
it's called vendetta because ven owns it
whos this "maisy" fellow
that's not what im saying, im saying if someone has made it for vendetta why has no one made it for vencord
I mean not to be that guy, but thats exactly what you were saying
lol
LMAO
lol
yall cant understand what im saying
You're saying if Vendetta has it why Vencord doesn't.
The reason: Vencord isn't Vendetta.
Even if Ven is a part of both, they are still not the same project.
Pretty sure you just don't understand yourself
AFAIK ven only has one contribution to Vendetta
Anyway IDK what the purpose of this conversation is :sob:
how about bro bumps into some bitches ๐ญ
i datamined this before you did (real)
REAL
mmmh pizza
yea i cant replace each title via css only LMAOOO
::after only gets you so far
bump 
add to quickcss to mine data

separate adjustment for notification sound volume (e.g. messages, call sound, mute/unmute) because setting it in the windows volume mixer isn't persistent across restarts and it hurts my ears.
Use $& to insert the match instead of doing it manually
Include a README.md file with your plugin that explains what it does tooo
gd idea tho
Content
Making this plugin would help when writing long messages
-
Would start off displaying 2000 limit, even with Nitro, unless disabled
-
Would switch to 4000 once message is over 2000 if subscription is active, or unless previous setting is disabled, in which case, it will always display 4000 when subscription is active
-
Options to display; characters typed, characters remaining, both at once
**Could work the BD one
https://betterdiscord.app/plugin/Cha...
Include a README.md file with your plugin that explains what it does tooo gd idea tho
where exectly would i add one?
Duplicate issue to #1991 why would you close then reopen under an alt??
Top level of your plugin folder
I was thinking about making this plugin but now I don't want to.
they created a whole ass new account to do that ๐ญ
@PluginRequester Stop spamming issues, we get it, we know what you want. Being weird will NOT get it to you faster :husk:
@spark pivot i tried making this the other day but i couldnt figure out the patch for the messagebox
L
Top level of your plugin's folder
done
Script now uses requestAnimationFrame
yeah ๐ญ
adryd jumpscare
love
https://adryd.co/wits.mp4 is that hte link
idk i typed it from memory
ok it is
wits
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/
PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
Experiments (found no module):
ID: -
Match: ("showNewSearch")
None
None
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/
PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
Experiments (found no module):
ID: -
Match: ("showNewSearch")
None
None
yall should make a plugin that makes heic pictures and mov videos display on pc instead of showing up as files
I love this and we are jamming they're so funny
i could make this
nop
yes
he renamed detta to vendetta
js really needs map literals
lmao deleted account
Description
Program stuck in the loading phase (before full size window is created)
Attempts to Fix (in order)
Update, Restart Computer, Uninstall, Clear yay Cache, Reinstall, Restart Computer
Specs
Software Information:
- Firmware Version: 1.25.0
- OS Name: Arch Linux
- OS Build: rolling
- OS Type: 64-bit
- **GNO...
Did you try right-clicking the tray icon and clicking on Update Vencord or Reset Vesktop? How did you install Vesktop? Can you provide the output when running vencord-desktop from the Terminal?
Works fine for me on KDE Plasma (X11) but the text in the clipboard is pasted anyway. Not sure if this can be prevented by Vesktop though.
https://github.com/Vencord/Vesktop/assets/24937357/76d28938-c82d-492c-981f-36e062c52b44
tray icon doesn't appear, here is the console log tho:
(node:1459) UnhandledPromiseRejectionWarning: ReferenceError: f is not defined
at Object.<anonymous> (/home/hacktheegg/.config/VencordDesktop/VencordDesktop/vencordDist/vencordDesktopMain.js:12:5187)
at Module._compile (node:internal/modules/cjs/loader:1271:14)
at Object..js (node:internal/modules/cjs/loader:1326:10)
at Module.load (node:internal/modules/cjs/loader...
--trace-warnings results in the following:
(node:2098) UnhandledPromiseRejectionWarning: ReferenceError: f is not defined
at Object.<anonymous> (/home/hacktheegg/.config/VencordDesktop/VencordDesktop/vencordDist/vencordDesktopMain.js:12:5187)
at Module._compile (node:internal/modules/cjs/loader:1271:14)
at Object..js (node:internal/modules/cjs/loader:1326:10)
at Module.load (node:internal/modules/cjs/l...
tray icon doesn't appear
Probably because you use GNOME and don't have the AppIndicator and KStatusNotifierItem Support extension installed. I recommend installing it using Extension Manager
i do have AppIndicator and KStatusNotiferItem Support as steam creates one when open
making it regenerate the config seems to have done it
yay -Ru vencord-desktop-git to uninstall
yay -Sc to clear cache
yay -S vencord-desktop-git to reinstall
making it regenerate the config seems to have done it
Ok good to hear
i do have AppIndicator and KStatusNotiferItem Support as steam creates one when open
Then Vesktop creates the tray icon after whenever your crash occurred. I wasn't aware of that
On Fedora SilverBlue 39, the Chinese font is broken (maybe just for me)
Vesktop:
Stock Discord with Vencord installed:
I've tried running fc-cache -f -v and restarted machine several times but it doesn't work
Maybe it's upstream issue, but I can't find any related issue
Does it work in discord web?
if fonts are broken then it's an issue with your system
I figured it out, running it inside a container fixed it, maybe rpm-ostree don't like rpm package that much
Hello, is there a way to launch the program as minimized? Even without an option in the settings but just with a launch parameter.
@torn knot if i give u a plugin can u do ur css wizardry to make this stay above the chat bar
if the message is more than one line its fucked
you can probably make the position relative to the messagebar
yea thats what i need
nop
F
where the fuck is your counter
oh place it inside the messagebar probably works
wait i did it
im using discords
oh are you just making it always display?
yea
smart luna
made it always display and count up instead of down from 2000
w<
now add an option to lock it at the bottom of the messagebar
position absolute;
top:unset;
left:unset;
right:0px;
bottom:0px
@austere talon does setting.onChange fire only when the plugins enabled or whenever its changed, even if plugins off
?
oh I forgor the emoji lol
I was thinking of this yeah
I feel like below the chatbar could be a little ugly
does it change color when there's too much type
good idea
I GOT AN IDEA
color-mix and you can put in custom colours for every 20%
so it gradually transitions
nop :(
i dont think i can
ill try
would be cool
I could make the CSS to get the transition
okay
make it also play a very loud siren when too close to 2000 ๐
bombs start dropping on your screen and whatnot
and make sure to integrate nitros longer limit
true
guh
actually, all you'd need for CSS is probably just a percentage variable that gets updated
lmao
thank me later
limit the width for typing indicators when it's at the bottom
wym
max-width
i think im just gonna have it float
itd be annoying to correctly do locking at bottom
didn't you just have it?
yeah but this happens
and this
max-width on the typing indicator
.element (forgor the typing indicator class) {
max-width 90%
}
always fires
i think
test it lol
make a :root variable called --typinglength-percentage
it'll never interfere ever
ven could you review replypingcontrol when you get the chance its pretty small
it fires every time 
tysm
hey vee can i add blacklistedUsers: BigInt[] to definePlugin so certian ppl cant use it
someone was annoying about charcount yesterday and im petty :3
I WILL
mfw banned from charcount
nuh uh
/silly
+1
i will ban mantikafasi from using any of my plugins
real
jason ?
jason citron
apparently i can't just send mouse button events to the browser window for additional mouse buttons
like the ones for page forward/backwards
which makes no sense to me, since the browser can clearly understand these mouse buttons
that might be a way to cheat the system, yeah
otherwise i'd literally have to hijack discord's entire keybind system and i'm not in the mood for that
wdym
ohh right literally just
BrowserWindow.getAllWindows()[0].webContents.sendInputEvent({
type: "keyUp",
keyCode: UioHookKey[e.keycode]
});
i could manually invoke the events of discord's keybinds, i did figure out how to get them
the issue here being i can't access webpack from where i have to set-up the global key listener
Vencord.Webpack?
yeah it complains about that not existing
how are you using it
the context here is i'm doing this for Vesktop
ohh its in renderer code?
No in the renderer code we can happily access webpack
bleh i meant like
but i can't start the key listener from renderer
electron side
window.webContents.evaluateJavascript("Vencord.Webpack blablabla")
look at screenshare code
yes but can i get the return value from that?
it shows how to use it
ipc
can i grab one of discord's stores from that?
yeah exactly, i'd have to set up IPC for this
here send a repo and ill do it
it would be a lot nicer to keep letting discord handle keybinds and just sending them off to the window
isnt that what youre doing?
yes
i mean like
use ipc to send an event to renderer
and have a plugin listen for that and dispatch the event
no it does
what i'm telling you is
mouseDown does not support additional mouse buttons
so i have to work around that
webcontents.executeJavascript('document,dispatchEvent(new MouseEvent("down",{"button": 3}))')```
you can just add your own ipc method
and of course these are entirely different from the codes the key listener has
the fucking keys are different too
i have to convert them to uppercase text and get the charcode from that to be consistent with js keys
it really does not want to use it though
this would type in the chatbox
you need to push the event directly into discord's handler
dont send it to the window
it handles it for keyDown/Up though
.
alright now i gotta find discord's key handler then
i might honestly just do IPC and manually invoke the events at this point
485328
that would type
No, i mean directly invoke the keybind action.
Would still need a way to register the mouse button keybind though so discords key input it is
i wrote the code for quicksearch but couldn't be bothered to modify the search UI to support it
so if anyone wants to pick up the UI side lmk
what it do
is there a function to parse mentions out of a given string 
regex

i will end up matching stuff in codeblocks
can i take stuff out of discord's markdown renderer :thonk:

!!
@austere talon can i add this to utils or do i keep it local to plugin
its already in common as Parser
I am working on this. iohook is old and unmaintained. I am using uiohook-naapi to do this. it also uses libuiohook, and it seems wayland support is in the works. Nothing you can do but wait until libuiohook updates for that, but i'll go ahead and keep using it.
@topaz thistle ^
It seems this was not, in fact, the issue.
I am working on this. iohook is old and unmaintained. I am using uiohook-naapi to do this. it also uses libuiohook, and it seems wayland support is in the works. Nothing you can do but wait until libuiohook updates for that, but i'll go ahead and keep using it.
Why not use the xdg-desktop-shortcuts? It's way more clean & portable imo (no low level hooking and such)
vencordctl cli when

no
i mean a cli for doing the keybind actions
so you can just do that on ur wm/de
horror
guh is there any way to make this not @deleted-role
i tried {roles:{id:name}}, {id:name} none worked
cause that's just wrong
ctrl shift f for parseToAST and you'll find how discord calls it
well i dont know the correct format 

the correct format is /<@(\d+)>/.exec(msg)
b-but unreliable
thanks that worked
why is it unreliable
@still rune and it matches that as a mention instead of inline code block
parseToAST handles that
msg.mentions probably has what you need
m
please tell me it is not necessary to add proper typings
i'll explode if i have to type the ast
do not
thanks
i completely broke the types trying so
dont even dare touch it

fixes twitter/X embeds not showing up.
literally just makes the presend event replace twitter.com with fxtwitter.com or x.com with fixupx.com
๐ญ
๐ญ
I have added an Engine Selector my self, tried to implement DeepL and Bypass the apiKey thing and it worked for a sec but now i cant translate at all not even in the browser anymore xD.
That would be the only problem with DeepL, you have to use an Api Key and to receive the free api key you have to give your payment informations :/
wdym by this? i am using replace, is there something im not aware of?
insane
w
LMAO
The TextReplace plugin with a rule can do exactly what this does so use it instead
ohh im so sorry, i look so stupid rn, thanks!
tbf it would be cool if you could replace it in other ppls messages
yeah
i get a lot of x posts from friends on here n having to click it is a nightmate
same for tiktok actually
do yk an equivalent for tt?
not in vencord
i use tiktxk for tiktok theres probably others
yea that works well
do u think replacing it in other ppls messages is a bit privacy invasive
or is it alr
Or get a Samsung which will make any white sphere look like the moon :)))
LOL yea
or don't because samsung phones are garbage

Hello,
I'm new here, wondering : is there a way to know if somebody is working on a plugin, outside of the plugin ending up in #1032200195582197831 ?
I have a silly idea and i'd like to know if someone somewhere has said that they're working on implementing it.
Bonus question, if nobody's working on it, where can i find people with free time and extensive knowledge of the codebase to whisper in into their ears ?
i maked it
heeeeeeey, is there a plugin or another way to enable middle mouse click scroll on linux?
Check vencord prs
lmao true
most prs can be added as userplugins
so whether they get added or not you can have them if youre okay with building vc
how could i replace an embed (or lack of embed) with one from a url of my choice via a plugin
its kinda
confusing me
what is ur plugin idea
most likely patching renderEmbeds
having message being auto-edited upon clicking certain parts of them using templates.
Basically bringing github tickable lists to discord, and much more.
(I'd be happy with just lists but a configurable design would obviously be cooler)
{
find: "renderEmbeds(){",
replacement: {
match: /\.renderEmbeds=function\((\i)\)\{/,
replace: "$&$1=$self.patchMessage($1);",
}
}
if it breaks blame vap

then you can just push to the embeds array i believe
my insomnia hittin so hard i did this
client side changed the URLS
n i forgot embeds dont work lik that
bro ๐ญ
-enable-blink-features=MiddleClickAutoscroll should work
oh yea I forgot to edit, I did just that
thank you!!
hey this is probably not the spot to ask but i was curious about how hard it would be to code a quick plugin that grabs a person's role color and replaces the color of their text in chats with it? I was digging around and found there was an old betterdiscord plugin that was able to do that but I'm sure transferring code would be a total pain between plugin formats. or maybe even that it's been done before and I'm just crazy.

Immediately after using Vesktop I noticed that my games were lagging BAD. I check my task manager, and Vesktop is using 40 CPU, Stream Deck is using 20. I can fix this by either closing Vesktop or closing Stream Deck. I have the Discord plugin installed on Stream Deck.
there's nothing on our side that could cause this, and there is nothing we can do to fix it or help you. sorry.
not a problem <3 though id personally recommend adding it to the incompatibilities for the client as there are a lot of people who need some of the stream deck discord plugin functions for various reasons
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/
PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
Experiments (found no module):
ID: -
Match: ("showNewSearch")
None
None
IgnoreActivities (had no effect):
ID: 52028
Match: /LISTENING.+?}\),(?<=(\i)\.push.+?)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/
PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
Experiments (found no module):
ID: -
Match: ("showNewSearch")
None
None
let l="[id^=chat-messages]";let d="[id^=message-content-]";let f=()=>document.querySelectorAll(l+" [class*=username_]").forEach(e=>{if(!e.parentNode.id.startsWith("message-reply-context-")){let p=e.parentNode.parentNode.parentNode;p.querySelector(d).style.color=e.style.color;let c=p.parentNode.parentNode;while(c){c=c.parentNode?.querySelector("#"+c.id+"+"+l+":not(:has([class*=username_]))");((c?.querySelector(d)??{}).style??{}).color=e.style.color;}}else((e.parentNode.querySelector(d)??{}).style??{}).color=e.style.color});f();new MutationObserver(f).observe(document,{subtree:true,childList:true})

ah, perfect thank you
rolecoloreverywhere:
does it do that?
its an option
the betterdiscord plugin did
but that was ages ago
if an existing one is out there that would be so much easier
or like, is the rolecoloreverywhere dev here and can see this happening?
if so that would be real swell to add :B
how to mod activities
i want to make adless watch together
its just youtube.com -> youtube-nocookie.com
look at FixSpotifyEmbeds
probably a mobile screenshot
vendetta's rolecoloreverywhere does have it as an option
well I swear there were multiple but could've been closed I guess
so many prs ars stale too
they should be closed
what u doing
can't u just change the frame url
with electron api
well
i have to access the activity iframe and execute javascript in there to change the embed url to youtube-nocookie
which is in the function createEmbedURL
but for that i need the modules through the webpackjsonp thing
holy shit merge this immediately i beg you
fucking despise that shit
i used watch together earlier
got an ad to start the video- then one literally less than 2 minutes into the video
It's so annoying lol especially cause it's different for everyone
plus the despicable job it does where ad- YEAH THEY'RE NOT SYNCHRONIZED
So you'll casually miss 15-20 seconds of the video while others are watching
Have to rewind
So bad
anyway merge this pull request immediately โ๏ธ๐ค
Didn't know about those, I'll look into it
i mean its an optional plugin i think the hack would be worth the time saved without ads
if this actually works its a better solution
(totally not just super hating ads)
Well, that other person is trying a nicer approach
Better than literally throwing adguard in
tell them to hurry up !! /s
Lol
i want it in my client by next Wednesday /j
lmaoo
if you really want it just add userplugin
theres a file outside of plugins but its rarely touched so it should be fine being uncomitted on ur clone
vencord try to be efficient with prs challenge
people have been i think
i've seen ant0n and mrdiamonddog both reviewing other prs
im not here to argue just saying that
terribly sorry that im a real human being who
- has other / better things to do
- doesn't have the energy or motivation to review other people's code 24/7
now we force vee to give me write access
this is irrelevant but i wonder how many fix prs there were for the rspacking
imo team of people
okay start working on it then!
i dont have uhhh access
that doesnt rly fix either of the two problems you mentioned though
i believe (and this is just my belief) it would be a little more efficient if there was a small team of code reviewers that would approve the code quality / check for bugs or malicious, and then you can just greenlight the plugin concept and interface, and then things are more super great awesome
people keep saying that but do you think i can just summon people out of thin air
if you want to help out (and are competent to do so), there's nothing stopping you from doing so
otherwise stop suggesting that cause it's pointless
honestly yeah you do seem to have a lot of influence over people here
there are clearly smart and competent devs who are invested in the project
they are more than welcome to help out in any way they like
if one of said smart devs who was a longtime member messaged you and was like "hey i reviewed all the code for this plugin and everything looks solid, what do you think of the concept?" and you said you liked it
would you merge or would you have to manually double check all the code yourself
depends
if they are allowed to just do the code review for you and ask for only your approval of the concept, do they know they are allowed to?
why are you even asking all this
idk i am curious about inner workings of projects
as someone who also has ownership in a plugin-based system for a diff platform
interesting hearing ppls different approaches to the same general concept
for our modding community we have trusted members which do code review, and then a few who can publish them
yet it can still take us several weeks to publish mods
so there is more than 1 person who can do the code review required for a merge
a good amount of people can review, however approval and publishing is still essentially handled through one person.
my point is, anyone can give constructive criticism on a PR, however that won't mean things magically move faster
when you own a project, of course you want to double check what you're merging
For our mod loader itself, we are a small team which all have write access, however nobody merges to main before a discussion with everyone
if i had a project large enough to alr have teams of maintainers, for the sake of not getting burnt out i would just trust the maintainers if they tell me a plugin is polished, virus free, and bug free
that's all well and good until you get too secure in that, and someone gets you to merge a dookie
and the way to prevent burnout with this, is exactly what vee is doing
unless it's critical, they don't have to check and merge it immediately
require at least 2 maintainers to sign off if you get too worried
if i was in such a position though
i dont think i would be any less susceptible to merging something that accidentally has some weird bug thing in it
compared to anyone else
this isn't exactly about bugs
malicious?
mostly
the way Vencord is designed is inherently more secure than all the other discord mods
plugins have to go through the owner
scrutinized by the public through PRs
if the maintainers have worked with the codebase for long enough, i don't see how they could be more susceptible to missing malicious code than the owner
it's a good system, and if vee just trusted people without reviewing anything, eventually we're gonna have a BetterDiscord situation where someone manages to hide a token logger
well obv dont just trust random people
but yall have an appointed team i assume right
that's the thing, it's never random people that sneak that stuff in
it's people you trust 
wouldnt that just be undone by the whole "scrutinized by the public" thing
i wouldn't know, i'm just a random working on Vesktop global keybinds
theres too many competent devs here reviewing prs for even a trusted person to pull a fast one
you'd be surprised.
if ur really really that worried, theres always this
our modding community had actual attack vectors there, because we trusted some of the devs enough
now, nothing ever happened
we had mods which included auto updaters, or fetched things from a remote server
auto updaters aren't exactly applicable to vencord
dont allow that
but it's entirely possible that eventually you trust one dev enough to do this out of some necessity
vencord does have an autoupdater
not on by default though
but i imagine tons of people use it
well, yes, but that's again, going through ven themselves
if they go rogue then the project is doomed either way

oh you mean each mod updated itself
at the very least
yes, or something along those lines
anything that could have to fetch from a remote server
one week ven does stuff one week the other person does stuff, create something constant where there arent any breaks so business runs smooth as usual
he works on the C++ stuff though
mhm he's insanely good at what he does
i was shocked when he told me he made soundux 
i think lewi is the only other person w write access to vencord
oh and megu
and nookies actually
so there are multiple
even with multiple people things should still end up going through the owner
i'd never dare to merge PRs without discussion from the rest of my team
id review more prs but i usually look at a random one and go "wow this is bad" then give up
reply "get good" and move on with ur day
we've had some hilarious ones too
you comment with a ```suggestion codeblock
that you put the code you'd like to replace
then it automatically adds a diff
how does it know where the diff goes







