#👾-core-development

1 messages · Page 169 of 1

real flower
#

i need to use my brain more

#

wait so if i do that i can just pnpm build or do i still have to buildweb

#

i assume just build

#

logically that makes sense

#

maybe im too silly

#

i need a

#

well

#

step one of becoming less silly

#

im going to stop trying to do dev work with a flatpak

#

more overhead than its worth

austere talon
#

you can just select your folder anyway and flatpak will auto mount it

#

although flatpak will randomly revoke access after some weeks

#

so its best you grant it proper access to the vencord folder then select it

real flower
#

ye p

#

i just gave it user folder access and it wanted to be a pain so i just fuckin

#

aur version for dev

#

flatpak for beating up my gf in call

austere talon
#

personally i just use host version, not flatpak

#

but i also have flatpak installed for testing

charred monolithBOT
real flower
#

i like to keep most apps flatpak unless they're needed to not be

#

like

#

vscode flatpak is just stupid

#

why would you do that

real flower
#

idk just kinda nice to have a similar permissions system to something like android

#

i like knowing an app cant touch stuff it shouldnt

median rapids
austere talon
#

well in the case of free software like vesktop its easy to verify as well

real flower
#

mhm

#

i get that

austere talon
#

but yeah

real flower
#

just nice to keep most stuff in one place too

lime stone
#

what the

real flower
#

yeah,,,

mint thistle
#

nuclear bomb

inland fable
#

AI too advanced,,,

limber skiff
#

ignore the function name I haven't decided yet

austere talon
#

uhh

#

whats that for

#

the proxy is just so u can destructure?

brazen bone
#

I think the isSameTick hack is pretty ugly, I'd rather have something less magical like const { a } = project(proxy);

rugged spire
#

my clearableDebounce hack blobcatcozy

limber skiff
#

for this @austere talon

#

it's a double proxy so you dont need to redefine the variable

brazen bone
#

proxyLazy does some magic stuff with setTimeout(() => isSameTick = false, 0); to make destructuring work

limber skiff
#

yes, I know

brazen bone
#

Which imo is kinda too magic

#

It does work pretty well, ngl

limber skiff
#

how otherwise would you do

#

a second function just for that?

#

it's meh

austere talon
#

dont tell anyone

brazen bone
#

I'm not the kind of person to not worry about underlying implementations

frail skyBOT
#
Bad Patches

ViewIcons (had no effect):
ID: 289918
Match: /style:\{(?=backgroundImage:(\i&&\i)\?"url\("\.concat\((\i),)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

mint thistle
frail skyBOT
#
Bad Patches

ViewIcons (had no effect):
ID: 289918
Match: /style:\{(?=backgroundImage:(\i&&\i)\?"url\("\.concat\((\i),)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

it's joever

umbral hedge
#

never been more over

real flower
#

so i pointed vesktop's vencord install to my vencord clone/dist and reran pnpm build but for the life of me i cannot get my plugin to show up at all(just want to make sure that part is working before i try to debug the actual content of the plugin)(yes i filled out all of the defineplugin stuff)

austere talon
#

full restart is needed

limber skiff
#

waitFor
waitForCodeLazy
waitForComponent
waitForComponentByCode
waitForExportedComponent
waitForLazy
waitForPropsLazy
waitForStoreLazy

#

new stuff

#

this can technically replace find#### completely

#

and this is waitForLazy, which is the base for the others

/**
 * Wait for a module that matches the provided filter to be required,
 * then call the callback with the module as the first argument.
 *
 * The callback must return a value that will be used as the proxy inner value.
 * @returns A proxy that has the callback return value as its true value
 */
export function waitForLazy<T = any>(filter: FilterFn, callback: (mod: any) => any, { isIndirect = false }: { isIndirect?: boolean; } = {}) {
    const [proxy, setInnerValue] = proxyLazyWaitFor<T>();

    waitFor(filter, mod => setInnerValue(callback(mod)), { isIndirect });

    return proxy;
}
#
export function waitForPropsLazy<T = any>(...props: string[]) {
    return waitForLazy<T>(filters.byProps(...props), m => m, { isIndirect: true });
}
real flower
#

tyty

charred monolithBOT
glass jasper
# frail sky

damn that’s actually a very good plug-in really helps out with moderation on a server

austere talon
#

huh

limber skiff
#

omg using waitFor is so cool

#

this is working so nicely

woeful sable
#

.

limber skiff
#

@austere talon should I pr trolley

frail skyBOT
#
Bad Patches

ViewIcons (had no effect):
ID: 289918
Match: /style:\{(?=backgroundImage:(\i&&\i)\?"url\("\.concat\((\i),)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

ViewIcons (had no effect):
ID: 289918
Match: /style:\{(?=backgroundImage:(\i&&\i)\?"url\("\.concat\((\i),)/

Decor (had no effect):
ID: 907148
Match: /(?<={user:\i},"decoration"\),)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

austere talon
#

WHAT IS THAT

#

why'd u even move everything to waitFor

#

the reason i made plugins use findLazy instead of waitFor is to avoid unnecessary searches cause most users won't have the majority of plugins enabled

limber skiff
#

yes but, it's more expensive to run our finds than to just catch when everything is loaded

#

discord has way more modules than finds we do

austere talon
#

wdym by that

#

well idk

limber skiff
#

everytime we need to findLazy something we run through good part of the cache

austere talon
#

technically the cost is the same

limber skiff
#

I think this is faster

#

because iterating through our waitFor filters is nothing

austere talon
#

200 times 10000 module search
or 10000 times 200 filter search

#

it adds up to the same

#

well should anyway

#

in reality bulk search is way more efficient

limber skiff
#

we delete the subscriptions we already used

austere talon
#

but idk if doing like 200 searches is a good idea

limber skiff
#

I honestly think this is faster

#

oh wtf happened here

#

and why did only one my clients break with that

#

if I use the same build on them

austere talon
#

basically if you rebuild with new dev branch code but don't full restart

#

i changed the native code so you need to full restart

limber skiff
#

oh right

#

let me show you something

#

these are the latest waitFors subscriptions that ran

#

after everything had loaded

#

at max it's 0.1 ms

charred monolithBOT
limber skiff
#

everything in webpack commons I moved manually

#

the plugins I moved using vscode rename, and it had no issues

#

besides of course weird uses of LazyComponentWebpack and stuff

austere talon
#

not a fan of the names tbh

limber skiff
#

yeah I didnt know what to put

austere talon
#

if this is replacing everything it could just keep the same func names but with a different name

limber skiff
#

but that's easy to change

austere talon
#

but also lazy wouldn't be accurate anymore

limber skiff
#

yeah

#

but I'm still keeping the old find api

#

well at least I got everything working

#

now it only needs tweaking

charred monolithBOT
charred monolithBOT
sterile oak
#

@mint thistle

const Native = VencordNative.pluginHelpers.WebhookManager as PluginNative<typeof import("./native")>;

what's this exactly?

limber skiff
#

I really picked horrible names for that methods

#

I need better ideas

mint thistle
#

so that it can send the webhook message from a place other than the origin (discord.com)

limber skiff
#

you know that by using native your plugin turns desktop only right

lime stone
austere talon
#

profile

lime stone
#

i thought validuser fetched the user and clicking on the user fetched the profile
but whatever it's off-topic

austere talon
limber skiff
#

wtf

austere talon
#

so you either have to use native, a proxy, or abuse iframe to get rid of the origin

#

iframe causes issues with csp

#

so native is the best option that doesn't involve a proxy

limber skiff
#

I see

#

good morning btw

austere talon
limber skiff
#

lol I can't try rn

austere talon
#

invalid origin error

limber skiff
#

my pc is in a box

#

I'm traveling

austere talon
#

i think they're trying to prevent some token grabber browser extensions or such from using webhooks inside discord

limber skiff
#

not a bad move

mint thistle
#

i wish i knew that earlier cuz i thought i was coding wrong

#

apparantly you also need a required username and it won’t default to the webhook one

lime stone
#

doesn't the extension already modify csp

#

it's probably not the smartest idea to remove this restriction though

mint thistle
#

i’ll find a way to make it work on web

#

it should be fine for more feedback venniethink

#

took me 20 mins to add a couple new features

topaz spoke
#

or is that limited

austere talon
#

yes you could

topaz spoke
#

ok thanks blobcatcozystars

mint thistle
brazen bone
#

vns

nimble pendantBOT
brazen bone
#

Or I guess custom plugins are not supported but still

austere talon
#

vban 7 @neon quest taliban/isis/whatever idec avatar, but also the much greater offense of misusing the dev channels

sterile oak
mint thistle
#

my question is: will the entire plugin fail to load if it has native code?

sterile oak
#

/webhook send won't work

#

as you see here

#

its "undefined"

mint thistle
sterile oak
mint thistle
#

ohhh

#

hmm

sterile oak
#

it works just fine in desktop

austere talon
median rapids
#

though it doesn't exactly do all that much

rugged spire
rugged spire
#

where that runs in the extension space

#

extensions can send arbitrary HTTP requests

#

afaik

#

or well, without the origin at least

#

they can also do raw TCP

mint thistle
#

like

#

on any webhook sender site

#

you NEED a username

#

or else it wont work

rugged spire
#

nope

#

very wrong

#

you're probably sending an empty username string

#

yup

#

you're sending an empty username string

#

omit the username field entirely

#

@mint thistle

mint thistle
#

alr

#

ill do that

sterile oak
rugged spire
#

PS: the userscript still exists so you will not be able to use it there if you decide to do it that way trolley

mint thistle
#

(cool webhook is the default name)

charred monolithBOT
mint thistle
#

also what's the test check

shy veldt
#

tht test check

mint thistle
shy veldt
#

tests

mint thistle
#

what does it check for

shy veldt
mint thistle
#

waaait a minute

woeful sable
#

when is the test for tests coming out

brazen bone
mint thistle
#

i deadass thought it was a placeholder name

sterile oak
brazen bone
#

Getting the webext running in firefox is a huge pain so I use the userscript

charred monolithBOT
frail skyBOT
#
Bad Patches

ViewIcons (had no effect):
ID: 289918
Match: /style:\{(?=backgroundImage:(\i&&\i)\?"url\("\.concat\((\i),)/

Decor (had no effect):
ID: 907148
Match: /(?<={user:\i},"decoration"\),)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

ViewIcons (had no effect):
ID: 289918
Match: /style:\{(?=backgroundImage:(\i&&\i)\?"url\("\.concat\((\i),)/

Decor (had no effect):
ID: 907148
Match: /(?<={user:\i},"decoration"\),)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
grizzled epoch
#

“You have no blue role so you shouldn’t be allowed to talk here”

#

What the fuck is this logic

median rapids
#

sorry forgot about this

#

i do have it properly documented in userdoccers so you should be fine

grizzled epoch
#

Why was my chat stuck at messages of two days ago

#

Surreal

median rapids
#

but those types of webhooks are just created when you follow an announcement channel

median rapids
#

i can give you an example

mint thistle
#

I DIDNT EVEN KNOW THIS WAS A THING

mint thistle
grizzled epoch
mint thistle
#

RIP this link is dead

median rapids
#
{
    "application_id": null,
    "avatar": "abea68a7310b331b535ea39af0e176f0",
    "channel_id": "1034238059899789373",
    "guild_id": "silly",
    "id": "1040699779379892305",
    "name": "Discord Developers #developer-news",
    "type": 2,
    "user": {
        "id": "828387742575624222",
        "username": "jupppper",
        "avatar": "a7a077883967b80e3ce62c67aeabb792",
        "discriminator": "0",
        "public_flags": 16384,
        "premium_type": 0,
        "flags": 16384,
        "banner": null,
        "accent_color": null,
        "global_name": "Jup",
        "avatar_decoration_data": null,
        "banner_color": null
    },
    "source_guild": {
        "id": "613425648685547541",
        "icon": "a_1cb02e250f5e3243d533ec3e83dcee06",
        "name": "Discord Developers"
    },
    "source_channel": {
        "id": "1040031099860045854",
        "name": "developer-news"
    }
},
median rapids
#

big WIP

mint thistle
#

judging by this

#

this should work

#
  if (response.type === 2) {
                            const sourceGuild = `
                            Source Server ID: ${response.source_guild.id}
                            Source Server Name: ${response.source_guild.name}
                            `;
                            sourceGuildGet = sourceGuild;
                            const sourceChannel = `
                            Source Channel ID: ${response.source_channel.id}
                            Source Channel Name: ${response.source_channel.name}
                            `;
                            sourceChannelGet = sourceChannel;```
median rapids
#

what's the point of two variables

mint thistle
#

oh

#

actually ur right on that

#

let me push that change

median rapids
#

and why are they global but kinda

mint thistle
#

?

rugged spire
#

husk wtf did they do in canary today

charred monolithBOT
median rapids
mint thistle
median rapids
#

nopp

#

oh @mint thistle i just realized this only works with a url and not the /webhooks endpoint

median rapids
#

there aren't any urls for channel following webhooks

#

so the source_ stuff is unnecessary

#

sorryyy

mint thistle
#

nah nah ur good

#

what if down the road i made /webhooks endpoint as a command or smth

limber skiff
#

@austere talon do you have an idea for what I should call the new functions for webpack finding?

mint thistle
#

wait so its as easy as this

brazen bone
#

"undefined" != undefined

mint thistle
#

oh

#

also i didthat wrong

#

wait

#

nvm i did that right (besides the undefined part)

#

ok its past 9:00 i cant think

#

is that suposed to be ===?

austere talon
mint thistle
#

woah thats a cool theme

charred monolithBOT
brazen bone
#

I can't code it up rn, but an idea might be to capture the original Layer ($1=$self.wrapLayer($1);) and use that as fallback

charred monolithBOT
austere talon
#

the point of the errorboundaries is just to leave discord in a usable state so you can update

brazen bone
#

True

austere talon
#

without the errorboundary it was just an unrecoverable instant crash xd

#

and without the fallback it was just the error card rendered and nothing else

brazen bone
#

That's not so great

austere talon
#

thank you btw

junior olive
charred monolithBOT
junior olive
#

I'm getting ready for travel so if someone else could have a go at fixing that patch it'd be greatly appreciated shiggy

charred monolithBOT
austere talon
#

ofc

mint thistle
#

regex looks SCARY 🙏 💯

junior olive
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

mint thistle
#

yippie

hybrid spoke
#

where can i find the doccumentation

brazen bone
#

docs folder?

austere talon
#

v+ contributor @chilly bough

charred monolithBOT
cunning canyon
#

css

charred monolithBOT
mint thistle
#

i mean that plugin could merge with betternotesbox to make something like BetterUserProfiles

#

eh just an idea

#

im so tireddddddd

austere talon
#

css can do it

charred monolithBOT
mint thistle
#

it took me until today to learn how to use quickcss skull_gone

#

anyways im going to head to bed fr

charred monolithBOT
charred monolithBOT
trail lark
#

HOW TO CHANGE OLD DISCORD FONT BACK

grizzled halo
trail lark
gentle solar
#

yo

#

can i add a dev

#

to talk about something

grizzled halo
gentle solar
grizzled halo
#

Yes but what

gentle solar
#

but like a dev

#

i saw smth on reddit

grizzled halo
gentle solar
#

js to clearify smth

grizzled halo
#

Then ask?

gentle solar
#

who

grizzled halo
#

And someone will probably answer

gentle solar
#

ok

#

ty

charred monolithBOT
austere talon
charred monolithBOT
charred monolithBOT
charred monolithBOT
lime stone
#

wdym old file

#

if the plugin is disabled it will use the vanilla sound

#

huh how come the whole page freezes if you use a large file

amber olive
livid heath
#

is there a way to override the initial app html on desktop (no this isn't an xy problem)

chilly bough
charred monolithBOT
austere talon
charred monolithBOT
#

Describe the bug

When trying to stream an application or monitor, the client soft locks after selecting the application or monitor, hanging at "Loading Audio Sources...". Voice Chatting is still possible and the client still animates everything properly, but no longer responds to user input. The desktop environment eventually reports that Vesktop is no longer responding.

To Reproduce

  1. Join a Voice Chat
  2. Click the button to stream
  3. Select a video source

...

lime stone
charred monolithBOT
charred monolithBOT
lime stone
brazen bone
#

Discord OS when

median rapids
#

entire desktop environment within discord

median rapids
#

chromeos blobcatcozy

cursive nymph
#

from an friend

charred monolithBOT
charred monolithBOT
brazen bone
#

Huh, forking the cloud doesn't happen that often

median rapids
#

so true

charred monolithBOT
charred monolithBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
charred monolithBOT
charred monolithBOT
lyric comet
#

do any of the vencord plugins depend on other vencord plugins besides the api ones?

#

like if i have all apis enabled will all plugins just work by themselves or is there anything extra inside of vencord they need

limber skiff
#

they just work

lyric comet
#

sick

limber skiff
#

some plugins have integrations with others

#

but they still work if the other is disabled

lyric comet
#

could you give an example of one that integrates so i can look at it?

#

im making a home-manager module for vesktop so it can be declared

limber skiff
#

show hidden channels has this button if you have permissions viewer enabled

#

but it works completely fine with it disabled

#

(the plugin needs to exist though)

lyric comet
#

i see

#

are these integrations handled in the plugins typescript?

limber skiff
#

it's a simple if statement for Settings.plugins.PermissionsViewer.enabled

lyric comet
#

sick

#

i was just making sure it was not something that the module needed to handle

#

thanks for the info :)

charred monolithBOT
rugged spire
limber skiff
austere talon
#

um

#

just replace old ones probably

limber skiff
#

hmmm

#

should I just call it findByProps for example

#

and remove the old findByProps and findByPropsLazy

#

make the default return a proxy

#

(since it's how it works)

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
limber skiff
#

crazyy

charred monolithBOT
limber skiff
#

console now has no find tracer lmao

charred monolithBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

austere talon
#

i don't think the basic finds should be changed

#

rather the lazys

#

but i still need to look at it properly

limber skiff
#

horror

#

take a look first when you can

#

then give me the feedback

#

the current methods work like a normal find and as lazy at the same time

#

(but of course not actually lazy, they instead use waitFor internally)

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

proxy has an inner value of the module which is set when the module you want to find is required

charred monolithBOT
charred monolithBOT
#

Fixes #952

Before

https://github.com/Vendicated/Vencord/assets/45801973/e18ed88d-05f8-40d7-b436-55bbd70aa58a

(it mainly dies in the second half because most of the recent messages have 10+ reactions so it doesn't render)

After

https://github.com/Vendicated/Vencord/assets/45801973/89bab6e4-0172-421e-8858-61fe1f7d73a7

(There's still a bit of jumping when Discord's loading new messages, but that also happens when the plugin is disabled.)

Problem Explanation

The...

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
livid heath
#

do they know what they are doing

rugged spire
#

nop

charred monolithBOT
rugged spire
#

watch them blatantly ignore this

livid heath
#

yeah idt its going in css-snippets
just look at the last selector

rugged spire
#

horror

livid heath
#

#app-mount > div.App__appAsidePanelWrapper.appAsidePanelWrapper__714a6 > div.App__notAppAsidePanel.notAppAsidePanel__9d124 > div:nth-child(4) > div.BackdropLayer__layer.layer_ad604d > div > div > div:nth-child(1) > div > div > div.UserProfile__userProfileModalOverlayBackground.userProfileModalOverlayBackground__52d65.UserProfile__overlayBackground.overlayBackground__86b78 > div > div.u.u1342.u1342__container.container_b6b15b > div:nth-child(1) > div.u.u89.u89__info.info__40462.u.u1342.u1342__nameTag.nameTag__7814f.u.u1342.u1342__nameTagSmall.nameTagSmall__02127 > span

#

css devs fear this guy

rugged spire
#

half of that wont even fucking work

#

REAL vencord "contributor" activity

prime dew
charred monolithBOT
rugged spire
prime dew
#

Like
My css is scuffed
But not to that point

rugged spire
#

Unironically

prime dew
#

Mood

livid heath
#

i simply dont write css

#

frontennd sucks

#

backend forever

rugged spire
#

ok that is a bad example for CSS

#

but still

prime dew
#

Huh, so I imagine that the longer the spike the worse performance you're getting

rugged spire
#

i managed to make those huge spikes

#

Wider

#

Longer is just function call stuff

#

Those purple bits? That's CSS rendering

prime dew
#

Jeez

rugged spire
#

Hi I just accidentally opened DevTools and had to restart my client

prime dew
rugged spire
#

i wish GitHub had a husk reaction

charred monolithBOT
lime stone
#

couldn't get webpack grabber to work

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
mint thistle
#

am i supposed to comment that

#

when i finish reviewing and acting on feedback

#

this is the first time i’ve done a somewhat professional pull request

mental lotus
# mint thistle am i supposed to comment that

marking the reviews as resolved is enough, but to let reviewers know that they can engage again, you can re-request their review with the gh reviewer feature, or like you did, leave a comment

#

so yeah, you're doing well

mint thistle
lime stone
#

reddit 😭

crude hearth
#

your css sooooo cursed

#

ALSO HOW IS THIS REDDIT

lime stone
#

no css

#

@crude hearth can you reply to warning on my profile, i wanna see if they can nest

#

oh they clearly can't

#

it's just yt comments

glass jasper
stark flint
crude hearth
#

its hardcoded in the api

lime stone
lime stone
#

a lot of plugins were only tested on the default size

limber skiff
#

💀

#

show screenshot of your chat

lime stone
#

24px ♥

brazen bone
#

Yeah lots of accessibility settings don't work all that great

lime stone
limber skiff
#

not bad

austere talon
#

DEATH

lime stone
#

it makes it easier to read

limber skiff
#

the plugins look fine

austere talon
#

toad is 76 years old confirmed

limber skiff
#

^^

lime stone
#

I'M NOT

limber skiff
#

77 then

austere talon
#

if you need font scaling set to max level then you're either very old or have some vision issues

lime stone
#

i don't need it i just prefer it

austere talon
#

i think i have it on lowest

lime stone
#

there's too much on the screen with lower sizes so it's kinda distracting

austere talon
austere talon
limber skiff
#

i just have it on default

austere talon
#

is it ur decor

lime stone
#

no

#

it's my per-guild pfp

austere talon
#

did u reset it

lime stone
austere talon
#

now i see it again

lime stone
#

discord is jank

austere talon
#

but before it didn't show at all

lime stone
#

server avatar logic

displayServerAvatar() {
    return Math.random() < 0.5
}
#

legitimately

brazen bone
#

Doubt

#

You really think they wouldn't wrap the rng in four layers of abstraction?

austere talon
#

discord android code be like

function shouldHaveRandomBugs() {
    return app.openSince() > 1  * HOUR;
}```
lime stone
#
function doLiterallyAnything() {
    new MemoryLeak();
}
limber skiff
#

android app is dog shiit

brazen bone
limber skiff
#

everytime i try it, it breaks

lime stone
#

venmobile soon dance

limber skiff
#

and my aliucord has a memory leak i think

lime stone
#

if discord wants to sell nitro, they should turn off the bugs

glass jasper
austere talon
#

vendroid users scare me

verbal pumice
#

how can anyone use that

glass jasper
lime stone
#

vendicated Vendicated
[Vendicated/Venmobile] Now open sourced!

mental lotus
glass jasper
# charred monolith

can we start a petition to take away @crude hearth’s computer because this is cursed

lime stone
rugged spire
charred monolithBOT
charred monolithBOT
charred monolithBOT
rugged spire
#

@lime stone kind reminder that discord is literally a web browser already

#

cope

charred monolithBOT
rugged spire
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

jagged cloak
#

vendroid 2 would go hard

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
jagged cloak
#

invisible hat gonna have more prs than reviewdb

still wasp
#

Invisible hat

glass jasper
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
austere talon
#

i wonder what the best way to render settings ui for a user list would be

mainly for displaying name & avatar and such. you'd likely have to fetch most listed users to get this info, unless you also store it

#

if the list contains many users, fetching them will no longer be viable

#

storing avatar is likely not viable because if the user changes it, the image will become broken

#

so i'm thinking store both id and username, then use those to render the ui. and forget about avatars

limber skiff
#

store the guild ids the user has in common with them

#

and use the gateway to try fetching

charred monolithBOT
limber skiff
#

but yeah also store username

charred monolithBOT
#

Currently, the installer on MacOS only seems to try to find the Discord folder in the system-wide applications folder /Applications.
However, MacOS supports creating local applications folders per user, in ~/Applications (i.e. /Users//Applications).

Right now I have to manually type that path as a custom install location every time, it'd be nice it was automatically searched as well.

austere talon
gritty iris
#

it was just causing console spam so i got annoyed!!!

austere talon
#

how do u go there

gritty iris
#

top right above all the servers

austere talon
#

do you mean left

#

that just takes me to dm channel

gritty iris
#

im tired

austere talon
#

doesnt cause error

limber skiff
#

just screenshot which one it is

austere talon
#

funny discord error

limber skiff
#

ikr

#

so annoying

gritty iris
#

basically when im on that page and hover over a server it will yell at me for not having a currentChannel.id because it doesnt exist

#

error and effect (no count)

charred monolithBOT
charred monolithBOT
crude hearth
#

how does discord fetch users

#

like new users that are on chat

austere talon
#

it doesnt

#

u get them sent via api data

crude hearth
#

profile photo too?

austere talon
#

same if u check like mutual guilds

crude hearth
#

hmm

#

tbh I doubt there will be much plugins that have more than 2-3 contributor

austere talon
#

NOT FOR THAT

crude hearth
#

and since they'll be cached isnt it fine

#

FOR WHAT

austere talon
#

user list

#

like whitelist/blacklist

crude hearth
#

oh

austere talon
#

arbitrary lists that the user can configure

#

could contain hundreds of users technically

#

fetching them is not a good idea

crude hearth
#

then yeah just ignoring pfps makes most sense

austere talon
charred monolithBOT
austere talon
#

so we want at least the username

crude hearth
#

yop

#

username can be outdated anyway

#

but pfps are really such a mess trolldayruined

#

wish discord made url's static but then maybe it would take longer to update because of cache

brazen bone
#

Why does discord's shared.css contain ```css
@value contentWidthRestrictedLimit: 848px;
@value responsiveWidthMobile from '../../../../uikit/auth/WaveSplash.module.css';
@value responsiveWidthMobileFirst from '../../../../uikit/auth/WaveSplash.module.css';
@value responsiveWidthMobile: 485px;
@value responsiveWidthMobileFirst: 486px;
@value responsiveWidthDesktop: 1080px;
@value maxQRLoginWidth: 830px;
@value responsiveWidthMobile from './WaveSplash.module.css';
@value maxQRLoginWidth from './WaveSplash.module.css';
@value responsiveWidthMobile from '../../../../uikit/auth/WaveSplash.module.css';
@value responsiveWidthMobile from '../auth/WaveSplash.module.css';
@value maxModalWidth: 490px;
@value responsiveWidthMobile from './auth/WaveSplash.module.css';
@value contentWidthFullLimit from '../../styles/vars/MediaQueries.module.css';
@value borderRadiusSmall from '../../styles/vars/Borders.module.css';
@value contentWidthRestrictedLimit from '../../styles/vars/MediaQueries.module.css';
@value borderRadiusSmall from '../../styles/vars/Borders.module.css';
@value contentWidthRestrictedLimit from '../../styles/vars/MediaQueries.module.css';
@value contentWidthFullLimit from '../../styles/vars/MediaQueries.module.css';
@value contentWidthRestrictedLimit from '../../styles/vars/MediaQueries.module.css';
@value iconSize: 100px;
@value iconSize: 24px;
@value maxModalWidth from './MarkdownModal.module.css';

#

Is @value even a thing

austere talon
#

no

#

misconfiguration of their bundler

#

<@&1015072428843601962>alue is scss/postcss stuff

brazen bone
#

Funny

umbral hedge
lime stone
#

@crude hearth i think i broke it

woeful sable
lime stone
#

i don't think you're meant to reply to replies

crude hearth
lime stone
#

i didn't modify the client

#

sometimes the replies appear twice

crude hearth
#

Huh

lime stone
#

i replied to the non-reply reply

#

like there was a clone of You have been warned at the top level which i could reply to

#

then it replied to it on the reply too

austere talon
#

do u mean u dont validate on the backend

#

banned from writing backend code ever again

brazen bone
#

.snowflake__3643b:nth-of-type(){ is also invalid syntax, I'm pretty sure

#

And .dropdownSmall__0d560{width:var(--custom-dropdown-button-small-dropdown-size) + var(--custom-dropdown-button-hitbox-padding)} too

#

They're very good at this cssing business

austere talon
#

average discord

brazen bone
#

What is this even ```css
.route__940ec {
color: hsl(calc(1 * 0%), 100%-hsl / 0.6);
color: hsl(var(0,calc(0%*var(--saturation-factor,1)),100%-hsl)/.6);
font-size:14px;
line-height:20px
}

#

Probably supposed to be hsl(var(--something-hsl)/.6)

austere talon
#

1 * 0% 😭

#

goated

#

var(0) blobcatcozy

brazen bone
#

I'd imagine the first color: line is supposed to be some kind of fallback for if variables are unavailable

crude hearth
brazen bone
#

Too bad it's kinda screwed up

crude hearth
#

I think no one will bother trying that

#

But I will rewrite backend part sooner anyway

crude hearth
#

As it doesnt get billion requests every second

wraith scarab
#

hello

charred monolithBOT
gritty iris
gritty iris
warm lance
#

oh

spark pivot
#

Ew

austere talon
gritty iris
crude hearth
#

for some reason while adding replies into reviews server doesnt remove replies from review list

gritty iris
#

sad

crude hearth
#

IN SHORT THIS CODE DOESNT WOR

brazen bone
#

Is that golang

crude hearth
#

YES

gritty iris
#

I cant compile literally anything with golang because it will only build on windows and some gcc++ package is going brrr when building it on linux and well macos is macos so

lime stone
brazen bone
#

Haskell does not have loops

#

Nor assignments

lime stone
#

WTF it's worse than i thought

crude hearth
#

anyway I fixed stupid bug

#

guh but there are edge cases which might make some replies invisible trolldayruined

uncut glen
charred monolithBOT
#
iwa

would there be a way to disable the need to hover requirement by any means?

I made the plugin request because I found it annoying having to alt-tab on discord to check the spectators list, and don't really like discord's overlay in games, so goal was to have a way to quickly see who's watching without having to switch back to discord

I'm not entirely convinced here cause if we have to return to discord, why not directly check the already implemented viewer list?

_I do not want to sou...

charred monolithBOT
warm lance
charred monolithBOT
#

would there be a way to disable the need to hover requirement by any means?

I made the plugin request because I found it annoying having to alt-tab on discord to check the spectators list, and don't really like discord's overlay in games, so goal was to have a way to quickly see who's watching without having to switch back to discord

I'm not entirely convinced here cause if we have to return to discord, why not directly check the already implemented viewer list?

_I do n...

rugged spire
#

so

#

when will the plugin requests form

#

be fixed

spark pivot
#

Is it

#

Broken

rugged spire
#

nop

#

well

#

yes

#

because

#

users are fucking stupid and cant read

spark pivot
#

Ok

#

How do we fix it then

charred monolithBOT
rugged spire
#

remember

#

assume the user is either

  • unable to read
    OR
  • has dyslexia
austere talon
#

they wont read anyway

rugged spire
#

horror

#

this really is the experience of "i want to stop stupid people from doing The Stupid"

  • propose idea to make Dont Do This Stupid Shit more visible
  • get told "Users will continue being [fucking idiots]"
    approval approval approval approval approval approval
brazen bone
#

Stupids gonna stupe

rugged spire
#

i only make comments on plugin requests when i am bored anyway

#

and not busy making something useless myself

austere talon
#

this already heavily draws attention

#

if users dont read that, they wont read anything

rugged spire
#

true

#

hm

#

this will also cause the problem of "we have had an incident and that is now very obvious to new people"

crude hearth
inland fable
#

i thought their ss was the thing below not a vc user thing

#

anyway what do you think is best out of the two:

  1. eye icon in VC users if they're watching
  2. pfps of users watching above the Voice Connected
    could also do both but eh idk if that's bloat or something
#

idk if this channel right to ask but since prs webhook is here I assume so

lime stone
#

is there a checkbox

inland fable
#

checkbox?

woeful sable
austere talon
#

we should add like 20 checkboxes

#

19 of them are "i agree to the above rules"

#

1 is "i am a donkey who didnt read anything"

#

if they check the donkey one, instant close

brazen bone
#

Add a bot that autocloses all requests that do not contain the phrase "I hereby acknowledge that I am cute", and write clearly in the rules that this is the case

rugged spire
#

Do it

glass jasper
crude hearth
#

make all of them different stuff

austere talon
rugged spire
#

vencord users WILL be stupid and you will do NOTHING about it because they WONT LISTEN

brazen bone
#

You cannot make anything foolproof; people will just invent a better fool

crude hearth
#

there was way to make stuff foolproof before

#

but now that LLMs exist its hard

charred monolithBOT
mint thistle
rugged spire
#

You can still make stupid shit with a LLM

jagged reef
#

Maybe if ((thumbsdown - thumbsup) >= 5) delete();

rugged spire
#

dont delete it

#

just close it

#

deleting it is stupid

#

because then you dont get to laugh at them anymore

#

or even reference that issue in the future

jagged reef
charred monolithBOT
charred monolithBOT
frail skyBOT
#
Bad Patches

BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

glass jasper
cunning canyon
#

2022

glass jasper
#

fair

#

Guess I never realized it

#

be honest, does anyone actually use that thing though

austere talon
#

dunno

#

someone requested it so i made it

#

cause i felt like it

glass jasper
#

how about you make a plug-in that makes me happy

austere talon
#

impossible

median rapids
brazen bone
#

If you add analytics, I will happily oblige in feeding bogus data to it

austere talon
austere talon
#

i actually didn't see that message when i was typing mine 😭

brazen bone
#

I'm pretty sure we're outliers over here

jagged reef
brazen bone
#

Impressive

median rapids
#

but analytics on which plugins are used would be useful

glass jasper
#

I should try to do that

brazen bone
#

You'd need to have a smart fridge for that though

glass jasper
grizzled crow
brazen bone
#

Jailbreak it

grizzled crow
#

Unless you are going for Discord web, which actually probably is a lot better avenue

grizzled crow
#

Really?

#

Haven't checked in a while, wasn't before

austere talon
#

too bad vencord analytics are not real 💔

rugged spire
#

how would vencord analytics even work

spark pivot
#

Collect ANONYMOUS data

#

Send to vencloud

#

Profit

rugged spire
#

How would it be made ANONYMOUS

#

yet also DEDUPLICATED

spark pivot
#

Just don’t send any data that identifies the user

jagged reef
proper frigate
#

But what would be even sent? If it’s ram usage or something of the sorts I’m 100% sending negatives and extremely high numbers.
Only ones I can reasonably see would be active plugins, but what would that even help with?

austere talon
#

we thought about it in the past

it would be things like what platform (discord desktop, vesktop, browser, firefox, chrome, armcord, etc) and what OS (Linux, windows, Mac) do you use and which plugins do you have enabled

#

the former would be useful for knowing our userbase better and whether it's worth it to put more effort into specific platforms

the latter would both be useful for allowing users to sort plugins by popularity, and also to know which plugins are higher priority for fixes and such

swift fjord
#

problem is vencords userbase is full of people that intentionally disable analytics where they can

austere talon
#

but the idea was pretty much scrapped because we decided it wasn't useful enough to warrant the worsened privacy

#

i personally hate analytics myself

proper frigate
#

Fair

austere talon
#

in any case even if we were to add it one day, it would be very privacy respecting

jagged reef
#

I hate open source, everything should have at minimum a $500 paywall

spark pivot
#

Real

charred monolithBOT
austere talon
#

what is that name lmao

#

HAHALOSAH

charred monolithBOT
feral hare
brazen bone
#

Have to stop people from modding their vencord

rugged spire
jagged reef
rugged spire
#

vbam @jagged reef

#

dead bot

jagged reef
charred monolithBOT
charred monolithBOT
pearl tulip
#

devs is there a way to filter friends who are streaming in the friends list?

#

like another button just for stremaing in here maybe?

charred monolithBOT
rugged spire
charred monolithBOT
sterile oak
#

I been teleported to the backrooms?

charred monolithBOT
charred monolithBOT
mint thistle
#

official vending machine from vencord am i allowed to re-request a review from you on the PR (idk how that feature works)

lyric comet
#

where does the PinDM plugin get its integer strings from?

lyric comet
#

when you use the PinDMs plugin to pin a dm it creates a line of json that sets "pinnedDMs": to a string of big ass integers

#

but i cant find anything matching that integer with raw data

#

so im wondering how its generated

brazen bone
#

You mean like, ids?

lyric comet
#

i assumed they were ids but i wasnt sure based on them not being present in any raw data ive looked at

spark pivot
#

Just the user ids of the dms I believe

brazen bone
#

Messages, channels, users, guilds all have ids

lyric comet
#

how do i go about getting the id of a dm?

brazen bone
#

Reading the source code?

spark pivot
#

Exists literally everywhere

lyric comet
#

i see

#

thanks

swift fjord
#

dms are just channels

#

so those are just a list of dm channel ids

#

not user ids

charred monolithBOT
#

Is there any ability to see how many replies a message has received? And if multiple replies to continue jumping to consecutive replies.

It either jumps to the earliest reply or says none were found. There's no feature to go through all the replies of a message, partly because I'm not sure what's the best way to implement the UI for that (maybe a small closeable floating panel to go to the next/previous reply?).

I can implement that, but I kind of want to see if this plugin's general ...

charred monolithBOT
charred monolithBOT
inland fable
# charred monolith

Is there any ability to see how many replies a message has received?

wait i wonder if the tabs v2 api would let you filter using referenced message

#

it lets you use pinned: true so maybe you can filter any server side data with it

charred monolithBOT
charred monolithBOT
frail skyBOT
#
Bad Patches

BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

BetterNotesBox (had no effect):
ID: 301998
Match: /(?<=return \i\?)null(?=:\(0,\i\.jsxs)/

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

rugged spire
median rapids
#

tho you can only see it for messages that made it to the feed

heavy cedar
#

oh that would be cool

#

idk if it exists yet tho

#

btw when i said "there's no feature" i meant in the plugin not in discord itself

#

rn i'm just filtering the message cache

jagged reef
#

this next PR is gonna be 🔥🔥🔥

spark pivot
austere talon
#

banned and blocked

jagged reef
rugged spire
#

Genuinely what the actual fuck did you do

#

Seek help

compact thicket
#

rm -rf * the repo

charred monolithBOT
crude hearth
#

@austere talon merge my pr when

charred monolithBOT
#

Is there any ability to see how many replies a message has received? And if multiple replies to continue jumping to consecutive replies.

It either jumps to the earliest reply or says none were found. There's no feature in the plugin right now to go through all the replies of a message, partly because I'm not sure what's the best way to implement the UI for that (maybe a small closeable floating panel to go to the next/previous reply?).

I can implement that, but I kind of wan...

crude hearth
#

v

topaz spoke
#

java mascot bought discord nitro

charred monolithBOT
livid cloak
mint thistle
charred monolithBOT
charred monolithBOT
#

Makes sense. I hope this can get added soon as it's a great QoL thing. As for general feedback, I'd only show the Jump To Reply button if there's a message that it can find, if that's possible. Makes the UX a bit better, less button presses needed for the user and they instantly understand if the message has a reply or not.

I'm pretty sure conditionally showing the button is possible. I'll add that in a few days (and then the consecutive jumping maybe after that).

Thanks for the feedb...

charred monolithBOT
charred monolithBOT
austere talon
prime dew
#

or harvest from the /vencord-debug command direcly

limber skiff
#

@median rapids look what I'm doing