#๐พ-core-development
1 messages ยท Page 153 of 1
ty
funi stubs
**VencordNativeStub.ts: **Line 45
uploadTheme: (fileName: string, fileData: string) => DataStore.set(fileName, fileData, themeStore),
this is me not updating the stubs
this needs updating
we likely also need to migrate old stored values
right
it doesn't? :c
nope
we cant bundle the compilers cause they're fat
and usercss is being taken from a browser extension
so just use the extension
xd
i mean we absolutely can bundle them but its useless cause like... just install stylus
ye
why use vencord for it when u can have the real deal
I mean... yeah ig lol
the only thing vencord has an advantage over stylus with is @vc-requiredPlugins
since it flags up a warning on the theme card if you dont have a plugin enabled
but that's it
it's basically just a worser implementation of usercss
than the ext
is there even any way to do this
i dont think flatpaks have the power to restart themselves
sure
do it in the launcher script
instead of exec
there was a proposal but nothing was made
run vencord as a child process
too complicated
then if it exits with a specific exit code
it runs it again
steam client does that
the official response is either what aa just suggested or tell people to restart
not a bad idea what aa said
wait, you have the current version in your personal fork... I got it from the main repo
we already have to write a wrapper
yeah the one in the repo is uh
wrong
the branch was originally in my fork
before i had contrib rights xd
btw
it shouldnt be too difficult
@austere talon
insane vulkan error happens literally everywhere
it means nothing
it even happens on steamos
i have never experienced this in months of using it on windows and gnome (fedora)
potentially a kde issue?
in any case this is basically impossible to debug (since i can't reproduce) and there's likely nothing we can do anyway, since if it doesn't work consistently, there's an issue with the underlying implementation, sorry!
thus i'll be closing this as wontfix
that error is literally no driver found ๐ญ
yeah it works now
flatpak's can't easily relaunch themselves due to flatpak limitation
a potential workaround would be to make the vesktop launcher script start vesktop as a child (instead of exec like currently) and check if its exit code is a specific predefined "restart" code, then relaunch that way [as suggested by AAGaming]
@austere talon@austere talonbomb
venmic broke again
on steamos appimagem
maybe works in shitpak
OH
right
you said it was broken
im fucking stupid
my fan went racecar engine mode when i opened that issue https://github.com/Vencord/Vesktop/issues/191
igjore
wait wdym?
yop
LMAOOO it shows yomih as "Godot Engine" in the audio list
works
love
oh god
i think the sound is delayed a tad
its delayed
like 0.4s
@austere talon HORROR
r u using bluetooth headphones
no
might be firefox thing lemme try jrome
drome wont even load the screenshare
rtc connecting
we love jrome
oh @austere talon usercss doesnt work in web anyway, im fairly certain most of it gets shaken out
well, a decent amount
compilers obviously will never get loaded since usercss is behind a !IS_WEB || "armcord" in window guard
lmfdao
yeah it syncs in chrome
we looove firefox webrtc
so good
very sane implementation
ayy i also fixed the being muted every launch
{
find: '"MediaEngineStore"',
replacement: {
// eslint-disable-next-line no-useless-escape
match: /=\i\.supports\(\i\.Features.AUTO_ENABLE\)/,
replace: "=true"
}
}
// eslint-disable-next-line no-useless-escape
kill
@turbid hatch hows https://github.com/Vencord/Vesktop/pull/282 going btw?
i wanna make a release soon and dont want the broken start minimised implementation in it
this is /usr
actually let me just revert the commit for now
This reverts commit 40b952d8bf75d437b2e6425c2a116ddead66c3f7.
2f35128 Revert "feat: Add start as minimized toggle to ... - Vendicated
didnt have chance cause of other stuff
when you release silly
hehehehehe
so what's the point of a virtmic if sinks are added to the voice engine device itself?
i have it setup like this and it appears to be working?
yeah it is working
what?
i meant chromium input in the screenshot
when i start a screenshare with audio two inputs are added
so there's no point in a virtmic
there is
oh
chromium can't record arbitrary sources, only microphones
oh i didn't know that
when i just routed the source itself and hooked up the monitor to my headphones i heard sound
try it yourself, run await navigator.mediaDevices.enumerateDevices() in devtools and see what it returns
also the stream should be stereo, yes?
tested it, no it is not
unfortunate
welp nevermind
not possible
what about vencord on the discord app, not possible to implement the virtmic and sink addition?
others have probably asked this question before, sorries
search for keywords that you think might help
i cant find docs though
Upstream has merged the fix recently at https://github.com/OpenAsar/arrpc/pull/57 which should retroactively resolve #245
why are we waiting for that pr? according to the first link it should already work, no?
Because it doesn't work and glitches out (background will become black and there is heavy ghosting on UI elements)
When streamer mode is on, you can only see the first letter of usernames with 3 dots afterwards. Now, if you have this plugin enabled, usernames are censored in the same way:
@Vendicated
you should use Vencord's notification api instead of making your own
if you want additional features, edit it to add them; but the first two options you state are already native features and the opacity can easily be done with cssJust adding on this after some further deliberation on the best way to handle this following your suggestion, I did some work locally on improving Vencord's notification API to support the features that I need for this plugin howev...
@crystal walrus https://x.lewisakura.moe/23/12/Vesktop_2023-12-28_13-20-56.mp4
will this work
hm
hm?
can you show me what you mean
oo i see
let me take a look
i wonder do we actually have those

probs
just need to find it
where'd you get these from
just so i can grab them myself
ty
they look close enough to discord's icon set so

@crystal walrus
fire
pushed
you can edit the json manually to cause invalid settings but it just makes it fail validation so in the end nothing actually breaks
it just doesnt parse certain stuff
if you add extra settings or remove stuff it'll ignore it too
so you can make tiny settings snippets if you want
for example
{"numberVar":"10","selectArrayVar":"Arial"}
also you might like this
@vc-requiredPlugins ThemeAttributes
it used to just be a warning but ive made it a proper error now
it wont disable themes already enabled if you turn off the plugin, but it'll prevent you from enabling/disabling them until you fix it
also added vencord variable during compilation
so you can do if vencord { } stuff in less and stylus
less useful in uso and default css
but i hope client mods adopt it xd
do not webpack search inside components. webpack search is very expensive (multiple milliseconds) so doing it inside a component that will be rendered hundreds of times will add considerable lag. move it to the top level with findStoreLazy
copy to clipboard is yikes
make save to file
and load from file
like settings sync
I'd do both
these are just to share settings between people mainly, they're already synchronised through the settings sync feature
@austere talon I cant even talk in fork channel inane
yop
giive perm
kid named dude: 
@valid whale
@turbid hatch wanted to test your usercss on Vesktop, it broke for me in the same way as web before lol
the error is in the same place
er
I have no idea lmao
sure
and filename
content is undefined lol
the file itself is an old version of Compact++
I think I should consider a career as a software tester
I just look at some code wrong and it breaks
pr's that have likely been abandoned (no update since rspack and either have unresolved reviews or were obviously broken by it)
open: #1728 #1721 #1719 #1573 #1452 #1324 #971 #966 #947 #534
draft: #1348 #1563 #1773 #1114(could def be brought back as the issue making it a draft was fixed) #696(is this still happening?) #553
doesn't include prs that are waiting for a review
might group all prs into abandoned and waiting for review tmr if i have the motivation
thats helpful thanks
will likely close most of these to tidy up prs a little and make it more manageable again (they can still be reopened if the author wants to update them)
None
None
None
None
None
None
None
None
Discord Account
kyuuhachi
What happens when the bug or crash occurs?
Toolbox actions are present in the Vencord Toolbox regardless of whether the owning plugin is enabled or not.
What is the expected behaviour?
They should only be present if the plugin is enabled.
How do you recreate this bug or crash?
Define a tiny plugin with a toolbox action:
import definePlugin from "@utils/types";
export default definePlugin({
name: "0_Example",
description: "S...
right
im sorry if this is a bit of a dumb question but when you say "top level" do you mean outside of the try-catch loop?
top level means outside of any scopes. so above your plugin definition, not inside any scopes
@placid hinge hii do you still have the source for this icon https://github.com/Vencord/Vesktop/blob/main/build/icon.icns id like to add it to vendroid but i want to make it an adaptive icon so i need the layer data
what the hell is that nickname
sanest discord user
reminds me of me trying to download russian music and windows or whatever ruining the encoding so it's just gibberish
hai @austere talon
thanks
@placid hinge wuts that username lmao
uh hello
i saw the plugin review db that was removed from vencord because of harassing and Vendicated requested the owners to add a feature so that users can remove reviews from their own profile and looks like the owners were not interested
well, i was just looking through the ReviewDB code and i found that its really simple to add that feature
its like one more line in a codeblock
i wanted to check if the api hosted by the owner is still working
and it does
the api wont just let you delete reviews even if you add the button
otherwise that would've been done a good while ago
do you think its about hardness to add that feature ๐ฅด
its not really hard I just didnt want
oh
well
do you mind if i recreate the api from scratch and use the same reviewDB plugin code?
oh it is?
but there is a possibility that I will add the feature and readd to vencord (if ven agrees)
I just dont want to mess with moderation atm because of universrity
also I will be totally honest
I dont really like someone rehosting the plugin/backend/idea at least I created
its alright, totally understandable
i was just bored and i wanted to try something new
yeah understandable
If you resize a captured window, it will freeze the screen-share, but audio still plays. However, this only happens when using the "windows" option in the screen-share; capturing a full monitor/desktop does not freeze the screen-share when resizing a window.
There's an open issue on discord-screenaudio as well, which I assume your implem...
h
is there any function for plugins to open a private channel but with no user id
i mea, i dont want to open up a dm with a user
just an empty private channel
an alternative would be to create a gc with just yourself
but thats unrelated to vencord dev
is there a way i could use the vencord dev cli installer with sudo on wayland?
why the fuck would you want to do that
also you'd be patching the discord installed to the root account
i cant use the gui installer on wayland since it requires root to patch my discord installation
you can use the gui on wayland too
it downloads the x11 installer even though i am on wayland
yeah it appears so
it should download the wayland one https://github.com/Vendicated/Vencord/blob/5dee2e8549de195f7bdb213ce7bb7f6dde840811/scripts/runInstaller.mjs#L41-L42
**runInstaller.mjs: **Lines 41-42
case "linux":
return "VencordInstaller-" + (process.env.WAYLAND_DISPLAY ? "wayland" : "x11");
if i run it without sudo it gets the wayland one
but with sudo it downloads the x11 one because sudo messes with wayland display stuff
i believe the regular installer allows setting an enviorment variable to set a custom vencord source location maybe try that?
stop using that horrid image host please, so much wasted space
"BSY" close whatever is still running the binary
sorry ><
tyy it worked <3
hey is it possible to add third party plugins to the browser extension for chromium??
build vencord with pnpm buildWeb
assuming you already have the whole third party plugin thing done
its already done!
thanks for the help!
nothing really, I've just been messing around with the code a big
insert plugin native shenanigans

.. oh yeah all I did like a week ago (I tried overriding vencord stuff) was create a crappy plugin loader cause I hate having to manually recompile vencord 
is it cursed? yes
does it (barely) work? yes 
mostly just working out what plugins need and automagically generating the code for it internally when compiling so that the developer doesnt have to do anything, which is also why writing an external plugin loader sucks :p
I've noticed that I get irrelevant definitions, so I made these changes:
Before, API gave only 10 results and the plugin chose the first result:
After, API gives the number of results you put in the settings and the plugin chooses the result with the most likes:
P.S:
These change...
Since you're updating the plugin, can you also add a README.md to it as well?
Use definePluginSettings. The options API is deprecated.
Switch to your local settings object after switching to definePluginSettings. Also, you shouldn't need to do || 10 if you have a default already set.
The bit after the description doesn't really make sense. Are you trying to say pros/cons? If so, it'd be better to reword it into a sentence in brackets rather than shorthanding it:
description: "The amount of results you want to get (more gives better results, but is slower)",
Is it possible to have find: be a regex? I'm trying to match /'\{"use strict";\w+\.exports=\{(\w+:"\w+",?)*\}/, or in other words all modules that define class names
no
just use .exports={
you can set noWarn to true to avoid warns for unmatched modules
So basically match way more than I actually need?
Good enough I guess
Does it patch all modules that contain the substring or only the first?
re: it looks fine to me, and channeltabs has been open and maintained for a long time now
i think its time to give the people what they want
(also i desperately want it xd)
Code duplication no bueno, just call stop() and start().
Use definePluginSettings, the options API is deprecated.
lol the ChannelTabs thing looks incredibly funny
is it possible to add a vencord plugin that allows you to set a folder for audio events (or can i make one and send it in for review)
i feel like that specifically would be fairly easy to implement with respect to futureproofing, as all you would need to do is change a relative path
Unfortunately it seems changing all class-definition modules from exports={foo:"foo_123456", ...} to exports={foo:"foo foo_123456", ...} causes a bunch of crashes
Too bad, would have made styling significantly easier (and possibly more performant)
(or can i make one and send it in for review)
feel free
worst case it doesn't get merged
there seems to already be one
that didn't get merged
so i'll hop on that one
surely vencord development isn't terrible to set up
it's pretty easy even if you don't normally do JS (I don't)
if you do I imagine you'll feel right at home
eh, i dont all the time but i know JS enough to make do
though there seems to be an ongoing war between Node developers as for which build system is best
yeah
Vencord uses pnpm, I've seen yarn and npm used before
also something else but I forgot the name
I've never made anything large enough in js to need any package manager :/
Just <script src="cdn link">
tbh, pretty much same, but still learning how to use it is very valuable
just from a "i will probably need this in the future" stance
oh
is plugin CSS really imported over QuickCSS...?
is it a bug?
(should I open an issue about this?)
Looks like normal css specificity shenanigans
If reordering the stylesheets does indeed give quickcss priority, that sounds like a good improvement to me
yes, that's how CSS works
that's how it is currently
ordering it like this fixes the issue
they should be like this
they are on desktop
if they aren't on userscript / browser then that's a bug
ok so it is a bug
I get that order too, on userscript
ok so I tested on Chromium (I initially suspected browser differences)
the extension imports CSS straight from it's resources
and that makes it have the correct order
the userscript adds the whole CSS as a node (since well, how else would you accomplish this, userscripts can't have resources) and the way it does that messes something up
it's just race condition
None
None
None
None
None
None
None
None
I made some new CSS for the ChannelTabs plugin, so it can be easily adjusted for a compact layout as well (sizes taken from Firefox). should I suggest it in the MR when it's done?
Discord crops the preview weirdly, huh
also found a bug - the folder icon is black when using dark theme
also, it'd be cool to be able to open a new tab by middleclicking on the empty area
also not sure if having a compact layout toggle would be in scope of the plugin, or should it be done with QuickCSS?
it kinda makes sense to have this I think
This issue is universal to wayland on multiGPU systems I've found, everything is affected. OBS, all screen recording applications, any share of windows. If it exists across two GPUs and requires encoding to be done you will suffer.
Not sure of the cause but typically linear memory formats are utilized to blit an image across multiple GPUs however something even stranger is going on here as it comes with a performance penalty but should NOT be this slow, this is a HARD choke somewhere on th...
This issue is universal to wayland on multiGPU systems I've found
itโs definitely not a multi-GPU issue. I am experiencing this issue with a single GPU (Radeon RX5700, if it matters). My CPU is a Ryzen 5 3600 that does not include a GPU.
I am using Wayland (Gnome), however, so the cause/solution might be there.
Confirming not a Multi-GPU issue, my laptop has two GPUs and I do not have this issue.
well yeah, but either I'm missing something or vsc picked up the native typings even before building
this is only a problem with the flatpak it works fine for me with the appimage
anyone have a badges plugin
please provide more info. how are you trying to upload, what happens, are there any errors. attach a video
Confirming also not a gpu issue, strictly using a discrete GPU here
#1185327646415003658 message if i did a pr would this plugin get merged potentially? ive never published a plugin before so idk how it works lmao
p sure lumap pr'd this but declined and turned into console snippet
it could be made part of emote cloner
That's not a bad idea
PowerToys CropAndLock
opened a new pr because the other one had unrelated commits
i hate git so much
Eventually you'll figure out which subset of commands is less likely to break things

maybe we should have a whitelist and blacklist thing plugins can use
for channels guilds and users
it would make the setting component automatically
and could potentially add context menus too
true
and of course it would be better than just some id inputs ๐
one combined context menu
Whitelist
[ ] Plugin1
[ ] Plugin2
Blacklist
would go nicely with an array/table setting component
nah
better than that
a proper selector for guilds and channels
and users
not just manual id inputs as I said
lots of plugins could benefit from it

effort
tbf the ui shouldnt be too hard
eh kinda
optimally you'd want search and stuff
and good luck with making the user search
cache will fuck you over and people will complain they can't find their friend xd
I don't think its ever been a multi GPU issue, OBS works perfectly for me (5800X has no iGPU & 6950XT). It's clearly just a lack of proper hardware acceleration for encoding the stream.
Not a Wayland issue either, happens on gamescope which uses X11 (Steam Deck) too
you should because its not something we can reasonably fix unless someone wants to spend hours making vesktop not use the web media engine, whether it be making own media engine or mangling the normal desktop media engine to not need discord_voice
web media engine is so negelected and the packet order bug shows that it is
i do think theres something with webrtc that is bottlenecking here
this is only a problem with the flatpak it works fine for me with the appimage
This sounds more like a flatpak permissions issue since this happened to me when i started storing my stuff in a external drive, remember that flatpak apps will just have access to default public home folders like Downloads, Pictures, Music and Videos; this means that Vesktop (as a flatpak app) wont be able to access anything else but these folders (unless you attach the file manually using the plus button in ...
I don't think its ever been a multi GPU issue, OBS works perfectly for me (5800X has no iGPU & 6950XT). It's clearly just a lack of proper hardware acceleration for encoding the stream.
I can confirm it's nothing related to since on the demo video I've provided you can see that OBS works perfectly fine
please stop leaving unproductive replies, you're just spamming both this issue thread and everyone's inbox. i don't wanna have to lock this issue
refrain from leaving further comments unless they are actually productive, for example if you found a relevant chrome bug thread, or if you found a solution
yes, its typed
oh this is a bug in theme loader itself
ill fix it
works consistently on windows and lgtm
30bc979 feat(Urban Dictionary): Chooses top rated defin... - jewdev
shit
didnt see it wasnt based on dev
god damnit
fucking mobile
ugh
now i gotta
fack
@austere talon can you turn off branch protection temporarily
i need to force push main to fix my error
yes'
i need to remove a commit
and move it to dev
hence why i am asking you to remove branch protection temporarily
:p
you cannot
you dont
what
how do you expect to be able to force push to main
it will break everyone's updater
just leave it there it doesnt matter
mkay
now i gotta fix my repo

ez fix
git fetch origin git reset --hard origin/{main,dev}
None
None
None
None
None
None
None
None
@crystal walrus should be "fixed" on the fork, it'll disable the themes that are invalid after complaining once
are vencord plugins run in web context or node
web, but can expose natives
i'm trying to make a plugin that allows controlling discord via HTTP endpoints
so essentially a http server that is always running
do i just import the module after pnpm add?
you want to run a http server in the browser?
well your specific use case requires native -> renderer, which is unusual
ipc as in the electron apis?
yeah
so i have inject code into the asar then
no, we already have a natives system
dont think your plugin apis support that
we have stuff we have to do over IPC
where do i add the native code in another file?
the plugin IPC stuff i think only goes renderer -> native (callbacks of course), so you have to write it in a different way
**DesktopRecorder.tsx: **Line 25
const Native = VencordNative.pluginHelpers.VoiceMessages as PluginNative<typeof import("./native")>;
**DesktopRecorder.tsx: **Line 55
const buf = await Native.readRecording(filePath);
they need to run a webserver, so it would need to be the other way vee
also i highly recommend you use vscode, not intellij
unless they queue up on the native side and then the plugin constantly requests via IPC
but that seems inefficient
you can just eval code in renderer. pretty simple
webstorm is so much nicer ๐ญ

i am unsure how that would solve the problem of going native -> renderer
nah thats bad just send json payloads
rather than renderer -> native
thats exactlly how you go native -> renderer
your right web server lives on native
the web server then calls the plugin on the renderer side
yeah i dont quite follow
server.handle((req, res) => {
const json = getJsonSomehow(req);
mainWin.webContents.executeJavascript(`Vencord.Plugins.plugins.YourPlugin.handleMessage(${JSON.stringify(json)})`);
res.status(200);
}
shesshhh
AH IS THIS THIS YOU MEAN
Customize the rendering of the current web page.
oh
yeah
lmfao
it is
you beat me to it
as safe as this it's still very scary to read
so what im trying to do is, request received(payload contains user id of the person you wanna call)-> start vc
this isn't ideal, normally you'd mainWin.webContents.send("MESSAGE", JSON.stringify(data)), and then register a listener in preload. but plugins have no access to preload, so eval is the second best thing
ngl the vencord plugin api is really nice
full documentation soonish
only call or also other things
they said a general control so i assume other things too
but you can write "hooks" in the plugin definition that you can eval-call from the webserver, if you parse it on that side
or you can parse it on the renderer side
both works
yeah
need
the JSON.stringify makes it safe

i already gave you everything you need
I hope you can't do anything with __proto__
working on ittt
u shouldnt be able to
there's not really much you can do to begin with but stringify strips out __proto__ anyway
since it cant serialize it
it doesnt actually
does it not

but you wouldn't be able to put code right since json obvs doesn't have functions
is there a pnpm run dev or do i have to relaunch the client everytime i make changes
but theres not much u can do
build --watch
JSON.stringify removes all functions
and reload using command+r right?
not even
ye
you can pollute the returned object's prototype with random shit but like
it doesnt do anything
instead of it being passed through to the getter and setter
did it
which means that, in the case of a poorly defined website
{
"user": {
"__proto__": { "admin": true }
}
}
now i need to figure out how to call a function in renderer form native
yes
but it actually happened!
you are stupid
(/j)
yes u can do that but that doesn't do anything unless you're dumb and trust the object xd
I just called you stupid and it's fine because I used a tone tag! (i hope)
im trying to remember it but there was a video essay from liveoverflow i believe that actually described this vulnerability in a production web app
from some big company
which a lot of people do xd
its stupid
please use a validator like ajv
๐
if my plugin uses another dependency do i have pnpm add?
i mean
like what's the proper way of doing it
if you really need the module
idk but i feel like each plugin should have its own package.json
its a mix, there are some poorly made libraries (several) that will read __proto__ and do stuff off of that
monorepos
you must not trust __proto__
- no, our bundler bundles everything into one file anyway
- your plugin will definitely not get merged anyway
horror
why wouldn't it get merged ๐ญ
some people might find it useful
this commit makes me feel bad
but idk a better way atm
im on the other side of the drunk programming curve
not on it
:(
why clone
to prevent modifying the array during iteration
why
does nodejs not have the same issue where if you modify an array during an iteration it causes skips and weird things to happen
hm
i could remove after the iteration i suppose
thatd work too
use a temp array to store what needs to be removed
if u go by index yes but u dont
im using splice
youre not using indexes
the best way to do this kinda stuff is using a for loop that starts from the back
for (let i = arr.length - 1; i >= 0; i--) {
if (someCondition(arr[i])) arr.splice(i, 1);
}
wait
what happens if i reassign Settings.enabledThemes whilst im iterating over the destructured version of it
i assume it updates still right?
cause its the same reference to the proxy obj
why would you not just do arr = arr.filter
cause we're encountering the issues as we're iterating
that too lol
otherwise i have to fetch theme data twice
and that seems a bit antipattern
i dont really know the ideal way of doing this unless i iterate backwards i suppose, but then that creates an illogical sort order for theme loading
actually i suppose there is no theme load order
the last enabled theme should be the first to get loaded i guess?
so i could iterate backwards
seems fine
its working i know what to do
Just be careful of vulnerabilityโs
I feel like that could be very exploitable
This plugin allows users to control their Discord client via HTTP endpoints, currently there are two endpoints:
/start-vc: used with userId query param to start a call with another user
/end-vc: used to end an ongoing voice call
No code is executed dynamically which means there's no way to hijack the client remotely, server only runs on localhost(port 1675 by default), security should be okay!
Use cases:
- Raycast extension for controlling Discord(...
{isOutdated ? (updates.length === 1 ? "There is 1 Update" : `There are ${updates.length} Updates) : "Up to Date!"}
what is this โน๏ธ
why are they not using findByProps("selectVoiceChannel").selectVoiceChannel("channelId")
and findByProps("selectVoiceChannel").disconnect()
Me when I install a program that spams 1675 with start vc 
your plugin will definitely not get merged anyway
Whatโs the point in this? Especially the start-call like itโs gonna take longer to go to the user, right click and copy id then type the command compared to clicking on the user which tbh you are probably already have, and then just simply click on the button
they literally explain in the description
what's more worrying is that it's literally XSS
cause they entirely ignored my code samples
Ohhh yeah
Iโm just on mobile so I didnโt really look at it too much
[as i mentioned on discord previously](#๐พ-core-development message), this plugin will not be merged because it's way too niche
i will still leave a few review comments because there are some serious issues
don't use dom. you can grab this func from webpack, for example via findByProps("selectVoiceChannel")
instead of doing this, rename ur plugin folder to *.desktop and it will only be included on desktop
don't pollute the window. you can access your plugin via window.Vencord.Plugins.plugins.PluginName
accidentally ran pnpm audit --fix, you can discard these changes
do people have ideas or something for how a vim keybind plugin should work
feel free to ping me
i would use that frfr
is there a built in way to get the user auth header?
im trying to make api calls from the client to
https://discord.com/api/v9/users/@me/collectibles-purchases
RestAPI.get("/users/@me/collectibles")
wow thanks that's what I wanted to find
npnp
uh?
did you install dependencies
for vencord
alternatively try renaming the file to something other than index.ts
i did
or if its a plugin with multiple files make a subfolder and put it's files there, dont throw it in the root of userplugins
User plugins usually go in src/userplugins/*/index.ts, not src/plugins/userplugins/index.ts
is there something i can call to restart the client?
same thing
kay
same error
what's the exact command you used to install dependencies
pnpm install --frozen-lockfile
is the issue only for the userplugin? if you temporarily remove it does vencord build fine?
let me try
yeah
its an error for only user plugin
it builds fine without userplugin
sec i need to check something
kay
Check src/plugins/consoleShortcuts/index.ts's reload and/or restart
oh awesome that works perfectly, thanks!
wait
in node-modules, discord-types is a shortcut folder
is it the reason its saying yk external?
huh
it has a shortcut icon but its not a shortcut
pnpm?
no that's normal it's a symlink
yeah no idea
damn
ye
pnpm uses symlinks to save space by having a centralized node_modules (aka .pnpm-store)
so you dont have to install say react everytime for every project that uses react (minus version differences but thats inevitable)
(Pnpm is the best)
Pretty sure Iโve gotten that before, try deleting node_modules and rerunning pnpm i
Currently trying to make messagelogger show a select bar instead of just showing all edits after each other
The functionality works great, but as you can see I'm no good at ui
Si;;y
make it a message accessory, look at the translate plugin
its just for simplicity and it makes more sense
i know my plugin isn't getting merged but how do you guys find these
looking through react devtools for components which might call the functions you want or just educated guesses
I'm not sure how to do state management in react, so passing state between the accessory and the message renderer seems difficult
To select which edit to display
are you modifying the MessageLogger plugin or making it a separate plugin
Modifying it
yeah then just
subscribe to the MESSAGE_UPDATE event and update the display every time its fired?
maybe combine the one already there with the new one?
two methods:
- you can search all code files by pressing ctrl shift f in devtools. just search by random keywords til u find smth interesting
- find a ui component that does what you want (like the voice channel component in your case) and use react devtools to inspect it. you can look at all props passed to it and jump to its source code. try looking at the onClick or the entire source and you'll see exactly what it does
right thanks
I made a plugin that creates a tarball of all webpack modules
Very useful for that sort of searching
Haven't posted it yet because no perms though
I can't get this messagestore stuff working at all
My current useState method is way easier
more context?
I'm making a selector for edit history instead of drawing it all, which wastes a lot of space. Someone suggested using the addAccessory api for it, instead of rendering free-hand. This requires communicating between the accessory and the message renderer, which I assume is best done via the MessageStore, but I can't figure out how to do that.
I tried ```js
MessageStore.getMessages(message.channel_id)
.update(message.id, v => v.set('currentEdit', n))
i think the way you did it is kinda terrible im ngl
i think it'd be better if you hid edits by default and then clicking the (edited) either toggles edit showing or opens a modal
That does sound better, yeah
Not a fan of toggling (wastes a lot of space, and is useless for comparing the differences between revisions), but modal sounds nice
is there any type of plugin that isnt allowed?
How i Can give suggestion to the dev?
would a plugin that updates the user's pfp automatically in an interval be allowed?
u cant
no thats considered selfbotting
against the rules
ohh i see
whats the best way for a plugin to have persistent storage?
i guess ill just edit a json file
There's always LocalStorage, but maybe vc has something else that integrates with cloud or somesuch
vencord settings api or DataStore
from my understanding it automatically saves on updated props but also stores to cloud automatically if authenticated?
hmm it may just be PlainSettings
in that case it works well for me
yes
PlainSettings is readonly
don't use it
if you don't want data synced use DataStore
i see got it thanks
Content
I recently stumbled upon the "vencord.app" domain name which might be a typosquatted version of the "vencord.dev". I've decided to add this here due to security concerns.
Request Agreement
- [X] I have read the requirements for opening an issue above
Ok
hi, thanks for reaching out
we're well aware of this site and have done everything in our power to undermine this
if you want to help out, you could try reporting this domain to various antimalware companies and maybe have it flagged by them
@Vendicated I somehow missed that part, sorry. I'll do my part and report them on multiple websites, thanks for your quick response.
i just had the idea of checking every possible domain ending to see if there are any others
running it rn
if theres any others they'd show up in search results cause otherwise what's the point
there are a lot more tlds then i thought
true
welp only one other one came up and it's just some random company
we good
None
None
None
None
None
None
None
None
i added a reporter that runs every week
tbh what are you gonna do?


