#πΎ-core-development
1 messages Β· Page 150 of 1
yes
by god theyre actually here
maybe it was really just oopsie
YES π
well,,, as i said
they reverted it to build from 16h ago
sooo could be
im kinda tempted to dm him and ask why he's here cause im really curious
yes i also know how javascript works
its just weird for discord to do when they dont really care about supporting old browsers that much
what if he reverted it because he was like "damn, i broke vencord"
he was like aww shucks my custom plugins broke ://
PLEASE that would be so funny
aweary is an avid fan of show hidden channels
aww my decor plugin brokey :(
it's true
yes
BASED
naw
he doesnt have it now
NOT TERRIBLE
we will ping
actually did he ever have the deco
not andgy though
am i trippin
who is ANDGY
fake andgy
a11y staff is chill
theyre here watching us seeing when we fix something and then breaking it even more
they will switch from rspack to vite
cat owner he is real
i love when i get suggested a hidden channel
no mutuals sad
i only have 1 mutual
that's so awesome!! never seen that before
is there valid user for vendetter
nop
i will make /profile for vendetta
virus
β/profile my beloved
/stripe-webhook my beloved
of course they reverted it, their app actually broke
me when staff couldnt use discord:
resetSocketOnError TypeError: e.isStaff is not a function
moment
now we wait for them to unbreak it and break some patches again
nop
instead you will make valid user
way better
make it so that clicking on invalid mentions will fetch that user then open their profile

pov: discord
yop
@ aweary confirm or deny
one of yall is gonna accidentally ping him
that will be me
(it wont be by accident)
I dont even know who is aweary
Brandon Dail
Discord staff
aπ©
okay I see
thats half the fun of it
was leading a11y team before
me forgetting aweary is a11y staff
first one to accidentally ping gets a free cookie
realest
i almost did on my alt earlier
sooooooo
i almost misclicked the wave button
lmao
me?
soon you will get a message saying
"hi guys check #moderator-only :3"
@austere talon make aweary a cute people
@keen blaze never sorry
where is this from?
hhow do you have access to it is the better question
or is it a old thing
:bee_movie:
you want it?
maybe
































yes way
is it a rest api or something
shrugged
yesssss do it you know you want to
actually no isnt that the /commands format
AAA RULE 1 π . banned.
wooo
average owo
it makes my phone lag
i fucking love discord piracy
ofc
yeah thing is
this is from discord staff's server
fucking what π
real page not found
does that not work with nitter
bro i just typed nitter and my auto correct almost made me a gamer
WHAT
i noticed right before sending it
SWIFTKEY IS INSANE
muscle memory? π
NO
~~actually what if you report this π ~~
@austere talon cancellation coming soon
nuh uh
denial.
its joever
it sure is
DIGITAL SINGLEγγε
γ«ε€±η€ΌγγΎγγγ(Pardon Me, I Have To Go Now)
DL & STREAMING : https://hanabie.lnk.to/osakini
Lyrics : Yukina, Matsuri
Music : Matsuri, Yukina
Arrangement : YUYOYUPPE, Matsuri
Mixing : MEG
οΌMusic VideoοΌ
Director : Takuya Oyama (VANLI)
Producer : Mao Suzuki (P.I.C.S)
Hair & Make-up : Erika Yoshida
Hair & Make-up Assistant : Hitomi Mi...

real
im busy playing clash of clans
discord without vencord how will i ever survive
:hollow:
yeah sure sure
say whatever you want clyde
opening the stable client for the first time in like 4 months 
how or why people daily drive canary is beyond me
get rekt
IM A DICKRIDER
discords

pressing ctrl+r to daily drive some shit that @shy veldt just datamined lifestyle
i installed it when discord first added categories bcuz i wanted to try them
and then that stuck with me even after not using discord for years
ptb does too
imagine needing a specific client for x64,,,
personally i use discord staging
discord development
canary, but with free electron security vulnerabilities
x86 crashes so often that its genuinely annoying
leave discord open for more than an hour and it crashes
Bump, would love to have this.
install vesktop now
the other half of my entire internet presence revolves around a game that uses EAC
could never use linux if i wanted to lol
add global hotkeys NOW 
real and true https://the.yog.zone/78MJjVQ.png
i forget that vencords install is isolated so it can be used across diff clients
just reinstalled it on stable for the time being lol
chat is this real?
yearly reminder that keyboard mode fucking SUCKS
plugin to disable it entirely instead of fucking overriding keybinds when
textreplace filters didnt transfer back to stable π
ye they don't
None
None
None
None

exploded again ol
discord got their employees working the week before the holidays lort π
oh wait I think I know
okay i fixed the crashing

should i just merge this into main rn
how does the e.isStaff error still happen
None
None
None
None
wdym
look at how many patches
do i dare open canary
yeah cause they changed their bundler settings
we're going back to stoneage
not again
most fixes are easy tho
oh yeah its very scuffed lol
I'm gonna cry
theme issue

vencord theme still works flawlessly
vencord theme literally survived both rspack and what they did just now
its cause the themes hardcode classes
guess ill have to wait for the creator of the theme to fix it
brb will continue to debug reporter after
gonna stick to stable for the time being
jumpscare
profile decorations getting scary nowadays ^
what does confuse you
makes no sense
why polyfill es6 again
its pointless
cause they literally use es6 features in other places
true
insane
no
i asked him if the change was intended and showed him that discord still uses es6 in many places

bro ur fucked
None
None
None
None
None
None
None
None
oh hell nah
meanwhile im out here using attribute selectors for literally fucking everything 
None
None
None
None
None
None
None
None
just to make sure that plugin doesnt explode vencord
LOL
possibly vencord
I forgot a word π
possibly Vencord
a distinct chance
i love undefined.js
@limber skiff maybe we could make reporter run more than once a day
so we catch issues faster
have it run every few hours or smth
so it doesnt spam this channel like crazy, we could make a dedicated channel for it and have it edit the old message https://discord.com/developers/docs/resources/webhook#edit-webhook-message
or post here only if it errors or something
did they ununrevert again
i swear to god if we're having another moment where the ci keeps building using mobile's config for web
yes
oh wait
do u mean push again
nah doesnt seem so
i mean everything is working normally rn
not for me anyway
i dmed brandon and he said it was unintentional
and now its reverted
soo
am i potentially right?
ig its gonna stay reverted?
reporter should run every 30 seconds but using a random token from vencord_tokens.csv
TRUE
yes
wha
None
None
None
None
None
None
None
None
canary seems to be working fine again, for now
unless i wasnt paying attention and you guys fixed it already lol
nvm i see they reverted it lol
<@&1026509424686284924> is this plugin broken ?
@verbal pumice is that fix actually still needed or is it fixed
I see
once a day seems fine, and when big stuff changes we notice way earlier anyways cuz people say
for those cases we can run it manually already to see what it needs fixing
also having it post message here makes us aware of the results easier since it's a channel we look at frequently
how does one make vencord plugins
how can I read/write to the vesktop config file?
did u dm discord employee
INSANE
ye
Horror
LMAO
Here's how the ZWJ issue looked like (pretty funny if you ask me):
Now it works correctly:
replace: "if (true)",
feels slightly better? /shrug
https://github.com/Vencord/Vesktop/pull/283 @turbid hatch are you able to give this a look sometime? ven seems busy and i'd love for vesktop's flatpak to not be a janky experience for everyone installing it on a deck
i've tested it on my deck and it works both under flatpak and as an appinmage
i was waiting on feedback for the fp
for the flatpak?
is there any way I can help with that?
compile it and run it under the flatpak using the finstructions
uhh
ask ven on how to do it
im unsure if it works with current changes, but it works on the version at the time that pr was made
but there's nothing that should have broken
you will have to note that it wont be in the flatpak for a while
I can retest today though if needed
a new version of vesktop will need to be published first
yeah
actually
the Nvidia one I would hold off on
until it's more tested
but the steam one should work
@ me when a new vesktop release occurs
yep
uhh @still surge just double checking with your fp pr
is that all that's needed for it to build?
I like it the way it is, I can change it if it's preffered though. (There also might be a minimal performance difference, but that'd be a microoptimization so it's not like it really matters).
if so ill merge it as is
Wdym?
Which PR?
As discussed in #πΎ-core-development message, we want to include git for the updater to work with a custom Vencord installation.
just double checking if that's actually it cause thats just a src archive
Oh, I forgot to explain the issue with it
It solves the issue with git not being available, but when you change the location, the flatpak can't access the root of the repo
Because we give it access to Vencord/dist and not Vencord/
async file writes with no synchronisation mechanisms are always a bit worrying. could multiple simultaneous writes lead to a race condition? in this case i could lead to a sandbox escape
ah right
hm
do we really want this in the normal flatpak
this is gonna be pointless for 99% of users
it's a pipe so I highly doubt
I've also spammed useless unnecessary shit into this pipe and steam just ignores it unless it contains that starting pattern
im unsure, it would provide a feature thats supported by the app but its expensive so
also ^ this is correct, my assumption due to the name is that this is a fifo
it also always seems to execute immediately so I'm not sure if it's really async? idk
yeah it's a pipe that's why flatpak can't sanely mount it
cc @still surge if you know anything about this since none of us have found a way around it https://github.com/flathub/dev.vencord.Vesktop/pull/5/files#diff-2e3eefd459a53d9ad71b3c12949154c82e38921bcbc50a56cfbf43edfd67080dR25
would be super nice if there's any way to mount just the pipe without mounting the entire steam client directory in
I'm not sure tbh
yeah it just sucks since you have to give it write access to all of steam
since it's the same directory
Yeah Flatpak's --filesystem is only for directories
I assume there's no option for pipes yet?
I don't know what pipes are, so I can't comment on it
unix socket without the protocol
just bytes
best comparison i can give you
Yeah... I'm still clueless about it π
maybe I should open an issue on flatpak
Go for it
i would still change the fifo write to writeFileSync or use a queue to make sure its synchronised
It should already be sync...?
I don't think async writes to a special file are allowed in nodejs
like I think you can only do that with a normal file
better safe than sorry
^ "i think" isn't enough
the steam protocol does get called instantly then so I don't really think it's a problem?
I mean sure change it I just don't realistically see how it could be an issue
sorry I had no way to know about this as no feedback was given until after I pinged and it was merged
async writeFiles can race. i googled and apparently writes to pipes up to 4k are atomic
what if an attacker feeds a longer than 4k string into your function, then immediately calls it again in a way that makes the two writes race and somehow creates a malicious command
it's very unlikely but still better be safe than sorry and end up with a sandbox escape somehow
gl with overlapping writes
there really isn't anything malicious you can do with the steam url protocol tmk but sure change it
it's not a command
it's just idiotic
they make the syntax like a command
it doesn't run that
// replace ' to prevent argument injection
`'${process.env.HOME}/.local/share/Steam/ubuntu12_32/steam' '-ifrunning' '${url.replaceAll("'", "%27")}'\n`,
then why do you talk about "argument injection"
you can pass some normal steam arguments there and it will parse them as if you're running steam with those arguments
however you aren't
this does not start a new process
it parses them in the current steam process they just reuse the deranged syntax
If you pass in a binary path other than steam nothing happebs
and it doesn't have the same delay you always get when running the steam binary to execute a uri
since it never calls into the updater
HOME="/path/to/exec args # "
ez injection
doesn't work
oh it ignores other paths
it's not a shell, it's not running a process
i see
steam parses this as if it's steam's command line options but it does it in the already running process
How to i install it
oh my god
vns
The reason for this tho is
for the open url one
if ur url has quotes
it breaks the url
it's not my fault lewi merged early without proper review
it's not your fault i got no response for two weeks after pinging you multiple times for any kind of response even if it's a delay
my understanding of pipes means that what is being described here is impossible
O_NONBLOCK has to be set for the underlying calls to be async
but from my understanding of how the steam pipe is set up it doesnt have this flag
if you have steam installed on your pc just run it and that file shows up and you can poke around with it using echo -n iirc
I think the real reason it's like this is
when you run that as a normal command
the steam binary starts
sees thst there's another instance
and writes it's own entire commandline into that pipe
to let the already existing process handle parsing it
the way this system works is a bit strange
but yes, my understanding is you cant cause a race condition because unix itself will block the engine from making the write call
until it is read by steam
hence it is safe to merge in its current state and i see no issue in doing so
i did do my review
:p
it's a file you can write stuff into, and then you can read the stuff from it in the order you wrote it. when you read the stuff, it disappears from the file.
in technical terms, it's a byte queue in form of a file
like i said, writes are only atomic up to 4k so you might be able to cause a race condition with larger than 4k writes
i do not see this 4k limit in the manual, where did you read it?
and why even speculate on things we don't know if we could just write it safely by using writeFileSync
Pipe Atomicity (The GNU C Library)
then change it
don't rush merges, you already also rushed the start minimised pr 
the way that is worded is strange because the actual manual page is described as "if the pipe is full, then a write(2) will block or fail, depending on whether the o_nonblock flag is set"
IF YOU PURPOSELY IGNORE ME FOR TWO WEEKS I HAVE NO IDEA WHAT TO DO
but here it's saying if you hit the pipe_buf then it'll just let you write more but it wont be atomic? so.. what?
that sounds like it violates unix spec if it does that...
what is rms smoking
relax
i also have other things to do
i actually thought this one was fine after looking through it, thats why i merged it because i looked into how pipes and stuff work before i just forgot to comment
https://man7.org/linux/man-pages/man7/pipe.7.html src btw so that it doesnt sound like i made it up
i do as well and when someone asks about a pr i tell them I'm busy with other stuff and I'll get to it when I can, sometimes an approximate eta
i don't just completely ignore their question for weeks

i wonder if this is a glibc thing?
because this is the actual behaviour in the kernel
in which case, fuck me that's stupid if the libc does that
in Unix terms, a named pipe is a pipe that's named (has a path). Unix already has pipes, but they are ephemeral: doing curl | less makes a pipe from curl to less, but if you had a named pipe pipe, you could do curl > pipe & less < pipe which is equivalent
they dont seem to have any technical information on how the steam pipe works, beyond that steam itself uses it if you run a duplicate instance to forward the command to the original instance (which is actually quite smart im going to steal that idea)
if multiple applications write to the pipe, assuming libc's explanation holds true, then it will simply just wait until each program finishes writing before allowing another to do so
in 4096 byte chunks
if an app goes over that limit, it means another app might be able to inject data into the pipe at the same time
in which case, you're fucked anyway
if not, then your app just carries on with its write call
i also tried 100k
yeah
lolw rong video
there doesnt seem to be an attack vector here, just a data corruption vector if steam itself decides to try and write something
like even taking the worst case scenario into account there isnt anything really particularly bad that can happen
seems ok to me
actually nvm?
hm?
correction to the assumption then
it means another write call can go through
in which case this is still a data corruption thing, since itll just fuck up the order of writes non-deterministically
i tried again with writeFileSync and it doesn't happen
since it wont run the write calls on the thread pool
itll run them on the main thread
so the order becomes deterministic
that does make sense but what happens during that? does the entire app pause until the writes go through?
yes
in which case
what if something isnt on the other end
you just crash?
since fifos need to be read
or just use a promise queue
if steam goes down your app goes down
that's how the gamescope session works
impossible condition
import { writeFile } from "fs/promises"
let p = Promise.resolve();
function writePipe(content) {
p = p.then(() => writeFile("/tmp/pipe", content));
}
writePipe("a".repeat(100_000))
writePipe("b".repeat(100_000))
writePipe("c".repeat(100_000))
writePipe("d".repeat(100_000))
writePipe("e".repeat(100_000))
ig
heres how to do it with promises
promise queue is probs the best way
lets patch
you will do
lmk when done and I can test
let me get food forst
this is how vencord settings saves work
**ipcMain.ts: **Lines 123-125
ipcMain.handle(IpcEvents.SET_SETTINGS, (_, s) => {
settingsWriteQueue.push(() => writeFile(SETTINGS_FILE, s));
});
WTF IS A VODKA SANDWICH
does the vencord injector script thingy available in the dev env have some support layer for vesktop?
injector script as in pnpm inject
LMAO WHAT IS THAT
scroll down in vesktop settings
SORRY WRONG REPO HJUHTGVHJ
sorry wrong repo
2ff284f fix: use promise queue to ensure write ordering... - lewisakura
@placid wave test when free
9d1aeaa fix: promise queue derp - lewisakura
[see discussion in discord](#πΎ-core-development message)
are you telling me vesktop has been loading the default vencord files also used for the vanilla client this entire time

yes!
yes
les go
rickblock 
Thanks
I was testing that and I clicked the wrong button π
Plugin that allows you to add Discord badges to your profile (client-side).
Full List of Badges
-
Discord Staff
-
HypeSquad Events
-
Moderator Programmes Alumni
-
Early Supporter
-
Early Verified Bot Developer
-
Discord Bug Hunter (Gold)
-
Discord Bug Hunter (Green)
-
Nitro Member
-
Server booster (All Tiers)
Screenshots
Not this again 
why do people just want more badges
ego boost
why do people just want more and more badges...
Brain rot
It's client side though?
You tell me, a few of my friends request it
does the userplugins dir accept tsx components just like normal plugins?
You tell me, a few of my friends request it
but just WHY
or rather, what is the diff between the two folders?
nothing
oh
self appreciation then
I'm assuming when pnpm injecting vencord
- the updater is not gonna be available
or - updating vencord through the in-app updater is gonna void local changes,
correct?
didn't have time to test yet, forgive me 
wait what happens if the user doesn't have git installed-
it doesnt work then
anyways, wouldn't git pull wipe local changes
doesnt do anything
no
if you have local changes in non-userplugins folder updating will just fail
oh so that's why there's a userplugins folder 
not possible
you can't build vencord without git installed
actually, i had an issue when using the devbuild with flatpak and it not being able to access git
Adds parity with native Spotify and SpotifyControls when it comes to the previous button, going to the last song if the song position is under 3 seconds, seeking to the beginning of the song if it's over.
ok right, but the prod built also got the updater 
oh
It's not about performance, IMO it's clearer - and it also won't break if an else is added.
I'm not a maintainer so it's up to you - or a maintainer once they see this.
match: /if\(!0!==\i&&!\i\.test\(\i\)\)/,
Forgot this, oops. this is definitely something the maintainers would want
The performance part was just a sidenote (as I said, I know it doesn't really matter), it's just that in my opinion removing the if entirely is cleaner... It's ultimately a matter of opinion so I'm gonna leave it up to the maintainers for now. Though your point that it will break when an else is added is fair...
(I also closed the other discussion, but the webhook doesn't show that it seems)
thanks for reviewing btw
you can take a look at my other MRs if you want
you
dont use the installer
you just point your vesktop install to your custom vencord
also rebased with main
[class^="reaction_fef95b"] .emoji {
AA here we go again (I should've just looked at the whole thing in one go)
oh
well then need to rebase again
and rebase all my MRs probably
I think I started all of them from main lol
oops
i meant [class^="reaction_"]
basically to match the start for when the hash changes
I don't
main and dev are currently at the same commit
good
but I will start from dev and rebase with dev from now on
I need to change the base branch in all MRs anyways
so this can change between updates? eh...
I assumed it's generated but constant
I need to fix my theme as well then
wonders of being new to thing
(in this case Discord modding)
done
and done
okay, gonna keep that in mind in the future
I just mostly use rebase instead of merge since it looks cleaner in the history
if it isn't a branch people would normally work on
When trying to reply to a user anywhere I get this error in the console
Uncaught TypeError: ll.store.userList.includes is not a function
at Object.shouldMention (index.tsx:60:50)
at N (WebpackModule363396:2:1944)
at onClick (WebpackModule823674:2:1903)
at Object.eN (72054.ccb12939fa7033320d60.js:1:753910)
at eB (72054.ccb12939fa7033320d60.js:1:754064)
at 72054.ccb12939fa7033320d60.js:1:772373
at re (72054.ccb12939fa7033320d60.js:1:772472)
at r...
not a vesktop issue. please use our support channel
yes but that implies only to main branch
not pr branches
not a vesktop issue. please use our support channel
And where is that support channel? I can't seem to find it.
Does Vencord have some fancy method that allows code injection into the electron backend (if available)

why didnβt you just
oh wait
i was posting the picture from the github convo
iβm stupid


you mean C++? 
welp, vencordnative it is ig 
what did you mean? there might be a way to do it but i probably wouldn't know lol i'm just curious what that cursed thing is
ohhh
isn't that against the whole fancy sandboxing thing (i don't know the word adsjashdkjsajd)
yeah, ig
uh i mean like it's impossible to require("child_process") from the rendering process for security reasons right?
yeah, the render process isn't even node afaik
so idea would be to use vencordnative to send an event from the frontend to the main process ig
.. event? idk what electron calls these
wait hol up
does vencordnative apply to vesktop or does that require some extra fancy cloned code β¨
yes
the vencordnative ipc thingy ig, right? 
native.ts file in ur plugin folder
err what
**index.ts: **Line 48
const Native = VencordNative.pluginHelpers.OpenInApp as PluginNative<typeof import("./native")>;
**index.ts: **Line 89
url = await Native.resolveRedirect(url);
What's the purpose of GitHub issues then? Is everything supposed to go to the support channel or are there specifics?
development and actual proper bug reports or feature requests. non vencord developers should always first use the support channel
it's quite simple
- add a
native.tsfile in your plugin. this file can have any nodejs code. it can also export functions that will be available to your plugin to use (via ipc) - if you exported any functions, you can use them as done by the OpenInApp plugin (the example i linked)
it's actually not that simple but i made the build script autogenerate bindings
vencord is very compiler powered its fire
there's more going on under the hood but you don't see any of it :p
yeah I've noticed
I was kinda suprised how easy adding a plugin was
normally you would need to
- register an ipc event listener in the main process:
ipcMain.handle("SomeEvent", someCallback - expose a function to invoke this event to the renderer in the preload process:
contextBridge.exposeInMainWorld("callMyFunc", () => ipcRenderer.invoke("SomeEvent")) - now it'd be available in the browser as
callMyFunc()
but the build script auto generates code that does that for you, all you gotta do is export a function from native.ts and done
oh yeah.. I've used electron recently (haven't in years) and to this day I don't understand why the exposeInMainWorld is necessary 
like yeah security.. but then just don't define an ipc handler for something you don't want the frontend to call
idk I'm probably just dumb
because there are other things than what we're doing that can expose stuff to the main world

contextbridge is a terrible horrible API that never should have existed
^
how
it's really good lol
Is there something in the existing vencord api that lets me run code every time a user types a new character into the message input?
Or do I have to figure out a way to watch the state of the react component for changes in it's text value
You are wayy over complicating it
Just get the input and add an event listener
Easy
If you want to modify it though then the react state would be best
I do it like this on my personal projects (which, keep in mind, I am the only developer for - I'm not experienced with collaborative git, though I heard people often use a similar approach):
- create feature branch
featurebased off master branchmaster - work on the feature and commit stuff to
feature - have some changes done to
masterthat makefeaturebe unable to be merged anymore - rebase
featureoffmasterand resolve conflicts - do further work on the feature
- merge
featureintomaster
that's why I just did the same thing here, unaware of that this project prefers master to be merged into feature instead of being rebased
what
our branch flow is the same except you replace master with dev
all work happens on the dev branch
then when its done, dev gets merged into main
we very rarely push commits straight to main
guess there's a misunderstanding somewhere then...
#πΎ-core-development message here Ven said that I should use a "merge commit" instead of "rebase merge" (which I think means merge and rebase, when translated from GitHub terminology to Git terminology, no?)
we dont use rebases because they cause issues
when we merge prs
and also it dirties the commit history
we use squash and merge
but that shouldnt matter
for feature -> master, yeah, that's what I do as well
you need to base your PR off of dev
not main
usually we will fix it for you if its wrong since we can do that
but for master -> feature I prefer rebase, while the project prefers merge as well (if I understand correctly), which I wasn't aware of
just use git pull
it will create a merge commit
it'll get squashed down
dont rebase
yes, that part I get now, my master is your dev, not your main (this layout is called Gitflow I think)
yes, except we dont use release branches
nor do we use hotfix branches
main is preserved to the best of our ability to be the golden standard release branch containing the latest version of vencord
dev is the next version with new fixes and features
yeah that wouldn't much sense in a project like this would it
i mean i dont really see the point of them in the first place
maybe its just cause im not an enterprise developer
that's for corporate/big projects where you support multiple versions at once
true gitflow is an extremely complicated solution that i have never really seen used in the wild
i mean at work we use a single branch via svn and that works just fine for our dev workflow
but anyway
if I use git pull while feature is checked out it'll just pull from origin/feature, not upstream/dev (where origin is my fork, upstream is the official repo) since that's what it tracks
to create a merge commit I'd need to git fetch upstream then git merge upstream/dev
do git pull origin master
you mean upstream?
(where
originis my fork,upstreamis the official repo)
I don't know what it'd do without checking the docs but I guess it's just fetch-then-merge but shorter
git pull is git fetch && git merge (there are rules internally for if it does a fast-forward, rebase or merge, but it basically boils down to this)
you don't force push in feature prs
feature prs are squashed into one single commit once they're merged into the main branch
so the history in prs is irrelevant
force pushing makes it harder to understand how the pr changed over time and messes up reviews
okay, so the project does prefer merge here. understood, won't do it otherwise anymore.
somehow I never realized it but yeah this is true!
i mean the first line of the docs gives it away
Fetch from and integrate with another repository or a local branch
i do recommend reading all of the man pages for git - as boring as they are it gives good technical insight into why certain things happen or break
I always just used git pull for one thing only - update the current branch from a remote. I didn't realize "update the current branch from a remote" actually means "fetch the local copy of the remote and rebase the local branch off it"...
the only parameter I ever used for git pull was a origin-http remote that's just the regular origin but over HTTP lol
for more complex stuff I always fetched then rebased/merged
(the reason is school firewall if you are wondering)
(they block TCP 22 for some reason jfkdlas)
also sorry if discussing with me is a pain, the language barrier hits me hard during technical discussions
well, honestly any discussions
mine english no good sory
only the ppl who have like perfect english say this
always i swear
None
None
None
None
None
None
None
None
Does anyone know the flux event for when someone accepts your friend request?
look through the list of flux events and you'll likely find it
oh yeah i got it: RELATIONSHIP_ADD
that contains blocks and stuff too
this seems to trigger once you wake up windows from sleep, after restarting vesktop its fixed.
how do i get past cors
specificallyl
other ones like wikisearch send requests to wikipedia fine
figured it out (i added all the access control allow origin headers + the ones need for the options request)
use https, pisscord allows https connections to localhost
is pisscord vencor
I mean it's in the stock discord cors list
so shouldn't really matter (it should work with Vencord)
That was my first try. I added an event listener for the "input" event to the contenteditable div that is the input field, but it did not work
I am trying to create a charCounter plugin, that let's you see how many characters you wrote, so you see if you are over the limit, and by how much
patch the component that displays char count when you're near/over the limit to always display
Ryan already made a chat counter plugin
wasnt it the evil ryan
also instead of using input event patch the slate wrapper
the Ryan who got banned
is there some way to register custom settings tabs?
there sure is
i think that completely replaced the char counter for no reason
(inside the vencord category)
ah i see
the settings core plugin got a makeSettingsCategories(SectionTypes: Record<string, unknown>), but that doesn't seem to do anything on my end
not sure where/how I'm supposed to call that, doesn't seem to be doing anything by itself
wait hold up I think I'm stupid
I didn't see the patch
ok err
super simple question, but I'm dumb 
how do I only replace the second match group of a patch regex
copy paste
wdym
can you show your patch
tbh I got no clue what I'm doing, there's probably a better way to do this without modifying the core plugin
/onClick:.{0,20}=>{(await..{0,100}"Update Success!".{0,200}onCancel:\w}\)}\)\))}\)/
I'm basically trying to replace what the update button does, and this is probably the worst way to do it 

what
what
wait hol up what am I supposed to put into the "find" thingy
ok I'm clueless by now 
patches: [{
find: 'Update Now', // This prepends the check button, so I thought I might as well use that for now
replacement: {
// match: /onClick:.{0,20}=>{(await..{0,100}"Update Success!".{0,200}onCancel:\w}\)}\)\))}\)/,
match: /onClick:.{0,20}=>{await..{0,100}"No updates found!".{0,200}}/,
replace: "onClick: () => (console.info('test :3'), $self.forceUpdate(), $self.reloadPlugins())"
}
}],
```idek what I'm doing 
you cant patch vencord's code lmao

csp != cors
why would you modify vencord itself in a plugin
I felt like overriding the files itself would break the entire thing if they ever get breaking changes 
unfortunately no π
one day tho...
π
can you use Vencord plugins in Vencord tho
does someone know how i can get the messages when you go into a channel
i wrote a voice message transcriber and im watching for message create but that means it doesnt work on old messages
Discord recently introduced a "Capture Devices" option to screen sharing that allows you to directly stream the video and audio of a capture device such as an external capture card to a voice channel / call.
It'd be great to see this implemented in Vesktop, if possible.
maybe i can hook into the voice message renderer or something?
is there another plugin that does something similar that i could look at
that'd be the cleanest way
use react devtools to inspect them and patch
there are services for that
ofc firefox has absolutely no support for it lol
all browsers that implement it via an api
aka you're sending your audio to a remote server
ig mozilla either didn't like that for privacy reasons, or don't have the resources to do so
makes sense
somewhat dumb question
is it possible for vencord to inject into Activities? if so, how difficult would that be?
I'm half tempted to see if I can modify the Watch Together activity since I don't wanna use it if youtube can track my watch habits and tie them to my discord account
I saw an invidious plugin in #1032200195582197831 but i dunno if that same functionality can be extended to that degree
very easy









