#👾-core-development
1 messages · Page 170 of 1
wgat if theres no guide
then it shows the home normally lol
the guide overrides the home
this is what it shows if there is no guide
how impossible is it to show both
not impossible but bad
Server Guide and Server Home share the same route
this honestly is not a bad solution and was pretty straight forward to make
its so over guys

the FUCK you mean skill issue
and they are doing something
be scared or something

this exp causes it
thing is it still does that even if you dont have the exp

don't some other things too
i think it's weirder for ux to merge
theres a switch button
yeah, that's weird
but i guess fixing the route would be hard
it's just it still suffers from this issue xd
nop
i have accidentally ran into the "@home" lying around
probably should fix weeks of messages being nuked often happening when interacting with server home xD
reddit app behaviour
in its current state, this can be abused as an arbitrary csp/cors bypass. you should validate that the url is indeed a webhook url, for example via
const { hostname, pathname } = new URL(url);
if (!["discord.com", "ptb.discord.com", "canary.discord.com"].includes(hostname) || !pathname.startsWith("/api/webhooks/"))
throw new Error("not allowed");
please make this a little more specific to be safer
thank you a lot for your thorough research
Mod view has been rolled out to all servers now
well they changed something that actually affects the main functionality, I have to fix that patch (I only just noticed today)
me
hi anu
why the new user thingy
did you die
beast
send me the link i am one lazy motherfucker
Use => ({ ... }), not => { return { ... } }
Oh ok
FUUUUUUUUCK (Where did my big quick react menu go?)
discord really did decide "good morning, fuck you, rewrite your plugins because we pushed a change to canary" 

discord devs trying not to break stuff challenge (impossible)
how much do you have to rewrite tho?
I already rewrote most of a plugin I made when I was starting to make plugins
message logger moment
stop contributing to the spam just ignore retards
i can see history
I really need to fix that better quick react plugin I made
and quickly
why did it even break 
i may be a bit stupid
pretend i said nothing
?????
fully restart discord
in case anyone is still wondering, yes I was panicking about it being broken, but no warning in console
i wasn't even loading the plugin i was on a branch without it
because vencord's settings ipc was changed from sending strings to sending proper objects
ctrl r only reloads renderer
so you had old ipc with new renderer
OHHHHHH
is this related to the new settings api changes
and that I haven't merged dev into half my branches
Criminal
horror polls are real
its experiment
only in servers I think
A/B testing
I dont have experiment on
Thanks for the review! I changed the regex match to /this\.automaticAnchor=null,this\.messageFetchAnchor=null,/.
Also, I made it only remove the anchor if the user is currently scrolling, since that's the only time when the bug occurs. It's also because the scroll anchor will be null for some time if lots of avatars are rendering at once, even if the user isn't scrolling, which may cause the message list to slowly scroll on its own. The message list shouldn't drift anymore.
the old one wasn't bad
You are right, it wasn't bad
It was just very repetitive
it's a bit ew doing \\ in regex
Plugin that removes the annoying 'Close DM' Button
does this really need to be a plugin? could this be done with CSS, or is keyboard focus/selection/etc an issue
also, if it does, you should directly patch out where the close button is inserted
[class*=channel] [class*=closeButton] {
display: none !important;
}
@austere talon 
he already had a selector for it so why not just use css lmao
vencord potential contributors making the most unoptimised code
LMFAOO
shouldnt matter
Well, renaming things from default to sensible names is a good change imo
yeah
whar
they dont name it default xd
its just a default export
Well yeah
const HTTP = { ... };
// before
export default HTTP;
// now
export { HTTP };
personally im hater of default exports i always use named exports but both are fine
naw i'd get
nop
and no
you look for 'getAPIBaseURL','get'
ofc it wont work
L
BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/
None
None
None
BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/
None
None
None
can I have some basic feedback on new webpack api, webpack.tsx is mainly the only file needed to look a lot
021948c WhoReacted: fix scroll jumping when rendering u... - waresnew
04d5423 fix(AnonymiseFileNames): anonymise files in for... - Masterjoona
55901ba AlwaysTrust: Add options for each popup (#2234) - trwy7
2ce3487 PinDMs: add category support & fix bugs (#2203) - Syncxv
5646fe4 feat(PatchHelper): Paste Full Patch (#1982) - MrDiamondDog
BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/
None
None
None
BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/
None
None
None
super hacky stuff
ur a genius
1cb295b new plugin: OverrideForumDefaults (#2272) - Inbestigator
ec66c35 MessageLinkEmbeds: Load embeds from newest to o... - mcpower
BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/
None
None
None
BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/
None
None
None
6a7657d Remove getGuildRoles - Nuckyz
bf9a225 HTTP Updater: Only include first commit line - Nuckyz
7190437 rename Devs.obscurity => Devs.fawn :3 - Vendicated
9aa205b rewrite settings api to use SettingsStore class... - Vendicated
afdcf0e refactor shared utils to more obviously separat... - Vendicated
damn
why? name of this key isn't static and I found no other ways to get unicode emoji from element
it will return just name of emoji instead actual emoji symbol
props.target.dataset.name > "cross_mark"
from fiber > "❌"
findByProps("convertNameToSurrogate").convertNameToSurrogate("cross_mark")
@spark pivot this reverts your change to CheckedTextInput because its just wrong
it triggers onChange events when it didnt actually change
if you actually need that change for it to function properly, then you're doing something else wrong and should fix that instead!
that pr was from a while ago so i prob did something wrong
where are we supposed to host video files for vencord.dev/plugins now that discord is dumb and stupid
github
ah
paste the image into the readme images thread and get the url
ah
that's actually gonna go soon replaced with https://github.com/Vencord/plugin-assets
but it's not ready yet
i don't think i can modify the patch helper code to do this- the way CheckedTextInput is made right now doesn't allow you to change value to update it. I changed it to this and it worked:
-export function CheckedTextInput({ value: initialValue, onChange, validate }: TextInputProps) {
+export function CheckedTextInput({ value, onChange, validate }: TextInputProps) {
- const [value, setValue] = React.useState(initialValue);
const [error, setError] = React.useState<string>();
function handleChange(v: string) {
- setValue(v);
const res = validate(v);
if (res === true) {
setError(void 0);
onChange(v);
} else {
setError(res);
}
}
skill issue idk
lolol
I had to do (message.author as any).globalName 💀
(That's how typing indicator does it)
you can also extend the type
import { User } from "discord-types";
interface User {
globalName: string;
}
should work
man do I love interface overloads
it's kinda weird that ts just merges multiple similarly named declarations xd
Cool new update
what's your pr
hold on lemme get it
you'll figure it out
This feature is inspired by https://github.com/Puyodead1/replugged-stafftags
It took me 3 hours to figure out how to do this in Vencord and I'm so glad I did because it looks just so much bette...
Gotcha. It seemed very complicated to me as well but I couldn't think of any better way to do it.
Thanks
Whenever works, i'm not really in a rush, i can just keep updating my fork
you don't even have to fork technically
check out a normal vencord upstream clone and add it as a user plugin
this way you can enjoy the regular updater with your plugin added
just rename it to avoid conflicts with the original one, name it like MoreUserTags2
Fair, should have thought of that before I forked it lol
But to be fair, I need to fork anyway to have a pr
¯_(ツ)_/¯
I'm fine whatever, it's not a big deal
anyway ill take a look soon
Thanks
Looks good? ```ts
import { type Message, User } from "discord-types/general";
interface NameUser extends User {
globalName: string;
}
(UserStore.getUser(userId) as NameUser).globalName;```
you shouldn't need to do that
oh
import type { User } from "discord-types/general";
interface User {
globalName: string;
}
just this should work
typescript is fun
How merging namespaces and interfaces works
Import declaration conflicts with local declaration of 'User'.ts(2440)
that's strange
I'm just gonna do ```ts
import type { Message, User as DiscordUser } from "discord-types/general";
interface User extends DiscordUser {
globalName: string;
}```
it's not much longer and it passed checks
ya works
was literally just abt to ask abt this, i looked into it abit and vencord is using an outdated version of discord-types, vc uses 1.3.26 and newest is 1.3.3 (https://www.npmjs.com/package/discord-types)
ig globalName was added inbetween 1.3.26 and 1.3.3
its weird though because on the github repo the package.json still says 1.3.26
maby bcuz its in devDependencies i made another project and installed it and it put it in dependencies instead
(incorrect)
it seems like its fixed on the github repo
but a new npm thing never got published
who is maintaining this 😭
it can be fixed by doing
pnpm i git+ssh://git@github.com/Swishilicous/discord-types.git
Vee, pretty pwease do this
🙏
Just saying, you might wanna optimize your site for mobile a bit more
yeah i honestly have been putting off fixing the css and everything for mobile 😭
im probably gonna rewrite it at somepoint
pretty self-explanatory, vencord currently uses version 1.3.26 from the npm registry, but the newest version of discord-types is only on GitHub and not on the npm registry. you can solve this by just adding the GitHub repo as the source of the package instead of the npmjs version.
I feel dumb now kekw
omfg it throws a fucking error because theres a comma and not a semi-colon
who the hell is maintaining this package
someone already fixed it in a pr
a pr which is like 8~ months old
i think vee just needs to fork it and use that version
Adds a download button to voice messages.
so I overlooked the fact that there is a typo in the discord-types package which breaks it anyway, honestly @Vendicated you should probably just fork the repo, fix it, and use your own for this :woman_facepalming:.
(I'm going to leave this PR open until vee sees it, after that it might as well be closed)
so I overlooked the fact that there is a typo in the discord-types package which breaks it anyway, honestly @Vendicated you should probably just fork the repo, fix it, and use your own for this 🤦♀️.
(I'm going to leave this PR open until vee sees it, after that it might as well be closed)
typo in question - https://github.com/Swishilicous/discord-types/blob/7ece571cd9f5c9e238eb09c5635d4468ede050d2/general/User.d.ts#L12C33-L12C34
yeah but still annoying
actually its weird that its not a typo and a typo at the same time.
I made an export button for my plugin to export bans. but found out. that Users could have global_name or globalName sometimes
(Don't mind the funky look)
that when I extract them as json. I just directly stringify the bans array in my plugin
no idea why
globalName is on the user class
global_name on the json object
idk if it's you doing the pr but
we should just ditch using that package
we already have typings for so many stuff, adding those and maintaining them would be no problem and way better
I agree. we should make fluxDispatcher types module to stop repetitive code in plugins
I legit have 3 plugins that have IMessageCreate
the (unofficial) home-manager module for vesktop is complete :)
currently supports enabling plugins by list (more legible for the plugins that dont have settings) as well as both configuring plugins by attrset and by nix convention
any suggestions would be sick
btw just making sure you know, no need to manage the dependencies manually
vencord automatically enables the required dependencies for any enabled plugin
i wasnt sure how it would handle that since the settings.json is readonly so i just defaulted all APIs to true for now (this can be easily overriden)
are deps handled outside of settings/setting.json?
as long you enable fake nitro, message events api is automatically enabled
regardless of the settings config
ah
good to know
ill play around with it a bit before deciding to remove the api defaults
noone. it's not maintained
yeah it does seem that required plugins are enabled regardless of config
how does that work? kinda zaney
settings is disabled yet still running with my configs
Alternative would be giving an error if deps aren't enabled, and nobody likes that
well required plugin should just not be disabled
it ignores the setting
mmm that makes sense
4 on vesktop :)
right
additionally, CrashHandler is enabled by default
however it can be disabled
It's the only plugin enabled by default that can be disabled
every plugin that depends on some api lists that plugin in its definition
required plugins state that they are required in its definition
then the plugin loader figures out which plugins are needed as a dependency and which are required and force enables them, regardless of your settings
https://github.com/Vendicated/Vencord/blob/main/src/plugins/index.ts#L39-L67
**index.ts: **Lines 39-67
export function isPluginEnabled(p: string) {
return (
Plugins[p]?.required ||
Plugins[p]?.isDependency ||
settings[p]?.enabled
) ?? false;
}
const pluginsValues = Object.values(Plugins);
// First roundtrip to mark and force enable dependencies (only for enabled plugins)
//
// FIXME: might need to revisit this if there's ever nested (dependencies of dependencies) dependencies since this only
// goes for the top level and their children, but for now this works okay with the current API plugins
for (const p of pluginsValues) if (settings[p.name]?.enabled) {
p.dependencies?.forEach(d => {
const dep = Plugins[d];
if (dep) {
settings[d].enabled = true;
dep.isDependency = true;
}
else {
const error = new Error(`Plugin ${p.name} has unresolved dependency ${d}`);
if (IS_DEV)
throw error;
logger.warn(error);
}
});
}
i didnt get, it going be added or wat?
BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/
None
None
None
BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/
None
None
None
let me fix better note box
ily
uhh I'm not sure what this is supposed to patch
I guess it's this but I could be wrong
I never used this plugin
i didnt get, it going be added or wat?
im assuming that url uploading still has to be removed as recommended but im only guessing
do you remember if it should be before or after the notes? @austere talon
tbh idk maybe just delete the plugin
i wrote this so long ago and don't even use it
would you know if the padding is supposed to be after or before the notes?
inspect element says it's after the notes
uhhhh, I have no idea sadly
okay I see it's after
I'm using a theme that also hides the category dividers so I can't really tell
okay but did you notice a different after the thing broke?
I might just remove it
well yeah
what was it
the heading?
yes
oh wait
i think the fix is removing the margin
if the note is hidden
maybe im wrong
anyway can it be hidden with css
is the plugin even needed
let me disable the plugin and try again with the css they sent me in #🎨-theme-development
it was something like return (hideNote) ? null : (the note box) when i wrote it
and the patch change null to some margin when it is last section
yup, it worked
using this #🎨-theme-development message

nvm they didnt
but they no longer hide the heading
but yeah, if nobody uses it and it can be hidden with css you can just remove it
no

why is that spotify card so fucked up
oh, that happens sometimes
I just have to restart discord
it's because I have a css snippet with emojis instead of icons
restarting discord fixes it
here it's normal
I fixed better notes

7190437 rename Devs.obscurity => Devs.fawn :3 - Vendicated
9aa205b rewrite settings api to use SettingsStore class... - Vendicated
afdcf0e refactor shared utils to more obviously separat... - Vendicated
f3ee43f favGifSearch: don't error on favourited non-url... - Ratismal
57d63af Move everything to use waitFor - Nuckyz
I'm dumb nvm

better notes is a crazy plugin
it's so dumb and it has one of the craziest patches
oh sick thanks
And probably the smallest userbase
idk it's very niche and not that useful tbh
but it's also very old
old plugins didn't have as high quality standards
Could someone force pull the new changes to my fork? I can't seem to fix the (extremely small) conflict.
When you add all your dms to a category it causes everything to disappear. This happens because of this:
https://github.com/Vendicated/Vencord/blob/ca18b6e0446b6f1858a82de47489bb01f925ce25/src/plugins/pinDms/index.tsx#L203
this line of code assumes an empty channelIds means dms havent been fetched from discord, but it doenst account for the case where dms have been fetched and all the private dms have been added to one or more categories.
done
Thank you!
Also this PR is ready for feedback and re-reviews
Can you also add a convertion from the old setting that sorted by last message? Currently it is needed to re-enable it manually
fart v2
This PR adds support for adding Vendroid-exclusive pluginsby adding the .mobile suffix to the plugin folder, just like other platforms.
It also adds a new build script- pnpm buildMobile, which is copied from the buildWeb script but includes mobile plugins. This can be useful for a future VendroidEnhancements plugin that would be directly added in vencord codebase, removing the need to inject custom plugins directly in vendroid code.
It also adds a webDesktop suffix, which builds t...
kinda is what i was thinking
better settings is hot wtf
I actually tried to remove the transition in the past but I only tried for like 2 hours and couldnt get it
and never ended up trying again
lmao
my first tries were super simple
Yeah I did some similar things at first
this still seems to rely on length. what happens if you use this on an account with 0 dms?
it explodes 
what is this for again? @jagged cloak removing mentions?
**index.ts: **Lines 286-288
function cleanMessage(content: string) {
return content.replace(new RegExp("<[^>]*>", "g"), "");
}
@austere talon what do you think?
that's still not good because if there's an error it will skip setting state
should i move the onChange call then?
this should be more specific because if its only for mentions itll fuck up unembededd links, emotes, and anyone just posting <>
if this is just for notifications it should be using discord's own notification content function
(findByProps("makeTextChatNotification"))
@spark pivot ohh is that the reason match doesnt update when you paste full patch
I was debugging this rn lmao
I'm modifying the patch helper cuz adding support for array finds
cool
Adds a button to view the Server Home in the Server Guide channel row. Also adds support for array finds because it was needed to match the right module.
not sure how to fix match not inputting, but this change might fix it
Boost visibility and ranking of your Github Profile and Repositories with our products over at https://github.market
We sell:
- Github Stars
- Github Forks
- Github Followers
- Github Watchers
- Github Reactions
- Github Upvotes
- Github Comments
- A Github Botting Tool
Our high-quality products come with substantial bulk discounts, ensuring both excellence and cost-effectiveness.
Buy now over at https://github.market
LOL
lets goo
i think github is being bombed with these issues right now cause i searched for this and all of them are less than 5 minutes old
there's like ten per second
i honestly dont remember so i yeeted it lmao
This adds to options:
- Allows the use of all servers' soundboards (others can't hear it).
- Allows the use of all sounds in the server's soundboard no matter what the server's boost level is.
what's the point if literally no one else can hear it
you can already do this lol
the available patch is nice
what's the point if noone can hear it
Only the first one one one can hear it. Second option everyone can. The point of the first option is to try out the sounds and be able to download them (you can't download them otherwise).
Makes profiles pictures a clickable link which opens it up in your default browser in full size.
wait no the second option should definitely be apart of fakenitro
The second one should definitely be included, but the first one is useless. I myself have been wanting something like the second option, but I didn't think it was possible.
The second one should definitely be included, but the first one is useless. I myself have been wanting something like the second option, but I didn't think it was possible.
You can't download sounds from other servers easily without the first option. It allows you to listen and/or download sounds from other servers easily instead of manually switching to each server individually just to listen to them or download them.
can you not just use the sound preview button to listen to them though?
or is that also blocked for sounds you don't have access to
I think it is
unfortunate
Using this impacts the client's performance noticeably, even on beefy machines
these styles likely are why. this is some insane css. combining :has with * is awful for performance and definitely not needed
sorry but this code makes no sense to me and seems very overengineered. it's hardly maintainable. the complex css rules make no sense, the complex shouldShow makes no sense (who needs this? what's the use case?), the NumberPointer class makes no sense
as such i will have to reject this. thanks for your efforts regardless
Just use let and numbers, you're already using let just below this
Would custom notification sounds per-person be viable to add to this?
I've been looking for plugins that let you set a custom sound for specific people, and I was gonna open a plugin request but this one was too similar despite not doing the same exact thing.
i dont really understand what valuepointer is for
like it's just making a constant mutable
just make it mutable in the first place
you're already using typescript, it's type safe and will complain if you assign the wrong value, your pointer object is noise
does that second patch really just fucking work lol
they def would
good chance they accept this in https://discord.com/security with the shit they been accepting lately lol
i would add it anyway, discord has their "totally-forever-in-beta soundmoji feature" and it is locked in that UI
None
None
None
None
so eel
None
None
None
None
This is a great idea if done well - perhaps by having an input that soundboard audio can be played through (set it as mic output) and soundboard sounds can be played through your mic, like with voicemeeter for example. Hmmmm
does this user know what venmic is
i dont think we need to check if its initialized.
https://github.com/Vendicated/Vencord/blob/ca18b6e0446b6f1858a82de47489bb01f925ce25/src/plugins/pinDms/index.tsx#L156-L160
the init function forceUpdates the component on connection open (when channels have been fetched), meaning that check is kinda useless.
so if that CharCounter is garbage is someone going to make a new/better one?
because that is actually a very good plugin idea
Why?
It’s kinda useless
A charCounter is always a good plugin especially for people whom don’t have nitro and are always writing out long sentence that get close too the 2000 minimum characters non nitro people have
If you need to know the number of characters in smth, just copy it and go to https://wordcounter.net/character-count
Discord already pops up a tooltip that says how many characters you have left when you get close
If you don’t wanna make it then don’t. I’m not going to have this convo, I just think some people especially the average Vencord user (dumb as a bag of rocks, and 2 minutes reading the support channel would prove that statement correct) would find it useful.
💀
mb for not being good at english and only having the shitty American education system to teach me stuff
I’m sorry, I just voice my opinion that i thought it’s a pretty good plugin and that some people (especially the not that tech smart people) would find it useful. Yes it’s niche and but there is a small group of people that would find it useful. Plus there are a lot of niche and weird stuff in Vencord. So a charcounter plugin wouldn’t be that weird for being a thing
I agree that, in its current state, the plugin is overengineered and likely hard to maintain. However, this is a very outdated version of the plugin. I was waiting for #2149, which adds FormattedMessage to webpack/common, to be merged before committing the updated and largely simplified version of the plugin.
Regarding the lag, I can assure you that it is not due to the usage of the :has() pseudo-class, which was the only way to ensure the character counter did not overlap with other ...
@austere talon merge my pr
never merge manti pr
i will unfuck vendroid
what if we start vendroid fork together 
i think i will pretend to know what i am doing for a little while first
sure

average vee code
yea
yeah definitely
probably not in this pr though
is the java side even implemented anywhere
oh god. java? be prepared for all of my eyes on this code
(what's the expression? how many eyes do i have?)
SHITCODING
i have never programmed an android app
i am pretending to know what i am doing
if anyone sees this i am aware that i will be shot
or husked
idk whats worse
i swear i tested it
and the req returned some error code
lol
it just works????
thats stupid
how did it not work before

That's what everyone does
about the prospect of enabling /vencord-debug globally, would it be better just to have debug info copy to clipboard upon clicking versioning instead like how bd has it
just figure it might be good to keep the same system
wdym
of that onBackPressed() method
it would be nice if all the prs it wants to be merged were
yop
🙏 improved textreplace
🙏 tone indicator meanings
btw @rustic nova multiple complained that PinDms no longer sorts by most recent message
ik it's a setting but maybe we should change the default value of it to enabled
or rather make that sort order the default
**index.tsx: **Lines 43-51
pinOrder: {
type: OptionType.SELECT,
description: "Which order should pinned DMs be displayed in?",
options: [
{ label: "Most recent message", value: PinOrder.LastMessage, default: true },
{ label: "Custom (right click channels to reorder)", value: PinOrder.Custom }
],
onChange: () => forceUpdate()
},
oh i didnt realise you already did that
i didnt get, it going be added or wat?
im assuming that url uploading still has to be removed as recommended but im only guessing
I think it's being kept...
importing from urls should be removed in favour of only having file upload as an option
Update: I added both features. Here's what it looks like:
(You can click out of the box/click the X to dismiss it)
I tried my best to make it look as good as possible but let me know if you guys have any suggestions.
Try not to hardcode entire class names because the part after the _ might change when Discord updates (maybe do something like [class^="hiddenSpoiler_"] instead)
i have removed hiddenSpoiler as there are to different classes with same name. hiddenAttachment appears to be on all images too, so this should still work.
Running Discord Activity causes client to crash
ah so sorry about that, it's fixed now
unfix it
bros pushed a quick one
i have no idea what this does but they should NOT be doing that like that
it's auto generated
o is this the datamining changes or something
That's just defining the module exports
I knew that...
None
None
None
None
None
None
None
font-weight: bold;
color: purple;
Attempting to set fast connect zstd when unsupported ```
wtf
how does VesktopNative/VencordNative work? I want to see if my skillset allows me to create extensionNative
They do some manner of ipc with the electron host process
finally, I feel my plugin is ready for pr. but I am nerves for some reason
just do it
Not sponsored by nike
Shia LaBeouf
Unlocks and allows you to use custom multipliers for the zoom slider in the Edit Avatar modal as the default 2 is "barely enough"
Don't have obfuscated variables names in your finds. Otherwise you will need to change this every time discord updates.
.Messages.FORM_LABEL_AVATAR_SIZE would likely work.
Another component seems to use .Messages_FORM_LABEL_AVATAR_SIZE, so using that causes the patch to not have any effect.
I could probably use either keyboardStep or asValueChanges instead, as neither seem to be present elsewhere
It only matters for variables name I, w, etc. These variables are obfuscated and change with discord updates.
@spark pivot im really confused :/
shoudl i still try to find by the string constant? or should i use another prop instead?
the issue is that you're relying on the variable name I
ye i get that
any variable name that is only a few random letters is auto generated and you shouldn't rely on it
.Messages.FOO_BAR is discords name so you can rely on it
im just not sure on how i should be finding it if not by that
for example by using find: ".Messages.FOO_BAR"
i already did that here but it didnt really work out
yeah you need to find something else that is unique then
Messages.AVATAR_UPLOAD_EDIT_MEDIA seems unique
use ctrl shift f to search for it and make sure there is only 1 result
yeye im already doing that xd
Localization strings (Messages.FOO_BAR) and exports (fooBar:function() are often good finds
aaaa i completely missed this
i still dont really understand how the patch system works 

It's just find a string that uniquely identifies the module you want to patch, and then regex replace things in that module
in fact I think I never used a export as a find in my patches
Yeah class names are decent too
Yes absolutely
banger find for context menu api
ye i saw that while i was looking thru other plugins xd
I'm not cynical enough for that mindset
because you were not here when everything was mangled
Yep
and honestly, it was not that bad
also btw @brazen bone do u wanna be credited for helping ? i feel kinda rude for not doing it
Nah
the hardest thing was deciding how to name things lmao
oke 
how do I call this fucking export 😰
How would findByProps work? Isn't the whole problem that those props are all mangled?
it would try the filter on every export too
Oh
so you would match the props on the exported objects
not the actual export name
and findByCode was the way for components/other methods
I'm still annoyed that findByCode searches in the module's exports and not the module itself
findModuleId is what you're looking for
findModuleId("renderSingleLineMessage:function()")
because it's literally meant to find an export not the module
btw ven do we have a force updater api for messages already?
I think I wanna find again how to manually force updates, but without wrapping the component
I guess in cases where exports are mangled, getting the raw exports dict is not particularly useful
stupid question, why would you want to do that
there are many cases for wanting to force a re-render in a message
examples?
okay I cant think of one rn but in the past many have wanted that
I dont understand why are you husking
it's not a crazy thing to want?
It goes against everything about how React is meant to be used
Vencord abuses React
I only know how to use React because of Vencord and I can tell half of it is done super jank manual force rerendering
for example to update attachments, message content, etc
If you want to update the message, update the MessageStore and any useStateFromStore will automatically be rerendered
dispatching message updates is a bit painful because it expects an api message
while we're working with "model" messages
wdym model messages
api message is raw api data that contains things in snake_case and such
oh yes
Vencord does not follow how things are supposed to be used
discord serialises that into a message class that uses camelCase and has methods and such
Welcome to hacking your own code on top of other people's propietary bullshit app
to dispatch a message update event we basically need to serialise messages to an api message which is kinda complicated
You will enjoy your stay
wtf
otherwise it breaks attachments and embeds
are attachments deserialized in a weird way
?
It isn't just some renaming to camelCase for the actual model message
anyway message updating is for example needed for the HideAttachments plugin
There's some kind of attachments class or something, right?
i forgor if that is a plugin in mainline vencord
yop
how... does that plugin even cause a rerender
does it?
i don't want to be mean but you're not making any meaningful contributions to the discussion
true
I'm just curious (that's all)
btw i've recently been doing horrible patches with vendroid
anyway no there isn't
i experimented a bit with it but didn't got anything to work
there's https://github.com/Vendicated/Vencord/tree/componentUpdaterAPI but it's not good
it basically just patched the message component to insert a useForceUpdater and store it in a global map
alright I will try more later then
If I'm reading the code correctly, you should be able to dispatch an empty LOAD_MESSAGES event and every useStateFromStores([MessageStore]) will recheck
trigger the state re-render
You mean you want the useStateFromStores to cause a rerender even if the returned value is the same?
I want to invoke the re-render of the state without the store changing
LOAD_MESSAGES does not change anything in the store ```js
LOAD_MESSAGES: function () {
return true;
},
It just — for some ungodly reason — reports that the store was changed, and thus all change listeners are run
There's no other listeners for LOAD_MESSAGES either, though it does feel a bit fragile
rerendering all messages is likely not a good idea
Only those where the useStateFromStores callback differs
Discord already does that on every messagestore change
Though I do admit that I haven't tried whether it actually works
None
None
None
None
None
None
None
font-weight: bold;
color: purple;
Attempting to set fast connect zstd when unsupported ```
zWHAT
new gateway transport compression method
Adds a new plugin that allows quickly toggling reply mentions for the current pending reply by pressing Alt + Backspace.

why alt backspace of all things
we really need a better way to do keybinds for plugins
i personally think that keybind is really bad but i do like the general idea of the plugin, i thought about a mention toggle keybind as well
like some api where users can just change it
backspace because it's what the old powercord plugin used, alt so that it didn't conflict with other things
I'm fine with other keybinds this is just the one that was easy to find and didn't conflict with anything
a keybinds API would be great though yeah
well any keybind is gonna be subjective and someone is gonna be unhappy xd
it's the same with the quick delete plugin

we really just need a way to change it
i swear this was brought up b4
it was arjix's pr
and ofc closed
for context, the powercord plugin would toggle mention if you pressed backspace and the message bar was empty
or something similar to that, I don't remember it exactly
yeah
Sorry It took me time due to exams but I will work on it as soon as possible
Problem I'm solving with this plugin:
To figure out if someone tried to bypass our automod or to see the surrounding context, I have to search for their user's message history and scroll down to the rough timestamp it happened at.
This is very tedious, so this plugin adds a button to automod messages to allow you to jump to the surrounding messages of when the message was flagged/blocked.
https://github.com/Vendicated/Vencord/assets/24935987/393a6312-409b-4418-a6d7-eaeb5f3d0281
yall sre reminding me to fix that double click to edit/reply plugin to not edit the message
@austere talon i’m probably about to fuck this up but i tried, don’t get mad at me because i don’t completely understand how github works yet
This should update the "read all button", so its not so ugly and bland. Should be able to work with themes (especially the client theme plugin)
updated "Constant.ts" twice to fix typo i made
ok there we go, don’t blame me if this was bad or fucked up it was first time using github like that
instead of using this insane selector, give the button a class and select that instead :3
no you did it perfectly!!
ok :3
i’ll see about this using a class instead of the selector
in js you need to assign a class to the button element
i figured, it’s just using the selector is how i was taught how to do it
adds support for toggling the "Show Song" button, fixes inconsistent casing in description labels and changes the plugin description a bit.
closes https://github.com/Vencord/plugin-requests/issues/227
probably should've PR'd to dev but bleh
You can change it
Oh it isn’t your pr
Silly me 
lol it is
Even sillier me 

@Vendicated ok changed (I think, idk ive never used github before so im trying)
@austere talon ok i think i did
( @bleak gyro help me out with it)
make sure styling is consistent (tab width is different in this block vs. the one above)
please actually test your changes before pring
that's not possible because the code will not compile
it contains a syntax error
FUCK ME, it’s that fuckin typo i fixed before why is it back
There were two syntax errors lol
fuck, i fix one typo with that thing and another one shows up
goddamn
Are you using vscode
offical
nvhhr is trying to say you spelled it wrong
- name: "krystalskulloffical",
+ name: "krystalskullofficial",
I didn’t even notice either
god hates me and doesn’t want me in the constants.ts
Ok, this style.css was made by @ethan-davis and they comfremed it
misclicked didn't mean to close
@austere talon ok idk what to do, i’m started to angy, i’ve never used github before so i’m trying
You’re good at this point
The pr is ready for merging
If you need any more help with github let us know
ok thanks ☺️
same
it will never happen,,, vencord is actually dead and we're all hallucinating
i’d believe it
I had one of my prs get merged recently
That brings the total to 2
same 2
whats vencord??
ok this is apparently broken and only shows on my main client hmmmm
gatekeeper
- buttons: buttons.map(v => v.label),
+ buttons: buttons.length > 0 && buttons.map(v => v?.label) || undefined,
this seems to work but it feels ugly.. and i highly doubt it's the best approach
well, well, well
Joyous
wtf they're naming stuff??
just moving from default exports to named exports
why is this so surprising to you
imma move what channel i post that in
the fact it's gradual is
well i’m done, maybe this will be merged maybe it won’t ig we’ll see
None
None
None
None
MemberListDecoratorsAPI (had no effect):
ID: 888503
Match: /decorators:.{0,100}?children:\[/
None
None
font-weight: bold;
color: purple;
Attempting to set fast connect zstd when unsupported ```
bleeh
real
i mean it’s like actually good (i’m not just saying that because I made it, and i think it’s good) it really is because it does something that should’ve been done a long time ago
Vee is the whole reason, I did all this. I was originally just going to post it as a #🎨-css-snippets that people could just ”@import” they wanted it but they talked me into making it a PR and doing all this other work
I have added the option in both the plugins which can be used to toggle the same function. is this approach okay? please let me know
on 14.2.1 and also having this issue, granting full disk access and running the command doesn't fix it
I have implemented the feature but it does require a manual reload. is there any way I can show a reload prompt.
to solve the issue, try running the installer as root.
open a terminal and type sudo /path/to/VencordInstaller.app/Contents/MacOS/VencordInstaller, replacing /path/to with the path where you downloaded the installer to.
adds a button next to your mic so you can quickly toggle CustomRPC without going to the settings :D
I'm sorry but my changes have a different functionality than game activity toggle. See, if you wanted to use game activity toggle with customrpc, customrpc has to be on all the time, meaning rpc from games won't work properly. The customrpc toggle gives you the ability to activate the customrpc only when you need it. Example:
You have set up customrpc for "Playing Piano", so you want it to be active only when you actually play, but when you're...
This would be a conflict with GameActivityToggle anyways, but perhaps you can just make it an option in the VencordToolbox and use it?
yes, i was just about to suggest the VencordToolbox. it's a plugin that adds a toolbar button in the top right and lets plugins specify actions there. just add a Custom Rpc toggle there
Discord Account
.niqui
What happens when the bug or crash occurs?
This bug happens on a few servers, and in some others it doesnt, but basically when you try to see users with permission to certain hidden channel, they wont appear correctly.
For example on a ticket on certain server, which is hidden, you cant see whos the person with access to the ticket, but in other server you can.
What is the expected behaviour?
I expect ShowHiddenChannels to show everyone who has perms ...
Adds the discord friends icon to the Friends Since popout for more visibility.
please show a screenshot
<svg aria-hidden="true" width="18" height="18" viewBox="0 0 24 24"><path fill="lightgrey" d="M13 10a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"></path><path fill="lightgrey" d="M3 5v-.75C3 3.56 3.56 3 4.25 3s1.24.56 1.33 1.25C6.12 8.65 9.46 12 13 12h1a8 8 0 0 1 8 8 2 2 0 0 1-2 2 .21.21 0 0 1-.2-.15 7.65 7.65 0 0 0-1.32-2.3c-.15-.2-.42-.06-.39.17l.25 2c.02.15-.1.28-.25.28H9a2 2 0 0 1-2-2v-2.22c0-1.57-.67-3.05-1.53-4.37A15.85 15.85 0 0 1 3 5Z"></path></svg>
None
None
None
None
MemberListDecoratorsAPI (had no effect):
ID: 888503
Match: /decorators:.{0,100}?children:\[/
ChatInputButtonAPI (found no module):
ID: -
Match: location:"ChannelTextAreaButtons"
None
None
font-weight: bold;
color: purple;
Attempting to set fast connect zstd when unsupported ```
I think it applies all the buttons on the chatbar, because I main canary and the only ones here is the default badges
hurray
yeah that’s what i figured
i was half way through writing a comment, but yes anyway
please get some patience. vee has a life outside of vencord
vee has a life outside of vencord
Doubt
rude
you know it's true
ok i’m sorry I was just reminding about it
maybe Vee working for Discord was true and they’ve been slowly changing code to be more helpful to the client modding
yep
doing it slowly one change at a time to make it harder for them to revert if they ever notice

real
i don't like that discord hides the link to images if they're the only thing in the message so i made it not
Renders $\LaTeX$ formulas. `$\sin x$` renders as $\sin x$, `$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$` renders as $\displaystyle x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$. The latter is intentionally set to an inline-block instead of a block, to save space.
This plugin requires external libraries, which will not work in the userscript version without additional workarounds.
Closing this and creating a new PR because I foolishly made this on my main branch and github won't let me switch.
MessageLogger is useful but takes a lot of place. More often than not, deleted and edited messages are more of a curiosity than critical information, and often messages are deleted for a good reason, so keeping them fully visible is counterproductive.
I don't think this is quite ready to be...
I would put this in dependencies.ts
@import this in your styles instead of dom manip
Vencord class names usually start with vc-
None
None
None
None
MemberListDecoratorsAPI (had no effect):
ID: 888503
Match: /decorators:.{0,100}?children:\[/
ChatInputButtonAPI (found no module):
ID: -
Match: location:"ChannelTextAreaButtons"
WebContextMenus (found no module):
ID: -
Match: .default("MediaEngineWebRTC");
None
None
font-weight: bold;
color: purple;
Attempting to set fast connect zstd when unsupported ```
Every day it gets longer
What's the last section for, by the way?
math is pretty scary ngl
but this plugin seems helpful
Discord just bumped stable from Electron 22 to 28 :3
cool
idk i only use 64bit so

