#๐Ÿงฉ-plugin-development

1 messages ยท Page 50 of 1

flint bronze
#

I actually had the idea of "why isn't there a favourite plugins feature"

balmy sky
#

Yeah i am

flint bronze
#

Thank you so much

balmy sky
#

Probably not gonna pr it though because it's modifying source and my spaghetti code is a disgrace to humanity ๐Ÿ’€

#

I can maybe try figure out a way to send it to you tho]

flint bronze
#

Maybe you could inject the pinned plugins list into the VencordToolbox menu

balmy sky
#

Maybe

#

But then that would require using vencordtoolbox

#

ok it works now ๐Ÿ’€

flint bronze
#

I have a horrible question

balmy sky
#

Shoot

flint bronze
#

Why aren't you using the built-in Discord pin icon

balmy sky
#

Well uhhhhhhh

#

I uhhhhhhhhhhh

#

Well you see

flint bronze
#

You forgot it existed

balmy sky
#

Uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

#

Yup.

flint bronze
balmy sky
#

I completely forgot they existed until AFTER i made the icon component

flint bronze
#

yeah sounds about right

balmy sky
#

And i can't be bothered to change it now

dull magnet
#

do not add more buttons there

#

horrible idea

#

find a beter solution

balmy sky
flint bronze
#

why do not add buttons there

dull magnet
#

add a pin modifier on top that changes the settings icon to pin or smth

dull magnet
vast karma
#

You mean like, a toggle above the list that changes the settings/info icon into pin?

balmy sky
#

That feels weird

dull magnet
#

well something like that is necessary

#

both to reduce visual clutter and to preserve horizontal space

#

you could also have the pin button in the plugin modal instead

pure temple
# balmy sky

couldn't you just make the pins always appear at top

pure temple
#

bad ux to quickly pin stuff

#

another ux issue btw: why is there no enabled toggle in the modal

balmy sky
pure temple
#

i might have implemented something similar in minecraft once

#

you see minecraft is another thing which is popular to modify :p

balmy sky
#

How the fuck did i even MANAGE to screw the svg that badly

pure temple
#

why not use discord's built-in pin icon lmao

#

๐Ÿ—ฟ

balmy sky
#

Forgor ๐Ÿ’€

#

I'm gonna use it actually

#

LAWD HE THICC

#

That looks alot better actually

#

If you ignore the random space between the info and pin icon

pure temple
#

this doesn't look cluttered at all ๐Ÿค”

#

maybe it doesn't work with long names

balmy sky
#

It doesn't actually look that bad

#

The weird space is probably making it worse

pure temple
#

could be better

balmy sky
#

Yee

pure temple
#

actually the spacing looks weird with shorter names too

#

maybe you could reduce it

#

but maybe vee disagrees idk

balmy sky
#

I want to but i have like no knowledge of svgs or how i would go about doing that

balmy sky
pure temple
#

maybe only show the pin if it's pinned or you are hovering the card

gloomy terrace
#

having info, pin and cogwheel buttons pop out on hover might look better

balmy sky
#

That's a good idea

#

Like they slide out from the right when you hover on the plugin card

gloomy terrace
#

they slide out from the toggle button ๐Ÿ‘€

balmy sky
#

ok this looks way better than the discord pin svg

#

Mainly because it's now hollow if it's not pinned

pure temple
#

just edit the discord png?

#

this looks out of place

#

are we using the new icons yet

#

ah, the new icon is more detailed than the old icon which makes it harder ig

balmy sky
# pure temple just edit the discord png?

I swapped it to the gif favourite icon, it was easier since there's already specific hollow and filled versions, but also because i named the core plugin and category "favourites" which would be kinda weird to have pins on ๐Ÿ’€

pure temple
#

INTERNET EXPLORER

#

COUGH

#

okay

gloomy terrace
#

are the filled/empty stars the same size?

balmy sky
gloomy terrace
#

the hollow one looks smaller

pure temple
#

why does this make me think of ie

balmy sky
#

I thought about that too

balmy sky
#

Perchance

gloomy terrace
#

good old times

pure temple
#

you can['t just say perchance`

balmy sky
#

Does it still make you think of ie trolley

balmy sky
pure temple
#

i just remember how internet explorer had favourites instead of bookmarks like normal browsers

balmy sky
#

I feel like the stars should be rounder

#

For some reason

gloomy terrace
#

the hollow ones?

balmy sky
#

Both

gloomy terrace
#

hm, I think the other ones look good enough

#

but they're bigger than the info button, which is weird

#

wait no, they're not bigger
they're placed a few pixels too high

balmy sky
#

I moved it up a bit with the viewbox because it was weirdly off center but i don't think i got it right

gloomy terrace
#

1px higher from that screenshot

balmy sky
#

Oh i just had a weird thought

#

Hold on

#

Does this look better? i feel like it does

#

It seemed off having the spiky icon in the middle

gloomy terrace
#

hollow star is too high again

#

but it looks good

#

also why is betterCopy lowercase husk

balmy sky
gloomy terrace
#

time to fix it with css

balmy sky
gloomy terrace
#

thanks, my OCD went back to sleep

#

nevermind, the star is still 1px higher than the info button

balmy sky
#

It is done yippee

gloomy terrace
#

it has woken up again

balmy sky
#

I want to find a better way than storing the plugin names in a string varaible but it's fine for now

gloomy terrace
#

kek, fair

gloomy terrace
balmy sky
#

Yeah

gloomy terrace
#

is there autocompletion?

balmy sky
#

Nope

gloomy terrace
#

time to learn all plugin names for quick edits

balmy sky
#

Tbf it's way easier to just

#

Use the buttons

#

๐Ÿ’€

gloomy terrace
#

yeah ik

#

unnecessary work

balmy sky
#

Oh wow what the fuck happened to the gif quality

gloomy terrace
#

huh, what happened to the background

balmy sky
#

It's not broken the gif just decided to spaz out for no reason lmao

gloomy terrace
#

oh I see

dull magnet
#

like i said do not put it there

#

your pr will not be accepted

#

there is not enough horizontal space to fit even more icons

noble coral
#

nvm.

I have quick question, from vesktop. when using the sendBotMessage, the users get the bot tag after just 1 or two messages. is there an existing fix? (i am creating a plugin)

here a simple snippet

    flux: {
        async MESSAGE_CREATE({ optimistic, type, message, channelId }: IMessageCreate) {
            if (optimistic || type !== "MESSAGE_CREATE") return;
            if (message.state === "SENDING") return;
            if (!message.content) return;
            if (message.author?.bot) return;
            if (channelId !== SelectedChannelStore.getChannelId()) return;
            //console.log(message.content);
            sendBotMessage(
                channelId,
                {
                    content: `${message.content}`,
                    author: message?.author,
                }
            );
        }
    }
balmy sky
#

Why are you even trying to do this

noble coral
balmy sky
#

Xy problem

noble coral
#

right now, I am just trying to receive messages from another channel than show them off depending in the mentioned channel in the message itself

#

But i don't like the bot thingy on the users so is there any fix for it?

balmy sky
noble coral
#

lmao

balmy sky
#

So you want to mirror messages into another channel client sided?

noble coral
#

yup

#

exactly

#

the word "mirror"

balmy sky
#

Ummm

#

There's probably some way to fake a message

supple helm
#

are there any videos on how to make a vencord plugin

#

instead of docs

#

and when u put the defineplugin is it supposed to already pop up somewhere in vencord

#

i dont see it in plugins

jagged briar
#

Use the docs

#

If you dont understand them then you shouldnโ€™t be making a plugin

median gazelle
#

oof

noble coral
weak rock
#

hey um how do you actually test your code changes locally, like when making a plugin

steady knot
#

have you set up a dev install

weak rock
#

wym exactly

vast karma
#

You test by recompiling and then reloading the page

weak rock
#

i've cloned the main repo and compiled, but what with the files now, patched client or whatever can't know where dist i want to test is

#

and i've checked Roaming\Vencord\dist but compiled and orignal dont really match so i cant just swap them

jagged briar
#

pnpm inject

#

pnpm watch

#

then crtl+r when you want to apply changes

weak rock
#

ah

#

didnt see that script

rocky jackal
#

so I'm kind of making a mobile navbar

weak rock
#

not sure what i did but um

vast karma
#

You did good

weak rock
#

then why does it keep adding it

noble coral
#

bruh

jagged briar
weak rock
#

ideas can be stolen

noble coral
jagged briar
#

no one is gonna steal your idea if your already making it

weak rock
#

eh you never know

noble coral
jagged briar
#

nobody really does that here

weak rock
#

so i've uninstalled vencord, uninjected, cleared all builds, reinstalled, and still its there infinite amout of times (context button)

jagged briar
#

anyway you need to add a condition that checks if your context menu item is there already

#

if it is don't render it again

weak rock
#

weird, didnt see other plugins with message menu do that

jagged briar
#

sometimes you do sometimes you dont

#

its really weird

weak rock
#

hm

jagged briar
#

i dont know much about it but that's what i've done to fix it

weak rock
#

plugin name?

jagged briar
#

Remix

#

it's still a pr tho

weak rock
#

ah

noble coral
jagged briar
#

listen to MESSAGE_CREATE flux

#

then check if it's in the channel you want it to be in

noble coral
#

uh great, logiclly but what if you already did that but it broke when you removed the if that checks the channel?


        async MESSAGE_CREATE({ optimistic, type, message, channelId }: IMessageCreate) {
            if (optimistic || type !== "MESSAGE_CREATE") return;
            if (message.state === "SENDING") return;
            if (!message.content) return;
            if (message.author?.bot) return;
            if (channelId !== SelectedChannelStore.getChannelId()) return;
            //console.log(message.content);
            sendBotMessage(
                channelId,
                {
                    content: `${message.content}`,
                    author: message?.author,
                }
            );
#

hold up, I am gonna do something, it may fix it

rocky jackal
#

I can't seem to find a way to get the last selected channel id that is a dm

#

because @me is not a valid guild id

flint bronze
#

try looking around in PrivateChannelsStore or whatever it's called

weak rock
#

is it possible to do smth like sendBotMessage and then edit it? like loading state or smth

flint bronze
#

Take a look at how MessageActions.receiveMessage works

proud parrotBOT
# cedar olive https://github.com/Vendicated/Vencord/blob/main/src/api/ContextMenu.ts#L22-L28

**ContextMenu.ts: **Lines 22-28

type ContextMenuPatchCallbackReturn = (() => void) | void;
/**
 * @param children The rendered context menu elements
 * @param args Any arguments passed into making the context menu, like the guild, channel, user or message for example
 * @returns A callback which is only ran once used to modify the context menu elements (Use to avoid duplicates)
 */
export type NavContextMenuPatchCallback = (children: Array<ReactElement | null>, ...args: Array<any>) => ContextMenuPatchCallbackReturn;
cedar olive
#

instead of returning (args) => { code that pushes element }, return (args) => () => { code that pushes element }

#

the first callback is used for react hooks if you need to use them, because you always need to call the same amount of hooks

dull magnet
#

tldr: add another () => before the {

#

and yeah noone is gonna steal your idea lol

rocky jackal
#

arrow functions my beloved

vast karma
#

Some might insult the idea, but yeah no stealing is gonna happen

pliant pasture
#

Holy shit, I managed to ascend after remaking my loop statement into a concise one-liner using boolean expressions

jagged briar
#

what is that

flint bronze
#

Any way to manually show a call dialog for a guild channel and still have it close?
Dispatching CALL_UPDATE with ringing: [user.id] produces a popup that can't be closed, also it's marked as a video call and has no avatar

#

I have guildId set btw

balmy sky
pliant pasture
jagged briar
#

cool

graceful fern
#

What team?

#

We just used ez-templte

flint bronze
flint bronze
#

Rate the jank.

noble coral
jagged briar
flint bronze
#

Might turn that dummy promise into a variable and overwrite it with the fetch result if fetching is required

noble coral
#

when the user joins a vc, how do I know that?

vast karma
#

Probably some flux event

noble coral
#

yeah found a plugin called VcNarrator. it may help me

flint bronze
#

I can share some of what I have been doing recently too because that would probably help you

#

BTW, what are you trying to achieve with voice join events?

fathom carbon
noble coral
#

I have an idea of getting pinged when someone is pinged, but how do i make this? no idea

#

just I know that I should listen for event create_message than check the mentions

#

but how do I make the pinged part?

#

not just highlight the message but the sound too. is there an existing method or I should define my own

vast karma
#

Find the code that's called when you get pinged normally

flint bronze
#

ok i can either use an if else or a ternary

#

i cannot make the instant resolving promise before then overwrite it

#

i'm fucking stupid

#

i was doing if exists then fetch

#

not if not exists then fetch

#

okay

#

I think I've settled the unknown behaviour and have come to a conclusion

#

The ternary is staying shiddohwell

#

It was only working half the time if I did the if check later

#

and overwrote the other promise

pliant pasture
#

I just started to the PROs api, i was using the native library before

pliant pasture
tired oar
quaint cipher
#

thank

vast karma
#

Usually better to use findByPropsLazy I think

#

That way it doesn't need to search tens of thousands of modules every time

glass oracle
#

i mean

#

you can just assign the result to a variable

#

lazy is just for when the module you want is in a lazy loaded chunk or you're doing it in a plugin

tulip brook
zenith tendon
#

quick question, so for every plugin, i have to recompile vencord? i'm actually not sure if i'm supposed to ask this in #๐Ÿฅ-vencord-support-๐Ÿฅ or if it's fine to ask here, since it's not some issue with vencord but rather something i want to ask in terms of plugin dev

steady knot
#

yep, need to build again or use pnpm build --watch

tulip brook
zenith tendon
zenith tendon
#

oop ty

#

gonna bookmark them

tulip brook
glass oracle
#

just use favorites

#

literally what you want

#

and it's inbuilt

tulip brook
#

Saw lots of issues with crashing with it
Edit: Only allows for channels, not DM's

glass oracle
#

smh smh

tulip brook
#

shrug I searched this server a bunch looking for what i need and a lot of people have commented that the favourites/experiments causes them to crash often

#

I suppose I should try it, how do you enable this anyway?

glass oracle
#

i use it regularly and it doesn't crash

#

yop

tulip brook
#

I can't see any way to toggle on/off

glass oracle
#

and once you have your favorites you wont even need the experiment

glass oracle
glass oracle
tulip brook
#

Oh, that's neat. I enabled it using Treatment 1, but hasn't appeared yet. I'll move to the support channel though

jagged briar
#

Reload

tulip brook
#

Have done

jagged briar
#

I think you need to favorite something first

tulip brook
#

Wait, this is for server channels only?

#

@glass oracle how are there users in yours?

#

It only gives me the option to add channels from servers I am in

#

Yeah honestly this feature is buggy as hell, my request to zeet remains. I'd rather have one screen for DM's that's categorised, not a separate buggy tab altogether

glass oracle
#
Vencord.Webpack.findByProps("addFavoriteChannel").addFavoriteChannel("<DM CHANNEL ID>", "<FAVORITE CATEGORY ID OR null>")
tulip brook
# glass oracle buggy how?

Well, allowing one person to add DM's and not another (which you clarified was simply removed), crashes (search favorites experiment here, lots of reports of crashing) were my main points
I appreciate the snippet you provided, but it's simply not practical until Discord adds some native way to do this

dull magnet
#

not programming

#

stop misusing channels

tulip brook
#

I was inquiring about someone programming a plugin but it derailed from the favourites suggestion shrug sorry

remote kestrel
#

@glass oracle hiiii

glass oracle
#

haiii

noble coral
#

how do I add plugins into my discord broswer?

flint bronze
#

vns

shrewd tundraBOT
flint bronze
#

if you mean custom plugins, use pnpm buildWeb in your dev environment

#

i think

noble coral
flint bronze
#

yw

noble coral
#

why discord wants me to send stickers I can't send a normal message without it autoselecting a sticker (I hate it)

flint bronze
frosty otter
#

Sticker Suggestions

noble coral
#

life savier

noble coral
#

its suffering making plugins, wish there is a debug console on vesktop that I didn't know about

flint bronze
#

what do you mean "debug console"

#

browser dev tools??

#

just press ctrl+shift+i

noble coral
#

desktop app

flint bronze
#

yeah

#

you can do that

frigid bay
#

dev tools are a thing

#

on desktop

noble coral
dull magnet
#

ctrl shift i

flint bronze
noble coral
#

wat

#

I tried it tho

#

is f words allowed? because I didn't freaking know you must spam it damit

frigid bay
#

what

noble coral
#

I needed to spam pressing those keys because it never worked for me

flint bronze
#

??????

frigid bay
#

just press normalyl

noble coral
#

I am, or i am doing something wrong that I don't notice it

#

anyways, thanks yall

frigid bay
#

also yes u can swear lmao

flint bronze
#

i am about to submit some horrible PR to vencord itself

vast karma
#

Why does discord contain (at least) five versions of the classnames library

dull magnet
#

normal

viral roost
#

discord is an optimized app

dull magnet
#

they also have two versions of react spring

viral roost
#

three*

#

or three instances at least

dull magnet
#

๐Ÿคจ

#

don't think so unless it changed

oblique lark
#

is classname literally just string concatenation or am i missing something

dull magnet
#

i think it also allows booleans

#
classnames("thing", isDisabled && "disabled")
#

or via object key

cedar olive
#

yeah it filters anything falsy

flint bronze
#

i love my code i love making requests to https://canary.discord.com/api/v9/channels/undefined/messages

cedar olive
#

are you the one creating those fake guilds and channels?

flint bronze
#

sending client-side messages into unloaded channels

cedar olive
#

nvm you are not

#

I was going to say creating fake guilds and channels would be extremely hard

#

a lot of code to patch to avoid invalid requests

flint bronze
#

i think I have a null or something as the channel id when trying to pre-fetch messages before inserting my own message

noble coral
#

is it possible to make sendBotMessage not replyable?

flint bronze
#

I don't know if you want it to be able to be "dismissed" though

noble coral
#

message.ephemeral = True; //?

noble coral
flint bronze
noble coral
flint bronze
flint bronze
#

okay

#

it's ChannelStore.getDMFromUserId returning undefined

#

wait no

#

wtf

#

oh

#

its the order of my ternary

#

ffs

#

it was evaluating as (dmChannelId && selfInChannel) ? settings.store.friendDirectMessagesSelf : true not dmChannelId && (selfInChannel ? settings.store.friendDirectMessagesSelf : true) like i wanted

#

i think i found a bug with vencord's updater

Local unpushed commits are considered as updates even if built against that commit

#

Please don't tell me this is a known bug or that I am doing something wrong

#

(tell me)

fathom carbon
sour jewel
#

Can't I make my own plugin, or is it that I have to request for one?

vast karma
#

Sure can, but you have to compile from source

sharp viper
#

hey guys, does vencord allows fetching gifs as relative path ? or alternatively is there anyone who knows a 300+mb gif files free only host website ? ๐Ÿ˜…

flint bronze
fathom carbon
#

if you built while on an unpushed commit?

flint bronze
#

yes

fathom carbon
#

why would those not count as updates ?

#

thats just how dev builds work

flint bronze
#

no

#

i'm saying it shows as an available update despite running that version

noble coral
#

what plugin that plays with the ui button?

flint bronze
noble coral
#

I am looking to take over the world the discord button to put not fart sfx

flint bronze
#

thats not a plugin afaik

noble coral
flint bronze
#

what are you talking about

#

are you talking about the discord logo dm button having that discordo easter egg

#

are you trying to make a plugin to.... make it play fart sound

noble coral
#

the fart thing is later

glass oracle
#

so you want to add a button besides the @ ON/@ OFF toggle?

noble coral
glass oracle
#

patch the component

noble coral
#

and how can I use it to find already existing buttons and just put something on their side

#

and later sounds

flint bronze
#

what are you even trying to do with this plugin

noble coral
noble coral
#

I won't be able to make the project on my mind if I didn't get the skills

flint bronze
#

i am just curious if you have some major idea for a plugin yet

#

also it's okay to make something for fun (see oneko plugin)

noble coral
#

omg oneko plugin, amazing

noble coral
flint bronze
#

Also it's kinda hard to document this sort of stuff

noble coral
#

at least lil documents, I won't know about findByProps without component

noble coral
granite wharf
#

why is there no docs on dumping modules to disk guhh
tracing things with devtools is so much harder than it has to be

dull magnet
#

anyway it's pretty easy

noble coral
granite wharf
# dull magnet it's really not wdym

devtools fucks with your source windows
then you get the occasional crash
opening other modules needs more effort
no quick global regex/ctrlf to get all matches

dunno I'm used to the way id trace something in discord kt

dull magnet
#

wrong

#

ctrl shift f

granite wharf
#

oh cool

dull magnet
#

occasional crash
use vesktop

granite wharf
#

i am

dull magnet
#

fucks with your source windows
?

#

opening other modules needs more effort
it's alright, just put a quick breakpoint and you can jump to definition

sudden pendant
#

Hey guys, just curious, how does vencord inject itself into discord?

dull magnet
#

it's really not that bad once u get used to it

sudden pendant
#

made with go?

#

lmao what is that name @glass oracle

sudden pendant
glass oracle
sudden pendant
#

like does it replace the actual discord executable or what

dull magnet
#

yes essentially

glass oracle
#

it replaces the asar bundle

granite wharf
sudden pendant
glass oracle
#

yes

sudden pendant
#

ah

#

so the go program only replaces the asar and then the rest of the things are done in native typescript?

dull magnet
#

yes

sudden pendant
#

Ic Ic

dull magnet
#

the 'go thing' is the vencord installer

sudden pendant
#

I see

#

I want to make something like this lmao

#

would be cool to put on my uni application

sudden pendant
dull magnet
#

yes

sudden pendant
#

awesome

flint bronze
#

vencord is awesome i love vencord

balmy sky
#

Is there a way that i can bypass/fix this error when i try to iframe something? i'm just tryna play pacman in discord bruhcat

dull magnet
#

@cedar olive do u know why ban delete days randomly broke in oceanic

#
await msg.guild.createBan(id, { reason, deleteMessageDays: possibleDays })

await msg.guild.createBan(id, { reason, deleteMessageSeconds: possibleDays * 86400 })

#

both of these don't delete any messages even tho possibleDays = 1

#

it worked fine before

#

uh lol

#

seems like discord broke it?

#

doesnt work when i manually ban either lol

#

average discord

hoary pilot
#

delete ban days is becoming a level 3 boost feature!!!

#

(this is a joke, a really bad one)

potent fox
#

@dull magnet plugin bountes when

dull magnet
#

horror

potent fox
#

not such a bad idea

#

now I thought about it

dull magnet
#

maybe

potent fox
#

people would be more motivated to make plugns if someone offered them to pay

dull magnet
#

anyway i will rewrite settings api logic

potent fox
#

baaaaaaad

dull magnet
potent fox
#

yeah now I thought that

#

only if there was a service designed to prevent that

dull magnet
#

they would have to send me the money ahead of time and then when the plugin is finsiehd i send it to the person or smth

#

but thats horror

potent fox
#

thats awful way to do it hmm

dull magnet
#

yeah especially if you now have to convert currency twice

potent fox
#

guh isnt there a website to correctly handle that I wonder

#

you pay first, make bounty

dull magnet
#

and technically it will count as income then so you have to tax it technically

#

vencord involved in tax evasion real

potent fox
#

and if nobody makes it you can get it back

potent fox
#

that is the job of the guy who gets the money

#

at least if money is not routed through you

#

also on IOS jailbreaking community somehow these stuff were working well i think

#

there was tweakbounty subreddit

dull magnet
#

crapple fans have too much money

#

also they are used to paying 3 billion $ for apps

potent fox
#

yop

#

and discord has billion trolls

dull magnet
#

tbh im considering dropping crapple support in vencord

#

so much easier

dull magnet
#

ITS TERRIBLE

potent fox
#

you dont even write platform specific code do you

#
dull magnet
# dull magnet ITS TERRIBLE

ummmm this app is damaged!!!! ! ! !!1111!!11!! Nerd
what the hell you didnt shove 100 dollar up steve jobs asshole???!!!! DIES FROM CRINGE
permission error even tho youre literally running as admin
voice message needs to be OpusOgg or i will refuse to play it renxDUMB
vencordinstaller cannot be opened on this version of your os PeepoRetarded
oh you use a "ctrl" and "meta" key? never heard of that in my life we use cmd here

#

apple trying for one second not to be special needs (failed)

potent fox
#

yeah these stuff are horror but

#

you probably get lots of money from apple users too

dull magnet
#

i dont posttroll
and even if i did idc much

#

im doing this for fun not for money

hoary pilot
#
  • if mac users want vencord that badly they can use vencord web
potent fox
#

yeah I know but just saying as

#

these people support for reason

dull magnet
potent fox
#

removing support would be idk a bit rude move

#

why doesnt safari support vencord

dull magnet
#

because it sucks

#

idk

potent fox
#

does userscript not work on safari too

dull magnet
dull magnet
potent fox
#

truly horror

dull magnet
#

and most crapple users are on ancient safari which doesnt even support modern regex

potent fox
#

made me remember the times I tried to port my supit extension to firefox

#

unsupported apis lovely

#

well then eh

#

fair ig

#

but I would say if you are gonna drop support at least say it a month ago or smthn

dull magnet
#

not even kidding

dull magnet
#

but i really want to

potent fox
dull magnet
#

thats regex lookbehind btw

#

WHICH CHROME HAD SINCE 2017

#

then also the fact that crapple garbage doesnt even support webm lol

#

they use their own garbage non-free format

potent fox
#

what is look behind

dull magnet
#

and the recent malicious compliance bullshit theyre doing in the EU

#

literally everything about apple is awful, so i dont really want to support them in any way

potent fox
#

I will be honest

dull magnet
potent fox
#

I like their OS a lot

#

but all the stuff they are doing in EU is just r*tarded

dull magnet
#

just use gnome its similar trol

potent fox
#

like there is no way to defend that

dull magnet
#

macos at home

potent fox
#

lets see

dull magnet
#

nothing

#

(?<=a)b

#

this matches b only if it is preceded by a

potent fox
#

oooh

#

then it returns the b

dull magnet
potent fox
dull magnet
#

yeaj

potent fox
#

without this

#

love

dull magnet
#

vencord uses it heavily because its useful for matching variable names

potent fox
#

yop can see

dull magnet
#

imagine we want to add code after the highlighted line but also want to use B

#
match: /(?<=await (\i\)\.default\.unarchiveThreadIfNecessary.+?)\i\.default\.getMessage\(\i,\i\);/,
#

we will only match the W.default.getMessage(), but also have B in group 1 without even matching that part of the code

#

very useful

#

150 lookbehinds and 140 lookaheads lmao

#

actually a lot of the lookahead stuff is ??=

#

but still a lot ig

#

100 lookaheads

potent fox
dull magnet
#

yes but then you will match way more code that you dont need to match

#

makes it more complicated and less performant

potent fox
#

fair

dull magnet
#

some lookarounds in vencord walk thousands of characters

#

which is really fast

#

but if you matched those thousands of characters it will become slow

#

we got some patches from 300ms time to 1ms just by switching to lookarounds

potent fox
#

500 hour boot time

dull magnet
#

yeah

#

we try to keep every patch below 1ms

#

so with 100 patches it will only take 0.1s longer to start (not really theres more to it but u get the idea)

potent fox
#

insaaaaane

#

I never thought you guys optamizd that much lma o

dull magnet
#

well not really but we do look out for very slow patches

#

like 300ms is unaccptable

#

3 of those and it takes a second longer

potent fox
#

and also on slow computers probablty more

#

devilbrocord

dull magnet
#

webpack finds take way longer than patches

#

yes

potent fox
dull magnet
#

you always should cache your finds

potent fox
#

dont you do string matching on webpack finds

#

at that point why not just regex search the entire thing and extract the id

dull magnet
#
findByProps("getUser").getUser() // this will take ~2-20ms
#

never webpack search inline, always use the Lazy variants on top level

potent fox
#

not regex match but just search string across files like patcher does

dull magnet
#

yes, those are cached and only searched on demand

potent fox
#

and just get webpack id and use that

dull magnet
#

so if that module is never actually used, it won't search at all

#

a lazy find that's never used is free

dull magnet
# potent fox how even

because webpack find always searches all modules discord has, which is like tens of thousands

#

its looping over an array of >10k elements

potent fox
#

converting to string one by one

#

also

dull magnet
#

patches on the other hand dont do that, they are applied on demand

every time a module is loaded, the patcher checks if any patches apply to it and applies them

#

which is essentially free

potent fox
#

I just wonder this

#

does the consumed time come mostly from converting javascript to string

#

or just iteration

#

because I assume doing
m.toString().includes would take lot of time

dull magnet
#

findByProps doesnt have to toString()

#

and toString() is cached

#

toString is incredibly fast

potent fox
#

hmm then just iteratino

#

okay

junior cove
vast karma
#

Iterating 10k elements takes a while regardless of how you do it

dull magnet
#

it searches on demand instead of ahead of time

potent fox
#

they get 19% tho I think

potent fox
#

proxies beloved

junior cove
# potent fox they get 19% tho I think

Yeah that's a bit rough. The way it's worded makes it seem as though the person setting the bounty pays that ontop of whatever they're offering though

dull magnet
#

19% dread

#

thats way too high lol

potent fox
#

for 5 dollars

#

that would be 1 dollar

dull magnet
#

if it were like 5% maybe

#

but 19% is insane

#

reminds me of mehrwertsteuer

potent fox
#

who the hell would pay 4700 dollars for 3 months

#

only to have bounties system that doesnt have any fees

dull magnet
#

if u have insane bounties

junior cove
#

I saw few others, but they either seemed real sketchy, or dead

potent fox
#

this is a rare moment

#

even kofi doesnt support turkey

dull magnet
#

vencord plugins generally dont add much overhead

#

i have like 100 on

#

imagine 100 bd plugins enabled

#

ur dioscord gonna be a powerpoint presentation

worldly goblet
#

I've been reading this and its actually quite impressive and insightful

potent fox
#

I hate when I search for some regex on google and because their engine thinks * \ are special characters it shows up stupid results

dull magnet
#

btw speaking of webpack find speed, discord's rspack update made them way faster

sour jewel
dull magnet
#

now 2~10ms

sour jewel
#

I mean the other rival of yours got plugin reloading wtithout restarting discrd, but this is fine, but why recomplie from source for every single change?

vast karma
#

What's rspack?

worldly goblet
#

Also BD plugins did seem laggy at times, never had that issue with vencord (at least not enough to notice)

sour jewel
#

true that ^

dull magnet
junior cove
sour jewel
vast karma
#

Recompiling yes

dull magnet
#

only recompiling

vast karma
#

Reinstalling, not needed

dull magnet
#

it is very normal to have to compile code

sour jewel
#

oh

#

phew

dull magnet
#

betterdiscord is also compiled btw

#

but its modular

#

vencord is simply not designed to be modular

#

because its not its philosophy

worldly goblet
#

Its like focussing on a specific feature set makes it easier to not eat up resources

potent fox
#

and modularity wouldnt be hard

dull magnet
#

yes it isnt

vast karma
#

The compilation step allows you to write plugins much nicer anyway

dull magnet
#

i already wrote a modular plugin loader

#

but decided against adding it

potent fox
#

useeee

vast karma
#

Like, being able to have multiple files

worldly goblet
#

Why no yandere dev coding tho? I like being confused and angry at the universe

vast karma
#

And the patching system simply doesn't work post-hoc

worldly goblet
#

I need my 500 if statements

dull magnet
worldly goblet
sour jewel
#

where is the docs btw?

worldly goblet
#

also I still enjoy the tooltips way more than the original ones

sour jewel
#

I can't seem to find it

#

that's why I spawned here

worldly goblet
#

vers

#

vens

glass oracle
#

insert banana

worldly goblet
#

Vns

shrewd tundraBOT
dull magnet
glass oracle
#

third time's the charm

worldly goblet
#

as you can see I'm a real coder

sour jewel
#

it's still about programming

#

also channel name wrong lol

steady knot
#

yey I got customtimestamps working with proper options for formatting

worldly goblet
#

look in the channel its a lot of questions about programming

sour jewel
#

oh wait

#

progaming

#

fck

worldly goblet
#

vee is just nice like that

dull magnet
#

we are pro gamers here

glass oracle
#

pro gays

sour jewel
#

but okay, I'm still a gamer

worldly goblet
dull magnet
#

progayming

sour jewel
#

lol

worldly goblet
#

we(e)bsocks

dull magnet
#

gotdamn

steady knot
potent fox
#

@dull magnet KDE 6 is launching

#

you will switch

glass oracle
#

more bloat

potent fox
#

he uses gnome

dull magnet
#

gnome 46 is launching blobcatcozy

glass oracle
#

simply don't use a de

potent fox
#

kde supramacy

vast karma
dull magnet
#

kde is mid

potent fox
#

WM users are just insane

worldly goblet
#

needing validation for your preferences is an l

dull magnet
#

i think cause arch users dont use gnome

#

they all use hyprland or some other zoomer shit

vast karma
#

Most arch users I know hate gnome with a passion

dull magnet
#

gnome users mostly use ubuntu/fedora

potent fox
#

some popular distros like endeavouros comes with KDE now

dull magnet
worldly goblet
#

So all linux users?

dull magnet
junior cove
#

I started with BSPWM and I'm scared to change

dull magnet
#

linux users are either trans/femboy or obese neckbeards

potent fox
#

or they are normal

dull magnet
worldly goblet
#

I've used Linux too, so not insulting people

dull magnet
#

or middle aged men

potent fox
#

like a 30 year old fedora man minding his own business

dull magnet
#

in their 40s

#

well whatare you

#

do you have any proof youre not a femboy

worldly goblet
#

I'm gonna cause a wave of husk probably but I used PopOS for a bit a few years back

potent fox
#

they switched to QT6

#

so bad

glass oracle
potent fox
dull magnet
#

tbh i lost some respect for qt ever since i found out how commercial it is

potent fox
#

tho I only use linux to either lonthen my battery life or experiment dumb stuff

glass oracle
#

trolltech ๐Ÿ™

dull magnet
#

it kinda sucks

#

kde better

glass oracle
#

manual qt theming is hell

dull magnet
#

this site screams commercial

#

not "cross platform ui framework"

worldly goblet
#

if linux users weren't as entrenched as WW1 front line soldiers it would also be a little more accessible

dull magnet
#

๐Ÿ˜ญ

#

fuck u mean wrong site

#

this is like microsoft level

#

they even have the support bot chat

glass oracle
#

recently I've been switching to cli and tui tools more and more

worldly goblet
#

Like tryna figure out why people hate on X or Y and which would be a better fit, isn't simple if you're not familiar with Linux

dull magnet
#

its not simple even if u are familar with linux

worldly goblet
#

I never quite got an answer to which I should pick for PopOS Wayland or KDE (and a few more)

dull magnet
#

that question makes no sense

junior cove
dull magnet
#

wayland is a windowing system, kde is a desktop environment

#

kde uses wayland

#

because kde is ugly as fuck

#

and bloated

#

kde is more bloated than gnome

#

that reply was not to you

potent fox
#

It at least doesnt look like mobile

#

And honestly memory usage etc isnt worse than gnome

worldly goblet
dull magnet
#

installing plasma and it pulls like 200 kde apps that are 2gb in total posttroll

potent fox
potent fox
dull magnet
#

if i use a desktop environment, i want it to come with everything i need

#

image viewer, file viewer, etc

#

on gnome it has a sane amount of such apps

#

kde has like way too many

#

personally i like just installing the entire bundle

potent fox
#

What the hell is using 25 gig of memory

dull magnet
#

if i wanted customisation id go for a wm

potent fox
dull magnet
#

tbh i dont get why people care so much about ram usage

#

16gb ram is so cheap now

#

and i never ran out of 16gb ram

worldly goblet
potent fox
#

I ran out of 32gb

#

When playing modded mc

dull magnet
#

those are all desktop environments

potent fox
#

And I hate SWAP

#

Filling my ssd with garbage

dull magnet
#

the answer is:

  1. look at google images to see what you like
  2. just try. if you dont like it you can switch easily later
#

how?

#

what do you do

worldly goblet
#

use windows

dull magnet
#

lmao fair

#

what u running in docker?

#

i have a shit ton of tabs too

#

it doesnt use much

#

modern chromium is really good at keeping memory usage low

#

jetbrains ide is probably what eats the most xd

#

i just use vscode

#

php

#

my condolences

#

really? i personally dislike how "sluggish" it is

#

they are powerful but i love the smoothness of vscode

#

its just faster

potent fox
dull magnet
#

people keep complaining that electron is apparently laggy and then u compare vscode (electron) to jetbrains (java) and the difference is a canyon in favour of vscode xd

worldly goblet
potent fox
#

Compared to an full IDE

junior cove
#

just use nvim, embrace the enckbeard

dull magnet
#

i only use jetbrains for C(++) and java/kotlin

#

oh and i like goland for go

potent fox
#

I use vsc for golang too

dull magnet
#

i tried webstorm but it didnt seem any better than vscode

#

i think vscode is best for web stuff

potent fox
#

Yop

#

But for anything bigger

dull magnet
#

but jvm and c stuff greatly benefits from ide imo so i like it

potent fox
#

Like C#, Java I think IDE ลŸs best

dull magnet
#

because it helps u with gradle/cmake insanity

worldly goblet
#

Still I have to say even Gnome based linux worked just fine with a bunch of games

(I basically decided to use linux since my windows bricked itself and fixing it made me want to hug an elf)

dull magnet
#

yeah gaming is good with steam

#

imagine not using alacritty

#

blazingly ๐Ÿš€ fast ๐Ÿš€ gpu accelerated ๐Ÿฆ€ rust terminal emulator

potent fox
#

you love when you change desktop envirments but you forgot to remove other DE's utils

worldly goblet
#

Still that list has display managers for several desktop environments

dull magnet
potent fox
#

btw can we all agree xfce is absolutely horrible

dull magnet
#

i used xfce for a long time

potent fox
#

how

dull magnet
#

horror

#

why do i have this on gnome

potent fox
#

xfce keybinds are absolutely cursed

junior cove
#

use suckless terminal, embrace the neckbeard again

potent fox
#

let alone it being ugly

dull magnet
#

MALWARE

#

theme is so bad as well

#

^

#

out of the box xfce is ugly asf

worldly goblet
#

was just tryna illustrate how that can muddy the waters a bit if you're just tryna figure out what is a sensible desktop manager to get settled into

dull magnet
#

but once you use a decent theme it looks good

potent fox
#

I remember last time I tried to configure keybinds but it registers tha actions as soon as you press the key

#

not when you release it

#

so mapping windows + e etc is pain

dull magnet
#

i think xfce havent updated their default theme since 1998

#

thats why it looks bad

potent fox
#

webkit trolley

#

it should be nice ac tually

dull magnet
#

using git gui

#

i use cli exclusively

potent fox
#

me when

#

git add .

#

git commit -m "explode"

#

git push

dull magnet
#

yeah lmao

worldly goblet
#

I mean I figured out that using an EOL soon version of Gnome is succ (Gnome 2 husk )

dull magnet
#
[alias]
    acm = !git add -A . && git commit -m
    co = checkout
    cm = commit -m
    cam = commit -am
    dev = !git checkout dev && git pull origin dev
    forcepush = !git push -f origin \"$(git rev-parse --abbrev-ref HEAD)\"
    main = !git checkout main && git pull main
    master = !git checkout master && git pull origin
    ls = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate
    ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
    p = push
    pp = !git pull && git push
    st = status
    syncfork = !git fetch upstream && git rebase \"upstream/$(git rev-parse --abbrev-ref HEAD)\"
    unstage = reset --soft HEAD^
vast karma
#

git commit -vp my beloved

dull magnet
#

idek what that does

vast karma
#

Lets you say yes or no to every change you have made

dull magnet
#

if i need that, thats the one time i use git gui

#

for adding individual lines

#

^

#

i always rebase with cli lol

vast karma
#

I've never used a ui, so I wouldn't know

dull magnet
#

i only use gui for diff and committing individual lines

#

everything else cli

#

and even for diff i often prefer cli

worldly goblet
#

Gui? I just use guh

dull magnet
#

say no

#

it will use previous build

#

only say yes if somethng fails

shadow ruin
#

thats an interesting way to say "i dont have play"

shadow ruin
#

wym i am the real devilbro

potent fox
#

Echo could be the real devilbro tbh

#

With the quality code he writes

worldly goblet
#

also @dull magnet

junior cove
shadow ruin
potent fox
#

I cant keep track of your gender explode

worldly goblet
#

I've been thinking about donating but I kinda feel obliged after realizing how long I've used Vencord

steep vapor
#

@shadow ruin are you devilbro because you write bloatware, or are you bloatware because you write devilbro code

shadow ruin
#

im devilbro because i invented memopryleaks

potent fox
#

This is wrong

steep vapor
#

can you invent a good documentation for QSettings because you are devilbro

shadow ruin
steep vapor
#

one is nativeformat (registry) the other is whatever you wanted (ini, custom)

#

took me days to recover from brainrot to find support threads

shadow ruin
#

wsho the fuck needs networking anyways

potent fox
#

Love

#

Now reboot for suprize

steep vapor
#

why network when setup physical mail box with pigeons

shadow ruin
#

also hop on lydm

potent fox
#

press ctrl alt f1

#

yop

#

I have no idea

#

in the past when I accidently entered tty I would just get stuck there

#

and reboot computer

#

now I just spam all function keys

#

I can usually get back

#

@dull magnet

steep vapor
#

what is

vast karma
#

What's a strg?

worldly goblet
#

german control blobcatscared

steady knot
#

Steuerung

worldly goblet
#

Spy balloon being shot down a while ago

#

99 luftballon

#

this is truly 1912

worldly goblet
glass oracle
junior cove
#

Why not just just get a TKL? or something smaller

steady knot
junior cove
#

You should be able to rebind it easy enough. Can't you just use their webapp?

#

Wait, their download page says they have a linux app

junior cove
#

Ah, I thought you were talking about wooting

#

Does wooting really not have any more traditional TKL options, though? You can check out Keychron, they might have something

noble coral
#

I broke windows with the many crashes notification

stiff cargo
#

:( home and end are apparently unnecessary

junior cove
#

They're pretty niche. I'd say I got more use out of them than I did caps lock before I switched to a HHKB layout though.

Wild that they kept pause and insert while getting rid of those though

trim cedar
#

Who uses the home key (thought you meant the meta key initially lol)

#

End is not too nice to cut

#

Better question

#

Who the fuck uses the right alt key

#

Hold Page up

#

I guess you can also emulate home on that keyboard with the fn key

#

Oh

vast karma
#

Fn+โ†, ^, or with my mappings, H

trim cedar
#

I misread

dull magnet
#

wtf is home key

#

oh

#

its called "pos1" on german keyboard lmao

vast karma
#

Though the keyboard in question has no fn key I guess

trim cedar
#

It has

dull magnet
#

virgin

Insert Home   Page Up
Delete End    Page Down
``` vs chad ```
Einfg Pos1 Bild [arrow up]
Entf  Ende Bild [arrow down]
vast karma
#

Wait between alt and ctrl? Wtf

trim cedar
#

Yeah

dull magnet
#

Druck S-Abf

vast karma
dull magnet
#

i dont even have right alt

#

or do u mean alt gr

vast karma
#

I don't use right ctrl; I've sometimes thought about mapping it to another layer shift

dull magnet
#

do u have altgr

trim cedar
#

Who uses the right alt or Ctrl keys

#

What are they useful for

#

Please tell me

dull magnet
#

the most useless button has to be the context menu key

vast karma
#

I think it's mostly english-language keyboards that have right alt instead of altgr