#πΎ-core-development
1 messages Β· Page 137 of 1
but ik discord sends the global voice channel time when you join it on mobile
i know, i just didn't want to make my own extension (firefox is no longer supported as an extension π¦ )
hm see if you can find the timeout stuff
I'm pretty sure it sends it to desktop but doesnt use it
the 'bandwidth patrol' system
userscript manager?
cause itd be used there
tampermonkey
hmm let me see
does ctrl alt O hard crash anyone else discord
I think they broke their own devtools
ugh

is there no way to disable/enable a settings component based on the state of a boolean setting component without requiring the user to save settings and reopen the settings modal?
in case anyone else asks
brueuuhoioguhh
actually that doesnt fix it for me but maybe others
did exactly what they did and i still have to save and reopen
customrpc sets disable to the value from settings.store, which is only updated when settings are saved
also the onchange on the settings components only fires when settings are saved
cuz they are not the actual onchanges of the react components
Hm
it's not a linter.
u know what i mean tho
stuff like csslint, stylelint
which are implemented into editors
no correlation
no???
???
wtf are you yapping about
Highlighter !== linter
monaco doesnt just highlight tho
linters have nothing to do with syntax. they catch programmatic (logic) errors and things that are considered poor style
the monaco css editor has a language server that checks syntax, highlights syntax, and has auto complete. it supports new css syntax
they have no correlation.
and stylelint and csslint call themselves linters
you're making no sense just stop talking

is there a way to allow numbers with fractional digits to be typed in OptionType.NUMBER?
the entire fate of vencord rests in the hands of pr #2002
it tries to convert what i input to a bigint, resulting in a syntax error
that is why i cannot input numbers with fractional digits
maybe something like this could be used to allow inputting numbers with fractional digits
const n = parseFloat(newValue);
if (!isNaN(n) && BigInt(n) !== BigInt(newValue))
This is a plugin that was made for BetterDiscord to allow auto scrolling on non-Windows OSs (e.g. GNU/Linux), modified by me to work with Vencord. It was originally licensed with MIT license, which is compatible with GNU. The original source code can be found here. I have updated the code to use APIs provided by Vencord, transformed it from JavaScript to TypeScript and made sure it's type-safe and follows the project's code style rules.
this is a native chromium feature that can be enabled in electron with a single command line flag
456 lines???
and why are they hosting the svgs?
most unoptimized svgs ever too
this what happens when u export raw from inkscape
this is a native chromium feature that can be enabled in electron with a single command line flag
I know, but the problem is that the feature is quite incomplete, as it doesn't stop event propagation and therefore still pastes the clipboard into the message bar as GNU/Linux does by default, which is extremely annoying and makes the flag kinda pointless. I did some real work on this and so did the original creators of course, I've made it to work well with Vencord as quality is my top pri...
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
hm having an svg looks nicer imo (as opposed to a cursor)
not what i meant tho
they dont have to host it somewhere
its just xml
i present to you
also why is it themed by default?
qhar
red
nice pink colour
what's not to like
no reason you'd want to change it!!
lol firefox's graphic is the best imo
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

you can really easily stop the middle click pasting behaviour, either by adding a global keydown listener or by disabling it on a system level
but ye
they literally just copy and pasted the bd plugin into the vencord plugin template btw
"made sure it's type-safe and follows the project's code style rules" "quality is my top priority"
me when i lie
you can really easily stop the middle click pasting behaviour, either by adding a global keydown listener or by disabling it on a system level
Alright you got me, close this PR if you wish. You know more than me about this, I just found this plugin and wanted it to work with Vencord, but sure if it doesn't meet your standards I understand that what I did was a waste of time probably.
hello, i'm sorry about this PR, if you don't want it sure just close, what I should've said was minimal code style rules, ik the code is terrible, but I didn't make the original and made this port kinda quick ik ik. just wanted to apologize for this, if you accepted it as long as i've made real refinement to actually fit into the project's codebase I can do it, otherwise it can stay as third party plugin ig
i'm not a professional developer, just a student so i'm still learning this sort of stuff, but wanted to do something somewhat useful as you can't just mix discord client mods and didn't find an alternative way to make this work in linux, sorry again guys i feel real embarrassed
nah dont worry about it
alright
im just shocked by what the original author did
i mean yea even i noticed that the quality was questionable but still wanted to do something to make it at least lil better, i also noticed you considered the svg setup quite bad, yea embedding an optimised version directly into the plugin's code sounds much better, I didn't quite think of that really
didn't even know that existed
i dont think the original bd plugin does that either
ok they do but they put it on a new position absolute element with some crazy high z index instead of just doing document.documentElement.style.cursor =
yea just wanted to ask if that could be used in such way
yea its basically used as fixed position image while the actual cursor changes depending on the position relative to that image
it seems they just blatantly ignored my pr
this will drastically affect the popularity of vencord, it will fall without /slap
you'll see
you'll all see!
you'll all fucking see the downfall for this one little mistake
nuh uh
welcome to vencord
@Wikinger8 this pull request now lives in #third-party-plugins of the vencord discord. Check its thread for the latest code updates.
#1032200195582197831 message
what bad idea did you have this time?
/slap
dont worry, i already have another pr ready
yall what was that css snippet in which where if you hovered your mouse over the settings button all the other button like the mute and deafen button would come out of it
if that makes sense
and this time i KNOW it will be merged
You can use our docker container used by venmic (here) to build the whole appimage in a docker container and then deploy that build to your deck
probably because you won't stop talking about it π
I've been having the problem shown in the video above, basically regardless of which client I use for discord.
The theory I have is that the video isn't being properly compressed. When someone screenshares from Windows and there's a lot of movement then the video quickly tends to become heavily compressed. Looking like 144p or even worse in darker footage. Meanwhile; even though the framerate sucks, the frames themselves seem to be of much higher quality regardless of movement on Linux....
I've been having the problem shown in the video above, basically regardless of which client I use for discord.
The theory I have is that the video isn't being properly compressed. When someone screenshares from Windows and there's a lot of movement then the video quickly tends to become heavily compressed. Looking like 144p or even worse in darker footage. Meanwhile; even though the framerate sucks, the frames themselves seem to be of much higher quality regardless of movement on L...
Is there a way for hidden channels to also show hidden threads
Or does the discord api not return those
nope
probably so things go smooth when you are given a role with extra perms
threads are classed as channel content thankfully
yeah its a bit funny when people dont realise that channel topics, names, and permissions are public info
the client just hides the stuff it doesnt have permission to access but sunnie is right, its so that it doesnt have to reload the entire list when your permissions update
i love to see #uninstall-better-discord
hey!!
is there a guide on how to contribute to vencord? or like any rules/things to keep in mind before a pull request is made?
thank you!!
there's no rules set in stone
i think it could be fixed with text-replace, yeah, but i just want to add x.com to the clear urls plugin
#vencord-dev >:(
pls reopen #1164494686472380546
I've successfully finished a Vesktop Flatpak
aren't there four by now
thanks! 
are there docs for the webpack binds? Is an input modal possible?
screenshot please
please explain and show what you changed
@pine topaz all you did was change the svg π
well, someone else got contributor for it
This is what it looks like now, don't really know how to describe it, but there's now a little space/border between the strikethrough and the icon itself.
i smell unoptimized png
same paths
but it still looks good, alright
yes, I'm talking about adding yourself to author though
might as well add the other person instead lol
yeah i should do that lmao
RuukuLada
idk about adding urself to authors for a change like that
i wouldnt
aight
otherwise many plugin would have dozens of authors and every single plugin would have me as author
it would be quite hard to find the actual creator of the plugin
it's the first person in the array

it's funny when the plugin is is completely remade from scratch but the original author left in
like fakenitro xd
SHC too lol
i mean, they are the reason that plugin exists, so they do deserve a place there
shc my beloved
all plugins should have you in authors since u made the plugin api
with its 50 patches
yes
alright, author array reverted
all plugins should have discord as author bc everhthing is just interfacing w discord
so true
might as well also add Charles Babbage, wouldnt be possible without him
maybe even Alan Turing
im optimizing the svg rn
okay yeah I do be stupid after all. I got no idea how to create input modals 
nice
silent typing uses var(--red-500)
and you use var(--red-400) (same as var(--status-danger))
who is wrong
im pretty sure i kept the strikethrough itself the same
look at one of the like 10 other plugins that do that
ok i checked the discord mute channel icon and var(--status-danger) is correct
interesting
@pine topaz this is what i got:
<svg width="24" height="24" viewBox="0 0 24 24">
<path fill="currentColor" d="M18 10.7101C15.1085 9.84957 13 7.17102 13 4C13 3.69264 13.0198 3.3899 13.0582 3.093C12.7147 3.03189 12.3611 3 12 3C8.686 3 6 5.686 6 9V14C6 15.657 4.656 17 3 17V18H21V17C19.344 17 18 15.657 18 14V10.7101ZM8.55493 19C9.24793 20.19 10.5239 21 11.9999 21C13.4759 21 14.7519 20.19 15.4449 19H8.55493ZM18.2624 5.50209L21 2.5V1H16.0349V2.49791H18.476L16 5.61088V7H21V5.50209H18.2624Z" />
{!enabled && <path fill="var(--status-danger)" d="M23 2.27 21.73 1 1 21.73 2.27 23 23 2.27Z" />}
</svg>
the mask did nothing so i deleted it
it was just a square filling the entire viewbox
no it definitely does something
because when i look at it in the browser, the gap is no longer there
u right
what are you using to optimize the svg
manually optimizing plus svgo to optimize the paths
this is what it looks like no changes made
didnt see the mask cuz chrome auto dark mode flag
odd, the Z is further down on mine
all plugins should have me as author cuz iβm so awesome
quite strange
maybe its like that to show that its the mute button
and not just some bell
taco bell button
where did the Z go
so apparently ryan died
im manually editing the paths
discords bell is split into 2 parts
doesnt use a mask
im gonna recreate the mask using the coordinates in the paths of the 2 bell parts
ah ok
@austere talon is it okay to submit a vesktop flatpak to flathub under my ID (com.github.astenix.vesktop)? (i'll label it as unofficial)
||(and yes, i pinged the owner, preparing to die)||
copied over what twitter.com had, so this should work for x.com too
honestly agreed and yet π
it's users are not all bad
awesomekling uses it... but he calls it X 
if you don't deadname twitter you are transphobic
if you use twitter you are transphobic
Is there some quickstart guide for creating vencord plugins?
I dont plan on doing anything massive, and if I ever actually make something more than just me messing around, itll probably only ever be relevant to me
no, we want to make an official one
but you can help out with that
ive just been busy lately and now super sick the past week
okay, well, then https://github.com/Astenix/flathub/tree/new-pr
it's pretty much finished
notifications work, tray works, supports both amd64 and arm64
it's CC0 so use it if you want lol
cool good work!
:3
how about rich presence? venmic?
oh fu- rich presence
i know the former needs workarounds to work with flatpak
you can likely just yoink it from the official discord flatpak or maybe armcord
i think there is a certain path for it
yeah
i hate the fact that you need to allow all devices to allow access to mic
wait no
what
all device access is off and i can still talk in vcs just fine
i wonder what permission venmic would need
what even is venmic
likely some portal stuff
we need raw pipewire access
probably
just see if it works
play audio in some app, then start screensharing and try to pick your app as audio source
ping edit doesn't ping btw
yeah, i saw that in other apps
like check #π€-bot-commands
can someone join #1028117287716261939 and check if audio is working
the answer is no
:D
oh i was muted
how can i patch flux before discord receives it
right now i receive the event after discord
How does it not share vesktops audio
because you choose the app
well and when sharing the whole screen it probably just merges the sound of all apps except vencord
patches
No because it is system wide
People hear my minecraft when I'm sharing my browser
it can be system wide or not system wide
It's always system wide excluding discord for me
Yes, to get the sound
it works
i think
it gets some audio?
No idea but we just need access to the running nodes / creating nodes I don't think there are granular permissions so that should probably suffice?
there aren't granular permissions for that
you can still remove it with flatseal/flatpak cli if you really want to harden vesktop
@pine topaz try this:
<svg width="24" height="24" viewBox="0 0 24 24">
<path fill="currentColor" mask="url(#_)" d="M18 10.7101C15.1085 9.84957 13 7.17102 13 4c0-.30736.0198-.6101.0582-.907C12.7147 3.03189 12.3611 3 12 3 8.686 3 6 5.686 6 9v5c0 1.657-1.344 3-3 3v1h18v-1c-1.656 0-3-1.343-3-3v-3.2899ZM8.55493 19c.693 1.19 1.96897 2 3.44497 2s2.752-.81 3.445-2H8.55493ZM18.2624 5.50209 21 2.5V1h-4.9651v1.49791h2.4411L16 5.61088V7h5V5.50209h-2.7376Z" />
{!enabled && <>
<mask id="_">
<path fill="#fff" d="M0 0h24v24H0Z" />
<path stroke="#000" stroke-width="5.99068" d="M0 24 24 0" />
</mask>
<path fill="var(--status-danger)" d="m21.178 1.70703 1.414 1.414L4.12103 21.593l-1.414-1.415L21.178 1.70703Z" />
</>}
</svg>
now reopened because I have been given hope
by excluding itself
hmm that sounds a bit malicious
what does it do
automatically answer every incoming call
..why
I used to use it when my friends would call me
I would insantly pick up and it would scare the crap out of them
Always receive pings when someone replies to your messages
lol
@soft ginkgo make sure to also expose pulseaudio
I check the pulse server name to check if it's actually running under pipewire-pulse
well it has the pulseaudio permission
π
looks good
i have changed it to yours
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
None
None
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?=!1===\i.\i\.hasRelevantUnread\(this\.record\))/
ShowHiddenChannels (had no effect):
ID: 493334
Match: /(?<=getChannel\(\i\);return null!=(\i))(?=.{0,150}?hasRelevantUnread\(\i\))/
ShowHiddenChannels (had no effect):
ID: 120817
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\i\.record)\))/
ShowHiddenChannels (had no effect):
ID: 268760
Match: /(?<=if\(null==(\i))(?=.{0,160}?hasRelevantUnread\(\i\))/g
ShowHiddenChannels (had no effect):
ID: 283848
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\i)\))/
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
TypingIndicator (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
None
None
i ran on the dev branch
time to see if decor got fucked (probably not)
π’
o
probably a dumb question (and answered by a plugin that i just cant find), but does anyone know exactly how the client determines the role color and where i can patch that
have u tried searching something like βroleColorβ
what exactly are u trying to do
confused on what you mean, but if you mean for a user's nick or whatever, it's the highest colored role (i.e. non-default) that a user has - it does exist as a prop too on things like messages and stuff
guild members will have it as a colorString prop
**index.tsx: **Lines 99-102
getColor(userId: string, { channelId, guildId }: { channelId?: string; guildId?: string; }) {
if (!(guildId ??= ChannelStore.getChannel(channelId!)?.guild_id)) return null;
return GuildMemberStore.getMember(guildId, userId)?.colorString ?? null;
},
is hiddenchannels a bit funky rn? i'm seeing unreads for hidden channels
yes it is
anybody know how to reverse engineer react components on any website
IgnoreActivities (had no effect):
ID: 52028
Match: /LISTENING.+?}\),(?<=(\i)\.push.+?)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?=!1===\i.\i\.hasRelevantUnread\(this\.record\))/
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)\..+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 493334
Match: /(?<=getChannel\(\i\);return null!=(\i))(?=.{0,150}?hasRelevantUnread\(\i\))/
ShowHiddenChannels (had no effect):
ID: 120817
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\i\.record)\))/
ShowHiddenChannels (had no effect):
ID: 268760
Match: /(?<=if\(null==(\i))(?=.{0,160}?hasRelevantUnread\(\i\))/g
ShowHiddenChannels (had no effect):
ID: 283848
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\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")
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
TypingIndicator (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
None
None
is this something going to be fixed
IgnoreActivities (had no effect):
ID: 52028
Match: /LISTENING.+?}\),(?<=(\i)\.push.+?)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?=!1===\i.\i\.hasRelevantUnread\(this\.record\))/
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)\..+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 493334
Match: /(?<=getChannel\(\i\);return null!=(\i))(?=.{0,150}?hasRelevantUnread\(\i\))/
ShowHiddenChannels (had no effect):
ID: 120817
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\i\.record)\))/
ShowHiddenChannels (had no effect):
ID: 268760
Match: /(?<=if\(null==(\i))(?=.{0,160}?hasRelevantUnread\(\i\))/g
ShowHiddenChannels (had no effect):
ID: 283848
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\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")
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
TypingIndicator (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
None
None
be good i think idk
bruh
im being fr dude
like i only know a little of how but
im still trying to figure out just cant
and wrong channel
sorry about wrong channel but yeah i find react developer tools really useful but still cant figure out how to apply it in reverse engineering
Click the <> when you are selecting an element
Then it shows you the code for it
Not much more to it
e
import style from "./styles.css?managed";
and use enableStyle/disableStyle from api/Styles in start() stop() so css only applied when plugin is on (since you use discord class name now)
what is this grammar
do you know why their bundler does this @austere talon (the (0,...) thing
!(0, N.getHasImportantUnread)(this.record))
i explained once
import { getHasImportantUnread } from "thing"
N.getHasImportantUnread() would have the wrong this context
(0, N.getHasImportantUnread) returns getHasImportantUnread as a value
so you lose the this
I see
var getHasImportantUnread = n(17281).getHasImportantUnread;
would be wrong
because exports can be changed at any time
ye
Why var and not let/const here btw
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
None
None
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
None
None
@austere talon do you think you can just git push dev main?
match: /(\i)=((\i)===\i\.ExpressionPickerViewType\.STICKER)/,
match: /(children:\(0,\i\.jsx\)\()(\i\.\i)(,{innerClassName.{10,30}\.stickerButton)/,
match: /(let \i=)(\i\.useCallback\(\(\)=>\{\(0,\i\.toggleExpressionPicker\)\(\i\.ExpressionPickerViewType\.STICKER,.*?);/,
match: /,\(null===\(\i=\i\.stickers\)\|\|void 0.*?(\i)\.push\((\(0,\i\.jsx\))\((.+?),{disabled:\i,type:(\i)},"sticker"\)\)/,
i am too
idk how to either
im not good like that
but others are
anyway
another day goes by without keyword notify in official vencord.,,. very sad moment for all
another day added to the time its gonna take for the pr to be merged
whar
tl;dr plugin prs take long to be merged

Diff in patch helper overflows the window when the line is too long
damn 1 pr off from my birth year
forward 
wack..
i love testing my patch with dev companion, not rloading cord and wondering why the patch doesn't work
is it considered bad practice to use this.argument[0] in patches to get props in react components defined using function
horror
shur up spoko
You don't need this
just arguments works
I do it in a few places afaik it's fine
i like being explicit
thanks
since discord switched from webpack to rspack vencord should totally rename Vencord.Wepack to Vencord.RSPack 
Agreed
Vencord.Bundles
Vencord.Wepack real
Vencord.Esbuild
Variable name is still called webpackChunk_discordapp so nop
i am well aware of that
yes it's still a webpack impl
Vencord.CMake
when 
I'm not sure if it is required in the current version.
In the previous version, they made a space/change line here (their minifier did this? dunno)
Vencord.Rustc when
Is there a port of this? If not, please can someone develop?
Guessing that you can check if server id that you are on is in list and apply CSS url
Or multiple CSS urls
Could add a new tab in themes (In vencord settings section)
reproduced with Portapps Discord (stable).
oh hey that's me
should this be closed out with a reference to vesktop?
perish
i'm trying
because their folder structure is different than official discord
feel free to open a pr to add support for it, or just use Vesktop portable
For now I'm using Vesktop and recommending that, but def will look into creating a PR, however given the faster speed of Vesktop there's not much point of creating a PR for it, better issues to focus on imo lol.
Clear the Message Log History for a whole channel/user/gdm with one click.
Updated version of #1333, with message edits now rendering - Not sure why I didn't do this in the first place lol
i'm a noob on git, would creating a list of working themes be a thing for the wiki?
true, but just testing the 100 most popular ones on BD may be possible
i mean if it's not worth it, it's not worth it, but it seems simple enough to me to warrant some testing
i can probs just use a spreasheet for the moment if I have the time
me
I didnt do now though
nickname checks out
Is there a port?
tip: dont request devs to do something for you
I was asking
If not, please can someone develop?
this sounds like asking for someone to make it, not asking for help
U make the best plugins btw
@patent minnow
https://gist.github.com/sunnniee/28bd595f8c07992f6d03289911289ba8
if you want to make it yourself
I don't think the classicclienttheme plugin works anymore and I am using the latest version
I literally just merged the official plugin on the dev version lol
no longer third party
check the thread for the latest code, or wait for vencord/dev to be merged to vencord/main
lmao
also u force pushing so much somehow fixed my broken commit lol https://github.com/Vendicated/Vencord/pull/1901
Just use github desktop
I force push cuz ven makes bump commits on main and we end up making new commits on dev before pulling the bump comit
so idk if I can fix that without force push
dw that's what i did on that one occasion
Did I get the brain rot role?
anyway does that pr look good
Yay
Github desktop will do that to you :p
Thororen told me to use it
github desktop is malware
No wonder I keep on getting the blue screen of death 
@austere talon I'm getting scammed by github
how
π€
my estimated next payout is tomorrow
I had one last month but they didnt pay??

@austere talon should I lazy component here instead https://github.com/Vendicated/Vencord/commit/6face7f8ef857edcb2ff12cf4b9701323a869db3#diff-4e674bfc2a79162de5b1b648c2f0e7890fd32cbd85f00b940995f6dd703519c6R18
I was thinking about that in the shower π
yes you should
and use a plain find
otherwise it will break class components
because lazy proxies with a function, so react will call it as a function and then the proxy tries to call the class as function
maybe we could just have a dedicated findComponentLazy(filter) that does this for u
but mmm
yeye I know I need to use the normal one instead of lazy
how would i translate discord to another language? idk if i can do this using vencord
i have asked this before but i still feel confused
you don't even need vencord
if you mean translating vencord we don't have a system for that yet
and we probably never will sadly
nono, the language i am translating it to is not supported by discord, as in i want to translate discord to this language
i am not saying change the language i mean literally doing the translation myself because that language is not on discord
oh then no
a
has been done before
I tried porting the translations to vencord (they died after swc), and someone else was also trying but both ended up breaking
probably from porky cord
they died?
or the plugin stopped working?
yeah the plugins stopped working
should be easier now i think after rspack but im so lazy
we have the data but i don't really know how to code π so i guess goodluck
"This data is to be used by other plugins which provide the actual code for injecting the translated strings into Discordβs code."
yeah the author split the data for us to use in vencord actually
i imagine a big chunk of that is outdated though
i hope not π
you have to reverse engineer how discord loads a language data and chooses to use it
and patch the language list on the settings and add a button for your language (but this is optional)
all you would really need to do is inject the strings if you really don't care about like, the whole "choose language" type thing and just having it being a plugin instead
unless if i'm wrong
I don't know exactly what you have to do
you gotta reverse engineer how it works lol
when i was doing that they we're basically just a map of lazy loaded modules
but I suppose there may be a single place you can patch and try to get a message in your language and return it instead of the original
but abstracted away by three other maps or something so it was annoying to patch
actually, they seemed to be working on something already
but i don't think it got done
"import definePlugin from "../utils/types";
export default definePlugin({
name: "Translations",
patches: [
// list of locales
{
find: '"name":"English, US"',
replacement: {
match: "')",
replace: "').concat(Vencord.Plugins.plugins.Translations.metadata())",
},"
this is part of the code that's in their server
"Vencord"
because the way i18n works in discord is there is a huge Messages obj which they get the strings from, and that object gets the messages from the language selected
so if you can find where it uses the selected language and gets the message you can instead return the one in the language you want to add
that's a janky way but should work
could someone make an attachment insertion plugin?
meaning what
i still dont rlly get what u mean
edit attachments into previously sent messages
it is
very api abusive
if you already sent a message, there's no way to insert an image or a file inside
you need to resend the message for example
so a plugin allowing you to do it
i would totally make that
nice, would be very useful for a lot of people including me
well... i heard an anecdote of receiving an email from discord after sending embeds as a regular user... was that even ever possible
youd need to add some upload button to this ui and then optimally have upload progress indicator and such
yes
but thats entirely different tbh
IgnoreActivities (had no effect):
ID: 52028
Match: /LISTENING.+?}\),(?<=(\i)\.push.+?)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?=!1===\i.\i\.hasRelevantUnread\(this\.record\))/
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)\..+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 493334
Match: /(?<=getChannel\(\i\);return null!=(\i))(?=.{0,150}?hasRelevantUnread\(\i\))/
ShowHiddenChannels (had no effect):
ID: 120817
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\i\.record)\))/
ShowHiddenChannels (had no effect):
ID: 268760
Match: /(?<=if\(null==(\i))(?=.{0,160}?hasRelevantUnread\(\i\))/g
ShowHiddenChannels (had no effect):
ID: 283848
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\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")
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
TypingIndicator (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
None
None
yeah, you could use that for scams ig
least convoluted replugged plugin https://github.com/FedeIlLeone/EditMessageAttachments/tree/main/src

it's java but rewritten in typescript
IgnoreActivities (had no effect):
ID: 52028
Match: /LISTENING.+?}\),(?<=(\i)\.push.+?)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?=!1===\i.\i\.hasRelevantUnread\(this\.record\))/
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)\..+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 493334
Match: /(?<=getChannel\(\i\);return null!=(\i))(?=.{0,150}?hasRelevantUnread\(\i\))/
ShowHiddenChannels (had no effect):
ID: 120817
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\i\.record)\))/
ShowHiddenChannels (had no effect):
ID: 268760
Match: /(?<=if\(null==(\i))(?=.{0,160}?hasRelevantUnread\(\i\))/g
ShowHiddenChannels (had no effect):
ID: 283848
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\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")
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
TypingIndicator (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
None
None
does it still work?
ah well i dunno about that
will you submit it to vencord built-in plugins directly or you'll put it in #1032200195582197831 ?
submit it
woah clienttheme is pretty cool
@dapper crest good job!!
and thanks for reviewing it nookies
maybe it would be good to add a thing in the appearance tab
so its more intuitive
like here right of the idk whatever that button is
also the plugin is missing a README
please what is this π
TIL
lol
any of yall know why my vesktop install is using a different version of a plugin from the one in my local vencord clone from github? i have the option set in vesktop settings
did u remember to rebuild
thats a- fair thing to question but it was definitely working at some point..
i'll give it a shot
well shit- thats nice to have back LMFAO
Is there a custom discord notfications plugin?
since when do plugins have readmes?
what on earth
like months ago
they do! they are displayed on our website
where can I write one?
the git hash link in updater is broken
a visualizer of sorts could be nice
note the .git in your link
before i try to make changes have textreplace changes been accepted yet i forgot that i wanted to make the "if contains" area function with regex
do you mean in app?
i mean like
heres the README i added for client theme https://github.com/Vendicated/Vencord/blob/074ebae3343170c19ca128ed76b0732375ea36bf/src/plugins/clientTheme/README.md
idk where but a visualization of what your readme will look like on the site before it's merged
i just took your screenshot and video from your pr
it'll look just the same as on github O.O
then why is it clickable? are there apps that take a .git protocol?
kindaaa
its because you cloned it as https://[...].git
ah
dumb ve
oh it has definitely seen action but its still not merged thats.. good ? i guess ?
that is strange
it shouldnt happen
note how we remove trailing .git
can you run this in ur console @dapper crest
await VencordNative.updater.getRepo()
then thats ur issue
with the leading dash it breaks, but that would make sense
nothing else about git broke when I did it earlier
why would you have a trailing dash tho thats insane
how is leading slash with .git even real
i think they mean trailing
like index.html/
like seen in their screenshot
copy pasting commands from stack overflow and editing them
u gotta have put that manually
i assume it was an accident
I don't understand git too well beyond commits and merges
well i could fix it easily but i also kinda dont see the point because thats an insane edge case
fair
i remember seeing a website where index.php was a folder
I couldn't find where to change origin in there
https://github.com/Vendicated/Vencord/ would be plausible, but you gotta have manually put a / to achieve https://github.com/Vendicated/Vencord.git/

true..
I may have just pressed left and added .git instead of deleting and adding .git
holy shit someone already did it im blessed
SHITHUB IS INSANE
WHY DO THEY ALLOW THAT
IUAuji9ofeouji9gejiefgjiojioef
LMAO
TROLLED
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.
IT WORKS
this is so fire
it might seem crazy what im about to say
https://github.com/Vendicated/Vencord.git.git.git.git.git.git.git.git.git.git
HOW
i cant wait until i can go back to using regular build
Don't look, ugly old site
F53's Home Page
doesnt work π
like genuine question
i win
u talking to me or
yes
ive been using dev install since vencord was first created
theres like no difference mostly
keeping my branch in sync and having to cd to the directory and pnpm inject so lame
i feel like i have to inject every other day on canary
anyway ill continue reviewing soon
pleaseee
i got the rona rn so ive not been able to do any code stuff
uh huh
dont use canary buddy...
or get on vesktopppp
i like canary i fear
add screencapturekit suppor
like not to rush you but if you could get to it before december that's all i ask
i've commissioned artists for a winter preset so it's like
maybe i will do
i wonder how hellish it is
is there a way I could make clientTheme apply to the vesktop launch shiggy
i will add swift to vesktop soon
yep works
does curve have a mac
big doubt lol
sad
@topaz thistle do u have a mac
it did not work until nookies made it apply earlier with a patch
(not threat but like threat joke)
does json allow comments or nah
is it just because start() runs too late?
no its horrifying
we could just add a property to definePluginSettings like
yeah
gonna cry RN then
the module I'm patching is the webpack entry point
startAt: StartAt.DocumentStart,
start() {
document.addEventListener("DOMContentLoaded", listener);
}
(its fine i just wanted to tidy my exported text replace rules for if i have to modify them later but it shouldddd be self documenting)
what do you think?
seems good
cause tbh this isnt the first time ive run into that issue
that way the plugin wouldnt even need a restart
I'm gonna make this rn
cool
ill make this
I can do this too
i think we just need two types:
- instantly
- webpack ready (current, will be default)
i think i already did that
second and probably last json question can it handle .. trailing commas? (idk what to call it- a comma at the end of a list)
haha yes i realised when i pulled stuff and went to do it lol
when is someone going to make profiledb with video pfp support
i need this as my pfp
bruh who made this goddamn language
maybe domcontentloaded too
so we can avoid adding a lot of listeners
also for real client themes is so fire lmao
finally colored discord themes that dont slow your client
true true
yeah good idea!!
err css slows ur client??
confused
yes very lol
some discord themes have like 10k lines
a lot of themes make discord super laggy
it makes your client soooooo slow
oh ok
shrimply add if (Settings.EpicPlugin.enabled) at top-level
mine is
probably fine
π
I have done that
YEAH THATS WHAT U GOTTA DO CURRENTLY
ITS SO BAD HAHHAHA
actually you cant even use settings on top level safely
so it'd have to be Settings.EpicPlugin?.enabled
yeah yours is fine
nookies has been there and bricked vencord
thats effectively what ClientTheme does

π
i need to redo my theme to match my code editor theme
yea
OMG
why is the first var so indented
ig the more idiomatic way would be to use !important
the css is string interpolated so makes sense that indentation is gonna be goofy
:root:root:root:root
Yup
o ok
**index.tsx: **Lines 138-151
// Generate offsets
const lightnessOffsets = Object.entries(variableLightness)
.map(([key, lightness]) => {
const lightnessOffset = lightness - variableLightness["--primary-600-hsl"];
const plusOrMinus = lightnessOffset >= 0 ? "+" : "-";
return `${key}: var(--theme-h) var(--theme-s) calc(var(--theme-l) ${plusOrMinus} ${Math.abs(lightnessOffset).toFixed(2)}%);`;
})
.join("\n");
const style = document.createElement("style");
style.setAttribute("id", "clientThemeOffsets");
style.textContent = `:root:root {
${lightnessOffsets}
}`;
yeah
why do people use :root in css like who is out there styling xml
yeah wack
its supposed to be agnostic for html/xml
To overwrite discords vars that are also in root
thats why i often write ` blocks like this:
function thing() {
const thing = `
:root:root {
${lightnessOffsets}
}
`.trim();
}
huh
why no codeblock
banger formatting
DISCORD
i love you, dbus-chan~!
Also color-scheme in :root behaves better than color scheme in html
this should be fine right
maybe
that reads way better
god i need to make a plugin that makes images in chat load the full resolution one
all my component finds seem like findByCodeLazy so idk
because come on wtf is this
i lied
even this sucks
they don't by default?
if you open in browser it looks so much better
no
i absolutely hate the inline hints, very much not fine
LOL
someone should write a script to determine if a find is used enough to be common
i think its fine to just remove attempts
and use the default
if people want more control over attempts they should do it manually
yeah
we could add this to vencord in dev builds
it will print warnings if the same module is searched multiple times
but it would only work if theyre actually all executed
yeah
we can drop the nested search
which will improve performance too
but its a lot of work
cause then we also need to check (and update) all webpack searches
we should just delete the file and write from scratch
nvm
you are right
though we could improve some jsdocs lol
should I make a function for searching this
the code of .type
well I did

malware
i swear i have something that needs a find like this
honestly we could merge this into findComponent
wdym?
like
it will automatically check .type for you
it will find both memos and normal components
i have this shit
function findComponent(...strings: string[]) {
const filter = filters.byCode(...strings);
return find(m => {
if (filter(m)) return true;
if (!m.$$typeof) return false;
if (m.type) return filter(m.type); // memos
if (m.render) return filter(m.render); // forwardRefs
return false;
})
}
smth like this
wtf are forwardRefs
oh
okay that's smart
because it happened multiple times in the past that component finds failed because something was made a memo or made no longer a memo
so it'd be more robust to have one function that handles all
wait vee i was running into a weird issue while developing decor
i wanted to memoize a component
but it just caused issues
yeah that is smart
unsane
ah
is this the same memoization issue just self-induced






