#π§©-plugin-development
1 messages Β· Page 27 of 1
vns
but no
Trying to decompress socket messages, but i cant get it to work with pako. onData never gets called even though theres data in the output, zlib inflater doesnt seem to recognize the Z_SYNC_FLUSH
Any help?
const inflate = new pako.Inflate();
inflate.onData = (data: any) => console.log(data);
const s = new WebSocket("wss://gateway.discord.gg/?v=9&compress=zlib-stream&encoding=json");
s.binaryType = "arraybuffer";
s.addEventListener("message", ({ data }: MessageEvent<ArrayBuffer>) => {
const len = data.byteLength,
doFlush = len >= 4 && new DataView(data).getUint32(len - 4, false) === 65535;
inflate.push(new Uint8Array(data), doFlush && pako.constants.Z_SYNC_FLUSH);
// if (doFlush) {
// const out = inflate.strm.output.slice(0, inflate.strm.next_out);
// console.log(new TextDecoder().decode(out));
// }
})
or do i just set up a new inflator for every socket message.
just use https://raw.githubusercontent.com/DiscordStyles/HorizontalServerList/deploy/bottomhsl.css
https://github.com/Vendicated/Vencord/blob/main/docs/2_PLUGINS.md, https://gist.github.com/ActuallyTheSun/28bd595f8c07992f6d03289911289ba8 and just looking at other plugins and seeing how they do things
Thank you so much!
vban 7 @green vessel selfbotting
Done!
downgrading fixed the issue .-.
can somebody do some code that removes the edited text?
lemme cook for a second
I have the message 'logger' plugin so I like only seeing the edited text below and the original at the top, no need for the edited symbol
thx
bleh
thank you, ill put it in my quickcss now
how can i put custom plugins?
#1032200195582197831 pins
when i visit the link, what do i do
it only tells how to install and uninstall
there's a second page https://github.com/Vendicated/Vencord/blob/main/docs/2_PLUGINS.md
and where do i create the userplugins?
which is what the first page says, yes...
ok well first what plugin are you trying to add
is it in #1032200195582197831 or is it a BD one
third party
then just follow the instructions
clone the vencord repo, install dependencies, make a new folder called userplugins under the src folder, download the plugin and drag it into that folder and build + inject your local build
both of those docs pages explain it all
how do i build + inject
well probably better to move to #π₯-vencord-support-π₯, screenshot the terminal output or something and send it there
Ok
Needed this, thankss
my vencord is giving weird errors when i run pnpm build and my plugins dont show up in vencord settings
let me get a pic of the error
vns
oh ok
question does using import(url) make a network fetch each time
is it better to actually copypaste everything
I haven't noticed any significant difference
ah
yes but browsers have cache
just use link
it doesnt matter
ig the difference would be in organization then 'cause css file would be much cleaner with import
do import statements need to be at the top of the file?
huh
I was under the impression they worked like c++ #include where it basically copypastes it in
yes
why is that?
why is the sky blue
i painted it like that
Light refraction π€
How do i publish third party plugins?
send it here
why?
asking how to publish one BEFORE how to make one is kinda crazy ngl
π why did you ask how to publish one before even knowing how to make it in the first place
smartest vencord user
difference?
a lot
it's ts
^
or it has start() and stop()
have a look around the repo
(and css)
no that gives me headaches
π
they donβt grow on trees
chatgpt says they do
π
offering paid vencord plugins for 1k$/100LOC π£οΈ
someone send me the repo
im a busy man
brother it takes 5 seconds
ts has semicolons right
someone will accept and i'll be fuckind RICH
does that mean you can make it as many lines of code as there are tokens
i'll add so many comments
is there any way to restart websocket connection?
bro plugins r written w ts?
yes, like you were previously told
we said that like 3 minutes ago ?????

question: can i build it without ts. answer: yes/no
just try doing it m8
no need to ask
i wonder why all the plugins are written in ts
opinion
don't worry ts compiles to js or smth like that
is it hard?
/j
/j???????????????
/j is bcs while it's technically true it's irrelevant here
wip
with all due respect i highly doubt you will be able to make a plugin based on your last dozen of messages

can ur manager on the mic RN
anyway you can find very basic docs in the repo
i made plugins
Nooooooo, it has the start()stop() llike bd
thats
not what
/j means
the statement is meant to be humorous due to being misleading
so /j
i should kms
question: do you guys have separate github accounts for like. online stuff and irl stuff
do not


i simply do not have a gh account
ΓΆ
we praise
in this household
is that blue pacman but pointing down
nuh uh
tecnically agains ttos anyway
is it alive again
codeburger
oh huh
yea
it only died for a bit
never heard of it before but it seems cool
π cope
No your just asking incredibly stupid questions and doing no prior research 
guys how do I breathe
time sensitive question
guys how do I breathe
guys how do I breathe
^ 

it isn't against the tos to have seperate work and personal accounts
It's against tos to have more than one GitHub account period
But it's widely accepted as ok to have work and personal seperated
I highly doubt you will get termed unless you abuse benefits
I've seen people get termed for just having a second account they don't even use though
I think I found a vesktop bug
does anyone know if we have an API for taking people to a settings page
i want to be able to click a notif and go to the cloud settings page
curious, how do I install third party plugins with vencord? I know how to do it with BD, but confused as hell with vencord
#1032200195582197831 pins
vencord's not really meant to be used with third-party stuff lol
much more integrated than BD
but it also means that things break less
so you win some you lose some
yeah but i see some third party plugins that arent just quick css code
do i need to install vencord using my terminal?
not ven but i found this https://github.com/Vendicated/Vencord/blob/fe5e041db82aac7d2d975a7465e5441f05c8d97f/src/Vencord.ts#L94
**Vencord.ts: **Line 94
SettingsRouter.open("VencordUpdater");

gonna assume so, brb
you're gonna need to install it via the method linked in pins, then follow the second page in the same github folder to install a plugin
basically just doing this
// pre-check for local shared settings
if (
Settings.cloud.authenticated &&
await dsGet("Vencord_cloudSecret") === null // this has been enabled due to local settings share or some other bug
) {
// show a notification letting them know and tell them how to fix it
showNotification({
title: "Cloud Integrations",
body: "We've noticed you have cloud integrations enabled in another client! Due to limitations, you will " +
"need to re-authenticate to continue using them. Click here to go to the settings page to do so!",
color: "var(--yellow-360)",
onClick: () => SettingsRouter.open("VencordCloud")
});
return;
}
it makes sense once you realise how it works
donβt think iβve ever seen it mentioned before
vencord has a common location for settings
cloud integration enable state is stored in settings
secrets are stored in indexeddb
indexeddb is not shared
because settings are source of truth, everything assumes cloud integrations is set up correctly
when they arent
so it just doesnt work
when you turn it off and on it redoes the validation
and it realises "oh shit"
lmao yeah


im so proud of myself for being maybe a little useful

Weird question, but you see the plugin that tells you what platform someones on, desktop, web, mobile, etc, and yet even though im constantly in a state of appearing offline, from my desktop i can pick up when my discord is being accessed from my mobile, now im not great with discord's API i havent done too much research/studying into it, but surely if i can pick up a device accessing my discord even when offline, that means it would be possible for a plugin to detect if a user is offline or just appearing so?
discord doesnβt reveal that info in any way, so not possible
ah, understood
naw bro didn't get it
discord: 1, other big companies (rockstar): 0
would be a major invasion of privacy as well if that was the case
gone
free
Glad I blocked them ages ago
Horror
@tacit sonnet you are not entitled to support, we are not a business, nor is ven explicitly paid for his work
vns moment too
why is #π₯-vencord-support-π₯ even more hectic than usual
im more confused why there are so many linux users who don't even know about how to elevate with sudo
how do they do anything
just a rnadom question , a browser that is cross instance with your phone and any other device, kinda like the sync tool but on stariods like what ever tabs are open on my device those are the same ones open on my phone and vice versa, same with history and everything like that, but i have not been able to find a broswer like that or a similar extention and the sync feature in todays broswers are imcopantant, and i want to make my own if possible but is it a worth while indever
ame
i see a lot of linux users that are
clueless
most users just end up switching to linux just to say they use it idky seems like a waste if you ask me, having a tool and not knowing how to use it what a shame
p much my thoughts as well
or its them getting blue screens
i mean if you get it so consistently and eventually get suggested to use one
idk
maybe NTTS made a linux video and his viewers switched to it and "beached" themselves
im getting an error that causes my vencord to crash and i can trace the error back to my code
export default definePlugin({
name: "ExecutableCodeblocks",
description: "Allows for code inside of codeblocks to be ran directly inside Discord. Powered by Piston.",
authors: [Devs.dylann4243],
dependencies: ["MessageAccessoriesAPI"],
settings,
start: async () => {
const runtimeIds = (await runtimes()).flatMap(runtime => runtime.aliases.concat(runtime.language));
// @ts-expect-error
addAccessory("executableCodeblock", ({ message }: { message: Message; }) => {
const regex = /\`\`\`(?<header>.*?)\n(?<body>(?:\n|.)*)\n\`\`\`/gm;
if (!regex.test(message.content)) return;
const { groups } = message.content.match(regex)!;
// this is the line the error traces to
if (!runtimeIds.includes(groups!.header)) return;
return (
<CompileButton />
);
});
},
stop: () => {
removeAccessory("executableCodeblock");
}
});
which line crashes it
idk what abt the code causes the error tho, the line looks fine
i looked at them their not
ltrlly saying groups is undefined
how about a ?
const header = message.content.match(regex)?.groups?.header;
if (!header || !runtimeIds.includes(header)) return;
On my friends list in the ALL section i have 217 friends, i want to unfriend most of them but its slow and tedious with you having to click three dots, then click unfriend, then confirm,
are there any plugins that make this quicker? like just a button next to them to quickly unadd them
selfbot moment
there is a very old script
deep in the depths of an old server
which is now locked up and private
(i dont have it)
do you not have it or do you "not have it"?
very late to conversation but I switched to linux mainly to juice another few years' of usable life out of my potato laptop with dying battery
which
linux: mint
laptop: lenovo thinkpad from ~2013
damn
@amber mantle
wtf
open in browser 4 jumpscare
What the fuck
@lone panther get the fuck over here
How can I make it so typescript can see my .jade files
i mean
it might be express fucking up
found a fucky workaround
Drake now has a permanent marker in my code
#blamedrake
i'm assuming i need to add the vencord license to the top of my plugin like the other plugins? i don't see a doc for rules about this
you can choose any license you like
Non-judgmental guidance on choosing a license for your open source project
it's not required
if you're planning on getting your plugin added to vencord, then the header will getting added in for you by eslint (pnpm lint:fix)
otherwise do whatever
ah ok that makes sense
maybe a stupid question, but if i plan for the plugin to be merged, i'm assuming i should place it in the /src/plugins folder instead of /src/userplugins/ like the plugin guide says
yes
yeah it's fine feel free to ask questions
no you cannot
you need to use GPL
but you may choose the copyright owner line from "Vendicated and vencord contributors" to your own name if you want
surprises me not more people do that
that's nice to hear lol
but unironically
do you guys have like a backlog or something/
backlog of what
how does contribution look like? do you base it off of github issues?
or basically just
- have an idea
- code it
yeah its the latter
if you wanna make something you're free to just make it and open a pr
just don't expect quick review times
do you have any code style guidelines? what if i write the shittiest code you've ever seen and open a pr?
**CONTRIBUTING.md: **
# Contribution Guide
First of all, thank you for contributing! :3
To ensure your contribution is robust, please follow the below guide!
For a friendly introduction to plugins, see [Megu's Plugin Guide!](docs/2_PLUGINS.md)
## Style Guide
- This project has a very minimal .editorconfig. Make sure your editor supports this!
If you are using VSCode, it should automatically recommend you the extension; If not,
please install the Editorconfig extension
- Try to follow the formatting in the rest of the project and stay consistent
- Follow the file naming convention. File names should usually be camelCase, unless they export a Class
or React Component, in which case they should be PascalCase
## Contributing a Plugin
Because plugins modify code directly, incompatibilities are a problem.
Thus, 3rd party plugins are not supported, instead all plugins are part of Vencord itself.
This way we can ensure compatibility and high quality patches.
Follow the below guide to make your first plugin!
### Finding the right module to patch
If the thing you want to patch is an action performed when interacting with a part of the UI, use React DevTools.
They come preinstalled and can be found as the "Components" tab in DevTools.
... (53 lines left)
the bot fr said 53 lines left
right, missed taht
code review exists for a reason
wow that should really be at least referenced in 2_PLUGINS.md
actually i should probably just point to that as the plugin guide instead of the plugin doc
ikr but it can be various degrees of strictness
ven is pretty strict
you can take a look at other plugins to see how you can structure your code without being yelled at
note: they're pretty much all made differently
we all started with skill issues
I'm not afraid to admit my skill issues lol
https://www.npmjs.com/package/fastify is good for backend or nah?
I don't want to use express lol
is good
ok thx
how to use findByCodeLazy? shouldn't it return a promise or something
const fetchUser = findByCodeLazy("USER(");
// some time later
const user = await fetchUser(someId);
findByCodeLazy("Messages.USER_PROFILE_MODAL", `.USER_INFO_CONNECTIONS`)
waitFor(filters.byCode(...), module => {
console.log(module)
}) ```
this is what you're looking for
the callback will be called as soon as the module is loaded
the lazy find functions a bit differently, it just means defer the search until the module is first used
which doesn't guarantee the module has been loaded
waitFor only resolves once the module is loaded
awesome, thanks
finished my first plugin that just causes secret call tone to always play
@pure temple woul be cool if there was a toggle switch next to each one
Could just add something to only if includes maybe
Like only if includes &&&
And then it won't go?
Idk
oh trrue
import json from '../plugins.json' assert { type: 'json' };
import { gitFetch, copyGitToVencord, baseDir, copyFiles } from './scripts.js';
import type { PluginList } from './types/pluginsList.js';
import { readdirSync } from 'fs';
const plugins = json as PluginList[];
export function movePlugins() {
// eslint-disable-next-line @typescript-eslint/no-misused-promises
plugins.forEach(async (plugin: PluginList) => {
// this will be undefined if we are not using git, but that should not matter if git when used always has it.
switch (plugin.type) {
case 'git':
await gitFetch(plugin.git!, plugin.host).then(
async () =>
await copyGitToVencord(plugin.git!.split('/')[1]!),
);
break;
case 'git-files-aio':
await gitFetch(plugin.git!, plugin.host).then(() => {
readdirSync(
`${baseDir}/temp/${plugin.git!.split('/')[1]!}`,
{
withFileTypes: true,
},
)
.filter((item) => item.isFile())
.map((file) => file.name)
.forEach((file) => {
void (async () => {
console.log(`Found ${file}`);
await copyFiles(
`temp/${plugin.git!.split(
'/',
)[1]!}/${file}`,
);
})();
});
});
break;
case 'static-aio':
readdirSync(`${baseDir}/${plugin.path}`, {
withFileTypes: true,
})
.filter(
(item) =>
item.isFile() &&
item.name.endsWith('.ts' || '.tsx' || '.css'),
// this doesn't work as I wanted to, but it DOES work.
)
.map((file) => file.name)
.forEach((file) => {
void (async () => {
console.log(`Found ${file}`);
await copyFiles(plugin.path!);
})();
});
}
});
}
horror
oh I see
@austere mauve do you know what would cause this?
i have no idea what im looking at
it copys the folder over
but then it copies the folder again inside of the folder it just copied
he gets it dummy
i might leave it broken for now because it works in that state
ill look into why its broken later
or broken when its not broken
frankly, this entire thing could probably be in pure bash
instead of using js as a proxy
now i wanna owrk on something that lets u pick things
it doesn't follow pep80 reeeeeeeeee
update: merged pr #1 from @green vessel
uh oh
yeah when i mapped each letter to its spot in the alphebet they got overlapping locations
but since the data was identical it didn't matter
there's also a second r
but which o function would go first
ah of course
my bad
wait do spaces or exclamation marks go before letters
genius
OH MY GOD
removed bloat π
./run ```js
const epic = (a = "") => new Proxy(Proxy, {
get: (_, i) => epic(a + i),
apply: () => epic(a + " "),
construct: () => Object(console.log(a))
});
new (epic().h.e.w.w.o()[":"][3]);
Here is your js(18.15.0) output @austere mauve
hewwo :3
good point
what the fuck is this
new (epic()["amogus"]()[new Date()]()['b']['a']['l' * 2]['s']);
this function is amazing
amogus Sun Jul 30 2023 00:00:15 GMT-0400 (Eastern Daylight Saving Time) baNaNs
AAAAHH
const reverse = str => str.split('').reverse().join('')
society if every programming language had python's indexing
i hate doing stuff like
str.substring(1, str.length - 1)
removes the first and last char
I hate javascript indexing
Your a map with number keys
Here is your js(18.15.0) output @oblique lark
[]
/run
function thatThang() {
console.log(Object.keys(this))
}
thatThang()
Here is your js(18.15.0) output @oblique lark
[
'global', 'queueMicrotask',
'clearImmediate', 'setImmediate',
'structuredClone', 'clearInterval',
'clearTimeout', 'setInterval',
'setTimeout', 'atob',
'btoa', 'performance',
'fetch'
]
mmm circlular references
decrypt this ;)
no
anyway
@trail ginkgo not to be nitpicking, but the third line of #1032200195582197831 message
should be @api/Settings with a uppercase S on settings to avoid throwing an error
ni hao
im just making a automated prepackager and just wanted to let you know about that warning
true im not changing it tho
lmao
im just gonna change the one I redistribute
just wanted it to be clear there will be a discrepency
lmaoo
shorter
const reverse = str => [...str].reverse().join``
when the low level string immutability
Make it mutable.
so true
i was trying to implement this at one point. but i didn't create the most of the plugin so idk why you pinged.
using prototype pollution you can make this happen in js
it's just
INCREDIBLY cursed
is there a possible way to install bd w vc
no
HOW
is it like 'abc'[[1,2]] or something
fire
indexes that aren't symbol get converted to string
try this
/run js console.log({ a: "banana" }[{ toString: () => "a" }])
Here is your js(18.15.0) output @dull magnet
banana
the array toString method joins by comma
yea
@prime lodge
Invalid command format (missing codeblock?)
Here is your javascript(18.15.0) output @gray ocean
[ 'a', 'b', 'c', 'd', 'e' ]
[ 'c', 'd', 'e' ]
[ 'a', 'b', 'c' ]
[ 'c', 'd' ]
Here is your typescript(5.0.3) output @gray ocean
[ 'a', 'b', 'c', 'd', 'e' ]
[ 'c', 'd', 'e' ]
[ 'a', 'b', 'c' ]
[ 'c', 'd' ]
i hate my life
what da hail is ankha doin
oy guys, where is the plugin folder located at? I want to edit the code of a plugin
you need to build from source
ok
thanks
i hoped it would not be this way cuz im lazy
just wanted to tweak it fast and simple 
does vencord have GuildSettingsEmojiStore implemented
whar
Hi, How can I put a badge of my choice on my profile using CSS
ignore me i read the wrong file
I remade the plugin with the tweaks i wanted. Now it works for my client.
How can i give this compiled plugin to my friends to have them too?
they'l have to compile it themselves
sheeeesh
but if u want u can do a PR to push it to main and see if it gets accepted ir not
dont think it will be accepted
it is a edited version of another existing plugin
π€·
even if i change the name and etc it still does not make any sense to accept it cuz its the same but a lil different
anyway
thank you
oh cant i just give them the build i compiled?
and just paste the build on top of their build?
i guess not cuz they need to inject it into their discord client 
I am doing a dumb thing, so if you don't want to support me π
I want to programmatically add a reaction to a message in discord
Normally, fetch run inside of discord includes authorization headers by default.
Attempting to switch a request's method using
fetch(`url`, { method: 'PUT' })
overrides this authorization header
How do I change my request method without overriding the default headers?
async function horseReact(channel, messageID) {
const resp = await fetch(`https://discord.com/api/v9/channels/$%7Bchannel%7D/messages/$%7BmessageID%7D/reactions/%F0%9F%90%B4/%40me?location=Message&type=0`, {
method: 'PUT',
authorization: '' // NO, stinky, i don't want to get my cookie
})
}
ignore ${thing} being replaced with $%7Bthing%7D, discord likes breaking urls even when they are in code blocks
what do I use instead?
discords method or RestApi class
how can I access either of those?
is this in vencord or no client mod?
No client mod
oh why
btw
normally, fetch run inside discord includes authorization headers by default
idk where u got this from but its not true
Really dumb reason:
Meme in some memes channel, person has every single one of their messages reacted with π΄
I want to make a script for people to easily horse react all their messages in a certain channel
it is true
async function getMessages(server, channel, author, offset=0) {
const resp = await fetch(`https://discord.com/api/v9/guilds/$%7Bserver%7D/messages/search?channel_id=${channel}&author_id=${author}&include_nsfw=true&sort_by=timestamp&sort_order=asc&offset=${offset}`)
console.log(resp)
data = resp;
}
works just fine
self boat 
self boat?
bot
true
no it doesnt
it works for me
I swear to god that worked for me just a minute ago
maybe cause its a public guild
alright I am dumb I guess
anyway
wreq(163082).rU("1032770730703716362", "1135662554153238669", { id: null, animated: false, name: "π΄" })
this is discords func for it
thanks
You don't have to, its a dumb self bot for a bad joke
const wreq = webpackChunkdiscord_app.push([[Symbol()],{},r=>r])
webpackChunkdiscord_app.pop()
const RestAPI = Object.values(wreq.c).find(m => m.exports?.ZP?.getAPIBaseURL).exports.ZP
function horse(channelId, messageId, superReact = false) {
return RestAPI.put({
url: `/channels/${channelId}/messages/${messageId}/reactions/%F0%9F%90%B4/%40me`,
query: {
location: "Message",
type: superReact ? 1 : 0
},
oldFormErrors: true
})
}
thanks
function horse
I get this error where do I set the platform
X [ERROR] Could not resolve "child_process"
src/userplugins/ReUpload/index.tsx:7:21:
7 β import { exec } from 'child_process';
β΅ ~~~
The package "child_process" wasn't found on the file system but is built into node. Are you trying
to bundle for node? You can use "platform: 'node'" to do that, which will remove this error.
[16:17]
trying to use ytdl-p
plugins run in the browser process they have no node access
if you want to use native nodejs code you need to use ipc
ah thanks
when you mean browser do you mean the desktop client or actual browser?
o thanks I will look into it
i used my brain today
and while that in itself is crazy
i came up with an idea
what if, the mediasource stream from the mic which is used for sending audio, was intercepted, piped tru an audio context, and then we could download any audio from a soundboard and pipe it into the audio context via mic?
const gdm = navigator.mediaDevices.getDisplayMedia
const audioElement = document.createElement('audio')
audioElement.addEventListener('ended', ({ target })=> {
target.src = ''
})
navigator.mediaDevices.getDisplayMedia = async opts => {
const mediaStream = await gdm.call(navigator.mediaDevices, opts)
const audioContext = new AudioContext()
const destination = audioContext.createMediaStreamDestination()
audioContext.createMediaElementSource(audioElement).connect(destination)
audioContext.createMediaStreamSource(mediaStream).connect(destination)
return new MediaStream(destination.stream.getAudioTracks())
}
function playSoundBoard(src) {
audioElement.src = src
audioElement.play()
}
HMMMMMMM
i wonder if this would work
god this is fucking stupid
ive never used react before but im trying to make a simple plugin for personal use and was wondering if i could find some help here. i'm trying to make a plugin that allows you to select a locked voice channel and join it as soon as it is unlocked, but i don't know where to start lol. can anyone help me with this? π
i have no idea but should have code that monitors the status, when it updates to unlocked then the code makes the user join said VC
might need to have an option for auto mute or auto deafen
again, my two cents but i have no idea what im going off about since i dont code react, i do python
my problem is more that i dont know how to make the code reference that channel or what functions/variables are available for me to use βΉοΈ
selfbot
can someone send me a pic of shiki codeblocks preview rq
@trail ginkgo
you could actually lol
wdym like what it looks like?
this is what mine looks lioke right now, but it looks kinda bad
no its also the border probably
uh idk thats just the normal behaviour of codeblocks
they always fill up the width of the messages box
unless they're in a blockquote
no, i have my own component
oh so the line gutter is intentional
(the thin line between the line numbers and the code)
real
i gotta look into hljs themes
ohh that makes sense
nix terrible just tried it π₯±
whoever invented home-manager is evil
ill stick to my arch system that breaks randomly every week for no reason
got a weird error with my bot. Anyone know what this is going on about?
keeps posting this message no matter the command i put in
active developer moment
go to discord.com/developers -> your bot -> bot section -> generate new token
this was a new token
clearly isnt
this is the 5th time 
let me check
nothing in there

yk what
i'll just make a new one, no idea wtf happened to this one


wait, nvm found the issue 
speaking of active dev
does anyone know if they changed the requirement to let them collect usage statistics to get it?
i have it off afaik and it randomly gave me the badge
no they did not
are some other people using ur bot
yeah
i only have one slash command and it's useless i just made it for the badge
Thats sad
ayy its Gibbu

o/
I have 21 server related to Discord modding 
lol
HOW???
i have like 10 and i already find it much
how many of them have anime themed branding
wait
I have almost as many as gibbu apparently
i have
- vendetta
- vencord
- aliucord
- betterdiscord
- betterdiscord devs
- random dziurwa datamine server
- enmity
- dead powercord
- client modding stupidity archive
- mantika reviewdb server
- armcord
- discord client mod encyclopaedia
- aliucord ESP/PT
- dead ittai
- kernel
- strencher
- old cumcord server
- lighty
- materiiapps
why are lists so bad
So fat
they will make them compacter
someone make better list css
the font is like
monospace
but not
and theeres weird spacing between the numbers
1231231312. not to mention whatever this is
oh god did they fix it
no shot
discord never fixes things the same year it gets added
it doesnt go out of the message anymore
"fixed"
why does 1231231312. get rounded to 1000000000. π
would it be possible to interface with openasar to repair vencord when its uninstalled cause of a discord update, since the asar file is never replaced on windows installs of discord, i think this would be an awesome feature and mean i dont have to reinstall vencord every discord update
obviously i have a bare-bones understanding of how discord works so maybe it wouldnt be possible whilst discord is open via the asar
no
vizality

can i redirect <anything>.example.com to example.com/<anything> with caddyfile magic?
not with caddy
with a different webserver yes
but caddy can't
afaik
sad
oh nvm
guess they added it in v2
but you have to build caddy yourself with the cloudflare module, for instance
so it can fetch a wildcard cert
thats weird
fair enough
*.exhq.dev {
tls {
dns ...
}
redir https://exhq.dev/{http.request.host.labels.2}
}
something like that though
^, had to figure this out forever ago to get wildcard certs to work
is there a possible way to join/hear or just see the screenshares of unjoinable vc?
no
if u join the vc then u can join the screen share π€‘
Reread what i said
Do you know how to use your brain?
should i use the TextInput component or an actual input element?
how would i check if a specific user is in a specific guild?
(if someone repsonds, please ping me)
bro im a tiktok user respect me
my brain is long gone fucker
respect my disability? stop being so TOXIC
lemme spell this out
to see a screenshare in a vc
u have to be in that vc
u cant look at a screenshare in that vc if ur not in the vc
π€―
so its impossible?
answer that urself
impossible........ but my mom said nothing is impossible.. π¨

π’
im-possible π :amanwalking,uptospace,dancing,saying,im,possible:
π
theres a your mother joke in there somewhere
bro hold up im getting a weird errror
whenever i run pnpm watch, but when i do pnpm i it doesnt install any packages
you can't import from react
you cant?
duh
ohhhh
we use Discord's react
i gotta get from webpack
you want webpack commons
bump
take a look at GuildMemberStore, though that only includes cached members
hello, can I have the "snippet dev" role pls?
youβve never shown what you can do with css in #π¨-theme-development
is anyone in here acually nerdy enough to know how discord checks for devtools lol
if you want to do some advanced trolling, here's a good snippet
document.addEventListener("keydown", function(event) {
if ((event.key === "F12") || (event.key === "i" && event.ctrlKey && event.shiftKey)) {
event.preventDefault()
alert("fuck you");
}
});```
wait what
you can just listen to the keybind??
preventDefault is so not gonna work
it does 
uhhh you mean the engine?
I doubt edge/opera/... change the way the keydown event works
safari prolly has its own engine
also instead of ctrl you prolly have to listen for the funny imac keyboard layout
true
so silly
tbh I've wanted to use https://hyprland.org/ for some time but there's this thing called nvidia
from the name of it that sounds like it'll do nothing :)
ow that's true lmao
hey, would you know a way in regex to match every \s between /- and -/ ?
(for example I would like "/-hello how are you-/ another text here" to be replaced with "/-hello+how+are+you-/ another text here")
https://regex101.com/ btw I use this website to build my regex, pretty useful
try tgat
im on mobile lmao
also imo https://regexr.com is better
ok thanks, it doesn't work
/(?<=\/-.*?)\s(?=.*?-\/)/g
``` except it's probably extremely laggy
I have an error with this
select ecmascript
ow yea sorry
it works, thanks, lmao I'm trying to do one for like an hour and you do it under a minute π, I'm so bad at regex, at least I learned stuff



YES



spreading the news that vim's creator died
From the splash screen:
Vim is Charityware. You can use and copy it as much as you like, but you are encouraged to make a donation for needy children in Uganda. Please visit the ICCF web site for more information: https://iccf-holland.org
yeah it's very sad
rip
funneh changed badeg nam
rip
how can i make my own plugin
in a convoluted way, vencord is like linux - monolithic, so all the plugins are shipped with the app itself
therefore code for existing plugins is literally on the main repo lol
https://github.com/Vendicated/Vencord/tree/main/src/plugins
once you've figured that out make a pr
bruh
very cool bc it comes w a lot of benefits
how could i listen to a message being sent,
then change the content without having to edit it (to prevent selfbotting)
as in stop it from happening all together, run some code, then send it (this applies to 2 usecases i need this for)
what
yea that wasnt a very good way of wording it lol
i know what would help, a diagram drawn in ms paint :D /hj
what exactly are u trying to do
2 things, first and main thing, is trying to edit the content of a message before its sent
many plugin examples exist for that
could you point me to one?
nah
regexr is pretty buggy
it doesn't report errors as nice as regex101 as well
any suggestion how to introduce persistency for a plugin? writing data to json or in any format as long as i can persist data
settings for convenience, datastore if written frequently/you want to store large amounts of data
Settings:
- small data
- synced across devices
- json values only
- user can easily edit this
- generally only for like the name implies settings
- synchronous aka blocking, which if used too much could possibly cause lag
DataStore:
- can store large data (many gigabytes technically)
- any cloneable js structures (maps, sets, dates, etc)
- not synced
- asynchronous / non blocking
how exactly does DataStore work? what is its structure? im guessing its basically one big map so that each plugin can access "their own DataStore"?
it's just indexeddb
I'd like to try and change the gradient on the coding to make it a blue to cyan to purple instead of gray but I'm completly lost on how to do it, can anyone help?
it is actually just background image
make a background like you want, upload to imgur, get link and replace that imgur link in theme
Yo, give theme please
Its just right there 
Hello,
I'm trying to create my own plugin. I checked the github with examples but I can't figure out exactly how it works. I searched on my own Vencord to find the items but I can't.
If someone could help me, I would appreciate it. Thanks.
Just wanted to share a basic plugin a made. #1032200195582197831 is a locked channel so it's going here.
I modified the api calls in the last.fm plugin to work with listenbrainz/musicbrainz https://github.com/qouesm/vencord-listenbrainz-rpc
It probably has issues but I just finished getting it working for me a few minutes ago
Unpoular opinion but atlas based
You call it no updates, I call it unintentionally immutable os
So useful
It can also show how it matches step by step
Which is cool for attacking evil regexes ig
Lol
After debugging regex for way too long you'll instantly recognize the sidebar from ptsd
Why use ide at that point
Do that with code too
Write + pray it works
Wat
Compile deez nuts in your mouth
horror
just https://regexr.com/
what
oh
i dont trust chat gpt to generate coherent results
me when copilot
people have too much of a reliance on ai
i watched someone dump their bf for an ai
yeah but after having a back and fourth of more than 10 messages it starts to get incoherent
im not saying im exempt from that rule
2 regex flavours?!
Replika moment
How do people make money off these things
is it free? I wanted to investigate the service they use but they wouldnt say
all i know is it was free
Ive tried making an ai thirst trap but the problem is ive never seen an actual thirst trap so idk what to write as a prompt
I think not sure
dear god why is this a thing
go on snap or something
You could always just not pay if it's not free
Yuck
Proud grapheneos user
Will not use sandboxed gapps
Like seriously what do i write "cute girl that i can sell on onlyfans"
Ikr π
they are very clear at avoiding the "gf/bf" term
terry davis: $0
linus torvalds: until it got popular, $0
ven: $0
these idiots who connect openai api to the sims: insta cash
The stereitype of tech startups being out of touch geeks is wrong because these are all clearly made by businesspeople π
i mean sure ive vented into clyde, its better than venting into the void but
i havent treated ai any more human than that
Their advertising says otherwise
Based
@trail ginkgo how do i just let the user download a file with caddy
like
example.com {
//literally just respond with an image in a specififc path
}```
yay or nay?
fair price
it's even cheaper in β¬ 
least brained take of the year
quick question
how do you fetch discord's webpack modules these days
like I'm trying to get the logout function without a client mod and in betterdiscord I just did BdApi.findModuleByProps("logout") and got its module
and I tried a million other things but can't seem to fetch it
i dont have a snippet on me, but its the same as it always has been (since the webpack update anyways)
idk all snippets I tried just return undefined
but for some reason betterdiscord is able to get it
my god thanks
np
oh yeah also how do you start learning reverse engineering discord's internals
personally i started with vencord funnily enough
thing's pretty interesting but I have no idea what to do
it bundles the react devtools as part of the install, so you can go through and start inspecting react components
and find the related source code
then you could copy/paste those components out of devtools and into vscode
and start renaming variables
then you slowly build up a bigger picture on what the original code behind it was
though, without vencord, a lot of the reverse engineering effort is mainly deducing what certain variables are and giving them better names
when you give them better names, it becomes so much easier to understand how the code works
np
nice name 
lmfao
thanks bread
I personally never renamed variables lol
same lmao
same
I shrimply rename them in my head
also useful guide
anyone knows if discord already makes good use of webworkers?
Yea they have one for image resizing iirc
define "good use"
they use them for few things but not much
thinking about injecting partytown, but no idea if it'll actually improve things
it probably won't work anyways cuz I bet it'll mess up the webpack module thing
not sure how partytown works but is it different than just putting things in a web worker
Partytown is different. It allows code executed from the web worker to access DOM synchronously. The benefit from this is that third-party scripts can continue to work exactly how theyβre coded.
the only difference afaik
Yeah, I remember using it once with svelte and now wondered if injecting it into discord could make stuff run better across multiple threads
I'll just give it a try now
doesnt sound fruitful but sounds fun to try

no it can't
generally there's not much point in moving stuff to workers unless it is very long running or cpu heavy
like perfect use cases for workers are image manipulation and such
the overhead of serialisation / ipc isn't worth it
hmm oki ;-;
im curious if she can get large flux events to not block the paint thread
like channel switching
Nitpick but isn't marshalling a better term
no
they are somewhat synonymous
but (un)marshalling is generally transforming too, like json string to object
whereas in that case the data is just converted into bytes then converted back to a object
although often people also call this serialisation
they basically mean the same tbh
this is almost real
hi
how do i achieve mixins
i want to fire an event whenever i send a message
a
i could try to listen to the messages api endpoint firing but i have no idea how to do that
and how to cancel and do my own logic
hmmm
from textreplace.tsx
im very new to plugin creating so how do i do this
do i redirect the call
or smth
no idea either
aueegghhh
it depends on what ur trying to do, what r u trying to do
are u trying to modify the content, or just stop the message from sending
i want to automatically add something at the end of my msgs
like a signature
this server is more unprofessional than my dev team

that was random
is it possible to change the background colour of the spotifycontrols plugin?
my ass does not know how to do that
ty




