#๐Ÿ‘พ-core-development

1 messages ยท Page 68 of 1

charred monolithBOT
#
[Vencord/Desktop] New branch created: Vendicated-patch-1
#
[Vencord/Desktop] branch deleted: Vendicated-patch-1
fleet depot
#

That's not even true ๐Ÿ˜‚

#

Amazing

#

It's beautiful

charred monolithBOT
cunning canyon
#

puhmod

olive aurora
#

puhmod is real

cosmic willow
#

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

stiff beacon
#

What I can use to make options in slash commands like /hi 1 or 2 or 3

fleet depot
#

Check message tags plugin code

jagged cloak
verbal pumice
#

html jumpscare

charred monolithBOT
gentle spruce
#

done

charred monolithBOT
#

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?

charred monolithBOT
jagged cloak
#

looool

jagged cloak
#

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

charred monolithBOT
charred monolithBOT
lime stone
#

omG

charred monolithBOT
charred monolithBOT
woeful sable
#

yo big bro

austere talon
#

no

woeful sable
#

yeah I know they said it's not in the desktop

#

slight hint of silly

austere talon
#

@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

woeful sable
#

o

woeful sable
#

silly (gas)leak

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
austere talon
#

thats really stupid honestly

cosmic willow
#

Also ignore the title being wrong

#

its edited

austere talon
#

why in the world would they use udp

#

no reason and its just really inconvenient

cosmic willow
#

XSOverlay will only accept it

#

lol

austere talon
#

there is literally no reason for them to be using udp too

#

they're probably just using it cause its "cool"

cosmic willow
#

Yah ig

#

I just follow the way they say to do it

austere talon
#

ask them to add tcp support :P

cosmic willow
#

lol

#

their beta has not gotten a update since February ๐Ÿ™‚

#

so i doubt that would happen in a timely manor

austere talon
#

why did you add a buffer polyfill? It's pointless and lots of bloat

cosmic willow
#

I didn't know of a better way to do it, I could change it if their is a better way

austere talon
#

it's entirely unnecessary

#

pass a raw arrayBuffer to node

#

oh

#

you want to send base64

cosmic willow
#

ye

austere talon
#

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

  1. Remove it from web and instead mark your plugin as desktop only by naming it .desktop.ts
  2. 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)
  3. 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
cosmic willow
#

so for 1 do I still have to stub it in VencordNativeStubs?

austere talon
#

no

#

that's what "Remove it from web" means :P

cosmic willow
#

Im da slow

austere talon
#

you only need to "stub" stuff that is actually used (though it's not really stub, more like web implementation, slightly misleading name)

cosmic willow
#

oki

charred monolithBOT
cosmic willow
#

ipc plugins u said to but I dont see a file for pluginHelpers

austere talon
#

yes

cosmic willow
#

ok

austere talon
#

wait wdym

#

explain a bit better

cosmic willow
#
  • Move it to VencordNative.pluginHelpers.dgramSend
#

VencordNative.pluginHelpers

#

I don't see this existing

#

so I'm guessing you want me to make it?

austere talon
#

yes

#
export const VencordNative = {
  pluginHelpers: {
    stuff: () => 
  }
}
#

:P

limber skiff
#

epic discord css

charred monolithBOT
cosmic willow
#

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

austere talon
charred monolithBOT
#
[Vencord/Desktop] New tag created: v0.2.5
charred monolithBOT
frail skyBOT
#
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 ```
austere talon
#

lol

#

@limber skiff

limber skiff
#

WDYMMMMMMMMMMMMMMMMMMM

#

I FIXED THAT YESTERDAY]

frail skyBOT
#
Bad Patches

None

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 resetSocketOnError Cannot access 'h_e' before initialization ```
austere talon
#

inb4 they reverted it

#

oh only on stable

#

did they only update canary

limber skiff
#

the update should reach stable soon

cosmic willow
#

@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

austere talon
#

sorry for no reply, i didnt see your messages

austere talon
#

if you're not sure how to do that, feel free to ask wb_salute

cosmic willow
#

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

austere talon
#

icon: theArrayBuffer

#

then on node side

austere talon
#

data.icon = Buffer.from(data.icon)

cosmic willow
#

oh...

#

ehh

#

Buffer.from does not exist?

austere talon
#

remove the import buffer

cosmic willow
#

doesn't seem very happy with that XD

austere talon
#

is that webstorm

cosmic willow
#

Well it also does not work

austere talon
#

it's just your ide being bad and not recognising js types

#

it doesn't even know JSON

cosmic willow
#

webstorm go brr ig

austere talon
cosmic willow
#

oh shit

#

yup

#

Cool works

cosmic willow
#

where did you want that stuff?

#

just in the ipcPlugins.ts?

cosmic willow
cosmic willow
acoustic scaffold
#

@rustic nova could ImageZoom be switched to Nearest Neighbor?

jagged cloak
cosmic willow
jagged cloak
#

also u might wannana change branch

#

fyi

#

ur pring from main

cosmic willow
#

Is that bad? I'm only adding that plugin then my fork will go poof

cunning canyon
cosmic willow
#

Ah, ill take care of it in a bit

cosmic willow
#

It seems I have to remake the pr to change where its from, should I still do it? and just delete the current one.

cosmic willow
#

Ok well Ill see what ven wants me to do tomorrow

#

its late

charred monolithBOT
charred monolithBOT
charred monolithBOT
#

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?

  1. Send an embed with an `` style mention inside it
  2. 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...
charred monolithBOT
charred monolithBOT
charred monolithBOT
#

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:

image

Unfortuatnely, the current stat...

cosmic willow
austere talon
#

it's fine

cosmic willow
#

Won't happen again

charred monolithBOT
austere talon
#

wait i dont understand

#

why is this necessary

#

@woeful sable

verbal pumice
#

since pomelo usernames are forced lowercase if someone's display name is DiscordUser their handle is discorduser and that's considered separate

charred monolithBOT
verbal pumice
#

though i see that as more of a feature than a bug

woeful sable
austere talon
#

how is it unnecessary

#

i dont think its unnecessary

woeful sable
#

it's just repeating the same thing twice with a different case

austere talon
#

you should make this a setting

woeful sable
#

yea i can do that

#

hmm, the current impl doesn't even show discriminator for non-pomelo users, though that will soon be irrelevant

charred monolithBOT
woeful sable
#

not for me

austere talon
#

ve 1

nimble pendantBOT
austere talon
#

oh it doesnt

#

it did previously

olive aurora
#

it never did

austere talon
#

whaa

#

im hallucinating

#

??

olive aurora
#

yop

austere talon
#

average discord

olive aurora
#

discrims are ugly trolley

#

tbh

austere talon
#

ye

#

new system is better

#

haters will shrimply cope sorrykirino

#

well they already do

#

i wonder how much longer they will wait til they force people to migrate / force migrate people

olive aurora
#

it might be better to make the plugin show the user's display name

shut ridge
austere talon
#

port validuser to vendetta thanks

#

actually i might

woeful sable
austere talon
#

(6pak validuser incident)

shut ridge
#

those words together worry me

austere talon
shut ridge
#

good lord

austere talon
#

vencord validuser is peak imo, it only fetches mentions when you hover them

#

avoids api spamming if someone posts a lot of mentions

woeful sable
#

like an embed mentions a user twice, i hover over one, the other is still unfixed

austere talon
shut ridge
austere talon
#

it doesnt fetch twice if thats your concern

austere talon
#

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

woeful sable
#

@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 ๐Ÿคทโ€โ™€๏ธ

shut ridge
#

especially not RN

austere talon
austere talon
#

what does it currently show? it shows displayName for me

woeful sable
austere talon
woeful sable
#

ok but that's only gonna be a problem in like 1% of cases

#

like if ppl use weird lowercase L / uppercase i hacks

austere talon
#

just make it a setting blehhhhhh

woeful sable
#

but their pomelo username will look like shit if they do that anyway

olive aurora
#

it literally uses author.username

austere talon
woeful sable
#

it doesn't show display name for me, it shows username

#

my global display name is alexia

austere talon
#

?

woeful sable
#

yes, the one in the parentheses is the username

austere talon
#

yes

#

thats good no?

#

i like it that way

olive aurora
#

it should show the global display name there

#

cuz the point was to differentiate from nick

austere talon
#

but the displayName is essentially nick

#

global nick

#

it showing username is good imo

verbal pumice
#

should be a setting

woeful sable
#

yea idk having it show the username makes sense to me

#

suddenly: the plugin has 1000 settings

verbal pumice
#

yeah probably

olive aurora
#

real

austere talon
#

well i guess there are 3 possibly names now

#

ionstead of 2

#

server nick, global nick, username

olive aurora
#

i will simpl,y let u decide i didnt make this anyway trolley

austere talon
#

idk how it would display all 3 but i do like it showing the username

austere talon
#

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

woeful sable
#

i hate js for this

austere talon
#

lol

#

what u doing

#

is that console.log

woeful sable
#

yes

austere talon
#

dont stringify it

woeful sable
#

trying to see why the discriminator check didn't work

austere talon
#

console.log("SMYN author:", user)

olive aurora
#

or use debugger silly ..

austere talon
# olive aurora 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);
}
woeful sable
#

i probably should use debuggers more

#

it's like a last resort for me rn lol

#

usually

austere talon
#

u really should

#

it's a thousand times more useful in reverse engineering than in normal code

woeful sable
#

ok, message.author instead of author has the discrim

austere talon
#

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

olive aurora
#
Object.prototype.toString = function () {
    try {
        return JSON.stringify(this, null, 4);
    } catch {
        return `[object ${this?.constructor?.name ?? "idk"}]`;
    }
}
austere talon
#

NO

#

BAD

olive aurora
#

js will let you do this immediately ```js
function Object.prototype.toString() {}

austere talon
#

nop

olive aurora
#

that works in lua

#

u love

austere talon
#

kotlin too

#
fun Banana.explode() {
}
olive aurora
#

kotlin has every single language feature

austere talon
#

and it still sucks

olive aurora
#

so bloated

austere talon
#

for code simplicity, we can make the formats have placeholders

#

like

"%UNAME (%NICK)"
jagged cloak
#

gobal

austere talon
#

then just .replace() them

olive aurora
#

not possibl

austere talon
#

POSSIBLE

jagged cloak
#

horrid

olive aurora
#

look at the element returned

austere talon
#

terror

jagged cloak
#

yes

olive aurora
#

bc otherwise you cant style the second part

fleet depot
#

had my profile open to see if RPC was working and saw the new role added

austere talon
#

true

olive aurora
#

contributor jumpscare

fleet depot
#

my PR wasn't merged tho LOL

#

((but im not complaining abt the role))

olive aurora
#

neither was mine ๐Ÿ’”

woeful sable
#

can i have contributor too :3

#

oh

#

nvm

austere talon
charred monolithBOT
austere talon
woeful sable
#

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

austere talon
#

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

woeful sable
#

oh so it would have to be fixed in osu?

austere talon
#

yes

#

well if my theory is correct

#

which i assume it is

#

idk if you know the details about how rich presence works

woeful sable
#

i don't know too much details but i heard of a rpc server and i know osu has partial and full rpc modes

austere talon
#

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

fleet depot
#

I'll keep that in mind tho

austere talon
#

i use multiple parens often too

#

(( i love parens (((( yes yes )))) ))

fleet depot
#

((((it's fun))))

austere talon
#

pov: you're looking at lisp code

olive aurora
#

biggest trailing comma fan,,,,,,,,,,,,,,,,,

austere talon
#

yes,,,,,,,,,,,,,,,,,

woeful sable
#

yea it's not a big deal ig it's mostly used in the bad context when putting someone's name in parentheses

fleet depot
olive aurora
#

vencord in clojurescript soon

austere talon
#

N OOO

#

BADDD

woeful sable
#

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

fleet depot
# fleet depot So true

learning lisp in my third cs class convinced me to install rainbow parens before rainbow parens were a part of vs code

austere talon
#

honestly its useful even for normal coding

fleet depot
#

up to that point we were using eclipse ((yucky))

austere talon
#

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

fleet depot
#

it's cursed

austere talon
#

any last words

#

before i banish you into the shadow realm

woeful sable
#

i use chatgpt to give me more understandable memorizable definitions that don't involve stuff like this sometimes

#

this is an exaggeration obviously but

austere talon
#

wtf is that

fleet depot
#

looks suspiciously like math to me bleh

woeful sable
#

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

charred monolithBOT
#

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
...

olive aurora
#

explode

cosmic willow
charred monolithBOT
quick ibex
#

bro

austere talon
quick ibex
#

i was about to fucking shred that discussion

austere talon
#

"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

woeful sable
#

I don't understand why mfs just don't ignore it if they hate it so much

olive aurora
#

vending.machine#0

quick ibex
#

because they need to make an issue out of anything and everything

charred monolithBOT
rare shale
median rapids
#

omg im one off from second page

shadow mango
#

why does context menu dispatch so many times lol

austere talon
charred monolithBOT
frail skyBOT
#
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 ```
austere talon
#

E_e

#

Unable to process domain list delta: Client revision number is null

quick ibex
#

vns

nimble pendantBOT
quick ibex
#

Cool

median rapids
austere talon
#

yeah i saw

median rapids
charred monolithBOT
charred monolithBOT
cosmic willow
#

im a idiot

#

ignore

charred monolithBOT
shadow mango
#

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

shadow mango
#

so i cant get it in javascript

#

i just gotta uhh

charred monolithBOT
charred monolithBOT
#

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...

charred monolithBOT
charred monolithBOT
#

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.

charred monolithBOT
austere talon
#

this is discord, not pokemon

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
fleet depot
#

codeberg vaius fail

austere talon
fleet depot
#

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

austere talon
#

that wont work

#

you need to update oceanic

fleet depot
#

drat

#

it was updated 3 weeks ago

#

i mean that's not that recent but it's post pomelo

austere talon
grave mangoBOT
austere talon
#

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

charred monolithBOT
#

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 ...

austere talon
charred monolithBOT
turbid hatch
median rapids
#

having more than 5 accs is not objectively malicious lmao

turbid hatch
#

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

fleet depot
turbid hatch
#

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

median rapids
austere talon
#

we already establishged that :P

median rapids
#

not that this will make any difference in the collecting of pomelo accs

turbid hatch
#

i gave my full opinion in the comment anyway, so

austere talon
#

well via discord so ig you didnt see

turbid hatch
#

i saw it left open on github so i just thought "hey something i know"

austere talon
#

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 ๐Ÿ˜ญ

turbid hatch
#

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

austere talon
#

there is virtually no data loss risk on localhost

#

so udp is entirely pointless

turbid hatch
#

well if ur getting data loss on localhost something is horribly wrong

austere talon
#

add the fact that this is supposed to be used from browsers

#

which dont support udp

turbid hatch
#

yeah lol

#

brb my eye is hurting like hell

austere talon
#

whats wrong

#

all good?

turbid hatch
#

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

woeful sable
#

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

austere talon
#

api aboooos

#

you just ```js
FluxDispatcher.dispatch({
type: "GUILD_MEMBERS_REQUEST",
guildIds: [guild.id],
userIds: [user.id]
});

#

it automatically chunks them

charred monolithBOT
turbid hatch
#

im oki

#

its gone now

austere talon
#

dont reply stuff like that please @quick ibex

quick ibex
#

oki

austere talon
#

github is for development discussions, not personal opinions / arguing

austere talon
austere talon
turbid hatch
#

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

turbid hatch
#

and it never did

quick ibex
#

that doesnt sound good

charred monolithBOT
turbid hatch
#

@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

austere talon
#

the pings bug?

turbid hatch
#

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

charred monolithBOT
turbid hatch
#

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

woeful sable
#

the bot api endpoint doesn't work on user accounts trolley

austere talon
#

you cant fetch all

#

you need ids

woeful sable
#

how does discord client do it then

#

maybe i can just get them from GuildMemberStore

austere talon
#

well yeah

#

cached ones

austere talon
#

but there is no way to fetch all members

#

well there is kinda

woeful sable
#

member list exists so at least some info is returned about them, obviously not full profile

austere talon
#

there is guild member search, so you can search for each letter

woeful sable
austere talon
#

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

woeful sable
#

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

olive aurora
#

what about the members tab on the server settings (scary)

austere talon
#

i love it

woeful sable
austere talon
#

probably AUDIT_LOG then

#

:P

woeful sable
#

thought so

austere talon
#

so you just set limit and query

#
FluxDispatcher.dispatch({
  guildIds: [guildId],
  type: "GUILD_MEMBERS_REQUEST",
  query: "",
  limit: 10_000
})
olive aurora
#

fire

austere talon
#

might or might not require perms

verbal pumice
fringe basalt
charred monolithBOT
verbal pumice
#

i wonder how much of this is doable with css

#

probably not a lot

charred monolithBOT
austere talon
#

STO PSPAMMING

#

noone cares if u fibnd it cool omg

median rapids
#

otherwise you must specify query and a limit of up to 100

#

or up to 100 user ids

charred monolithBOT
unborn garnet
#

merge merge merge merge

austere talon
#

oh yeah also

#

do u know about the embed crash

#

apparently embed crashes discord somehow

unborn garnet
#

what

austere talon
#

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

unborn garnet
#

how did you reproduce it

austere talon
#

oh embed is null

unborn garnet
#

because it seems to work just fine on replugged

austere talon
#

hmm

#

this should probably check whether the return value is not null

unborn garnet
#

so just

austere talon
#

yep lol

#

funny

unborn garnet
#

if urlCheck != null && urlCheck?.length

austere talon
#

nono

#

thats not the issue

#

embeds.push(getEmbed())

unborn garnet
#

ohhh

austere talon
#

it pushes undefined to embeds

unborn garnet
#

gotcha

#

ill add it to the pr

austere talon
#

no need

#

i can push it

unborn garnet
#

nuh uh

#

i will put into pr

austere talon
#

okay :P

#

i would have pushed both ur pr and the fix

#

but u pushing it to pr works too

unborn garnet
#

done OkayChamp

#

and thank you v discord

charred monolithBOT
unborn garnet
#

How does vencords updating model work again?

austere talon
#

pushed instantly

unborn garnet
#

Okay sick

austere talon
#

but its in dev branch rn

#

will merge into main soon

unborn garnet
charred monolithBOT
unborn garnet
#

Why even have pronoundb when discord has the pronouns feature

austere talon
#

might remove it in the futureif discords pronouns become better and more widely used + discord pronouns dont show in chat

unborn garnet
#

Good pointer

austere talon
#

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

unborn garnet
#

Yeah, could get annoying quickly

charred monolithBOT
#

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

fleet depot
#

but really cool function

tawny cipher
#

the toolbox isn't really faster

fleet depot
#

it isn't that's true

tawny cipher
#

the copy paste still annoyed me

fleet depot
#

fair enough

austere talon
#

when did u turn into a kpop stan account

tawny cipher
#

when syn converted me in february

austere talon
#

yeah snippet import is pretty cool

#

although

#

maybe add some context

#

like add a comment above the snippet

tawny cipher
#

thanks, I was thinking of a remove as well but it sounded too useless

austere talon
tawny cipher
#

yeah that was my initial idea of parsing it

austere talon
#

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 */
tawny cipher
#

will do that tomorrow, as you know it's quite late in this timezone

austere talon
#

yeah no worries take ur time!

tawny cipher
#

well, actually, fuck it I guess, it's 2 seconds effort

austere talon
#

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?

tawny cipher
#

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

austere talon
#

Import Snippet 1
Import Snippet 2

#

I guess either some fancy parsing
not even necessary

tawny cipher
#

well by that I mean checking for multiple codeblocks

austere talon
#
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)

cosmic willow
#

@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

GitHub

This plugin adds the function to send message notifications to XSOverylay's Notification API over UDP

austere talon
#

oh i see

#

i thought it was used for the content the user sees

cosmic willow
#

nah just used here

austere talon
#

oh lol

cosmic willow
austere talon
#

yeah feel free to disregard it then :P

austere talon
#

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

fleet depot
#

i know!!

#

i was talking to my friend about it

#

๐Ÿ’ข

#

but that's the secret

#

zwj <3

charred monolithBOT
cosmic willow
#

Ok @austere talon the rest I fixed

charred monolithBOT
austere talon
#

huge

charred monolithBOT
#

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...

limber skiff
median rapids
#

society if user accs could use bulk delete

cosmic willow
median rapids
#

still blocked

#

so sad ๐Ÿ˜”

cosmic willow
#

lol

frail skyBOT
#
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 ```
acoustic scaffold
#

@rustic nova thanks for implementing nearest neighbor!!

stark flint
#

rip

charred monolithBOT
nimble pendantBOT
#

๐Ÿ’ข

fleet depot
#

it does?

#

im only counting 8

#

which seems about the same as windows

#

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

charred monolithBOT
fleet depot
#

It's probable I'm oversimplifying it all

charred monolithBOT
charred monolithBOT
gloomy mortar
#

am i allowed to make a plugin that uses another npm module?

charred monolithBOT
charred monolithBOT
woeful sable
olive aurora
#

no we already have a bundler

#

I was going to type that exact phrase ..

#

esbuild our beloved

olive aurora
grave mangoBOT
olive aurora
#

depends on what you want to add really, it might not be necessary to at all

#

vending? in my vencord?

charred monolithBOT
olive aurora
#

adding splitlargemessages but it sends your token when splitting messages

verbal pumice
#

great idea

austere talon
#

no

round gust
#

why do my commits not appear here

#

but my comments do

#

i hate github's gpg

#

its so bad

#

so annoying

charred monolithBOT
round gust
charred monolithBOT
charred monolithBOT
stark flint
#

what

austere talon
#

probably some dumb drama lol

#

blocked

stark flint
#

14 year old with 3 cringe twitter accounts

#

checks out

austere talon
#

oh it's the 14yo who harassed people on reviewdb and got auto banned from it for trying to post hard r

#

L

stark flint
#

lmao

olive aurora
#

bros malding at a fix on pronoundb like it didn't already exist for ages

stark flint
#

true

austere talon
#

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

stark flint
#

yes (15 character limit)

austere talon
#

Vencord.Webpack.Common.GuildStore.getGuildCount()

lime stone
#

lol

charred monolithBOT
fleet depot
#

Is there something blocking it

cosmic willow
#

@austere talon is there still stuff you need me to do? It says changes requested but I think I've addressed everything you mentioned.

fleet depot
#

Aighto

tawny cipher
#

resolving conversations doesn't affect the review status

cosmic willow
#

Ah

#

I see

tawny cipher
#

yeah, you can re-request one though if you click the recycling circle

#

that'll plong ven in the github notifs

median rapids
# charred monolith

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

golden gulch
#

i have pr that would do it kinda (the cutecord pr)

#

need to finish it

#

someday

gloomy mortar
#

bc i can use that instead of the module

golden gulch
#

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

gloomy mortar
#

ahhhh ok

#

thanks

austere talon
#

even in node you don't need any dependencies for web requests

#

they added fetch in node 18

gloomy mortar
#

oh really?

#

why am i just hearing about this

#

lol

golden gulch
#

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

nocturne haven
#

is fetch part of node LTS?

charred monolithBOT
golden gulch
austere talon
#

just add DOM to tsconfig lib

golden gulch
#

that's such a bad solution ;w;

austere talon
#

well

#

i've mostly been working on electron stuff

#

so i had them anyway

#

ehehehe

golden gulch
#

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

austere talon
#

i will never get tired of windows & android trying to open ts files as videos

golden gulch
#
// 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โ„ข๏ธ

austere talon
golden gulch
#

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

woeful sable
austere talon
#

wdym by fair

woeful sable
#

typescript devs reused an existing file extension

austere talon
#

yes

#

i didn't blame the format :P

#

i just said i find it funny

somber ginkgo
#

@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 xddxdd2

austere talon
#

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

somber ginkgo
#

no idea, just happens every so often when resuming from sleep

median rapids
#

does the plugin not handle unavailable guilds

#

you can tell

austere talon
median rapids
#

lemme see

somber ginkgo
#

i didnt get any notifications during the outages yesterday

#

and i did have multiple guilds unavailable

pure ledge
median rapids
#

yeah getGuilds() should still return unavailable guilds

pure ledge
#

oh hm

austere talon
#

idk i never had any issues with it personally

median rapids
#

so it should be fine

austere talon
median rapids
#

yeah me neither

pure ledge
#

same

austere talon
#

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

somber ginkgo
#

i should add its rather consistent

#

you have been removed from cats

pure ledge
#

is the guild public

somber ginkgo
#

(i have not)

austere talon
#

i'm in cats and it never happened

#

sooo skill issue

austere talon
#

if no then no idea

somber ginkgo
austere talon
#

oh wait i left apparently

median rapids
#

ready supplemental doesnt send you any new guilds ever

#

it's just supplemental data for the guilds

austere talon
#

hmm alright

median rapids
#

fun fact, the client relies on missing fields to tell if a guild is unavailable within ready supplemental

river drum
#

dog

median rapids
river drum
#

cat dog

austere talon
#

silly

river drum
#

hi

somber ginkgo
austere talon
#

hi

median rapids
austere talon
#

omg

#

i just ntoiced i never submitted this feedback

#

wait it just happened to me lmao

median rapids
charred monolithBOT
austere talon
#

thjere

nocturne haven
# median rapids

so what is the unavailable status actually for? if the client determines itself, can it be bypassed?

austere talon
#

why does it even happen

#

idgi

median rapids
gloomy mortar
median rapids
#

this is just in ready supplemental, the full guild object in ready (and guild create/delete events) actually have unavailable keys

gloomy mortar
median rapids
#

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

austere talon
#

funny