#πΎ-core-development
1 messages Β· Page 133 of 1
FATAL ERROR: tsfn_to_js_proxy napi_call_function
z/home/sarah/Documents/github/Vesktop/node_modules/electron/dist/electron exited with signal SIGABRT
that's so awesome
It detects the key and then kills itself
Maybe it's time we build our own native hotkey module
I hate relying on other people
Maybe it's time we rewrite the client for good
I refuse to use software related to erkinalp
so now of course the question is can i access this function from Vesktop
ahh okay i can execute javascript in the main window
i got it working 
now i'm gonna have to fuckle together an interface and settings for these keybinds
I was able to compile and run without errors,
I am unsure if I am suppose to be seeing anything when I do the (GET) instruction,
and I am unsure what I am meant to do when I get to (POST)
Neither show the unable to connect screen, both give out an 404 error in the browser console though.
I am using LibreWolf so I'm assuming the instructions would be the same.
You should use an HTTP Client like Insomnia or HTTPie
Or using CURL from the command line
curl http://localhost:7591/list
curl -X POST -H "Content-Type: application/json" -d '{"props":[{"key":"node.name","value":"Firefox"}],"mode":"include"}' http://localhost:7591/link
Nothing appears to happen with both commands.
Adjusted the commands, should work now
It listed everything properly,
When linking it printed 200
Venmic did not print anything
It listed everything properly,
When linking it printed200
Venmic did not print anything
And it did not link the programs output to venmics input?
Just checked I didn't realize it created an input right away
It did not connect the program's output to the input.
Just checked I didn't realize it created an input right away
It did not connect the program's output to the input.
What was the exact output of the list command, and what curl commands did you run exactly?
List command output
[{"client.id":"32","clock.quantum-limit":"8192","device.api":"alsa","factory.id":"10","factory.name":"api.alsa.seq.bridge","media.class":"Midi/Bridge","node.driver":"true","node.name":"Midi-Bridge","object.id":"37","object.serial":"37","priority.driver":"1"},{"alsa.card":"2","alsa.card_name":"JLAB TALK MICROPHONE","alsa.class":"generic","alsa.device":"0","alsa.driver_name":"snd_usb_audio","alsa.id":"USB Audio","alsa.long_card_name":"16042020V2 JLAB TALK MICROPHONE at...
~snip
Thanks will look into it when I'm home, just to make sure, have you also tried something else than LibreWolf?
Just tested it with a few other things I saw on the list.
Nothing happened.
Just tested it with a few other things I saw on the list.
Nothing happened.
Okay, I'm currently on my way home and will check it out immediately.
Could you please join the vencord discord and tag me in the support channel (@curve.cpp), just in case we'd have to do some back and forth regarding the fix
FWIW; If you install a pipewire patchbay like qpwgraph then you can hook that up manually
Would this be related to #195?
Would this be related to #195?
Not sure, but I don't think so
Anything else you guys think I should add/fix in the plugin?
[Vencord/venmic] New tag created: v2.0.1
A user on the discord had the same problem and was really helpful in debugging the problem.
This should now be fixed as soon as Vesktop updates to venmic>=2.0.0
900e963 feat: add envvar to disable updater patching - MeguminSama
lol
Updates venmic to v2.0.0.
(As soon as this workflow is finished I'll also update to v2.0.1 to resolve #217)
new commits will now be anti-verified

quick question, how long dose it usualy takes for vee to look at a a PR?
soory if thats a bad question
It'll be reviewed between today & around 70 years from now
Jokes aside it'll take a while
Could take a week could take a month
d76c5e2 Bump axios from 1.5.1 to 1.6.1 - dependabot[bot]
[Vencord/Vesktop] New branch created: dependabot/npm_and_yarn/axios-1.6.1
Bumps axios from 1.5.1 to 1.6.1.
Release notes
Sourced from axios's releases.
Release v1.6.1
Release notes:
Bug Fixes
formdata: fixed content-type header normalization for non-standard browser environments; (#6056) (dd465ab)
platform: fixed emulated browser detection in node.js environment; (#6055) (3dc8369)
Contributors to this release
Dmitriy Mozgovoy
Fabian Meyer
Release v1.6.0
Release notes:
Bug Fixes
CSRF: fixed CSRF vulnerability CVE-2023-45857...

I hope volumebooster for vesktop gets taken a look sometime
someone commented in the issue saying they would try but I think they never did
A month you say
Skill issue
not mine
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version.
If you change your mind, just re-open this PR and I'll resolve any conflicts on it.
[Vencord/Vesktop] branch deleted: dependabot/npm_and_yarn/axios-1.6.1
LOL

dependaboat
hire this man
(i'm not going to share their name but this is a very cool bio)
Renovate?
lmao??
Lol
@austere talon Can we try to get Decor reviewed (and ideally merged) tonight, please? I resolved your first review's notes and implemented the better patch to add Decor decorations from Cynthia. I understand if stuff came up last night or you didn't feel like doing it, but leaving me in the dark about whether or not it was gonna happen felt really shitty and I just want to get Decor into Vencord so we can be over with this for a bit :/
I have been, Ven said on Wednesday after half-reviewing it that they'd review the rest tomorrow (Thursday) and when it didn't seem like that was going to happen I asked them if it was going to happen (so I could get out of adhd mode) and got ignored :/
You could use MathJax to render on the client instead of a third-party API
You could use MathJax to render on the client instead of a third-party API
Yeah, my only concern really is whether its worth importing an entire Math rendering pacjage just for the one plugin that most people wouldn't use. I might move this plugin to community plugins instead.
I suggest adding some kind of hint when there are no sounds logged yet. Currently it looks a bit empty there
<Text variant="text-md/normal">Played {currentUser.plays.length} {currentUser.plays.length === 1 'time' : 'times'}.</Text>
and thats what makes me not even want to contribute because the model doesnt work for a public client mod unless you have 5-10 reviewers around the clock to be able to review things in a timely manner
<Forms.FormText variant="text-xs/medium" style={{ cursor: "pointer" }}>Played {currentUser.plays.length} {currentUser.plays.length === 1 ? 'time' : 'times'}</Forms.FormText>
we totally forgot about this tnx ill add this.
it's not meant to be clickable it's just a text. There is no reason to make the cursor a pointer.
Prevent replying to ephemeral messages when double clicking.
may i know the error reason
this error was because of this plugin https://github.com/sh3devil/faeffect/tree/main
if u want profile effects try my plugin
does it support decoration and effects?
it supports profile theme colors and profile effects
and it has a very easy to use ui
its src/plugins/fakeProfileThemesAndEffects
use something like https://download-directory.github.io/ to download just that folder
it's not meant to be clickable it's just a text. There is no reason to make the cursor a pointer.
It wasn't my suggestion. I think should've put this as a new review :)
u also gotta add this to the list of devs in src/utils/constants.ts
ryan: {
name: "ryan",
id: 479403382994632704n
},
even if i put the plugin in userplugins?
yeah but put the plugin in src/plugins
theres already a plugin that does that
should get added soon
its called decor
doesnt rely on 3y3
cna't find it
this one has changes outside of its plugin folder
if u look at the commits u can see what those changes are
would probably be easier to just clone the whole repository then add fakeProfileThemesAndEffects to it and update the dev constants
tysm
π€¨
yeah its scuffed but the plugin dont work otherwise
whats the point of that thing
patch helper
i just use devtools
whatchu trying to cook tho
like the vencord dev build has
why u need to get module number to write patch
you dont really
yop i stole most of the styles 
Is there a way to determine which text channel you're viewing? I want to add right click functionality to the call button in group/user dms but I'm not sure how to do that
my previous plugin in betterdiscord used mutation observers but there has to be a better way lol
in vendetta you use SelectedChannelStore ts find(x => x?.getName?.() === "SelectedChannelStore").getChannelId();
however there might be a better version for pc clients
youre asking massive X/Y problem question
first patch the context menu
it already gives you the channel
why do pc clients have to be so much more complicated
???
yeah I was hoping there might've been some event that would trigger upon switching channels
its easier
why
thats just wrong
patch the context menu
it gives you the channel
alright then I'll try that, thanks
so complicated π€―
Flux.Store.getAll().find(x=>x.getName() === "SelectedChannelStore")
@D3SOX added the soundboard volume into the play button and added an ester egg when no sounds are logged :3
added diff
I'm really struggling to find where messages are received in discord's code, everything i find ends up being something else, any help?
some of them are when it's received but it's after the point i need it to be, i need to find exactly when the client receives it
what for
in that case listen to the message create flux event no
i need to modify the data in the received message
oh
.
@junior olive
https://patchhelper.vercel.app/
An online version of Vencord's patch helper!!!
its not showing the shiggy gif in the embed
this is how you're meant to use it

no like this
i am dying inside trying to find where this is
Very cool
yeah i think ik why
love vercel
just let discord be your cdn
96126fa remove pipebomb from github actions (#1968) - Vendicated
if (msg.hasFlag(EPHEMERAL) return;
7457747 feat: Add Environment variable to disable updat... - MeguminSama
this module seems to export getUserAvatarURL both
- as a named export
- on the default export (what you're patching)
Optimally, you should patch both, which you could achieve by patching the function directly instead of wrapping the property
@cunning canyon hmm why not do this for all timestamps in discord? https://github.com/Vendicated/Vencord/pull/1671
its probably not much harder to do
well it does already have a lot of stuff, just not the days ago
<t:1699663282>
oh i see, joined date is like very weird xd it doesnt even use proper timestamp
discord moment
hmm i think it'd be better to format the date exactly like Discord's own timestamps
i think they use moment for that
fear
Doesn't mention you when someone who left mentions on replies to you
try and ping me i dare you
@spark pivot hiii
reply ping*
a

why
maybe i will just close because of #1784
i didnt even know git let you do this
is this the right XSOverlay? https://store.steampowered.com/app/1173510/XSOverlay/
XSOverlay is a Desktop Overlay application for OpenVR. This means that you can access your desktop, or specific applications, and interact with them however you'd like to.
Price
$9.99
Recommendations
919
yes
who paying 10 bux for that
many
** Please read this section before purchasing! **- OVR Toolkit only supports Windows 10 and 11! Not Windows 7 or Windows 8. Windows 8.1 'may' work but is unsupported!- OVR Toolkit requires you to have a Windows account with admin permissions and that you run Steam on this same account.- Oculus users may experience decreased performance as ga...
Price
$11.99
Recommendations
2370
people pay for this MORE
than xsoverlay
damn
people are just malding about him changing from unity ui to web ui
lol
anyways uhh you can just use steamvr dashboard now it doesnt suck as much as it used to (it still sucks tho)
you're paying for quality of life as usual
or use one of the free ones that are probably worse because they dont get paid to develop their shit
why did you husk own review
btw the days ago is because i like it in aliucord 
days ago is cool
guh syntax highlighting broke
3-line tooltip
Are the dispatch logs from console optimistic or something?
mentioned, stickers and stuff from viewraw arent in this object
how
these are gateway messages
they differ from what flux dispatches
wp.Common.FluxDispatcher.subscribe("MESSAGE_CREATE", console.log)
dunno xd
still
well try some of these props
not saying theyre the exact same but what im using has worked for me
prolly allowoverflow?
still same
also can you even get optimistic events from other users
actually no that doesnt matter
oh my god i hate shithub
that was entirely my fault but i like blaming guhhub
check again when you feel like it
probablybetter?
if (call?.ringing?.includes(UserStore.getCurrentUser().id)) {
didnt i already do thar
also definitely ignore the two commits i included on accident lol
oh its just incredibly slow
if (message.optimistic || message.state === "SENDING) return;
const channel = ChannelStore.getChannel(message.channel_id);
i think just
return message.mentioned;
will work?
lmao -
Welcome to GitHub's home for real-time and historical data on system performance.
I NOTICED THIS
i was pushing to my server. and expecting it to build docker container
throw a error if it's invalid so it can be caught
you don't seem to be using any other props and even disabled isnt used. either fix the types or use them
interface Props {
to make this func more easily reusable, it'd be better to not have this toast here, and instead either don't handle the error, or return true/false to indicate success
veb crashed shithub again real
you should not remove all mentions. you should only remove your own mention
- api message (raw json from gateway)
- local message (serialised & proper class)
Bad Patches
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=
Bad Starts
None
Discord Errors
None
Bad Patches
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=
Bad Starts
None
Discord Errors
None
not sure if this is the right channel regarding plugin development questions
it is
good
I'm a decent-ish programmer with non-zero experience with JS (it's not a lot though). I never used other Discord modifications, so I have no experience with that. I've read the plugin development documentation and now I have some idea about how code modification is done in Vencord.
now, I'm struggling to understand how would I go around finding the right snippet to patch, other than just beautifying Discord's JS and then clueless grepping through it. which I've attempted, with minimal success - since the names are minified, looking for keywords wasn't very helpful, mostly leading to translation strings.
what I'd like to try making is a plugin that'd change the inline CSS Discord puts into nicknames based on the role color, to be based on something else.
Once you have vencord installed you can open developer tools as you would in chrome, then find the react dev tools
You can select the element you're patching
do I need to install the desktop client for development then?
I use Firefox
Vesktop or web
using browser for development is suicide
oops
cause u need to manually reinstall ext each time
that has to be deliberate
it happens on unpatched 64bit canary and they dont seem like theyre gonna fix it anytime soon
who am i kidding though
its cause their css bundle is fucked up
you can use desktop if you want just open devtools before its launched fully lmao
well, I do use the web version, in particular with the userscript version of Vencord (since the Firefox version got poofed out of existence)
If you seriously want to get into developing just install Vesktop
but you said "as you would in Chrome", so I assume I need Chrome or desktop (not sure what Vesktop is), not Firefox
do you know regex, if you dont learn or you will hate yourself
working with vencord patches
yeah regex is an essential skill in software development lol
and even daily use of computers tbh
so yeah, I am quite familiar with the Perl flavor, which the JS flavor is kinda similar to as far as I can tell
(as well as somewhat with the Vim flavor but uh yeah)
so Vesktop is a repackaged version of Discord web with Vencord preinstalled
Yes
guess gonna install that just for development, though I will stay with Firefox for daily use, it's convenient to have just a single browser running lol
ah yes, Chromium for Linux not having autoscrolling so I can't scroll the server list
gonna add the scrollbar back
@spark pivot How hard would it be to create an inverse of your plugin?
so if metions are off it mentions me anyway
wait
easy (i think)
/*
* Vencord, a Discord client mod
* Copyright (c) 2023 Vendicated and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
import { Devs } from "@utils/constants";
import definePlugin from "@utils/types";
import { MessageStore, UserStore } from "@webpack/common";
import { MessageJSON, UserJSON } from "discord-types/general";
export default definePlugin({
name: "AlwaysReplyPings",
description: "Ensures getting pinged by replies, even if the sender turned it off",
authors: [Devs.MrDiamond],
patches: [
{
find: "_channelMessages",
replacement: {
match: /receiveMessage\((\i)\)\{/,
replace: "$&if($self.shouldAddMention($1))$1.mentions.push($self.getCurrentUserMention());"
}
}
],
shouldAddMention(e: MessageJSON): boolean {
if (!e.message_reference) return false;
const repliedMessage = MessageStore.getMessage(e.channel_id, e.message_reference.message_id);
if (!repliedMessage) return false;
return repliedMessage.author.id === UserStore.getCurrentUser().id && !e.mentions.some(mention => mention.id === UserStore.getCurrentUser().id);
},
getCurrentUserMention(): UserJSON {
const currentUser = UserStore.getCurrentUser();
return { id: currentUser.id, username: currentUser.username, discriminator: currentUser.discriminator };
}
});
would it be that simple
why not just modify shouldNotify
wont add the yellow highlight
test
again?
test
patch message too 
thats what highlight does
someone reply ping me please
here
again plss
:)
_ _
my plugin just adds plugin creation
but i'm gonna update it rn
what is venticord
modified vencord
whats the mod
kewllll
i did see ur vscode thing
a min ago
/*
* Vencord, a Discord client mod
* Copyright (c) 2023 Vendicated, Mr Diamond, ant0n and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
import { definePluginSettings } from "@api/Settings";
import { Devs } from "@utils/constants";
import definePlugin, { OptionType } from "@utils/types";
import { MessageStore, UserStore } from "@webpack/common";
export const settings = definePluginSettings({
alwaysPingOnReply: {
type: OptionType.BOOLEAN,
description: "Always get pinged when someone replies to your messages",
default: false,
}
});
export default definePlugin({
name: "ReplyPingControl",
description: "Control whether to always or never get pinged on message replies",
authors: [Devs.ant0n, Devs.MrDiamond],
settings,
patches: [
{
find: "_channelMessages",
replacement: {
match: /receiveMessage\((\w+)\)\{/,
replace: "$&$self.modifyMentions($1);"
}
}
],
modifyMentions(message) {
const isReplyToCurrentUser = this.isReplyToCurrentUser(message);
if (settings.store.alwaysPingOnReply && isReplyToCurrentUser) {
if (!message.mentions.some(mention => mention.id === UserStore.getCurrentUser().id)) {
message.mentions.push(this.getCurrentUserMention());
}
} else if (!settings.store.alwaysPingOnReply && isReplyToCurrentUser) {
message.mentions = message.mentions.filter(mention => mention.id !== UserStore.getCurrentUser().id);
}
},
isReplyToCurrentUser(message) {
if (!message.message_reference) return false;
const repliedMessage = MessageStore.getMessage(message.channel_id, message.message_reference.message_id);
return repliedMessage && repliedMessage.author.id === UserStore.getCurrentUser().id;
},
getCurrentUserMention() {
const currentUser = UserStore.getCurrentUser();
return { id: currentUser.id, username: currentUser.username, discriminator: currentUser.discriminator };
}
});
is there anything obviously awful
with this
AHH
ok
thats the done one
how do I even use Vesktop for development, for Firefox I ran pnpm buildWeb and installed the userscript
for desktop the docs say to pnpm inject
but what about Vesktop then
you download vesktop, build your vencord, and then change the dist in the vesktop tray settings
it hink
ith ink
i th in k
ithnk
try looking in the Vesktop repo
vesktop settings
thanks
welp, I still don't see the plugin
oh, perhaps a full restart is needed
why user ids in dev constants stored as bigints when they are strings everywhere else
yes, that was the issue
bigints are the future
discord also uses bigints in some places
do u know a better way to get badges other than Vencord.Util.fetchUserProfile?
there isn't a better way
yes why do you think badges everywhere isn't a vencord plugin
it's api spam
there is an alternative
the alternative is not having it
the user object has a flag variable
its a number that represents the badges a user has
bitwise shift and u can figure out what badges
but i would have to hardcode the badges cuz i cant find anywhere in the api to get a list of all possible badges
guh use user profile store
that's only cached users
iirc the normal user object doesn't have the flags you need
if a user's messages are being rendered (and assuming thats the only place the plugin would add badges), then the user would definitely be cached?
profile
its only fetched when you open their profile
no it doesn't
fetching is a different function and fetching all users in chat is braindead
it doesnt you have to use another function from another module to fetch profile
random user never opened profile
π discord so ass
could a cloudflare worker that caches user profile heavily for badges be done
no
tbh why even make such a plugin
perhaps the error is related...
so well you could try to get the cached profile and fetch if not available rather than spamming profile regardless
nah i dont need to get the profile for this
i just need to find a list of all badges
to get their values
so i dont have to hardcode them
profile has list of badges
there is none
it's handled by the api
or you wait for the day when community team goes insane and adds /users/:id/badges endpoint
im talking about something like this
vns
<@&1088566810976194693> moment
this plugin not only gets me rate limitted but makes my discord freeze every 2 seconds
well that should give you a clear indication
shrimply don't make the plugin
bad plugin idea
it can be done
ill just hardcode the badges
this is a i will do it just because i can moment
and how do you plan on getting user flags
UserStore
what if not cached
nvm i dont even need to do that
the message author object has a user object with the flags im pretty sure
i will update the plugin
manual updating :lipbite:
yop
i removed the fetchUserProfile part and its still freezing
maybe it's time to abandon the plugin
this runs for every user
fetch("https://gist.githubusercontent.com/Vendicated/51a3dd775f6920429ec6e9b735ca7f01/raw/badges.csv")
.then((res: Response): Promise<string> => { return res.text(); })
.then((data: string) => {
const badges: string[][] = data.split("\n").map((s: string) => s.split(","));
const userBadges: [string, string][] = [];
for (let i: number = 0; i < badges.length; i++) {
if (badges[i][0] === author.id)
userBadges.push([badges[i][1], badges[i][2]]);
}
setVCBadges(userBadges);
})
.catch(e => { console.error(e); });
every message actually
no cache moment
you will use .filter()
chad for loop vs soy filter
This feature was the main reason as to why i was using BD, if someone were to pick up this idea it would be highly appreciated. I believe this would be beneficial to many users, since the way discord handles DMs is awful :(
ok patch helper is finished https://patchhelper.nexpid.xyz
horror
Do people actually use the patch helper
U know u can press the un minify button in devtools
unless you can like, share patches through it
yes
Then what's the point of the patch helper
actually you know what this could use
Regex search is built into devtools
filling from clipboard
to see how a patch is applied

please put the diff in a codeblock
i think its better not being in a codeblock tbh
that green has awful a11y
mmmyes inspect data using β¬β¬β¬β¬β¬ and β¬β¬β¬β¬β¬
light mode user 
any problem with that
no
ohhh so thats where the id comes from
i haven't updated this to work with rspack yet, but it whould give you a rough idea https://github.com/arHSM/discord-builds-dissector/blob/main/dissector/discord_web/webpack/chunk.ts
test
Doesn't include all userpfp contributors in credits, doesn't include badges or badge text.
Please include FoxStorm1, Katlyn, Coolesding and thororen
Doesn't include all userpfp contributors in credits, doesn't include badges or badge text. Please include FoxStorm1, Katlyn, Coolesding and thororen
they did not code this plugin
finally understood how modules are loaded and now you can property inspect them 
(all of these are uncommited changes btw)
Doesn't include all userpfp contributors in credits, doesn't include badges or badge text. Please include FoxStorm1, Katlyn, Coolesding and thororen
they did not code this plugin
They created UserPFP though
Just have u in author section then
Doesn't include all userpfp contributors in credits, doesn't include badges or badge text. Please include FoxStorm1, Katlyn, Coolesding and thororen
they did not code this plugin
They created UserPFP though
yes however they haven't contributed to this Vencord plugin, so it doesn't really make sense to mark them as authors
lmk if the latest commit resolved this @Vendicated
Doesn't include badges and badge text
why do the plugin for pfp need to have badge lmao
Hello!
Not sure if this is just accidental or intentional (e.g. until the plugin gets updated), but seeing how Vesktop by default only supports user volume up to 100%, makes it rather difficult to voice call with certain people. This might be the only thing that prevents me from switching over completely to this neat app.
this guy gets it
why in the world would it contain badges
UserPFP is for pfps, throwing badges in there is weird. Badges are also meant to be a perk for Vencord donors and a way to point out contributors
I could ask Wolfie to add it to globalbadges
Everything functional and as intended
duplicate
there doesn't seem to be an actual gh issue, so I assume this means it's known, right?
GitHub
Hiiii, Issue I noticed an issue where if you start Vesktop without an internet connection, it will crash due to a DNS error and then fail to ever start up. I get this every time I boot up my laptop...
ah, a classic "github search sucks" moment (and me being blind, as it's the 4th latest open issue). thanks
@spark pivot I'm not able to make a PR to your no-reply-pings but I've created a README.md and updated the plugin
also if anyone sees anything really stupid on that plugin lmk cz im very new to TS
also, I had an idea for creating readmes where I could try feeing plugins to the codex LLM and letting it create one based on that
might be a lot faster for the plugins that alr don't have them and then moving forward we can manually add them
Iβll look at in a bit and just make a new pr for it
wouldnt let me weirdly
do you have them disabled?
or do you mean a new PR to main vencord
I forked MrDiamonds

doesn't matter which branch you're on
oops
it's still forked from the same repo
smmhmgnfgng i did the wrong thing
Expanding on PR #1973 to allow the user to toggle between disabling all replies or enabling them.
This has been updated in PR #1975
Yeah
k cool
found a better (i think) way to do this
getCurrentUserMention() {
return UserStore.getCurrentUser() as unknown as UserJSON;
}
match: /receiveMessage\((\i)\)\{/,
modifyMentions(message) {
if (this.isReplyToCurrentUser(message)) return;
if (settings.store.alwaysPingOnReply) {
if (!message.mentions.some(mention => mention.id === UserStore.getCurrentUser().id)) {
message.mentions.push(this.getCurrentUserMention());
}
return;
}
message.mentions = message.mentions.filter(mention => mention.id !== UserStore.getCurrentUser().id);...
* Copyright (c) 2023 Vendicated, MrDiamond, ant0n, and contributors
oxford comma hehe
UserJSON is just the type that it needs to be cast to and as unknown is cause avatarDecoration is stupid, so it should be fine
ugh shithub let me comment on a review without making a new review
I'm currently not even importing UserJSON
huh
LOL IM SO DUMB
i swear i did that
thats the insomnia kicking in
u sure is should be as Unknown?
import MessageJSON too
modifyMentions(message: MessageJSON) {
isReplyToCurrentUser(message: MessageJSON) {
import { MessageJSON, UserJSON } from "discord-types/general";
@spark pivot
can you no ping reply to me
wait
no this fix doesnt work
the one you suggested
im getting this on all my msgs
yea i dont get a ping for that
youll need to clone then manually add
https://github.com/Vendicated/Vencord/pull/1975#discussion_r1390258420
and
import { MessageJSON, UserJSON } from "discord-types/general";
The return statement in modifyMentions is only executed if isReplyToCurrentUser returns false, which means it exits the function early for non-reply messages.
modifyMentions(message: MessageJSON) {
if (!this.isReplyToCurrentUser(message)) return;
if (settings.store.alwaysPingOnReply) {
if (!message.mentions.some(mention => mention.id === UserStore.getCurrentUser().id)) {
message.mentions.push(this.getCurrentUserMention());
}
} else {
message.mentions = message.mentions.filter(mention => mention.id !== UserStore.getCurrentUser().id);
}
}
this is it before
try that
e
ok now reply with pings on
e
now on again
/*
* Vencord, a Discord client mod
* Copyright (c) 2023 Vendicated, Mr Diamond, ant0n and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
import { definePluginSettings } from "@api/Settings";
import { Devs } from "@utils/constants";
import definePlugin, { OptionType } from "@utils/types";
import { MessageStore, UserStore } from "@webpack/common";
import { MessageJSON, UserJSON } from "discord-types/general";
export const settings = definePluginSettings({
alwaysPingOnReply: {
type: OptionType.BOOLEAN,
description: "Always get pinged when someone replies to your messages",
default: false,
}
});
export default definePlugin({
name: "ReplyPingControl",
description: "Control whether to always or never get pinged on message replies",
authors: [Devs.ant0n, Devs.MrDiamond],
settings,
patches: [
{
find: "_channelMessages",
replacement: {
match: /receiveMessage\((\w+)\)\{/,
replace: "$&$self.modifyMentions($1);"
}
}
],
modifyMentions(message: MessageJSON) {
if (!this.isReplyToCurrentUser(message)) return;
if (settings.store.alwaysPingOnReply) {
if (!message.mentions.some(mention => mention.id === UserStore.getCurrentUser().id)) {
message.mentions.push(this.getCurrentUserMention());
}
} else {
message.mentions = message.mentions.filter(mention => mention.id !== UserStore.getCurrentUser().id);
}
},
isReplyToCurrentUser(message: MessageJSON) {
if (!message.message_reference) return false;
const repliedMessage = MessageStore.getMessage(message.channel_id, message.message_reference.message_id);
return repliedMessage && repliedMessage.author.id === UserStore.getCurrentUser().id;
},
getCurrentUserMention() {
return UserStore.getCurrentUser() as unknown as UserJSON;
}
});
yum
is there anything we can do about screensharing on vesktop? electron GPU features report video encode is available but.. y'know
updated the review
streams you run will often report a yellow exclamation mark indicating packet loss? people who are watching me are reporting very low fps when this happens
this seems to only happen on these webpage based discord clients
i was under the impression it was a chromium hardware acceleration limitation
but why would it be?
GPU features report hardware accelerated encoding is available and enabled
but regardless of that it's still all done on cpu
@spark pivot i know how to setup third party pluggins
i just don't know how to use it
literally no info
can anyone give some feedback on this?```ts
{
find: "getUserAvatarURL:",
replacement: {
match: /(i=a.*??).+?(:f.AVATAR_SIZE)/,
replace: "$1(arguments[2]==80?300:arguments[2])$2"
}
}
works but the regex is pretty ugly
what's the code you need to match
can you tell me how to set up
@patent nova @stark barn #π₯-vencord-support-π₯
function C(e) {
var t;
let n = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]
, i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : f.AVATAR_SIZE // this line
, r = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null;
return null !== (t = I(e, n, i, r)) && void 0 !== t ? t : g(e.id, e.discriminator)
}
can you not just put i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : f.AVATAR_SIZE into it and regex-ify it
aka remove spaces and escape other regex characters
and use \i for i and f
maybe we're not using an electron build with vaapi enabled
discord code does not have unnecessary spaces
so that then
OH Ok
{
find: "getUserAvatarURL:",
replacement: {
match: /(\i=arguments\.length>2&&void 0!==arguments\[2\]\?arguments\[2\]:)f\.AVATAR_SIZE/,
replace: "$1(arguments[2]==80?300:arguments[2])"
}
}
except for the void 0 one cause that would error lol
i really want to add a place for just pasting a whole patch into the patch helper
it's annoying going into each field and pasting them
do it
@ryanccn any chance of getting a re-review on this one? π
ugh patches arent actual JSON objects cause they have regex and stuff so I have to find a workaround
charghpt says eval but there has to be a better way
you can just eval them
since its a developer tool i assume people who paste stuff there are smart enough not to paste malicious scripts
patch helper currently already evals your replacement
that's true
Embed a js parser
just eval it
~/venmic.log:
[2023-11-11 15:36:26.201] [venmic] [debug] [has_pipewire] pulse-server was pulseaudio (on pipewire 0.3.84)
[2023-11-11 15:36:26.213] [venmic] [info] found speakers: 40
System information
$ . /etc/os-release; echo "$NAME"
Arch Linux
$ uname -srvom
Linux 6.6.1-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 08 Nov 2023 16:05:38 +0000 x86_64 GNU/Linux
$ pacman -Qi vencord-desktop-git | head -n2
Name : vencord-desktop-git
Version : r221.a232af...
How are you supposed to format the header in the files
pnpm test doesnt seem to like mine lol
eslint seems to be forcing this ```ts
/*
- Vencord, a Discord client mod
- Copyright (c) 2023 Vendicated and contributors
- SPDX-License-Identifier: GPL-3.0-or-later
*/
but still says its invalid
/*
* Vencord, a Discord client mod
* Copyright (c) 2023 Vendicated, Mr Diamond, ant0n and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
could it be because im not importing devs?
Yeah you optionally can
Good practice if u wna show this stff on portfolio
its weird literally noone ads themselves to the license
should the name be discord username or Github username?
yeah thats gonna be pointless anyway since i wouldnt be using my "public" github
You can add whatever you want as your name
Your dev constant should link back to whatever account you want the badge on though
yeah
the header is still broken :/
still is forced to ```ts
/*
- Vencord, a Discord client mod
- Copyright (c) 2023 Vendicated and contributors
- SPDX-License-Identifier: GPL-3.0-or-later
*/
what you got under ur header
/*
* Vencord, a Discord client mod
* Copyright (c) 2023 Vendicated and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
import { disableStyle, enableStyle } from "@api/Styles";
import { Devs } from "@utils/constants";
import definePlugin from "@utils/types";
import styles from "./style.css?managed";
export default definePlugin({
name: "LargeProfileAvatars",
description: "Makes avatars take up the full width of the profile modal and scales resolution accordingly",
version: "1.0.0",
authors: [
Devs.board
],
patches: [
{
find: "getUserAvatarURL:",
replacement: {
match: /(\i=arguments\.length>2&&void 0!==arguments\[2\]\?arguments\[2\]:)f\.AVATAR_SIZE/,
replace: "$1(arguments[2]==80?300:arguments[2])"
}
}
],
start() {
enableStyle(styles);
},
stop() {
disableStyle(styles);
}
});
``` sorta doubt this is gonna get accepted anyway lol
sorta doubt anything will get accepted
I noticed two more things:
- the volume isn't used when playing via the user modals.
- when you're deafened you can't play sounds (not that big of a deal but might be confusing)
that's fine. are you sure you've done pnpm i
hadnt done it until now
didnt seem to change anything though
I'm not getting any header errors anyway so dw about that
to be fair its showing the wrror here aswell
only error i get is lack of css ofc
.userPopoutOuter_d739b2 .avatarPositionNormal__1797c,
.userPopoutOuter_d739b2 .avatarPositionPremiumBanner__1e83d,
.userPopoutOuter_d739b2 .avatarPositionPremiumNoBanner__8bf3b {
position: static;
order: -1;
z-index: 1;
}
.userPopoutOuter_d739b2 .avatarHint__8e5b9 {
height: 340px;
width: 100%;
}
.userPopoutOuter_d739b2 .wrapper_edb6e0[style^="width: 80px"] {
width: 340px !important;
height: 340px !important;
}
.userPopoutOuter_d739b2 .avatarHintInner__3d1c9 {
box-shadow: none;
}
.userPopoutOuter_d739b2 .bannerSVGWrapper__3e7b0:not([viewBox$="120"]) {
display: none;
}
.userPopoutOuter_d739b2 .bannerSVGWrapper__3e7b0 mask circle {
display: none;
}
.userPopoutOuter_d739b2 .avatarHoverTarget__3a360 .wrapper_edb6e0 svg {
width: 115%;
height: 115%;
}
.userPopoutOuter_d739b2 .avatarHoverTarget__3a360 .wrapper_edb6e0 svg circle {
display: none;
}
.userPopoutOuter_d739b2
.avatarHoverTarget__3a360
foreignObject
.avatarStack__6604a {
transform: translate(0, 0);
}
.userPopoutOuter_d739b2 .roundedBanner__9fa0a {
border-radius: 0;
}
/* Following hopefully fixes decorations */
.userPopoutOuter_d739b2 .avatarDecorationHint__03e0b {
height: 340px;
width: 100%;
}
.userPopoutOuter_d739b2 .avatarDecoration_ae35e3,
.userPopoutOuter_d739b2 .bannerSVGWrapper__3e7b0 mask {
display: none;
}
that built fine
also the patch seems broken
oh wait
maybe i shouldnt just blindly copy regex lmao
wow as long as i run my own dev build i can pretend to be a contributor lmao
well yeah xD
it's insane just hwo fast discord loads if you're only in a few guilds and have no friends
I'm thinking of leveraging the new PluginNative functionality that was committed to Vencord a few days ago.
It'd expose any keybindable Discord action (but mainly PTT, initially) to the kglobalaccel DBus, allowing users to setup keybinds via KDE systemsettings.
god why are my recordings laggy
gnome pleasee
can't repro. please provide more info. what did you do exactly that led to this?
- launch vencord-desktop
mkdir ~/test cd ~/test gtk-launch vencord-desktop - join a vc and screen share
- see
~/test/venmic.logget created
Venmic keeps a log file since latest release and will create this file in the directory it was launched from
Makes avatars take up the full width of the profile modal and renders them in higher resolution.
well then lets hope that was good enough lol
I'm launching vencord-desktop via my DE/compositor, whose working directory defaults to the $HOME folder in my case. According to the Freedesktop XDG spec, log files should be stored in $XDG_STATE_HOME (~/.local/state by default).
Maybe the log file could also be made optional / enabled via an environment variable?
lol thatβs fair
You think I should make the theme part a toggle?
Then again the situations where youβd want this without the theme part seem very rare
maybe if the profile picture was the background of the profile
but cant that just be a theme (maybe not)
the way they are top and bottom like this tho... to each their own xP
maybe im just too used to discord lol
FYI, this also currently breaks streaming with audio when it's started from a directory without write permissions
Could be a good idea to add fallbacks incase discord update UI but that's up to you.
I think this needs to include contributors.
* Copyright (c) 2023 Vendicated, Board, and contributors
We already talked about this in the Discord and I think it would probably be better to just implement this in Vesktop using Electron global shortcuts API as this is already cross-platform
Oh also, add a README.md for your plugin!
@void echo thanks for all the input :D
Nws, it's nothing major and I'm sure the others will have stuff to say but that's some basic things
What exactly do you mean by this?
Fallbacks are basically css styles that are applied if the first one fails somehow
I'm not really familliar with how vencord deals with css so it might be just my inner web designer talking
.element {
display: -webkit-box; /* Fallback for older browsers that support only old flexbox syntax */
display: -ms-flexbox; /* Fallback for IE 10 that supports only the prefixed version of the new syntax */
display: flex; /* Newer, preferred method */
}
here's a fallback example
I'm 99% syre you're safe to ignore that haha
yes, this should definitely be part of vesktop and not a plugin
either via electron's global shortcut api, or via ihook
the former does not support things like mouse side buttons and has no way to implement PTT, the latter would require a native module
Yeah it's just super basic stuff like
"what it do"
"what settings do"
"what it look like"
Yeah :D
[Vencord/venmic] New tag created: v2.1.0
[Vencord/venmic] New tag created: v2.1.1
Fixed in venmic v2.1.1.
The log file will now be placed in either:
- $XDG_STATE_HOME
- $HOME/.local/state (In case state home was not set)
- A temporary directory
The logging is now also off by default and will only be enable when VENMIC_ENABLE_LOG is set
Will submit a PR to update here once this bad boy finishes
yes, this should definitely be part of vesktop and not a plugin
either via electron's global shortcut api, or via iohook
the former does not support things like mouse side buttons and has no way to implement PTT, the latter would require a native module
Correct me if I'm wrong but as the latter uses libuiohook I think that it will not support wayland.
I think the electron shortcut API is the right way to go as it is probably the ...
hi how easy is it to compile and manually install vencord urself
easy
yes it seems x11 only, but
- is it even possible for backgrounded apps to read key strokes in wayland? I thought this was one of the big arguments for wayland
- the electron api doesn't support detecting key up/down, so PTT isn't possible
@topaz thistle
xdg-dekstops approach offers a portable way for global hotkeys
sounds very ty
Hm, does official discord support Wayland?
Also discord-screenaudio uses the KDE shortcut API which is an implementation of the xdg-deaktop protocol mentioned earlier
is there not place to sugggest plugins anymore?
what ideas u got
You could use a DBus library to manually use the xdg desktop approach as well
i know about that plugin that makes the server list wider and opens them vertically alongside the whole other bar
who approves these
maintainers
is there like a team of people who just can approve them
how do some newer PRs get get approved before oldder ones
whats the process behind that
only first time contributors need approval
i see...
whats the typical approval rate
time for iohook fork
I will probably write my own library for it for soundux
hmm, why not base it on iohook instead? it already supports all major platforms except wayland
This can be done with css
you'd just need to rewrite / extend its linux part
should i expect to wait up to 2 weeks for an approval or like hows the timing
depends on a lot of factors
Because I don't want to take it's approach
Too much to fork it
which factors are relevant rn and which factors are in my control
I would majorly change the windows implementation and go the desktop portal approach for Linux
i think discord also uses iohook
Also modern C++
well patience is one
so if we were to use iohook we could probably very easily hijack discords keybind renderer code
Hm if discord actually uses it that would probably be nice but also make a lot of Wayland users mad xd
turns out findByProps was causing all the lag
its called for each badge on each message π
just to get the className for the badge component
it's literally checking all exports of thousands of modules
i froze for like 7 seconds when u sent that message
good plugin idk why they are taking so long to approve it
i wonder why
i fixed it by only retrieving the class name once

You can use this smaller license. Edited to include you instead of exhq.
/*
* Vencord, a Discord client mod
* Copyright (c) 2023 Vendicated, camila314, and contributors
* SPDX-License-Identifier: GPL-3.0-or-later
*/
why the fuck
was just a prototype
what other badge sources are their?
i can think of vendetta, aliucord, and reviewdb
vd has no badges
what are all the badges i see on profiles on vendetta from then?
idk tbh
pls?
ooh ok
This fucker is not using the cache anymore π’
help@me.thistakessofuckinglong
support@vencord.dev
Tell #π₯-vencord-support-π₯ to write emails instead
Might be better to use a setting? I don't believe DataStore is synced by Cloud
Isn't that just what TextReplace uses? Is there a good example plugin using the settings API I can look at
[Vencord/venmic] tag deleted: v2.1.1
i searched https:// in the vendetta github repo
couldnt find anything related to badges so it has to be a plugin doing it
Would it not be a better approach to modify the message object directly before it's rendered and include your user ID in the mentions array if it matches?
or they hardcoded them
also searched badge and found nothing tho so prob not
[Vencord/venmic] New tag created: v2.1.1
What benefits could that give over the current method?
Currently when something triggers the match the message hasn't been highlighted in chat which at least for me defeats the point slightly.
Got it, will try that when I get home
tf is goose mod
Bumps venmic to v2.1.1.
This prevents venmic from creating a config by default and also changes the directory the config is saved in.
Fixes #234
ryan i developed vendetta i know there's no badges
i thought they came from vendetta itself but i think they actually come from @dusk hill's badge plugin
yeah
wuts this bout
im using all the badge sources in ur plugin for my show badges in chat plugin
also tf is goose mod
Bad Patches
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=
Bad Starts
None
Discord Errors
None
those shc broken patches can wait to get fixed
so lazy xd
Bad Patches
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=
Bad Starts
None
Discord Errors
None
Fixes the left trackpad scrolling mode (it was on circular, changed it to vertical so it works properly)
94819e6 Update steamdeck controller layout (#236) - AAGaming00
replace: "$& $self.contains($2) ||"
why do this marked as resolved but still using \w+
missclick ig, fixed now.
use UploadHandler from webpack/common
not home lol
yea im just messing
Hey, sorry if this is the wrong place, but because the Discord Blur extension got broken, I was thinking of asking for a version of BlurNSFW extension that works on all images and media. Should I make a GitHub issue for that request?
Question. Does vencord work on MaOS Sonoma (the new major update to MacOS)
Before someone bashes me for having a MacBook (screw off), I donβt have the money and resources to build my own PC as of yet due to sudden financial turmoil.
vns
Thank you. Now delete yourself /jk
Added the message highlighting feature
I'd like an option to disable this as well. For the past few weeks I was so confused why the volume of my input device kept decreasing. Is this some kind of feature of Vesktop?
sounds like discord



