#๐ช -progaming
1 messages ยท Page 13 of 1
where as with a bot you can listen to events
Your mouse and its the same but it does the DVD screensaver thing when you're not using it so it's not
Quoting ashlee ๐ธ (@ashlee3dee)
@gvy_dvpont could you make your mouse do the DVD screensaver when it is idle? that would be so cool
wdym
firstly, i dont need an event from discord if i just emit event myself when any change is made
oh shit yes you dont need to do that
secondly I would only need to update like one or two inodes
i was thinking bot mentality
Doesn't start at actual mouse position, 2/10
it should start as soon as the mouse stops moving
seems doable, how i would make it writes would be insanely slow tho
maybe it would be better if instead of using attachments, each message is a block๐ญ that sounds insanely cursed tho
and a lot more work
nah that wouldnt be better, maybe only for small files
infinite file size tho
how the FUCK would you store gigabytes of data in 2k character message chunks
files on a filesystem are also stored in small chunks
i think 512 bytes is most common? im really not sure
a discord message can store way more than that tho!!
i wonder if theres some rust crate that already does all the work on top of your own inode abstraction for me
thats an insane concept
maybe this idea doesnt work at all but I'd like to see if I can just make a discord channel into a block device
im guessing a block device probably does expect no holes in the block numbers tho
to avoid dealing with this, I could make a multi level lookup table to map block numbers to discord message ids, the amount of levels depending on the max size of the block device. this way with only a channel id and one message id it should be doable to use a discord channel as a block device any have any filesystem on it
Watch out for discord sanitisation, not that a specific sequence of bytes gets converted into an empty character at the beginning/end and gets nuked by discord
right, for safety I can encode it using some set of characters
Emojis
i was thinking some kind of base256
๐จ๐จ๐จ๐จ
prpbably takes up way too much characters per emoji
would be easiest prob
allows for 2048b blocks too ig?
nvm max msg size is 2000
not 2048
we love app emojis
inrease your message size to 4k with nitro! (not sponsored)
The optimal emoji set for data transfer is
๐๐๐๐๐๐๐๐๐๐๐๐
๐๐๐๐๐ ๐ก๐ข๐ฃ๐ค๐ฅ๐ฆ๐ง
You can get like log2(24) bits of data per I can't be assed to count the bytes
I just realized that there is an "x" missing in the documentation
there should be at least one index.tsx
Is there a place to talk about Linux here?
Just found out that python's evaluation order is fucked ```py
def foo(a: print(1) = print(2)) -> print(3): pass
why can you use an expression as a type
๐
/run
def foo(a: print(1) = print(2)) -> print(3): pass
foo()
Here is your py(3.10.0) output @royal nymph
2
1
3
you dont even need to call it
Because in ages past, annotations were more general than just types
So it's a leftover from that time
/run
def foo(a: print(1) = print(2)) -> print(3): pass
Here is your py(3.10.0) output @cerulean plover
2
1
3
/run
def foo(a = []):
a.append(1)
return a
print(foo())
print(foo())
Here is your py(3.10.0) output @royal nymph
[1]
[1, 1]

i hate that
whoever thought that was a good idea
it is a default argument and works fine
It's the default for that argument
but it uses the same default argument for every function invocation
then why tf does it get evaluated early
instead of making a new one every time
no it doesn't ๐ญ
thanks for teaching me another reason to hate python
It's py default = print(4) def foo(arg): if arg is unset: arg = default rather than ```py
def foo(arg):
if arg is unset:
arg = print(4)
you're right it doesnt i really meant oh it makes sense that it does that
For... some probably bad reason?
the worst part is that there's probably a sick bastard out there who uses that behaviour deliberately

I am very new to this but if I wanted a function to be runned whenever I would block someone, how can I do that? And how can I learn how to know to do similar things in the future?
/run
local text = {"I ", "use ", "lua", true}
local num = 1
for i, v in text do
if i ~= 4 then
print(v)
num = num + 1
end
end
@hardy chasm I only received lua(5.4.4) error output
lua: file0.code:4: attempt to call a table value (for iterator 'for iterator')
stack traceback:
file0.code:4: in main chunk
[C]: in ?
Aww come on.
could listen for user block event dispatch then run your thing
why 2k? you can use attachements
ah sorry
why the fuck would u use messages instead of attachements
feels like cheating otherwise
/run ```lua
print("balls")
Here is your lua(5.4.4) output @old haven
balls
nice
it will also be easier to make a block device out of messages, it wouldnt make sense to use attachments for that (more cumbersome read/write, no edits, block sizes are fixed and having very big blocks has downsides) which supports any fs impl on top
discord may also be less of a fan of me abusing their attachments as file storage, it sounds to me like its a lot easier to spot that than plain messages
whats a bots max attachment size anyway? if its only 8mb its not that much better than messages
not to forget, attachments would also require an extra http request to read i think. network calls would def be a bottleneck here
so that about concludes my reasoning
you can store roughly 1572 times the data inside a attachement as opposed to message content (assuming b64)
i wouldnt be using base64
/run
fn main() {
println!("die")
}
Here is your rust(1.68.2) output @lavish frigate
die
message contents require way more requests as you get a lot of extra json data that is not the message itself
feel free to make it using attachments
I have been looking but I have no idea what event I should be looking for
using the fluxdispatcher you can catch events, defineplugin also allows you to do this via the flux property
as for how to find out how you can do stuff, learn how to read source code
there are hundreds of plugins that can function as examples
start using Flux dispatcher yes and then do said action which in your case is blocking a user
there should be your event in the console which will be appropriately named
index.js: Lines 1-5
// This alphabet uses `A-Za-z0-9_-` symbols.
// The order of characters is optimized for better gzip and brotli compression.
// Same as in non-secure/index.js
export const urlAlphabet =
'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'
insane order
that's funny
I think it's because brotli is optimised for Javascript and common words
use... strict
random
PX
px
I love how that package is ultra micro optimising which immediately gets ruined by the insane bloat that is your average web framework
I wish more packages did good optimisations
maybe not to this extent where you reorder the alphabet for a few bytes saving but at least making sure u don't use 5 million dependencies 
hey use however many deps you want, as long as it doesnt end up on my computer 
are there any good js/ts formatters
direct answer: no
more useful answer: no but you can use the vscode formatter or prettier they're both decent

eslint fix >> prettier
yea, but eslint doesnt work well outside of projects and prettier seems like a pain in the ass to setup
wasnt saying they were good
and JavaScript itself
long as its not megamorphic
biomejs.dev
it does, it's now a general lint runner
i fixed my eslint setup and it works fine now
just need a way to run it on arbitrary
like which ones in particular
run eslint, with my personal config, on any file, without having to install eslint per project
oh lol I don't think that is possible
with enough bash, you can do a lot
not sure the new flatconfig even works globally
okay sure yeah that can work but any file, as in what file?
eg ~/temp.js
i do a bit of that, and eslint is just nice to have
oh I thought you were talking outside js
no
hmm
I would've just used biome tbh but I think eslint global installs work still
yeah this is not very friendly
try cooking something with bash though, should be easy!
wtf
me when i have a two line config for testing
it's not about eslint
ยฏ\_(ใ)_/ยฏ
at the end of the day you choose to write like that
yeah even if I don't have any ide support I still format my code decently
might have inconsistent indent sometimes but never as bad as that code xd
idk how it's not natural instinct to format ur code in a sane way
wdym I always write my code as a one liner
Ofc it is
i love the nternet
If you think about it, interned and internet are only one letter off
vban 7 @woven wasp malware/extremely dumb
Done! 
Banned s.killissue (@woven wasp)
truly a skill issue
guess what this code does:
with open("[answer].json", "w") as file:
json.dump(beconf, file)
with open("[answer].[answer]", "w") as file:
file.write("\n".join([f'{k}="{v}"' for k, v in conf["env"].items()]))
with open("[answer].[answer]", "w") as file:
file.write("\n".join([f"{k}={v}" for k, v in conf["env"].items()]))
interesting shit
assuming vanilla python, and globals beconf and conf: dict[string, dict]:
- write
beconfto[answer].json - write
conf's env key to[answer].[answer]in the formatkey="value" - do that again but
key=value
yep
[answer].[answer] is a placeholder name for the file
the actual names are build_config.json, build_config.env and build_config.mk
beconf and conf are the same variable, i forgot to change all names in result snippet
any suggestions to make those oneliners more readable?
they're too readable already
you dont need to use intents yk
python try not to look ugly challenge (impossible)
Python execute stuff left to right challenge (impossible)
def format_object(obj):
return [f'{k}="{v}"' for k, v in obj.items()]
with open("[answer].json", "w") as file:
json.dump(beconf, file)
with open("[answer].[answer]", "w") as file:
file.write("\n".join(format_object(conf["env"]))
with open("[answer].[answer]", "w") as file:
file.write("\n".join(format_object(conf["env"]))
right to left
that's not exactly right solution because result contents of both "[answer].[answer]" (build_config.env and build_config.mk) should be different
while env file can be threated as .env file (which forces us to enclose values to ""), .mk file does not need so because makefile does not care about "" in variable declarations
the with _ as _ syntax is extremely ugly i propose
def format_object(obj):
return [f'{k}="{v}"' for k, v in obj.items()]
answerJsonHandle = open("[answer].json", "w")
answerAnswerHandle = open("[answer].[answer]", "w")
json.dump(beconf, answerJsonHandle)
answerAnswerHandle.write("\n".join(format_object(conf["env"]))
answerAnswerHandle.write("\n".join(format_object(conf["env"]))
And when do you intend to close those
i maintain some stupid hard fork of some tg bot
it's database code did not closed the databases until i did some shady gc-like manager shit
then i realised that that shit sucks and replaced it with bunch of withs
(dir/"[answer].json").write_text(json.dumps(beconf))
(dir/"[answer].[answer]").write_text("\n".join([f'{k}="{v}"' for k, v in conf["env"].items()]))
(dir/"[answer].[answer]").write_text("\n".join([f"{k}={v}" for k, v in conf["env"].items()]))
what the fuck
this is fake
Why do you hate pathlib
just when i thought python could not get any uglier
let's bring some perl oneliners here
i did not have one
perl is irrelevant because whenever i search for just "perl" i get images of actual pearls
Python is a great language for prototyping and throwaways, but anything above maybe 100 lines is better off in any other language (except c)
gotta wait for react 20 first ๐
exceptionally c
how this is supposed to work?
it just is

does anyone have a simple way of suppressing this error?
What is the best ui for python? I currently use tkinter. (That works on linux mint)
Ok
impossible
ye, I tried a few things, but nothing worked
so I'll just leave it as-is
/run 2 + 4
@marble laurel
Unsupported language: None
Request a new language
he's kinda right though
if your program doesn't experience any issues it doesn't matter
What if there are other programs running on the computer
They might want some of that sweet, juicy ram too
Itโs like having a gas leak and living with it by not turning anything on
Just donโt run other apps
@quick crow oops gas leak
Is there a specific discord relationship status for users that you have sent frienship requests to but they have not accepted?
@void leaf you fr or joking
honestly, itโs a very weird replace and return isStart length is kind of suspicious
Its just the sound effects base64 encoded so I didnt have to have separate MP3 files 
u can check the base64
These are the sound effects (just the stream start/stop but i adjusted the pitch)
I am joking, but just for future reference, I would have them separate files. I also would open up a mod mail and get it approved instead of just straight up linking to it
I did put it in a modmail as well, just thought I could share it with that person, my bad.
New to making plugins so thanks for the feedback
I shall make them separate files
k fixed
also i got a contributor to make something right
appreciate
Just do it on a canvas at least
Please no
WHAT
rate my ui 
simplistic, nice
you won't see ui this original anywhere online
Needs more rounded corners
copied and pasted from the vrchat server
i made an osc app for avatar toggle presets!
it currently looks horrible, as i focus on functionality before beauty, but it is fully working!
a screenshot of the (horrible) ui is at https://files.catbox.moe/mob55w.png, as i dont have image perms
it runs through oscquery so you should have no issues running it alongside other osc apps!
i will setup exe builds of it soon, but for now you have to run it through source
you'd benefit from that no css ui library
god i dont remember what it was called, it simply forces styling on all html elements and tagss, making them into component
without any classes
this
"it's unreadable"
"a maintenance nightmare"
"please don't do this"
Your complex types don't need to be complex to use.
Let me show you ๐งต https://t.co/3H4ouSkORc
๐ 1.2K ๐ 73
why would you do that at all
"StringWithAutoComplete"
what does string & {} even do?
hack
allow you to index characters?
i still would never do that (mainly because I'm too lazy)
blue is a subset of string so it gets removed and only leaves string
which breaks autocomplete
string & {} combines string with an empty object which is still a string but blue is no longer a subset of
so it won't get erased and you have both
that way you get autocomplete for "blue" but can still pass any string
ohhh
weird behaviour in my opinion
vencord uses it in some places, it's pretty useful
Why not "blue" | StringWithAutoComplete then
that works too
utils.d.ts: Line 228
openExpressionPicker(activeView: LiteralUnion<"emoji" | "gif" | "sticker", string>, activeViewType?: any): void;
it gives you auto complete for emoji gif and sticker but also allows passing other stuff
interesting
StringWithAutocompleteOptions

Would anyone happen to know how the discord client knows what version it is? e.g API endpoint
(writing an auto updater for my ubuntu machine cuz i hate manually doing it)
i see i see
discord version manager for linux. Contribute to diced/dvm development by creating an account on GitHub.
are there guides that explain how patches in plugins work?
They're just regex
yes but why this
Because it found 14657 modules matching your find
old but still very valid (especially since there is no new documentation)
and it must only find 1?
Unless you explicitly opt in to multiple matches, yes
thank you
I did set all to true
oh i thought the find is a css selector
Css selectors are for matching html, not js
are patches only for js
yes
What else is there to patch
then i'll just write normal js i guess
Patching css would theoretically be possible I guess, but not particularly useful
If "normal js" means mutation listeners and dom manip, don't
oh
that is indeed what i meant
well you can do what you want, no one is gonna stop you
but doing that sucks in many ways and you have a 0% chance of having any code like that accepted
oh im not trying to write an official plugin
You'll have bad performance and very limited access to data
right now i want to test something and if i get that working i'll make some plugin for myself
let's say i want to make every single message be "hello", what would be the preferred way to do that
catching message events via flux dispatcher then editing contents
no patching required
neither is dom manip
Patching the message renderer function
โน๏ธ
okay i didn't give a good example
the thing i actually want to do is remove emojis from all channel names
channels aren't really created that often
Change the channel name render function
so for that i do use patches
Patches are how you modify functions, yes
im guessing there's not really a place which details all the functions i can use is there
yeah but how will i know the exact function name
that i need to modify
and also how to exactly modify it correctly
The function name is probably w or gk
how am i supposed to know that in the future
By matching the function's shape, not its name
but where am i gonna see the shape
In the code
what should i be searching in dev tools
is there a way via console to disable all vencord plugins at once? or do i have to go one by one?
Probably
Object.values(Vencord.Settings.plugins)
.forEach(a=>a.enabled=false)
This probably isn't a good idea because of hidden/required plugins
ya idk i wanted to start fresh to rework on a plugin and i had cloud backup enabled so it auto enabled everything lol
ah
you have everything enabled in your cloud backup?
almost everything lol
i only have these two
this probably isn't a good idea
nah all plugins that are required ignore their enabled state
but i wouldn't even do that
just open settings folder and rename settings.json to something else
once you're done rename it back
ok will do that
ya that worked grate tnx
Can someone tell me if this will be in main vencord https://github.com/Vencord/plugin-requests/issues/1026
this one is rn marked as a 3rd party plugin and i dont see a pr for it
this one dosent have anything made for it atm
do yall see somthing bad with my imports? last time i worked on this plugin was like 7 months ago and now it shows like this
other plugins look fine just this 1
can there be a pr for it
ask the guy that coded it to pr it
who coded it
is there direct message on github
v+ no programming
hovering it might be useful
what
even when looking at this example, i can't find what they're talking about using ctrl shift f
@green gulch If this is you would you please put your plugin in vencord
because thats an example
its not actually in the app
they said it's in the isStaff plugin
oh i can't even find that plugin
yep
v+ no programming @royal nymph
vwhybanne vending.machine
bro is not banne
Um
Not sure if it would get accepted
And I can't just "put it in vencord" it has to be a PR
Do that
when the windows the
https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-38063
they also had rce in wifi driver last month lol
is there a list for all the discord props that i can find with findbyprops and findbypropslazy?
Ok
Just a suggestion but it could be good to implement some props as types
Like this:
const props = [
"prop1",
"prop2",
"prop3
] as const
type Prop = typeof props[number] of props[number] | (string & {})
You can type in any props
But most IDEโs provide autocomplete for one of the props in the list
Any string
This is very helpful information
Is there a way to get something similar to notepad++'s change history on vscode? (on local files without git)
yes, but also will it ever be made so that required plugins set themselves to be enabled if they are marked as disabled (somehow)
i want peoples thoughts about this: a plugin that notifies you in-app when a youtuber you choose uploads a video
might be impractical but just an idea ๐คทโโ๏ธ
stop making discord os
why in the world would that be inside discord
just have it in your browser or use an RSS reader app
couldnt you export youtube subscriptions to RSS at one point
nah man youtube notifications in discord
bookmarklet
doesnt youtube have push notifs?
Is there a way to make this copy without having to press the confirmation button?
right now, it won't actually copy until i click that
Solved by adding await
(or if there's any way to improve it ig)
formatted version of the bookmarklet:
javascript: if (window.location.href.startsWith('https://regex101.com'))
((
url = 'https://regex101.com/?regex=' +
['regular expression', 'test string']
.map((selector) =>
encodeURIComponent(
Array.from(document.querySelectorAll(`[aria-label="insert your ${selector} here"]>.cm-line:not(:has(>.cm-placeholder))`))
.reduce((acc, val) => acc + val.innerText, '')
.replaceAll('โต\n', '\n')
)
).join('&testString=')
) => {
try {
navigator.clipboard.writeText(url);
window.location.href = url;
} catch (e) {
console.error('Error copying or going to window location: ', e);
}
})();
yeah ik
i meant have clipboard be processed first so it copies before the popup or something
just tried timeout, and it seems to work, but idk if it'll be consistent
await it
it's async
how long until pull requests get merged
how about i give u a cookie
enticing offer
but a really big cookie
intriguing
intriguing enough to merge?
๐ฎ
take the amount of days it's been since the last 6-planet alignment event, add the amount of days its been since your last birthday, multiply by ฯ, and then divide by the amount of currently open prs there are
and thats how many days you have to wait until your pr gets merged
uhhhh
thats alot
but its not my pr just a cool plugin
and also this https://github.com/Vendicated/Vencord/pull/2780
one of them has a green checkmark next to it, does that mean its merged?
the check just means it was able to build without error
(well really it just means it can be merged, which is a few different requirements)
how long realistically do you think it will take then?
depends
high demand plugins that aren't too big are more likely to get reviewed earlier
but nothing is guaranteed
can't guarantee anything
oh no that wasnt my goal i was just curious how many people can actually do it
im not going to bother anyone about it
its 4 i think
not sure why you deleted the message bitslayn, but yeah that's pretty much what i wanted
I thought there would be a setting for it built into vscode, but that extension seems to works fine
Maybe it was deleted because it still needs git installed, but i meant for just random files not in a project with git setup, or on git ignored files like userplugins
does anyone know why firefox slows to a halt when viewing a websockets messages? (this doesnt happen in chromium)
tested using brave + librewolf, latest versions; brave in a private window, librewolf on a clean install
lollll
like the browser itself is fine
its just having a hard time sending and receiving messages
does anyone know how discord attaches a ref to the component inside tooltips?
or at least a simmilar way
by tooltip you mean this thing right attachment
yes
absolutely no idea attachment
what does the \i identifier do? is this documented?
It's a vencord special
mhm
I think it's something like \b[\w$_]+\b
hm ngl im really bad at regex xD i have no idea what that does at initial glance
hm looks like it just matches every word ๐ค
It matches a javascript identifier
I would guess you are @rose otter
Looks like it's [A-Za-z_$][\w$]*
It is
thoughts on the new theme?
I made the top bit frosted, then I switched the rest to pretty much atom one dark
does the missed phone call come with the theme?
bruhhh
You could totally make a theme that does that
Assuming you know exactly how wide the clock is and shit
that blur is ugly imo
Yeah I'm not sure about it
It has a sorta cool effect, but idk
when scrolling it looks kinda cool I feel like
it's cool seeing the content become clear, but I think I'll make it configurable
guys im gonna make a password manager plugin (real)
wait what app is that
it doesnt look like regular discord
yeah it's my own thing
it's a custom client
ooh sick
just been trying to get the theme to a good spot recently
what if you made the blurry area more blurred and darkened a bit
that's not a bad idea
guys i need to someone told how to make a wonderful client like vencord?
what i need to learn also
lmao
learn html, js, css, how the web works, websockets, js libraries, especially electron, reverse engineering, etc etc etc
what is etc etc
<:i:1263592450136473684> etc. ษtหsษtษrษ
adverb
- used at the end of a list to indicate that further, similar items are included.
- protect seedling from damage caused by feet, lawnmowers, pets, etc.
i guess
its way too much to list everything
all the things ive listed are gonna take you a couple years to master
ahhaa
i mean if i learn backend should i choose a specific thnig
like node.js
should i learn node.js specific
node.js isnt a backend its a runtime
oh
its a way to run js on your computer
it can be used to make backends
but it is not a backend
oh so it let js run on server
yes
okkeyy
I was able to get vencord working on my proxy by just doing this
const { stack } = new Error();
if (!(stack?.includes("http")) || Array.isArray(v)) {
return;
}
seems to not catch react devtools either, would you like me to pull request this?
works for noTrack also
check if my branch works
alr
both the webpack stuff and no track
Webpack patching seems to work, but noTrack throws Failed to disable Sentry. Falling back to deleting window.DiscordSentry
but that could just be a quirk, seems to still effectively disable sentry tracking
couldn't you do return console.log("message") to see which exact step is failing
It could definitely be assetPath
put a breakpoint and test for me
because you are the one that has the proxy lol
weird cuz you said no track works
and it has this too, which is even worse
yup seems to be breaking on assetPath
what's the stack
Error
at Function.set (VencordWeb:37:17442)
at http://localhost:3000/service/hvtrs8%2F-dksaopd%2Ccmm-aqsgtq%2Fqeltpy%2C348%60fc335177561%60bcc2.hs:453:38098
at http://localhost:3000/service/hvtrs8%2F-dksaopd%2Ccmm-aqsgtq%2Fqeltpy%2C348%60fc335177561%60bcc2.hs:453:38637
It's because of the weird URL encoding no doubt
oh
let me try setting it to plain and see if that works
hm, that didn't seem to work either D:
let me check if responseText matching is messing things up
I don't think so since it doesn't even look like it's getting there, but the proxy does some weird wrapping to make JS rewriting actually feasible
well nevermind, it's failing here apparently
are you sure
that function executes two times so keep in mind that
one for the main webpack, which it should return and not do anything
and one for sentry, which it should continue and throw the error
supposedly it's failing both times
oh wait nevermind
stack matching fails once, and then response text matching fails
maybe changing window.DiscordSentry= to DiscordSentry= will work?
does sending a XMLHttpRequest to the proxied url not work
It does
so where is the issue
UV rewrites calls to window with __uv$wrap(window) iirc
๐ญ omg
๐ญ yeah
this proxy is uh
not great :D
does .DiscordSentry=
work?
We are working on a way better implementation atm
trying that rn
also your vencord is hella outdated lol
WTF lol
something in the proxy is failing
it is?
this is from git pull on your branch
could just be the proxy breaking things, not sure
well my branch is up to date
none are broken on it either
either way I suppose your proxy makes it __uv$wrap(window).DiscordSentry=
right?
I logged the response text, and it's returning a 404 from the main site im hosting the proxy on ๐ญ
now i get to debug that
Oh boy
oh wait
maybe your vencord is not oudated
but the proxy is messing up regex patching
That could be it also
definitely
Something is definitely fucked with UV and XHR requests, currently checking it out with the maintainer
this patch has not been changed for 22 months
uhh could it be adding newlines?
do something for me
It's effectively trying to fetch http://localhost:3000/service/http://localhost:3000/service/ https://discord.com/assets/sentry.368bfa315375541bbac0.js
lmao how is that happening
I assume they are just fucking up the rewrite somehow, and attempting to rewrite an already rewritten url
Actually surprisingly it doesn't seem to be wrapping it, when I actually fetch it manually
๐ญ yeahh
JS rewriting is incredibly difficult and tends to break a ton of stuff
okay let me just understand right now
what is the current issue
a vencord one or a proxy one
Right now it's a proxy one seemingly
The problem is with the proxy's impl of XMLHttpRequest
is there a chance it can be a fetch() instead?
or does it have to be XMLHttpRequest
ah true
okay however I wonder what's the issue here
Vencord.Webpack.wreq.m[935347].toString()
send it too
I'm honestly not sure what the issue is, it looks like _loadingText should be findable

I'm not sure why it's wrapping that however
Oh yeah, if you're wondering what __uv.$wrap does, apparently it's supposed to just prevent location and eval from escaping UV's "sandbox"
__uv.$wrap = function (name) {
if (name === 'location') return __uv.methods.location;
if (name === 'eval') return __uv.methods.eval;
return name;
};
literally just does this ;-;
I have no idea ๐ญ
I'll push this
I assume UV just tries to wrap as much stuff as possible, currently bribing the only person who wants to touch the codebase to make it hopefully less bad
however yeah the maintainer of uv is gonna have to fix XMLHttpRequest
technically it's not needed but having it makes 100% sure that we are not erroring the wrong thing
github
did github die or are they rate limiting me?
lmao
erm they died
Oh cool it's not just me
shoddy
wild
why is ghstatus lying to us
pushing an update to vencord killed github 
cant wait for the article to come out
someone is getting fired
Technically returning a 500 is operating 
funny
oh it got worse
does anyone know how to do subcommands via commandsapi? :3
you should ask in #๐งฉ-plugin-development
also to answer your question, look at message tags, it does subcommands
modmail i believe
been waiting a couple days for access to it
Open a modmail
Be a modmail
Be a mod, deliver mail โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
mail the mods to poland
Are the mods male?
please do, I wanna meet some mods
juby is in poland
the who โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
aliu creator
scary
already met someone from vencord irl, maybe would be fun to meet someone locally from poland though
uhh..... โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
who did I meetโฆ
skinwalker
Did they have skin
OH GOD I HOPE NOT โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Expanding on this a bit more because I didn't explain it great, and the extension I did find isn't quite what I was wanting.
What i'd like is the git diff stuff on the left to show up, but using compare active file with saved
idk how to program
wonderful, another wifu awaiting to be added to my collection
I haven't met anyone who frequents here irl but I have met people IRL that use Vencord
horror
if (data.data) {
data.data = `//WebpackModule${data.moduleNumber}\n${data.find ? `//OPEN FULL MODULE: ${data.moduleNumber}`: ""}//EXTRACED WEPBACK MODULE ${data.moduleNumber}\n 0,\n${data.data}`
}
I've never met anyone irl that uses Vencord
neither have i, and i hope it stays that way 
I still wonder what would be the reaction of someone who uses it to realize who I am
hiiiii, my vencord broke
๐ญ ๐ญ ๐ญ ๐ญ noooo
anything but that
one of my friends already complains all the time his vencord uninjected
and I just say to him: skill issue
my vencord never uninjects
i somehow manage to never be able to inject on windows, but ive never had any issues with linux
i have no issues and it also never uninjects
even though I use both canary and stable
then he uses stable and uninjects all the time
like wtf
i mean, you're running a dev build right
yes
wouldnt that make it so it uninjects less
but it hooks into discord the same way
oh, im stupid, nvm
how to go about making a modal? needs a text input and a number/date input, if possible
Check like, any plugin that makes a modal
and the timestamp picker has a date/time input
"The find value is a unique string to find the module you need to patch"
what really is a module though?
A javascript file, as represented inside webpack
Also some non-js files, but mostly js
im trying to find the place where channel names are rendered
i've been able to find... something
not sure really if it's what im looking for though
i found this
ok i just found this https://gist.github.com/Vendicated/dec16d3fd86f761558ce170d016ebc53
which might be useful for me
Wdback
I was planning to migrate this to docs.vencord.dev
So how can I add autofill options to comands with CommandAPI
I cant access
And my modmails been open for a week
ยฏ_(ใ)_/ยฏ
/run
fun main() {
val x = 1.plus(2)
println(x)
}
Here is your kotlin(1.8.20) output @lavish frigate
3
WHAT
Kotlin is such a liar
Kotlin is not fun at all
Aside from that I'm not seeing anything WHATworthy
you love
those methods are actually good
if one number is nullable you can use optional chaining with it (or whatever it's called)
and just have a fallback after all the expression with ?: 10
its bc you can override the behavior of operators
/run
fun main() {
val x = 1 + 2
println(x)
}
Here is your kotlin(1.8.20) output @granite geyser
3
why is there both .plus and +
/run
operator fun Int.plus(other: Int) = 69
fun main() = println(1 + 1)
@frosty obsidian I received kt(1.8.20) compile errors
file0.code.kt:1:18: warning: extension is shadowed by a member: public final operator fun plus(other: Int): Int
operator fun Int.plus(other: Int) = 69
^
file0.code.kt:1:23: warning: parameter 'other' is never used
operator fun Int.plus(other: Int) = 69
^
2
@frosty obsidian I received kt(1.8.20) compile errors
file0.code.kt:1:23: warning: parameter 'other' is never used
operator fun Int.plus(other: Char) = 69
^
69
- is just syntactic sugar for .plus
/run
fun main() {
val x = 1 .plus(2)
println(x)
}
Here is your kotlin(1.8.20) output @granite geyser
3
hm
as shown here you can override that behavior if you desire
/run
operator fun Int.plus(other: Char) = "meow"
fun main() = println(1 + '1')
@granite geyser I received kt(1.8.20) compile errors
file0.code.kt:1:23: warning: parameter 'other' is never used
operator fun Int.plus(other: Char) = "meow"
^
meow
yay!!
/run
operator fun Int.plus(other: Char) = other + 1
fun main() = println(1 + '1')
Here is your kt(1.8.20) output @granite geyser
2
/run
operator fun Int.plus(other: Char) = other * x
fun main() = println(1 + '1')
its actually very useful when you're dealing with a class thats just wrapping some underlying data type
@granite geyser I received kt(1.8.20) compile errors
file0.code.kt:1:44: error: unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline operator fun BigDecimal.times(other: BigDecimal): BigDecimal defined in kotlin
public inline operator fun BigInteger.times(other: BigInteger): BigInteger defined in kotlin
operator fun Int.plus(other: Char) = other * x
^
file0.code.kt:1:46: error: unresolved reference: x
operator fun Int.plus(other: Char) = other * x
^
file0.code.kt:1:44: error: unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline operator fun BigDecimal.times(other: BigDecimal): BigDecimal defined in kotlin
public inline operator fun BigInteger.times(other: BigInteger): BigInteger defined in kotlin
operator fun Int.plus(other: Char) = other * x
^
file0.code.kt:1:46: error: unresolved reference: x
operator fun Int.plus(other: Char) = other * x
^
/run
operator fun Int.plus(other: Char) = other * 2
fun main() = println(1 + '1')
@granite geyser I received kt(1.8.20) compile errors
file0.code.kt:1:44: error: unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline operator fun BigDecimal.times(other: BigDecimal): BigDecimal defined in kotlin
public inline operator fun BigInteger.times(other: BigInteger): BigInteger defined in kotlin
operator fun Int.plus(other: Char) = other * 2
^
file0.code.kt:1:44: error: unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public inline operator fun BigDecimal.times(other: BigDecimal): BigDecimal defined in kotlin
public inline operator fun BigInteger.times(other: BigInteger): BigInteger defined in kotlin
operator fun Int.plus(other: Char) = other * 2
^
/run
operator fun Int.plus(other: Char) = other.toInt() * 2
fun main() = println(1 + '1')
@granite geyser I received kt(1.8.20) compile errors
file0.code.kt:1:44: warning: 'toInt(): Int' is deprecated. Conversion of Char to Number is deprecated. Use Char.code property instead.
operator fun Int.plus(other: Char) = other.toInt() * 2
^
98
other.code
yum
@frosty obsidian you will make a calculator in kotlin that adds a random number to the result so its always off
nop
and then publish it to google play
inline operator fun plus(capabilities: Capabilities): Capabilities = Capabilities(bitmask or capabilities.bitmask)
they the same
LMAO
@formal belfry gonna follow up here, do you think there's any reason it's not animating rn?
.CenterModal
{
height: calc-size(auto);
transition: all 0.3s ease-in-out;
}
<div className="CenterModal">
{ScrollSections[scroll]}
</div>
const ScrollSections =
[
<>
<h1>Hey!</h1>
<h2>
I'm Samwich, but you can call me Sam (if you want).
I like programming, gaming, and open source software. If you find me in any communities, say hi!!
</h2>
</>,
(more of these)
]
That all seems right to me
Yeah it's really weird
Yeah after a lot of research i can confidently say i have absolutely no fucking idea
i feel hopeless
i have been trying to get cross compilation for my c++ code
for oiver a month
i have tried cmake
meson
zig
xmake
i cant figure it out and literally no one else knows
jasndasbgfhbwefwef
i love not being able to develop anything cool
got a barely working youtube app
i just wanna make something that actually works
and i just cant
its like
ive got some innate inability to comprehend this stuff
no matter how hard i try or how much time i put in to this
does anyone here have experince with writing vscode extensions
i need help with how the formatter api works.
for the life of me, i cant figure it out
don't ask to ask
@royal nymph what if you made vprune have funny feature where you reply to message to prune to and you wont have to enter number

yop good idea
I actually thought of a similar thing
doo
you will not break rule 5.1
whats rule 5.1
wouldnt that just ratelimit
`yes
no
it would only delete up to 14d
no matter what
maybe 100 message limit
@lavish frigate ik my pfp is discord on github (forgot to change will do) but there cant be that many other themasterkittys can there ๐ญ
guh question
mpv-android they have each shared library seperate
so like libavcodec.so libavdevice.so etc
and im wondering
if theres a reason one might do this instead of compiling everything to a single library
Less memory usage idk
ithink on jvm side i wouldnt be able to do that
having them seperate
unless i implement additional loader logic to load all of them
i think thats right
Mh
The linking itself is weird.
Like the process of linking doesn't require the lib to use jni
For example, I can load an opengl.dll with tracing hooks using the same thing
Then something else that needs opengl will use that opengl
funny
i think it might be working how i want it
the output files are all over the place
its making libmpv.so and all the other libraries
subprojects/libass/meson.build:220:8: ERROR: Problem encountered: Either DirectWrite (on Windows), CoreText (on OSX), or Fontconfig (Linux, other) is required. If you really want to compile without a system font provider, set -Drequire-system-font-provider=false
Lib ass
See what happens when u set this arg?
Maybe it doesn't matter
@lone gust Yo, I can show you here give me a sec
anonymiseByDefaultExts: {
description: "File extensions to anonymise names by default (comma separated list)",
type: OptionType.STRING,
default: "",
isValid: (value: string) => {
if (!value.trim()) return true;
const extList = value.split(',').map(ext => ext.trim());
const invalidExt = extList.find(ext => !/^[a-zA-Z0-9]+$/.test(ext));
if (invalidExt) return `Invalid extension: ${invalidExt}. Use only letters and numbers.`;
return true;
}
},
Kinda like that
k thx
might need to tweak it a bit
@green gulch what would the regex be to allow a period in front of that btw
nvm found it
o yea my bad
!/^\.?[a-zA-Z0-9]+$/
oh thats not the regex
ik
copied that by mistake
what does it do tho
yeah
NOT operator
so it checks if it doesnt match that regex
i just didnt realize
lmao
cool thx
no problem
it doesnt show up in tab complete but the isValid part is correct right
or r u not sure
commaa?
Linguists love commata, but real humans say commas
I got booโd out of DMs you guys probably agree with me that this would be cool syntax right? ๐ฅบ
$assignee = $object->getAssignee();
$author = $object->getAuthor();
$withUser = with ($assignee, $author);
if ($withUser) {
$withUser->setObserver([...$withUser->getObserver(), $object]);
$withUser->save();
}
Perhaps? Depends on wtf that means
it evaluates every single expression containing "withUser" for every single variable inside its definition, replacing withUser with the actual variable
less powerful but less ugly for loop
yes i added an extra A cuz why not
โWhy not just write a for loop thenโ a for loop is too complicated for running just a single if statement basically and would definitely be something that shows up in code review ๐ญ
โthen why not just write both if statements out??โ Iโm too lazy.
so this would essentially be equivalent to this?
$assignee = $object->getAssignee();
$author = $object->getAuthor();
if ($assignee) {
$assignee->setObserver([...$assignee->getObserver(), $object]);
$assignee->save();
}
if ($author) {
$author->setObserver([...$author->getObserver(), $object]);
$author->save();
}
or whaaa
is php even used anymore
never cook again..
Yes
yah
is it useful outside of web things like nodejs or nah
I just used php cuz I was writing that exact code when I thought of it
why not just
$assignee = $object->getAssignee();
$author = $object->getAuthor();
$stuffs = array($assignee, $author);
foreach ($stuffs as $stuff) {
if ($stuff) {
$stuff->setObserver([...$stuff->getObserver(), $object]);
$stuff->save();
}
}
๐ญ
Php can run in the command line it doesnโt need a separate runtime
kk
php is malware unfortunately...
array() ๐ญ๐ญ๐ญ๐ญ๐ญ๐ญ
Also true
what wrong
My supervisor would definitely just say to expand it into 2 if statements :(
ur supervisor is a dumb idiot
most are
You can just do ["hi", 123]
YOU ARE SO RIGHT
Yeah letโs make it better by adding that syntax :3
NO
ITS WORSE
how would u even implement that efficiently
it would still just use an array under the hood
We are in php
the point is just use an array ๐ญ
We donโt need efficiency
all ways lead to array
function statsSort(stats) {
const count = { };
stats.forEach(stat => {
if (!Object.keys(count).includes(stat.name)) count[stat.name] = 0;
count[stat.name]++;
});
return Object.entries(count).sort(([, a], [, b]) => b - a);
}
just put this here to make you guys feel better abt yourselves
this is how i sort my stats for my dc bot when checking them
where tf did syntax highlighting go
why not just
foreach ([$object->getAssignee(), $object->getAuthor()] as $thing) {
if ($thing) {
$thing->setObserver([...$thing->getObserver(), $object]);
$thing->save();
}
}
so good
I will switch to rust then if php is badโฆ



