#🧩-plugin-development
1 messages · Page 40 of 1
yeah but on windows it doesnt complain about the dependency
@amber basin wait i just realized why are you using the arch logo as your menu when you're running fedora
clout
using archcraft configs for a bunch of things
- its funny
use https://archcraft.io its hot
i tried to install arch linux arm on this but it put me into a minimal arch env without any network managers so i couldnt do anything
oop
yeah sometimes i install arch you need to bring packages in on storage
i had to do that for network drivers a few times
if something was out of date / missing in the install iso
@proud cargo you WILL build https://github.com/archcraft-os/archcraft for arm
sure, if you tell me how, ill get it done some time in the next 10 years
hold on i have archcraft's configs installed on this but its fucked lmao
lemme get a ss of openbox
clicked the switch session button and my screen went black
not using wayland
wayland mid asf
i dont car honestly
its just a display thingie, xorg is as old as time itself and still going strong
very fair
uwu
anyone here know how to fix this piece of code?
yeah hold on let me hack into your pc to find the code your talking about
wayland is doggie doo doo
NOT that x is like awesome or anything
but wayland is just a hodgepodge of bullshit
wayland bad, very bad
yop
Yes
think you can help?
Depends on what it is but I just found it funny that no code followed the question xD
sending the code rn
import { BadgePosition, ProfileBadge, addBadge, removeBadge } from "@api/Badges";
import definePlugin from "@utils/types";
type Badge = {
id: string,
description: string,
icon: string,
link: string
}
const badge: ProfileBadge = {
description: "Server boosting since June 18, 2020",
image: "https://cdn.discordapp.com/emojis/1043822273687207946.png?size=44&quality=lossless",
position: BadgePosition.END,
shouldShow: (user) => {
return user.user.id === "909121502580965418" // jacob's ID
}
}
export default definePlugin({
name: "CustomBadge",
description: "Custom badge for jacob",
authors: [{
name: "fres",
id: 843448897737064448n
}],
patches: [
{
find: "getBadges(){",
replacement: {
match: /getBadges\(\)\{(.*?)\}/,
replace: "getBadges(){return $self.getBadges(()=>{$1}, this._userProfile)}"
}
}
],
getBadges: (orig, profile) => {
let badges: Badge[] = orig();
if (profile.userId != "909121502580965418") return badges; // don't modify the badges if it's not jacob's profile
let change = badges.findIndex(badge => badge.id === "guild_booster_lvl1"); // find the badge to replace
badges[change] = {
id: "guild_booster_lvl9",
description: "Server Boosting since 18 June 2020",
icon: "ec92202290b48d0879b7413d2dde3bab",
link: "https://discord.com/settings/premium"
}
return badges;
}
});
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.
ahat
I don't code bruh
so what is a code block
You made an entire plugin to give yourself a badge
You need experience to code
have a problem?
You cant just have someone do it for you
You actually have to know how to do some of it yourself so you can actually make it work
Then go learn
nah
Then your plugin will never be fixed ig
Because we don’t care about helping some random person with a useless plugin that they didn’t even make
Dont try and guilt trip us, we don’t care about your plugin
not gonna do anything
or does it
people don't do work for free
custom css boom
ye
vban @sharp moon entitled idiot
Done! 
bro wants a badge only they can see
thank fuck
bro asked every hour
Has ”very busy, so please be patient” on their profile
also in the discord dev server gave themselves the advanced dev role
yet can't debug simple code
hello hi
i made a plugin, and i would like to publish on #1032200195582197831 before making a pr, cause it's not thaaat well tested, and the code could do with some tidying here and there
anyways, how does one get access to post there?
if you pr you will get feedback
okok will do
chatgpt can help you 👍
but it's ass for big codebase
only use it for small portion of code
wayland is way better than xorg honestly, I have much less screen thearing with amd/Intel gpus
nvidia cards are....
never had screen tearing 
you know
I still have a smoother experience with wayland especially on my low end school laptop
thats awesome 👍
I have the worst display on the market my screen tears when turned off
why not? I agree LLM'S are not made for coding or reflection at all, but it still works for small stuff.
still better than crapoverflow for basic shit
no it doesn't
arguments?
you have a roblox pfp
anime pfp = smartest software developer you will ever meet
roblox pfp = 13yo who only knows lua
it's true and you know it
I can at least give valid arguments, unlike you.
WHOA SICK BURN
anime pfp means either smartest dev you'll ever meet or a complete [redacted]
nothing inbetween
still not a not serious argument, why not using a LLM to help troubleshooting (not writing a complete project), it works in the most cases.
silliest dev 
llm simply isn't meant to troubleshoot code issues
and if anything it'll barely help you improve
people who saying llm's in the current state can't replace Developers are right, but it still awseome for troubleshooting or basic thing.
nop
how people improve their knowledge?
did you think about thats
you can still have issues even with the manuel
you will have issues with llms
So many people in Uni use chatgpt to solve their shit
And it's either somewhat okay or outright garbage
Always makes me smh, what's the point of using llms to solve the shit you're trying to learn
People really can't use their brain anymore nowadays
i used to just copy my homework from github/stackoverflow myself, what has the world come to
i write my homework myself 
Best thing ever was when someone told another student to use ChatGPT to write them a makefile while the "code" they needed for the makefile was literally 100% complete on the lecture slide
And then they mocked me for saying they shouldn't use ChatGPT for that by comparing me to someone in their past that wasn't fond of calculators
what the fuck

Needless to say the makefile shown in the lecture was way better lmao
yeah
saw it dream up the most incoherent garbage for a hasse diagram recently
I like that
that means unless ai becomes excellent they wont ever able to become a normal programmer
more job potenial for people who program
again? 
?
Oh no, I don't want to see the same thing that is happening with online articles happening with code
Scary stuff
i think they're talking about the root container jumping when opening profiles
oh
if you have to verify its output you may as well do it yourself lol
WHAT IS VNS
vns
that
hello
how do you download plugins
im trying to mod some plugins and idk howwww
[32mi just wanted cool colored text
look 2 messages up
would probably still improve discords code 
if youre not doing generic shit llms are still too dumb to help you
whenever i ask it something it will give me a dumb answer and i have to keep specifying and it still gives me wrong answers and then eventually it goes full circle and i get no help
faster to just debug on your own
^
ai CANNOT debug vencord plugins
not possible
unless you write like
function explode() {
undefined.hi
}```
omg chatgpt why does this error...
Sad thing is most of the industry is generic stuff
Also gpt4-3 difference is real
guh?????
DOES JULIA 1 INDEX
ya!
do it for me? 👉 👈
oh my god.
No I'm genuinely curious
i saw a web framework and was curious how they did it but its ws 
Is it just for people that are unfamiliar with programming to get into it easier?
i am not convinced by liveview
maybe because they want it to end on the same value as length?
i dont really like it either but its whatever
LMAOOO ITS VUE UNDER THE HOOD
Oh interesting take
because 0 is a negative number
1 indexing is really dumb
the main argument I see is that u don't have to do length - 1
but it makes everything else pain
Just have .back()
god damn it theres no wasm julia framework
.last
indeed thats why negative indices should be real
who needs negative indices when you have float indices
true
ugly
make it real
use a proxy to actually implement negative indexes
.end()
would be fire
/run ```rb
puts ["banana", "soup"].last
Here is your rb(3.0.1) output @dull magnet
soup
so good
Ruby
/run ```rb
puts %w(banana soup) [-1]
Here is your rb(3.0.1) output @austere mauve
soup
Was about to guess that
dont understand why, this might actually be decent
this is so cursed lmao
I hate that array syntax
the delimiters can be anything
they will remove it in ruby 4
What does %w do
string array...
/run ```rb
puts %Q(
big
massive
"explosion"
)
Here is your rb(3.0.1) output @dull magnet
big
massive
"explosion"
./run ```rb
puts %w<nya>, %w^boom^
Here is your rb(3.0.1) output @austere mauve
nya
boom
/run
0.1 + 0.2
Your js(18.15.0) code ran without output @jagged briar
oh
rini panicing
Here is your rb(3.0.1) output @dull magnet
banana
Classic
guh all the efforts to make julia compile to wasm are barerly functional and inactive
anyone know why onBeforeRequest isnt working at all, ive tried defaultSession, session-created event and adding it on window creation (both defaultSession and window.webContents.session.webRequest) to no avail of it blocking requests
nvm
/run
console.log(('b' + 'a' + + 'a' + 'a').toLowerCase())
Here is your js(18.15.0) output @stable ridge
banana
yes
Literally how? It's so damn helpful
looks like bash arrays but ugly
I keep wanting to send ruby code to show how various features are really helpful. And then realizing that I don't write any outside my job and I probably shouldn't be sending that
No no I insist, please send your corporate secrets
can someone make a plug in to put all ur servers in folders
No
Why on earth do you want this
WTF YOU CAN OVERRIDE ALL OPERATORS IN RUBY
class C
def [](a, b)
puts a + b
end
def []=(a, b, c)
puts a * b + c
end
end
obj = C.new
obj[2, 3] # prints "5"
obj[2, 3] = 4 # prints "10"
@potent fox
WHAT THE HELL
THATS EIPC
can you override plus
also I think you can do it in swift too
already exists
<<
in stdlib
+= joins arrays
print [1,2] + [3,4]
not append
yea
can u override global operators tho
/run ```rb
def Integer.+()
21
end
print 9 + 10
Here is your rb(3.0.1) output @dull magnet
19```
NOOOO
try setting Integer.+
no work
why @
Here is your rb(3.0.1) output @dull magnet
19```
but it still doesn't work
Here is your cr(0.36.1) output @dull magnet
19```
DOESN'T WORK EITHER
crystal terrible
unusable languages
/run ```cr
alias VeryGoodInt = Int32
nine = 9.as VeryGoodInt
def VeryGoodInt.+(a, b)
21
end
print nine + 10
Here is your cr(0.36.1) output @dull magnet
19```
/run
extension Int {
static func +(a: Int, b: Int) -> Int {
return 99999999
}
}
print(3 + 2)
Here is your swift(5.3.3) output @potent fox
99999999
@dull magnet
swift best language
I wish I could change return type
but cant 😭
/run
extension Int {
static func >>(a: Int, b: Int) -> String {
return "morbius"
}
}
print(3 >> 2)
Here is your swift(5.3.3) output @potent fox
morbius
swift so lovely
if it exists you can only override it
with same types
if it doesnt you can change return valuee
btw I will show something funny
/run
infix operator ../%+^..®◑⛔⛔
extension Int {
static func ../%+^..®◑⛔⛔(a: Int, b: Int) -> String {
return "bexplode"
}
}
print(3 ../%+^..®◑⛔⛔ 2)
Here is your swift(5.3.3) output @potent fox
bexplode

WHAT
why does >> not exist on Int????
swift doesn't have bitwise???
it has
wait
idk tbh
dont question
I wouldnt call it a language if I cant make sparkles a operator
Actually awesome
/run
#include <string_view>
#include <cstdio>
using namespace std::literals;
const char *operator,(std::string_view, std::string_view)
{
return "explode";
}
int main()
{
printf("%s\n", ("9"sv, "10"sv));
}
Here is your cpp(10.2.0) output @trim cedar
explode
THIS IS WHY OPERATOR OVERLAODING IS BAD
/run ```kt
infix fun Int.explode(explodee: String) {}
fun main() {
val vencord server = 42
vencord server explode "kodetoad"
}

@dull magnet I only received kt(1.8.20) error output
Error: Unable to access jarfile code.jar
It's kotlin 
Kotlin so bad
Unless you only use regular characters you need backticks
/run lua print("Hello World!")
Here is your lua(5.4.4) output @green vessel
Hello World!
sick
/run
infix fun String.want(wantee: String): String = ""
infix fun String.at(where: String): String = "do you tho"
fun main() {
val i = ""
val pancakes = ""
val dinner = ""
println(i want pancakes at dinner)
}
@exotic valve I only received kotlin(1.8.20) error output
Error: Invalid or corrupt jarfile code.jar
@exotic valve I received kotlin(1.8.20) compile errors
file0.code.kt:1:1: error: expecting a top level declaration
println("Hello World")
^
file0.code.kt:1:8: error: expecting a top level declaration
println("Hello World")
^
file0.code.kt:1:9: error: expecting a top level declaration
println("Hello World")
^
file0.code.kt:1:10: error: expecting a top level declaration
println("Hello World")
^
file0.code.kt:1:21: error: expecting a top level declaration
println("Hello World")
^
file0.code.kt:1:22: error: expecting a top level declaration
println("Hello World")
^
Error: Unable to access jarfile code.jar
/run
fun main() =println("Hello World")
@exotic valve I only received kotlin(1.8.20) error output
Error: Invalid or corrupt jarfile code.jar
@green vessel I received kotlin(1.8.20) compile errors
file0.code.kt:1:1: error: expecting a top level declaration
func main() =println("Hello World")
^
file0.code.kt:1:6: error: expecting a top level declaration
func main() =println("Hello World")
^
file0.code.kt:1:10: error: expecting a top level declaration
func main() =println("Hello World")
^
file0.code.kt:1:11: error: expecting a top level declaration
func main() =println("Hello World")
^
file0.code.kt:1:13: error: expecting a top level declaration
func main() =println("Hello World")
^
file0.code.kt:1:14: error: expecting a top level declaration
func main() =println("Hello World")
^
file0.code.kt:1:21: error: expecting a top level declaration
func main() =println("Hello World")
^
file0.code.kt:1:22: error: expecting a top level declaration
func main() =println("Hello World")
^
file0.code.kt:1:23: error: expecting a top level declaration
func main() =println("Hello World")
^
file0.code.kt:1:34: error: expecting a top level declaration
func main() =println("Hello World")
^```
im counting the days before someone makes a third party plugin or icon pack for themes which returns the old UI icons
sooner rather then later xd
-_- already done
OH DAM
where link please i beg
just use the experiment
kotlin is like why do
obj["Key with Spaces"]
when you can do
obj.`Key with spaces`
😭
tbf idk if the latter syntax works on maps, probably not
most readable kotlin code
actually no that could make sense once youre used to it
explode immediately

because the former would mean member access from arbitrary string which is not possible without reflection in jvm
whereas the latter just is a "symbol" that kotlin can easily compile to something jvm friendly like Key$with$spaces
i was thinking in js mode
where .thing is the same as ["thing"]
imho symbols with spaces in them are a bad idea.
but aren't they just meant for tests? i can't remember.
🧐 what's discord going
on the notification you sent something different
thank
make sure to change the exec path in the hook file to wherever you put the script
and also
the files themselves
these into /usr/share/icons
and also you need to either pacman -S asar or npm install -g asar
the hook is to automatically patch it when updating vencord
might as well build vesktop from source at this point
uhhh is waitFor a promise again
or only callback
i think ive discussed this with someone some time ago but i dont rember
nvm it's a callback just found the convo
yes it's callback only but it's piss easy to make a promise wrapper
function waitForp(filter) {
return new Promise(resolve => waitFor(filter, resolve))
}```
Tyty
has it ever been more over
working on a css snippet, and the commented out code works, but the below does not. Any tips?
/**
.userPopoutInner_f545a3:before {
width: 100%;
height: 100%;
}
.bannerSVGWrapper__3e7b0 circle {
cx: 62;
cy: 116;
} **/
a[class^="userPopoutInner_"]:before {
width: 100%;
height: 100%;
}
a[class^="bannerSVGWrapper_"] circle {
cx: 62;
cy: 116;
}
oohhhhh I saw the mozilla docs a, and I thought, "ah, must stand for attribute" forgetting links existed lmao
thanks
lol np
ah, so that's the correct channel. I was directed to here from css-snippets.
looks like css-dev is hidden by default, which might be an issue.
any idea why Vencord.Webpack.cache might be undefined ?
probably cause you're accessing it too early
why are you accessing it
you shouldn't need to
await the Vencord.Webpack.onceReady promise and do whatever you're doing after it
i don't care about it directly but my
discord setup cannot find anything
this is after the whole app loads, stuff in Webpack.Common works
but i cannot use find on anything
??
how
that makes no sense
you're doing scuffed shit
the majority of webpack commons don't actually use the cache or normal find methods though so that's likely why they're working
yea i still have no idea why webpack gets corrupted, remember some time ago when i had the problem that a shitton of modules would be undefined and settings and profiles would not load (you probably don't lol), it was fixed after like a week and a half without me doing anything, maybe discord did something, since it worked fine yesterday without me doing anything
can i somehow use this waitForStore method ?
i only really need the MediaEngineStore
it's just a waitFor wrapper
waitFor is exposed
but if you call it late it's just the same as find
ugh it might be time to convert my horrid injected script into a proper vencord plugin
vencord has this thing where plugins must be built along itself right ? i can't somehow "import" my plugin after it starts
u can actually
you can just add ur shit to Vencord.Plugins.*
Vencord.Plugins.plugins.MyEpicPlugin = {
name: "banana",
description: "",
authors: [],
start() {
}
}
and ```js
Vencord.Plugins.patches.push({
find: "stuff",
replacement: [{
match: /.../,
replace: ""
}],
plugin: "MyEpicPlugin"
})
How does that work with patches?
literally one msg above u 😭
No like, can patches apply while discord is running?
Usually you’d need to restart right?
before those modules are loaded
Ahh alright
**shared.ts: **Lines 16-30
export function addPatch<P extends PatchData>(p: P) {
const { patches, ...globals } = p;
for (const patch of patches as Patch[]) {
if (!Array.isArray(patch.replacement)) patch.replacement = [patch.replacement];
for (const r of patch.replacement) {
if (typeof r.replace === "string") r.replace = r.replace.replaceAll("$self", "VCDP");
}
patch.plugin = "Vesktop";
Vencord.Plugins.patches.push(patch);
}
Object.assign(VCDP, globals);
}
**platformClass.tsx: **Lines 12-29
addPatch({
patches: [
{
find: "platform-web",
replacement: {
// eslint-disable-next-line no-useless-escape
match: /(?<=" platform-overlay"\):)\i/,
replace: "$self.getPlatformClass()"
}
}
],
getPlatformClass() {
if (isMac) return "platform-osx";
if (isWindows && Settings.store.discordWindowsTitleBar) return "platform-win";
return "platform-web";
}
});
so how early do i need to inject this ? right after injecting vencord and before starting discord bootstrap ?
yes
how do i make my own plugins i already know javascript but i cant for the life of me find where to add custom javascript?
how do i set the required flag on a plugin btw ?
required: true
ah ty
is start() async btw ?
actually i guess not since it's not explicilty defined
hmmm
can be
nope still not found
so whatever fuckery happens to webpack it happens after the common stuff is initialized
but before plugins start loading
what are u doing to discord
add an interceptor to the flux dispatcher
ohh like the shitty setup ugh
maybe it's something in valve's ancient CEF
this is the only error on loading
but it's there even when everything works as it should
no other error about failing to load modules or anything
some stuff like fonts etc dont load due to cors
i still have no idea why vencord webpack cache is undefined
im assuming that shouldn't happen
i guess i can try building vencord to add my two modules in the webpack.common
ugh i would say it's impossible but it probably isn't at this point, but it does need a lot of work, most of these problems stem from the hacky steam proxy setup im running which is necessary to get mic perms
i could run a webrtc mic server and pass that over to a normal non-proxied discord to get mic working
but i dont know how nicely that will play with cors etc
maybe i could set a cross-tab peer connection between discord tab and steam tab and get the mic stream working that way but all that's just a lot for work and i dont feel like doing it rn
honestly this whole plugin needs a big fat rewrite
maybe ill do it in christmas vacay
how do i build the browser.js btw ?
pnpm buildWeb apparently
yes
im pretty sure he's not touching my code with a 10-foot pole :')
What are you cooking now marios
discord broke something lol
also why are you touching vencord webpack cache directly stop
I"M NOT
just use Vencord.Webpack
I AM INNOCENT
did discord remove cache or some shit what
no 😭
no
hes just cooking too much
@dull magnet steam doesn't have cache you love
we have to require everything
terrible
ur gh pfp looks kinda derpy https://avatars.githubusercontent.com/u/8387283?v=4
~~accurate
~~
shes cute tho
ive had it ever since i opened the github account
because it was from an anime i watched that season
i just keep it as a relic today
i'm shy
lemme see if this build works
you did
the sentry webcrap?
yeah
- isnt that long gone
- dont think vencord is affected
wdym
if you try to get require too late you end up getting the wrong one
looks ok
@dull magnet you will steal the 100 steam decks from the game awards and fix
and it should still occur
i fixed it in the stupidest way too
sentry file overwrites .push with their own instance of webpack
so when you .push you might get that instance instead
its more complicated than that
clampicated
I honestly dont know how that doesnt break stuff
vendicated????
they reassign webpackChunk and it ends up causing everything to reload
if any of discord's modules were still using the third argument of a chunk for entrypoints, it would cause them to load a second time
the fix is to just give sentry a dummy webpackChunk (empty array works) and never let it touch your patching code when setting it
cause otherwise you dont get the modules it loads
its specifically that forEach that fucks everything up
is this upstream sentry code or discord unhinged bullshit @vapid latch
cant tell
full webpack interoperability where every plugin is a webpack module
oh
I see
so your plugins were getting re added and called with the different require
yes
which it wasnt fully noticable at first, only with debugging of forcing a single require that i noticed "oh, everythings running twice."
otherwise react was just broken
i spent a whole day trying to figure it out it was not fun
discord has more code that creates their own webpack instance though
wasm code for example, I think the sticker stuff?
lottie
ok eager load mediaenginestore and cloudupload before plugins start loading seems to have fixed my problem
wouldnt that cause you issues too
yeah thats all webworkers though i think
ah
wasm chunks really dont have issues when loaded properly
I dont know much about them, I just know we avoid force loading those
but since those are lazy loaded its not an issue
and theres a plugin used by ci or for development that just loads everything and i just read every script before telling it to require which is not the best but oh well
lets me ignore webworkers and wasm chunks
webworkers used to be their own separate table but rspack merged them into the main table annoyingly
we do the same
why is cloud upload a worker
what's the point
unless it's compressing
then that makes sense
is it a worker now?
.
idk
**generateReport.ts: **Lines 344-364
chunksLoop:
for (const entryPoint in chunks) {
const chunkIds = chunks[entryPoint];
for (const id of chunkIds) {
if (!wreq.u(id)) continue;
const isWasm = await fetch(wreq.p + wreq.u(id))
.then(r => r.text())
.then(t => t.includes(".module.wasm") || !t.includes("(this.webpackChunkdiscord_app=this.webpackChunkdiscord_app||[]).push"));
if (isWasm) {
invalidChunks.push(id);
continue chunksLoop;
}
validChunks.push(id);
}
validChunksEntryPoints.push(entryPoint);
}
no idk if it's related to workers, for me all lazy loaders are broken
or finds
or anything related
since cache is undefined probably
maybe fix the issue instead of this extreme horror
i hope you like more error stacktrace abuse
it works fine
did they add a hasOwn polyfill????
I wonder if it's user agent detection for like the
steam overlay browser
or some shit
hasOwn was added in chromium 93 is why i say it shouldnt even be running
which was the infamous issue that tsodding had
vencord itself can't run on such old chromium
and might be why it's partially broken
vencord makes use of very modern features
absolute minimum we target is v93
steams updating in January apparently anyway
ive already patched this
i had this problem in the past
lmao
im pretty sure i discussed this in this very channel before
this is bad bad
Object.prototype.hasOwnProperty.call(obj, prop)
do that instead
yeah
k
@dull magnet vencord support for safari 5 when
I got crosscode to run in safari 5 for windows
they gotta stop making programs so hot
ok media engine works
lemme see if cloudupload does as well
we are so back it's unreal
did it fix ur issues
yea
wtf did u change
the custom build i mean
was it this
just eager-load mediaenginestore and cloudupload
yes but just unbricked enough to work :^)
man getting screenshare working on this bitch is probably one of the things i'm most proud of
too bad valve quickly broke the pipewire shader so now the stream is dark and unwatchable 
idek what im looking at but thatsi nsane
in a good way or a bad way 
good
ty 
I made a thing
https://gitlab.com/Grzesiek11/compactplusplus-discord-theme
if you'd use Compact mode if it was good then it might be for you
feedback welcome
absolute unit
Venn
stop giving me more insane marios code to fix
thats what she said?
this from this pfp is incredible
problem?
(maybe this is the right channel i posted already in vencord-dev someone tell me if im posting in the wrong place) im trying to disable the really annoying overlay soundboard keybind (ctrl + `). i can probably copy the same code used in the NoF1 plugin but idk how I would disable a hold ctrl + [key] command. anyone know if this has already been made or if it is easy to disable a specfic hold key without interrupting other keybinds that use hold ctrl?
wouldn't you just check for ctrl in the event
oh i see ill have to do more research on it
switching from winrar
Fixed all errors, ready to merge
https://github.com/Vendicated/Vencord/pull/1783
title says it
merge if cute
Pretty sure you need a readme for the plugin :3
wym?
Ok I may be completely wrong here, but I think it’s a requirement as of late to add a readme in the plugin folder with info about the plugin
Ignore everything I’ve said :D
nah wait, imma add one to make you happy
aight can merge now
Refused to load the script 'https://flyover.github.io/imgui-js/dist/imgui.umd.js' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' 'unsafe-inline' 'nonce-MjI1LDIzMCwxNjIsMTU0LDI1MiwxMzMsNDUsMjIw' blob: https://cdn.discordapp.com/animations/ https://www.gstatic.com/recaptcha/ https://www.google.com/recaptcha/ https://recaptcha.net/recaptcha/ https://*.hcaptcha.com https://hcaptcha.com https://js.stripe.com https://js.braintreegateway.com https://assets.braintreegateway.com https://www.paypalobjects.com https://checkout.paypal.com https://c.paypal.com https://kit.cash.app". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
@pure temple hi

drop link to artist???
Every day webpack breaks a little more :3
wtf is wrong with your devtools
can i paste js files into quick css
you can, just it wont do anything
it wont
😭
[Looking for plugin]
Plugin that lets you set your own sounds for stuff like pings, aswell as/or letting you set a custom sound INSTEAD of a ping for spesific users
want to make a verbal distinguisher between certain people in dms xd
it happens to all of us
ok removed my off topic spam

https://codepen.io/codef53/full/NWoJdEa
Thoughts on this way of
- preventing users from spamming forms
- indicating loading
I have been trying to figure out a good way to do this for a while and am happy with it and need feedback
@gritty sparrow hello techsupport may i please see discord's native module code 
/silly
try without OA
i think darkening it is good but blurring the form in a way that prevents people from reading the information they selected is non-ideal
setting all form inputs as disabled (and having obvious disabled styling) may be better than blurring everything and putting a non-interactive element over top of them
iam abit new to this. how do i make a discord-style speech-bubble or menu appear when the user does a certain thing?
(basically i want to make it so i can hover over a gif in the gif menu to see its name, by showing a little text bubble).
or maybe it could show the link text in the bottom right corner like this, just like it does when i hover over a gif in the chat, that would be nice too
right now i cant see the name of a gif in the gifs tab without sending it, which makes it harder for the favorites gif search
try the gifpaste plugin
use css
SOLLUX HOMESTUCK ???
@smoky basin
I was just trying to find the decor server
Sos
I want to make some of them
the plugin settings has a link to the server lol
I don't have a PC so I saw it on ntts channel but I want to make some bec I'm good at art
I have no idea how to make one
Could u maybe make me one
dm me pls
anyone here listens to The Yard podcast? i wrote a script in Deno to scrape the patreon episodes from kemono and download them all properly named as .mp3 (you don't need to have the patreon paid)
if interested, lmk, i'll drop it here
I don't listen to this podcast but it will be interesting for me still
dumb question about discord API, but does the user client recieve member left events in large guilds?
might attempt to make a plugin that takes advantage of this event (showing if message authors were kicked/left a guild)
@vague echo
nono, not if the client user has been removed, if another user in a large guild (that might not send all presence data, afaik) has left or been kicked
i can probably answer this myself
wtf is a GUILD_MEMBER_LIST_UPDATE event
this doesn't seem to be what i'm looking for
okay those groups are really just hoisted roles
did you accidentally send a friend request haha
Why not just check if the user is still on the discord
Obviously yes this, but I want to have it immediately mark the user as not in the guild if easily possible (without spamming the api)
Are events even sent when the client is offline?
(received rather)
yeah, i realized i can just @ you here with the zip without needing you to accept my friend req first
what for
wait C unions are kinda cool
union Color {
unsigned int hex;
struct {
unsigned char a;
unsigned char b;
unsigned char g;
unsigned char r;
};
};
int main() {
union Color color;
color.hex = 0x12345678;
printf("r = %x, g = %x, b = %x, a = %x", color.r, color.g, color.b, color.a);
}
yeah that's a thing you can do
compiler gets angry at me when i do that and have an initializer tho
wtf that's hella cool
yeah avoids the need for ugly casts and stuff
RGBA hexToRGBA(unsigned int hex) {
Color color;
color.hex = hex;
return color.rgba;
}
(pretend the rgba portion is defined in a separate struct)
just for the sake of having a marker next to someone's username in their messages if they aren't in the guild anymore
your best bet is subscribing to GuildMemberStore
use the message decoration api to add your component
in your component use useStateFromStores to subscribe to the guild member store and get the member of the current message
if the member is not null, render nothing
if the member is null, render ur thing
it will either update immediately or not - if it doesn't, there's likely nothing u can do
Hello everyone
. Is is possible to modify the hideAttachments plugin in a way for it to automatically hide attachments?
This could then be added as a setting
const settings = definePluginSettings({
autoHide: {
description: "Auto hide",
note: "Hide attachments and Embeds automatically",
type: OptionType.BOOLEAN,
value: false
}
});
I would have done the implementation myself, if i was able figure out how to get all those message ids 
does anyone know how to fix this
nvm, fixed it\
is there a way to make global static classes in cpp?
i have a class Logger (logger.h, logger.cpp) and i want to initialize it in the mainwindow.cpp (via ui -> ...)
this way, i want to be able to use Logger::method() for any other class without issues
I personally use namespaces for that but I've seen people do that using extern
unless I'm misunderstanding your question then sorry
I use namespaces with an init and uninit func
can do the same with classes using extern as I said, I'll find an example soon and send it
thank you
i'm looking at a project and the way it does it is like this
test.h```cpp
class Test {
// ...
};
extern Test g_test;
test.cpp```cpp
#include "test.h"
Test g_test{};
then they just include test.h and use g_test like normal
in other files
ill try
if you decide to use global namespaces instead you have to make every variable inline otherwise it will scream at you if you use the variables in other files
yep
Do you know, how I could implement such a feature #🧩-plugin-development message ?
how do you include animations on a theme
CSS animations make it possible to animate transitions from one CSS style configuration to another. Animations consist of two components, a style describing the CSS animation and a set of keyframes that indicate the start and end states of the animation's style, as well as possible intermediate waypoints.
ty
oi i am trying to create a fresh install and i am haveing some touble installing the custom plugins.
i have git cloned the repos into the userplugins folder
when i try to pnpm build i get this:
3 errors
Build failed
Build failed with 3 errors:
import-plugins:~plugins:146:17: ERROR: Could not resolve "./userplugins/uwuifier-vencord"
import-plugins:~plugins:151:17: ERROR: Could not resolve "./userplugins/vencord-plugins"
import-plugins:~plugins:152:17: ERROR: Could not resolve "./userplugins/Vencord-Tidal-RPC-Fixer"
fixed it by moving some plugins out of their folders, is there any proper way to do this?
send the whole error
there is no whole error to send
there was no index file for those plugins
you have to rename the file you cant just put into a folder to index.tsx
how do i add an icon to the chat bar that would then do something like making a request or showing a modal? EDIT: i figured it out
would a viable PR for releases be a script for Mac downloads the latest release and attributes is?
wym
Basically: in the dmg file, you'd have the latest release and a script that puts Vesktop.app into Applications, then runs
sudo xattr -cr "/Applications/Vesktop.app"
since Vesktop doesn't run on Mac without that script
hm how so?
Ah i see
Yea anything more and it'd require XCode tools
Let me see if anything could be done via homebrew
so that "brew install vesktop" could be put into the readme and do the whole process
wait you need XCode anyways to run xattr i'm being silly
just have a script that moves vesktop.app from the dmg to the applications folder, and signs it
then closes/deletes the dmg
possibly even could do it remotely so that added to vesktop mac it could update without user needing to download and install again let me see
eh really easy to do this, will write later when have the time
could there be a toggle added to disable all plugins in vencord, similar to how the css can be disabled? or is that impossible
okay finally turned off theme for real as it was forcing through the online themes link, however it still is not working so definitely not thme
and fuck just disabled every single one of my addons and it still isn't working
have to readd them now 
is there some way to get a value from the discord settings ? eg if desktop notifications are enabled
yes
vencord does it in many places
based tyty
any docs for making custom plugins?
two things can someone make this more smooth and make it work for me cause it works for others expect me sad
0% { --channel-i: #ff0000; }
25% { --channel-i: #00ff00; }
50% { --channel-i: #0000ff; }
75% { --channel-i: #00ffff; }
100% { --channel-i: #ff00ff; }
}
.modeSelected__487d6 .icon_eff5d4 {
--channel-i: red;
color: var(--channel-i);
animation: kinetic-chrome 5s ease infinite;
}```
VencordWeb:5 Vencord WebpackInterceptor Error in handlePush TypeError: Cannot read properties of undefined (reading 'predicate')
at ww (VencordWeb:216:769)
at Array.t (VencordWeb:215:1592)
at 98106.5d0f74b94113ede84656.js:1:65
_log @ VencordWeb:5
/api/v9/guilds/1015060230222131221/member-verification?with_guild=false&invite_code=D9uwnFnqmd:1
Failed to load resource: the server responded with a status of 403 ()
thanks
useful
had an issue wih my patches sorry
anyway how to get the discord user
console.log('help me' .toLocaleUpperCase)
you forgot to invoke the function
@austere mauve isnt this guys username so cool
discord when you even talk about changing your username: NO. DO NOT. YOU ARE SPAMMING.
YOU MUST WAIT 50 DAYS.
bro change your username for the love of god 💀
nobody here thinks you're the cool kid
is there any chance to change the live on twitch to live on youtube?
closest you can do is find out how to replace the text with css or smth
literally all you can do, and it’ll only ever be client side
alright. thank you for the answer 
sobbing rn
some guy just said splicing an array is always faster than inserting in a linked list
it depends
it does! but he just said its always faster
is there a way to patch html
yes edit it
dunno but i assume its the same way as doing it with a browser js script
unrelated but
ive heard discord uses some native code/modules/whatever, would it benefit anybody if those were reverse engineered
well they probably already have been
I can give it a try
@dull magnet teach him your dom manuplation
manipulating is too far even for a dom
her*
its fine no one reads pronounces XD
i do because im cool
okay
manti now post dog
owo
hi
HI
I made clyde talk
i did that too
Yay!
first useful plugin I made
Clyde said this to me I swear
can I submit plugins to the main vencord
We all need the power to talk as clyde

no
not that plugin
why not its so useful!
well Its funny
good point
not all plugins need to be usefull
I can make it clear that its saying something
also wanted to change clyde in the plugin
it can be litrary anyone
thats worse
creep
vencord roleplay channel when /s
she allowed me to upload it using her account
yep
isn't there literally /echo
in morecommands or smth
oh
🤦♀️
im gonna make something better then
as I did find a way to change clyde locally
yup
how to get an message by id
just right click a message and press copy message id
u need developer mode enabled in discord settings fyi
so if u dont see an option for that then thats why
I mean using code
MessageStore.getMessage
thanks
is there any function I must call to update the message client side
I think I might need MessageActions.receiveMessage(channelId,message)
t
what u tryna do
trying to add a embed to a message
using a command
as a way to comment
it must work on any
and not get you banned for hacking a server side embed ofcourse

not that that works
discord long patched that
YES
I fixed it
why is it that the summarized text looks so damn ugly its black and it doesnt properly make a new line?```tsx
<ModalRoot {...props}>
<ModalHeader className={cl("modal-header")}>
<Forms.FormTitle tag="h2">
Summarized Conversation
</Forms.FormTitle>
<ModalCloseButton onClick={() => closeModal(key)} />
</ModalHeader>
<ModalContent className={${cl("modal-content")}}>
<div>{summarized}</div>
</ModalContent>
</ModalRoot>
holy shit im silly
Is there a place where I can search the overall API of vencord?
Trying to make a QOL plugin to send a long slash command to a channel without having to type all of it out every time
Kinda but theres more to it than that
Are you able to send slash commands with vencord?
yes
worst patch attempt in all of history (I don't understand when patches are applied)
{
find: "isMac",
replacement: {
match: /isMac/,
replace: "isWindows"
}
}
thought process was basically "if I replace all the checks for macos with the check for windows, then this fools discord into showing macos titlebar"
which clearly is not the case because nothing happens except servers don't load sometimes
discord down
skill issue?
quite litteraly the opposite
lmao
the find is responsible for finding the proper module to patch
your patch will only affect a single module
and that replacement is dangerous xd
isMaccaroniFan => isWindowscaroniFan
Discord died on me there for a second could you assist me with this?
btw @cedar marsh did u see this https://github.com/crystal-term/prompt
seems like exactly what uwant
looks really cool
anyone know how to make buttons work
client side
actually instead of using the application buttons
just want to edit the message buttons
le accessories api
oh there is an API for that




