[Vencord/Desktop] New branch created: Vendicated-patch-1
#๐พ-core-development
1 messages ยท Page 68 of 1
GITHUB WHY DID YOU MAKE A NEW BRANCH OH MY GOD
[Vencord/Desktop] branch deleted: Vendicated-patch-1
puhmod
puhmod is real
why tf does using dgram for the websocket work but using the built in one that others are using not work
im gonna lose my mind of js and ts i swear
.NET just makes more sense
but i cant get dgram to work in the vencord project
I swear once I am done with this I am gonna never touch discord modding again

hm?
oh god
What I can use to make options in slash commands like /hi 1 or 2 or 3
Check message tags plugin code
html jumpscare
I have a similar issue. Setting it works fine, until i restart discord. It reverts back to the normal dark theme.
the html elements: <html>, <body>, <head>, <div>
done
I very recently adopted Vencord and within 2 days, I already struggled multiple times to find the correct repository in the Vencord organization because this repo is actually not a part of it, which I found somewhat strange. The fact that "Vencord" and "Vendicated" are also rather similar words doesn't really help here either.
So I'm just curious as to why this repo in particular is not part of the org when seemingly all the other related repos are?
If this were in the org, it'd be Vencord/Vencord which isn't as cool
looool
i never got any node stuff to work in vencord
i think all plugins using ws client are connecting to servers and not hosting them cause vencord has to be compliant with web also for the extension
its not ideal but my premid plugin and vrc text are connected to middleman script that just hosts something for vc to connect to
(if you can fix that feel free to shut me up, ven)
i assume this wont be an issue when 3p plugin support is finished though (eta idk dont ask)
and arrpc is an external app to begin with so thats why its like that
omG
It is currently not possible to disable the spell checker for text input. In normal Discord, this can be accomplished using the context menu, but such an item is missing in Vencord Desktop. I also tried disabling it in the local storage as instructed by the help page, but the SpellcheckStore key didn't exist for me.
no
@woeful sable ^
while making that i also noticed a silly listener leak in the window logic oopsie
every time u closed to tray then reopened from tray, it recreates the window and part of creating the menu is adding multipel settings listeners and those were never cleaned up previously

o
silly (gas)leak
This feature request doesn't make a lot of sense. These tracking params do nothing on twitter alternatives, so stripping them is kinda senseless. Plus if you use the Vencord TextReplace plugin to convert twitter -> fxtwitter automagically, the stripping works correctly
ClearURLs should just allow you to add custom rules. The only reason it doesn't is because it's so old, plugin settings didn't exist back then
8472c38 feat(๐ฟ): ignore blocked users (#1327) - ActuallyTheSun
Thanks for the fast implementation. :heart: I can confirm that this is working.
4abce9d Fix some Context Menus being broken by regression - Vendicated
This plugin adds the function to send message notifications to XSOverylay's Notification API over UDP
why is udp needed here? You should just use plain fetch or a normal websocket
XSOverlay's notification system uses UDP, I don't really have a choice other than distributing a whole new executable to do IPC over fetch/ws to XSO's UDP server
thats really stupid honestly
there is literally no reason for them to be using udp too
they're probably just using it cause its "cool"
ask them to add tcp support :P
lol
their beta has not gotten a update since February ๐
so i doubt that would happen in a timely manor
why did you add a buffer polyfill? It's pointless and lots of bloat
I didn't know of a better way to do it, I could change it if their is a better way
it's entirely unnecessary
pass a raw arrayBuffer to node
oh
you want to send base64
ye
normally you could just use FileReader with a blob to get base64
but in our case
just send the raw arrayBuffer via ipc
then in node do the Buffer stuff
as for the ipc, it's fine if absolutely necessary but here are some suggestions
- Remove it from web and instead mark your plugin as desktop only by naming it .desktop.ts
- Hardcode localhost and port in nodejs. the browser should only pass data and not have control over the url to connect to, for security reasons (there's a reason udp isn't supported by browser js)
- to keep VencordNative clean and for better extensibility:
- Move it to VencordNative.pluginHelpers.dgramSend
- Instead of including it in main/ipcMain.ts, make a new file main/ipcPlugins.ts and have it there, then import that file from ipcMain
so for 1 do I still have to stub it in VencordNativeStubs?
you only need to "stub" stuff that is actually used (though it's not really stub, more like web implementation, slightly misleading name)
oki
for 3 you want me to make a new file for the helpers?
ipc plugins u said to but I dont see a file for pluginHelpers
yes
ok
- Move it to VencordNative.pluginHelpers.dgramSend
VencordNative.pluginHelpers
I don't see this existing
so I'm guessing you want me to make it?
epic discord css
Sorry in advance for my dumbess with ts. I have this in main/ipcPlugins.ts
import { IpcEvents } from "@utils/IpcEvents";
import { ipcMain } from "electron";
import { dgramSend } from "./utils/dgramHelper";
ipcMain.handle(IpcEvents.DGRAM_SEND, (_, data) => dgramSend(data));
But its not registering anything. I know you said to import it but I feel like I have to use it somehow cause just importing it does not register anything
Also this is what I have in VencordNative, does this seem ok?
http://zip.penny.moe/u/FcWLHJ.png
bleh
Discord Account
realkilax
What is it that you'd like to see?
the possibility to add your own plugins, preferably from the betterdiscord website.
Request Agreement
- [X] This is not a plugin request
49fb4c6 Updater Popup: Add Changelog; Make about page p... - Vendicated
[Vencord/Desktop] New tag created: v0.2.5
Bad Patches
IgnoreActivities (had no effect):
ID: 635622
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:([A-Za-z_$][\w$]*\.application)\.name.+?null/
Bad Starts
None
Discord Errors
font-weight: bold;
color: purple;
resetSocketOnError Cannot access 'p_e' before initialization ```
Bad Patches
None
Bad Starts
None
Discord Errors
font-weight: bold;
color: purple;
resetSocketOnError Cannot access 'h_e' before initialization ```
the update should reach stable soon
@austere talon I've done some mild curse things to avoid using a buffer, But I think I made all the changes you wanted. lmk if I missed anything
fetch(`https://cdn.discordapp.com/avatars/$%7Bauthor.id%7D/$%7Bauthor.avatar%7D.png?size=128`)
.then(response => response.arrayBuffer())
.then(async result => {
const byteArray = new Uint8Array(result);
const base64String = btoa(String.fromCharCode.apply(null, byteArray));
const data = JSON.stringify({
messageType: 1,
index: 0,
timeout: 5,
height: calculateHeight(clearMessage(finalMsg)),
opacity: 0.9,
volume: 0,
audioPath: "",
title: authorString,
content: finalMsg,
useBase64Icon: true,
icon: base64String,
sourceApp: "Discord"
});
await VencordNative.pluginHelpers.dgramSend(data);
});
I hate it
you need to import this file in ipcMain via import "./ipcPlugins"
also please avoid splitting code so much, you really shouldn't have a separate file with only 5 lines of code unless it's used in multiple places (talking about dgramHelper, it should just be in the same file)
sorry for no reply, i didnt see your messages
why are you doing it like this? you can just pass the raw arrayBuffer over ipc then use a buffer on the node side
if you're not sure how to do that, feel free to ask 
Well the reason I did not pass the buffer to the node side is cause I need a bunch of the info on the plugin's side to make the json object
so you want me to move this all to ipc plugins?
data.icon = Buffer.from(data.icon)
remove the import buffer
is that webstorm
it's just your ide being bad and not recognising js types
it doesn't even know JSON
webstorm go brr ig
then I think the real last thing was you wanted me to not have a file just for the stuff in dgramHelper
where did you want that stuff?
just in the ipcPlugins.ts?

im gonna guess its this for now XD
@rustic nova could ImageZoom be switched to Nearest Neighbor?
thats what i call a .net developer xiexe moment


Is that bad? I'm only adding that plugin then my fork will go poof
Ah, ill take care of it in a bit
It seems I have to remake the pr to change where its from, should I still do it? and just delete the current one.
add nearest neighbour interpolation option.
image-rendering: pixelated; demo:
https://googlechrome.github.io/samples/image-rendering-pixelated/index.html
is this what you want?
A simple plugin that uses FxTwitter (a better way to embed tweets) by replacing "twitter.com" with "fxtwitter.com" when a user tries to send a tweet.
Just use the TextReplace plugin
https?:\/\/twitter\.com(?=\/\w+?\/status\/) โ https://fxtwitter.com
Oh, I didn't know about that plugin.
I guess it's an easier way to do this so I'll close this PR.
Sorry!
Discord Account
alexiaya
What happens when the bug or crash occurs?
Hovering over a style mention (as opposed to) will not automatically fix the broken mention.
What is the expected behaviour?
It should fix the broken mention.
How do you recreate this bug or crash?
- Send an embed with an `` style mention inside it
- Hover over the broken mention
Errors
N/A
Request Agreement
- [X] I am using Discord Stable or tried on Stable and this bug happens the...
Yea It'd be great if this was added
it doesnt show you info about url but info about ip address. also why would you need that on discord bruh
We don't need to cache Discord pronouns in the cache object, because they're already cached in the user object.
Use '/insult' command to send an insult.
Can have bad words sometimes :(
What exactly does this achieve? Unless I'm mistaken, previously discord pronouns were already not added to our own cache
They are, which causes them to get cached and not be overridden with PronounDB pronouns even if you have it set to prefer PronounDB if you open their profile before the client encounters a message from them.
I think the issue is just that getCachedPronouns will never return null if discord pronouns are found, which leads to pronoundb never being fetched
I'm fairly certain that can be fixed with way less changes, just be ensuring that inside fetchPronouns it always fetches pronoundb at least once if not cached already and the preference is set to prefer pronoundb
Yeah, I was just about to say that's the issue too, after thinking through it again (I did this yesterday).
It could be done with less changes sure, but this also reduces the need to pass around discordPronouns elsewhere, which should be fine since getDiscordPronouns() already just returns the cached pronouns from the user object.
i'll make it a compliment gen ๐ญ
I don't exactly remember why I did it but I'm pretty sure there's a reason I made it obtain pronouns from discord as opposed to just fetching them myself, so that might or might not be problematic
Discord Account
Valdemar_check
What happens when the bug or crash occurs?
The only thing that happens is that both windows and discord tray are showed at the same time. Nothing harmful but weird
What is the expected behaviour?
Only either windows or discord title bar
How do you recreate this bug or crash?
- Turn on "native windows title bar" feature and restart the ...
Pywal is an app that automatically generates color schemes based on your wallaper, saving a palette of colors in a predetrimined location. People can then write themes/wrappers for various different apps that use said colors, creating a very pretty system-wide experience.
Take the existing pywal-discord script for example:

Unfortuatnely, the current stat...
Cannot reproduce, try disabling your themes.
If it still happens, please use our support channel to get it resolved
You don't really need a plugin for this. You can easily make it yourself using Pywal template files.
First, find a customisable theme you like. Then, replace the hardcoded colours with dynamic ones to turn it into a pywal template.
See the pywal wiki on templates
Finally, you can then load this theme
I used no themes while I was reproducing the bug. I'll go to support channel
@austere talon I was informed I should not have made the pr from main, would you like me to remake the pr or will it be ok to merge how it is?
it's fine
Pomelo usernames are lowercase-only and case-insensitive.
since pomelo usernames are forced lowercase if someone's display name is DiscordUser their handle is discorduser and that's considered separate
I'll add a check to only do this on Pomelo usernames.
though i see that as more of a feature than a bug
isnt that good?
with pomelo usernames it's unnecessary to display it as FooBar (foobar) since you could also friend them as FooBar
it's just repeating the same thing twice with a different case
you should make this a setting
yea i can do that
hmm, the current impl doesn't even show discriminator for non-pomelo users, though that will soon be irrelevant
Oh, I did not know about that! Thank you very much โค๏ธ
it does
not for me
ve 1
1```
it never did
yop
average discord
ye
new system is better
haters will shrimply cope 
well they already do
i wonder how much longer they will wait til they force people to migrate / force migrate people
it might be better to make the plugin show the user's display name
the vendetta one does if i am thinking of the right plugin, perhaps you're hallucinating that 
nop i dont use
port validuser to vendetta thanks
actually i might
yes pls
cause i dont trust vendetta plugin devs to make it not dogshit
(6pak validuser incident)
those words together worry me
he made validuser for aliucord and it would just fetch all missing mentions and if you went into a channel with like 30 mentions it would freeze ur discord
good lord
vencord validuser is peak imo, it only fetches mentions when you hover them
avoids api spamming if someone posts a lot of mentions
i wonder if there's a way for it to fix mentions of the same id at once
like an embed mentions a user twice, i hover over one, the other is still unfixed
yes but i didnt for simplicity
i suppose a lot of the benefit of having the plugins baked into the mod comes from "someone wrote shitcode in a plugin? fix it yourself!"
it doesnt fetch twice if thats your concern
yes thats one of the main reasons
there are so many overwhelming arguments for having plugins baked into the mod
idk i really like it cause every plugin is top notch unlike every other mod

@austere talon btw considering showmeyourname already hides username if it's the exact same as nickname i'm not sure why it needs to be an option for case difference but it can be if you want ๐คทโโ๏ธ
i don't think the model applies well to mobile though
especially not RN
cause exact same username & nickname is much different from different casing
this
also
what does it currently show? it shows displayName for me
how is it that different when discord just translates different casing to lowercase anyway
cause its visually different
ok but that's only gonna be a problem in like 1% of cases
like if ppl use weird lowercase L / uppercase i hacks
just make it a setting 
but their pomelo username will look like shit if they do that anyway
whar
it literally uses author.username
whaaaaaa
it doesn't show display name for me, it shows username
my global display name is alexia
yes, the one in the parentheses is the username
it should show the global display name there
cuz the point was to differentiate from nick
but the displayName is essentially nick
global nick
it showing username is good imo
should be a setting
yea idk having it show the username makes sense to me
suddenly: the plugin has 1000 settings
yeah probably
real
well i guess there are 3 possibly names now
ionstead of 2
server nick, global nick, username
i will simpl,y let u decide i didnt make this anyway 
well
we can just make it one single select
Username style:
- Nick (Global DisplayName)
- Gobal DisplayName (Nick)
- Nick (Global DisplayName - Username)
- Global DisplayName (Nick - Username)
smth like this
and then u just pic kwhat u like
i hate js for this
yes
dont stringify it
trying to see why the discriminator check didn't work
console.log("SMYN author:", user)
or use debugger silly ..
const originalToString = Object.prototype.toString;
Object.prototype.toString = function () {
if (!arguments.length) try {
return JSON.stringify(this, null, 4);
} catch {}
return originalToString.apply(this, arguments);
}

i probably should use debuggers more
it's like a last resort for me rn lol
usually
u really should
it's a thousand times more useful in reverse engineering than in normal code
ok, message.author instead of author has the discrim
stepping through code and being able to see all values is so good for understanding what code does
i never use debugger when im coding my own thing
but i always use it when i do anything discord related
Object.prototype.toString = function () {
try {
return JSON.stringify(this, null, 4);
} catch {
return `[object ${this?.constructor?.name ?? "idk"}]`;
}
}
js will let you do this immediately ```js
function Object.prototype.toString() {}
nop
kotlin has every single language feature
and it still sucks
so bloated
what do u think?
for code simplicity, we can make the formats have placeholders
like
"%UNAME (%NICK)"
gobal
then just .replace() them
not possibl
POSSIBLE
horrid
look at the element returned
terror
yes
bc otherwise you cant style the second part
true
contributor jumpscare
neither was mine ๐
two steps ahead of u

(i know you most likely didn't mean it that way but i'd avoid triple parentheses bc they're usually used as a dogwhistle by antisemites)
speaking of rpc, why is it that when i (re)start discord while osu is open, it only shows partial rpc info instead of full
not vencord related but i wonder if it's something it could fix
likely because osu has custom rich presence
if you restart discord the custom rich presence connection breaks and the rich presence you see then is Discord detecting the process and automatically inferring info
oh so it would have to be fixed in osu?
yes
well if my theory is correct
which i assume it is
idk if you know the details about how rich presence works
i don't know too much details but i heard of a rpc server and i know osu has partial and full rpc modes
Discord has basic rich presence for games that it automatically generates based on process scanning that doesn't require games to even know about discord
But there's also a discord game sdk that allows games to connect to Discord via websocket or os named pipe and post custom rich presence data with way more detail like state, join button etc
osu uses that sdk to post detailed rich presence
Oh no I didn't mean it oops. I just use triple parens to mean saying it quietly
I'll keep that in mind tho
i think its fine honestly
i use multiple parens often too

(( i love parens (((( yes yes )))) ))
((((it's fun))))
pov: you're looking at lisp code
biggest trailing comma fan,,,,,,,,,,,,,,,,,
yes,,,,,,,,,,,,,,,,,
yea it's not a big deal ig it's mostly used in the bad context when putting someone's name in parentheses
So true
vencord in clojurescript soon
vencord has been updated! click here to restart
clicks and waits for it to restart
vencord has been updated! click here to restart
clicks and waits for it to restart
vencord has been updated! click here to restart
this is a local dev install btw

learning lisp in my third cs class convinced me to install rainbow parens before rainbow parens were a part of vs code
honestly its useful even for normal coding
up to that point we were using eclipse ((yucky))
although at the same time it doesnt help me much
when you're refactoring jsx code and have to figure out where you're missing a bracket/paren
worst moment
recently, call me crazy, but ive just been throwing the whole highlighted chunk of angry tsx into chatgpt and it fixes my parens for me
it's cursed
i use chatgpt to give me more understandable memorizable definitions that don't involve stuff like this sometimes
this is an exaggeration obviously but
wtf is that
looks suspiciously like math to me 
this is just a random complicated equation i found lol not an actual example of what i was studying
i fucking hate definitions where they add a lot of math symbols and stuff instead of just explaining it in words
Hello as much I remember I left vencord at beginning of June with 1 week. left the vencord discord server because I didn't like the logo, I am not a fan of rainbow stuff even as for representation because I belive there are other mods to make LGBTQ+ feel more represented without adding a rainbow logo. Anyway so I left the Vencord server, I want to return and my account is banned on that server, can I get a clear reason why from a staff and if is unjustified, unban me?
Display name: Vee
...
explode
no idea but you're homophobic so thats probably why
bro
L
i was about to fucking shred that discussion
"because I belive there are other mods to make LGBTQ+ feel more represented without adding a rainbow logo"
vomit reacts to pride logo
lol, what a loser
bruh
I don't understand why mfs just don't ignore it if they hate it so much
vending.machine#0
because they need to make an issue out of anything and everything
@austere talon hiiiiii https://github.com/Vendicated/Vencord/pull/932 is there something wrong with my pr
why does context menu dispatch so many times lol
normal
Bad Patches
None
Bad Starts
None
Discord Errors
font-weight: bold;
color: purple;
resetSocketOnError Cannot access 'E_e' before initialization
%c[FetchBlockedDomain]
font-weight: bold;
color: purple;
Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain]
font-weight: bold;
color: purple;
Downloading the full bad domains file ```
Bad Patches
None
Bad Starts
None
Discord Errors
font-weight: bold;
color: purple;
resetSocketOnError Cannot access 'E_e' before initialization
%c[FetchBlockedDomain]
font-weight: bold;
color: purple;
Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain]
font-weight: bold;
color: purple;
Downloading the full bad domains file ```
vns
Cool
the bad domain list thing works off revisions now so the client can just dl a diff instead of the whole thing every time
yeah i saw

also fixed the errors when you right clicked a folder
Ok, that is everything this this needs I think. Should be ready unless there is any more changes you guys need.
can i see the full function of a patch from javascript, this is a bit confusing for me to modify so im tryna see the whole function
ctrl shift F in devtools
also fixed the bug where clicking edit profile pulled up the banner
Essentially what I am asking for is a Vencord plugin that acts as a userstyle compatibility layer.
The established way of selecting elements outside the current HTML document is to use the @-moz-document CSS at-rule as defined by UserCSS. The full set of rule types wouldn't really be necessary, the domain() rule type would be more than enough to get by in the majority of use cases. This would allow the styling of `` #documents which is currently impossible due to vanilla CSS only aff...
This PR adds the unlimitedAccounts plugin.
It allows you to add more than 5 accounts to your client.
With the introduction of pomelos, this function has become very interesting for collectors, like me!
I really like Vencord and I don't want to use another mod because of this plugin, so I decided to do it.
(and I've also seen users asking for something to do this in Discord)
I already ran the pnpm test
Accounts
Op...
So this plugin currently have a lot of cool features that only nitro users have, another thing that I would suggest is that to add to the plugin a feature where when the message that you are trying to send is too long to send because of the character limit of no nitro users, it will automatically split it into 2 messages.
๐๐๐๐๐๐๐
codeberg vaius fail
?
made a PR for lameface fix
thought though you disabled codeberg updates for vencord you wouldn't have for vaius
but maybe you never turned them on at all actually
drat
this isn't the most recent version of oceanic?
https://github.com/OceanicJS/Oceanic/blob/dev/lib/structures/Member.ts
it was updated 3 weeks ago
i mean that's not that recent but it's post pomelo
**User.ts: **Lines 89-94
get tag(): string {
if (this.isMigrated) {
return this.globalName!;
}
return `${this.username}#${this.discriminator}`;
}
why i nthe world would this return globalName
the entrire point of that function is to get the full name you need to add the person
so it should return the username
and why in the world is .isMigrated() private
this sucks
I do not see the need for anyone to have >5 accounts in a single client, let alone own >5 accounts in general (except for plurality), and encouraging collectors with this sort of plugin means less usernames that people would like to use; genuinely good pomelo usernames have already been sniped and they will never get used or they will be resold for extortionate prices. I'm not sure if this is a good idea to put in the mod.
Personal opinions aside, if it's a cap remover, why does it have the ...
Like lewi said, there is no reason for anyone to need more than 5 accounts. I can only see this being used for malicious purposes, like name squatting and logging into stolen accounts

having more than 5 accs is not objectively malicious lmao
but in most cases it is, it seems an unreasonable amount of accounts for one person to have and the person who submitted the PR specifically said they were going to use it for collecting rare pomelo accounts
uh should i change my PR for the bot to be user.displayName
so.....

id argue that is a malicious use case
btw @austere talon re: xsoverlay, they are correct in that udp is the only way of sending notifications [[[annoyingly]]] so the plugin has no other choice really
they have no http/ws api
they were def malicious lol
but the plugin isnt
yes
we already establishged that :P
not that this will make any difference in the collecting of pomelo accs
i gave my full opinion in the comment anyway, so
well via discord so ig you didnt see
o i didnt see
i saw it left open on github so i just thought "hey something i know"
but its incredibly stupid for them to use udp even
bet it was just a "omg udp so cool lets use it"
cause there is no reason for them to be using udp
0 benefits ๐ญ
from a logics standpoint, it makes sense, fire and forget unreliable notifications is what udp is good at
but yes, http/ws would've been better and would mean you could send browser notifs
yes but this is for localhost
there is virtually no data loss risk on localhost
so udp is entirely pointless
well if ur getting data loss on localhost something is horribly wrong
add the fact that this is supposed to be used from browsers
which dont support udp
ow
nothing objectively wrong with my eye it seems, just looked in the mirror
but it feels like its going to explode
its not really.. pain? more like pressure
how do i request all members of a server with GUILD_MEMBERS_REQUEST
this is not for a plugin i'm gonna publish just fun stuff
Collecting Discord usernames is scummy in general...
dont reply stuff like that please @quick ibex
oki
github is for development discussions, not personal opinions / arguing
niice
so weird
will keep track of it though
last time it happened was like
8 years ago
and that was more pressure coming from the back of my eye forward
this was more in the middle feeling like it was going to explode
opticians said nothing was objectively wrong so if it happened again i was to come back
and it never did
uh oh
that doesnt sound good
@verbal pumice playing around with channeltabs atm
i noticed the pins bug
it happens if you click out of the app too
and fixes itself when the top: on the pins overlay is disabled and enabled
the pings bug?
with channeltabs enabled, if you click out of the app, the entire app shifts up
i think its because the pins popup isnt taking into account the tab bar
because if you disable the top: in the inspector, you can see the rest of the content without the app shifting
so its because the pins selector is hardcoded to only work with a certain height titlebar
toggling top fixes the app until you click off of it again
so it seems like it only does it when the app is updated due to a mouse event
this could be an underlying styling bug as well, but im not going to make claims that electron itself is busted
try it on web
replicable on web
same way too
you can just click out of the browser
funnily enough this actually triggers a styling update
since it changes the classes on the body
but the mouse events? i dont know whta they're doing because you can just hold down outside the pins window and it does the same thing
so i dont actually know what the underlying bug here is
the natural fix though would be to adjust the size of the pins popup
but what do i pass for user id if i just want all, or does that need another method
the bot api endpoint doesn't work on user accounts 
i think the gateway dispatches relevant members or smth
but there is no way to fetch all members
well there is kinda
member list exists so at least some info is returned about them, obviously not full profile
there is guild member search, so you can search for each letter

look into the GUILD_MEMBER_LIST_UPDATE event
that's how it gets members for the member list
im pretty sure gateway fires that
yes this is gateway stuff
i'll check
this is just for pomelo research lol, i do it via a bot in a 15k member server i'm an admin in but might be nice to also fetch info from bigger servers where i'm not
what about the members tab on the server settings (scary)
the one that lags ur client for 2000 seconds
i love it
that doesn't usually show up in most servers if you're not a mod, but it does here so idk what perm it is tied to
thought so
lol
so you just set limit and query
FluxDispatcher.dispatch({
guildIds: [guildId],
type: "GUILD_MEMBERS_REQUEST",
query: "",
limit: 10_000
})
fire
might or might not require perms
just fixed that
turns out discord has a convient variable where they go height: windowHeight - x - y - z so i just added to that
the members list uses GUILD_SUBSCRIPTIONS to request a portion of the members list (up to 100 at once i think) and then receives it via GUILD_MEMBER_LIST_UPDATE
What should it do?
It adds smooth/cool animations to your Discord client.
How does it work?
It also adds highly customizable switching animations between guilds, channels, etc. Introduces smooth new message reveal animations, along with popout animations, and more.
Link(s)
https://betterdiscord.app/plugin/BetterAnimations
Images

!...
This would be cool. Hopefully this will get added soon
requires admin/manage roles/kick/ban 
otherwise you must specify query and a limit of up to 100
or up to 100 user ids
merge merge merge merge
oh yeah also
do u know about the embed crash
apparently embed crashes discord somehow
what
i was able to repro but couldnt find anything regarding it in ur replugged plugins recent commits or i would have ported ur fix over
#๐ค-bot-commands message
how did you reproduce it
oh embed is null
because it seems to work just fine on replugged
so just
if urlCheck != null && urlCheck?.length
ohhh
if the site has no embed, like https://example.com
it pushes undefined to embeds
okay :P
i would have pushed both ur pr and the fix
but u pushing it to pr works too
1d8dcef InvisibleChat: fix indicator & crashes (#1356) - SammCheese
12e3c92 ViewIcons: Fix animated server pfps & profile e... - Commandtechno
How does vencords updating model work again?
pushed instantly
Okay sick

might remove it in the futureif discords pronouns become better and more widely used + discord pronouns dont show in chat
Good pointer
im just grouping these into dev and later merging into main so its one single update as opposed to possibly notifying people once for each commit
Yeah, could get annoying quickly
I've been adding a bunch of css snippets this past week and got the point of being incredibly annoyed by the process, so here;s a plugin that adds a context menu entry to messages that contain a css codeblock, and imports them according to one of three import strategies, to please all the ocd poatients out there, video attached
https://github.com/Vendicated/Vencord/assets/22133246/200bfbe1-6c41-413c-bb15-1ac79b55f456
nit
import { createSocket } from "dgram";
nit: These could just be plain ifs
if (content.length <= 100) return 100;
if (content.length <= 200) return 150;
if (content.length <= 300) return 200;
return 250;
why not inline this?
ipcMain.handle(IpcEvents.DGRAM_SEND, (_, data) => {
...
});
markers: makeRange(0, 1, 0.1)
the toolbox isn't really faster
it isn't that's true
the copy paste still annoyed me
fair enough
when did u turn into a kpop stan account
when syn converted me in february

yeah snippet import is pretty cool
although
maybe add some context
like add a comment above the snippet
thanks, I was thinking of a remove as well but it sounded too useless
/* Snippet by Username, posted on 27/06/2023
[#๐พ-core-development message](/guild/1015060230222131221/channel/1015063227299811479/)
*/
yeah that was my initial idea of parsing it
or like
add a comment below too
/* Snippet 1123357369586438239 by Username, posted on 27/06/2023
[#๐พ-core-development message](/guild/1015060230222131221/channel/1015063227299811479/)
*/
* {
display: none
}
/* end snippet 1123357369586438239 */
will do that tomorrow, as you know it's quite late in this timezone
yeah no worries take ur time!
well, actually, fuck it I guess, it's 2 seconds effort
also uh
how will it work when there are multiple snippets in one message?
maybe it would be better to patch codeblocks instead, and add an import button on the top right
but that's more than 2s effort

oh also that wouldnt work with shiki ๐ค
maybe you could parse all codeblocks in the message
then add multiple buttons?
well currently it just takes all the content of the first css codeblock, I guess either some fancy parsing or choose a specific comment layout for vencord snippets
Import Snippet 1
Import Snippet 2
I guess either some fancy parsing
not even necessary
well by that I mean checking for multiple codeblocks
const items = [];
const re = /``โ`css\n(.+?)``โ`/gs;
let match;
let i = 1;
while (match = re.exec(message.content)) {
items.push(
<Menu.MenuItem
id={`vc-import-snippet-${i++}`}
label={`Import Snippet ${i}`}
action={() => importSnippet(msg, i, match[1])}
/>
}
just this should work
(watch out there are zero width spaces between the triple backticks in the regex)
@austere talon Honestly I'm not sure why the clear message thing is needed, its only used to calculate the height and it was in the original version so I added it to make it act the same. Also I already convert mentions, roles, and emoji's to a readable state.
https://github.com/Vendicated/Vencord/pull/1339#discussion_r1244340013
oh lol

yeah feel free to disregard it then :P
i was trying to add backticks to a codeblock before!
that's how to do it!
yes
there's no other way that i know of
silly discord doesnt even let u escape them
iirc
hi \`\`\`
well it does but you can see the escapes

i know!!
i was talking to my friend about it
๐ข
but that's the secret
zwj <3
This is only used to calculate the height.
4fe2845 ImageZoom: add nearest neighbour (#1341) - Syncxv
1d8dcef InvisibleChat: fix indicator & crashes (#1356) - SammCheese
12e3c92 ViewIcons: Fix animated server pfps & profile e... - Commandtechno
8e9ba7c PronounDB: fix caching not respecting user pref... - 0xallie
69b10c1 Bump to 1.3.0 - Vendicated
now also supports multiple snippets per message (thanks ven)
<img width="452" alt="Discord_psDbXvYaMI" src="https://github.com/Vendicated/Vencord/assets/22133246/92eb145f-1909-44b4-8fd3-37abba271243">
huge
The plugin will be simple. You set a timeframe of like 10 minutes and after those 10 minutes of a message you sent pass, the message gets automaticly deleted. You can make it to delete only custom words for example you said "peanut" and if that word is on the list after 10 minutes the message would get deleted. You can also customize it to be a certain channel, server, dm, group. Maybe you want a clean channel after chatting for a bit (if all of your friends use the plugin) without the need t...

society if user accs could use bulk delete
Bad Patches
ShowHiddenChannels (found no module):
ID: -
Match: Guild voice channel without guild id.
Bad Starts
None
Discord Errors
font-weight: bold;
color: purple;
resetSocketOnError Cannot access 'hme' before initialization
%c[FetchBlockedDomain]
font-weight: bold;
color: purple;
Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain]
font-weight: bold;
color: purple;
Downloading the full bad domains file ```
Bad Patches
ShowHiddenChannels (found no module):
ID: -
Match: Guild voice channel without guild id.
Bad Starts
None
Discord Errors
font-weight: bold;
color: purple;
resetSocketOnError Cannot access 'h_e' before initialization
%c[FetchBlockedDomain]
font-weight: bold;
color: purple;
Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain]
font-weight: bold;
color: purple;
Downloading the full bad domains file ```
@rustic nova thanks for implementing nearest neighbor!!
๐ข
it does?
im only counting 8
which seems about the same as windows
@austere talon why wasn't https://github.com/Vendicated/Vencord/pull/813 ever merged btw
i didn't do my research and tried my hand at adding a blacklist to messagelinkembeds without first checking if there was already a PR addressing it
i just ended up doing
start() {
addAccessory("messageLinkEmbed", props => {
if (!messageLinkRegex.test(props.message.content))
return null;
// serverList blacklist
const currGuild = getCurrentGuild()?.id ?? "@me";
if (settings.store.serverList.includes(currGuild)) {
return null;
}
...
}, 4 /* just above rich embeds */);
},
using import { getCurrentGuild } from "@utils/discord";
using the exact same logic as noReplyMention and not messing with trimming or anything as noReplyMention doesn't bother either
It's probable I'm oversimplifying it all
- In PermissionsViewer, don't use guild nickname because Discord itself doesn't in channel settings
- Fixed TypingIndicator not using global names
am i allowed to make a plugin that uses another npm module?
some improvements, now the multiple import consists of nested elements, and instead of plain ol' numbers it shows a couple characters of the css as context
<img width="480" alt="Discord_CW5XLHkBxc" src="https://github.com/Vendicated/Vencord/assets/22133246/d418f030-8e98-4baf-a645-ff2648c83a97">
i think you'd have to webpack it or something to be able to run it inside discord
no we already have a bundler
I was going to type that exact phrase ..
esbuild our beloved
generally we avoid adding modules and dynamically import stuff instead
you'd add something like this to this file https://github.com/Vendicated/Vencord/blob/main/src/utils/dependencies.ts#L28
**dependencies.ts: **Line 28
export const getGifEncoder = makeLazy(() => import("https://unpkg.com/gifenc@1.0.3/dist/gifenc.esm.js"));
depends on what you want to add really, it might not be necessary to at all
vending? in my vencord?
https://betterdiscord.app/plugin/SplitLargeMessages
Very useful plugin if you write big messages or stories.
#1354 #1278 #970 #800 #569
adding splitlargemessages but it sends your token when splitting messages
great idea
no
why do my commits not appear here
but my comments do
i hate github's gpg
its so bad
so annoying
and more regex fun presents, the ability to remove snippets that have been installed via the plugin, see image
<img width="543" alt="uy9eXEHOz9" src="https://github.com/Vendicated/Vencord/assets/22133246/fff46775-fd61-4904-b5fd-41ca57a1b81c">
Just to add onto this: I think it'd be best if there were a function to enable E2E encryption on a chat with a password. Apate had this before it was discontinued, and it'd be nice to have it on this plugin as well.
@austere talon fixed all issues that you put (i think) โค๏ธ
ok now i am not updating vencord because this fucking bitch updated it
what
oh it's the 14yo who harassed people on reviewdb and got auto banned from it for trying to post hard r
L
lmao
bros malding at a fix on pronoundb like it didn't already exist for ages
true
i think he hates alexia (the person who committed that) and that's why he's mad lol
github really making u write an essay
yes (15 character limit)
oh that makes more sense
Vencord.Webpack.Common.GuildStore.getGuildCount()
lol
Always turns /silent messages and @off replies into pings because people are too kind and don't want to bother me but I want to know
@placid hinge you're the author of this PR, do you know why it was never merged?
Is there something blocking it
@austere talon is there still stuff you need me to do? It says changes requested but I think I've addressed everything you mentioned.
it stays that way until the reviewer submits an approving review
resolving conversations doesn't affect the review status
yeah, you can re-request one though if you click the recycling circle
that'll plong ven in the github notifs
this is annoying to impl because only messages that ping you are guaranteed to be dispatched in a message create
otherwise, if the guild is large, you must be subbed to it
is there a dependency for sending web requests alr installed?
bc i can use that instead of the module
you can just use browser fetch
your plugin runs inside a browser, you have access to all APIs that js inside a browser normally has
even in node you don't need any dependencies for web requests
they added fetch in node 18
it's kinda annoying that node typings don't include fetch yet
still have to manually add the global
not even kinda annoying it is just plain annoying xd
is fetch part of node LTS?
yes, it's available in node 18 without any flags but it's still "experimental"
uh
just add DOM to tsconfig lib

that's such a bad solution ;w;
well
i've mostly been working on electron stuff
so i had them anyway

ehehehe
it's not hard to add it's just annoying to have a d.ts floating around in a project that otherwise doesn't need ambient typings
i will never get tired of windows & android trying to open ts files as videos
// This is here because global fetch isn't documented in @types/node yet
declare global {
export const {
fetch,
FormData,
Headers,
Request,
Response
}: typeof import("undici")
}
export {}
file preview on rn whenโข๏ธ
tbf i've always had a globals.d.ts file in all projects i worked on
I used to have them a lot more often but in the last year or so the only reason I've had to add them is for fetch
it's nice that the TS ecosystem is getting a bit more solid and reliable in regards to typings
that's not exactly fair; ts was used for MPEG transport streams long before TypeScript existed
wdym by fair
typescript devs reused an existing file extension
@pure ledge does blacklisting certain ids from relationship notifier sounds like a feasible idea, got one or two guilds that enjoy telling me ive been kicked even though i havent 

no
why would you want a hacky workaround instead of fixing the actual problem

just fix the actual problem
but i never had such issues sooo
does the guild like to have outages a lot or smth
no idea, just happens every so often when resuming from sleep
it should
lemme see
i didnt get any notifications during the outages yesterday
and i did have multiple guilds unavailable
iirc it does
yeah getGuilds() should still return unavailable guilds
oh hm
idk i never had any issues with it personally
so it should be fine

same
does the initial ready event that sends u all guilds and stuff contain unavailable guilds
maybe that's the issue
idk if it's in ready or ready extra
is the guild public
(i have not)
it's maybe this
if no then no idea
very much so https://discord.gg/cats
oh wait i left apparently
yop
ready supplemental doesnt send you any new guilds ever
it's just supplemental data for the guilds
hmm alright
fun fact, the client relies on missing fields to tell if a guild is unavailable within ready supplemental
dog
cat dog
hi

hi
omg
i just ntoiced i never submitted this feedback
wait it just happened to me lmao
real
Escaping / is pointless, no? And to avoid having to double escape, you can just use String.raw
String.raw`/\*\nsnippet ${snippetId}[^]*?/\* end snippet ${snippetId} \*/`,
while ((match = re.exec(content)) != null) {
then you can remove the disable
thjere
so what is the unavailable status actually for? if the client determines itself, can it be bypassed?
an unavailable server is a server that's currently... unavailable 
either due to an outage, being offloaded because it's not used at all, etc.
ive never made a project that didnt need ambient typings
this is just in ready supplemental, the full guild object in ready (and guild create/delete events) actually have unavailable keys
but they r mostly websites and npm packages so ig it depends what ur making
I figured as much lol
you can technically fetch the guild and dispatch it into existence (sending messages and shit still works) but nobody will get them as events will not be sent
funny









