#👾-core-development

1 messages · Page 209 of 1

limber skiff
#

I looked at this patch yesterday and I was like, damn, I'm proud of it

charred monolithBOT
fallen vale
#

nvm, apparently i do still have pycharm

limber skiff
#

shit

#

wrong default value

#

oh wait

#

nvm I'm being stupid LOL

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

scenic brook
#

I'll upload it when I get a chance, I just need to tidy it up a bit because it's a trial and error debugging mess atm

scenic brook
#

By "now" I mean whenever the next bout of motivation is because it's 4:25am and I have work at 9 thumb

fossil inlet
#

goofy ahh music

#

idek what genre that is

still wasp
glass jasper
charred monolithBOT
still wasp
#

I review this a 10/10 (not biased)

scenic brook
gritty canyon
#

i really dont recommend using webstorm, if you are, you really do have to configure it correctly because the default settings are atrocious (especially with html, for example default EIGHT character indents) and the js ecosystem is full of frameworks and langs and whatever where people only bother to make vscode extensions for so once you step out of vanilla js/react/(insert popular framework here) it becomes basically unusable

gritty canyon
#

marked as resolved and didnt remove it 😭

charred monolithBOT
limber skiff
#

lol they added some pattern matching utility

#

i'm adding that as a common

charred monolithBOT
gritty canyon
brazen bone
#

What is it you want to patch in ts-pattern

gritty canyon
#

no

#

i want to patch with ts-pattern

limber skiff
#

wdym

brazen bone
#

You mean, instead of regex?

gritty canyon
#

instead of regex

#

yes

brazen bone
#

Regex is far more powerful on strings though

limber skiff
#

when ast patching

brazen bone
#

I think that might be bad for loading performance

gritty canyon
limber skiff
#

oh my guys insane usage of pattern matching

brazen bone
#

But why

limber skiff
#

i'm kidding it's not needed at all in that case lol

gritty canyon
limber skiff
#

now that's quite cool

brazen bone
#

y u no `${trackData.artist} - ${trackData.name}`

limber skiff
#

in my defense I didn't make it

brazen bone
#

But pattern matching is way more powerful than switch

limber skiff
#

I see how it can be useful so maybe it should already be available

#

(cuz my branch is gonna take it's time to get merged probably)

brazen bone
#

I don't see why not; if it's already in discord there's no reason to not have it in common

limber skiff
#

W suggestion

charred monolithBOT
gritty canyon
# gritty canyon I don’t get the advantage of the library tbh

i think this would be a much better and cleaner solution

let statusName = match settings.store.nameFormat {
  NameFormat::ArtistFirst => format!("{} - {}", trackData.artist, trackData.name),
  NameFormat::SongFirst => format!("{} - {}", trackData.name, trackData.artist),
  NameFormat::ArtistOnly => trackData.artist,
  NameFormat::SongOnly => trackData.name,
  NameFormat::AlbumName => trackData.album.unwrap_or(settings.store.statusName),
  _ => settings.store.statusName
}
limber skiff
#

but

#

that's rust

brazen bone
#

Well, they're not wrong

#

Rust is cleaner than ts

limber skiff
#

it's very true

#

but sadly it's not possible so you are forced to do it like ts-pattern does

brazen bone
#

Rewrite vencord in rust when

limber skiff
#

when is discord gonna include Option?

gritty canyon
#

is that even possible

#

must be right

#

some mentally insane rust dev must have made that already

brazen bone
#
type Option<T> = { type: "none" } | { type: "some", value: T };
charred monolithBOT
gritty canyon
#

option outside of rust is pretty useless

#

since most langs do have null or an equiv

#

now a result type would be muchh better

brazen bone
#

Option is better than null though, since Option<Option<T>> is distinct from Option<T>

gritty canyon
#

wdym

brazen bone
#

If you have a HashMap<K, V|null> you can't distinguish between "get() returned null because it's not there" and "get() returned null because it actually contains null"

limber skiff
#
export type CacheFindResult = {
    /** The find result. */
    result: Option<ModuleExports>;
    /** The id of the module exporting where the result was found. */
    id: Option<PropertyKey>;
    /** The key exporting the result. `null` if the find result was all the module exports. */
    exportKey: Option<PropertyKey | null>;
    /** The factory of the module exporting the result. */
    factory: Option<AnyModuleFactory>;
};
#

we wish 💔

brazen bone
#

Why does it return { result: undefined, id: undefined, exportKey: undefined, factory; undefined } when not found rather than like, undefined

#

Or exception

limber skiff
#

now that's a good question

#

I could have made it do that yes lol

brazen bone
#
type Option<T> = null | { value: T };
``` is probably a better encoding for specifically Option, but it doesn't generalize as well
limber skiff
#

it does make these quite annoying though

#

oh wait

#

?.id

brazen bone
#

?.

limber skiff
#

I'm stupid haha

brazen bone
#

Or exception

limber skiff
#

nah

brazen bone
#

Valid

gritty canyon
#

i still dont get the point behind js null and undefined

scenic brook
#

That's what has() is for thumb

brazen bone
scenic brook
gritty canyon
#

and then the has implementation is just .get() !== null

#

(and you still cannot distinguish between them)

brazen bone
#

Only if implemented poorly

gritty canyon
#

someone probably implemented hashmaps like that right

gritty canyon
charred monolithBOT
limber skiff
#

thanks for the suggestion kyuu

gritty canyon
charred monolithBOT
limber skiff
#

I don't understand how this regex even works

#

what's with the two sets side by side

#

and the literal \ in the second

scenic brook
#

The first char can't be a number but the ones after can

#

Is the \\ not just because ts escaping?

limber skiff
#

oh yeah

brazen bone
#

Yeah it's inside a string there

limber skiff
#

okay that makes a lot of sense

brazen bone
#

That regex says it starts with ascii alphabetic, _, or $, and continues with any number of \w or $

limber skiff
#

yep

brazen bone
#

Personally I'd wrap it in (?:) though, so \i? gives an optional rather than a nongreedy match

limber skiff
#

just it

#

also shouldnt it be non greedy

#

lets see

brazen bone
#

I don't see why it would, when would you ever want to match a partial identifier

limber skiff
#

oh right

brazen bone
#

\b it, even

limber skiff
#

making it non greedy would make it partial

limber skiff
brazen bone
#

Word boundary

#

Though that wouldn't work with the $ so maybe not do that

scenic brook
#

I mean, it seems to work fine as is, right?

brazen bone
#

Yeah

scenic brook
#

It seems like a pretty integral thing to change

limber skiff
#

got it

limber skiff
scenic brook
#

True

brazen bone
#

\\i is another thing that's broken, but eh, just don't do that

limber skiff
#

hehe

#

it didnt like word boundary

#

and I did it right I'm pretty sure

brazen bone
#

Can't tell from that screenshot, but that might be a $ or something spooking around

#

Better keep that as is then

limber skiff
#

probably less work for the regex engine to keep without too

scenic brook
#

Unrelated to this but would it be possible for dev companion to receive patch info from the extension and patch the original module with that info before returning it rather than returning the existing patched module?
It seems much more useful for it to be returning the result of the patch you're actually working on rather than the one that's already built and running

charred monolithBOT
limber skiff
#

lets see if I broke something

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
#

all good

brazen bone
#

originalToString().replaceAll(String.raw`(?:[A-Za-z_$][\w$]*)`, String.raw`\i`) Well that's one way to do it

limber skiff
#

how else would you do it

#

I could probably just make it return the original string lol

brazen bone
#

canonRegex.toString = canonRegex.toString.bind(originalRegex); or some shit like that

limber skiff
#

yeah that was dumb

#

however

#

nvm

charred monolithBOT
limber skiff
#

pretty good changes

opaque silo
limber skiff
#

String.raw is so great

brazen bone
#

It is a bit awkwardly long as a prefix, but yeah the functionality is sweet

limber skiff
#

define a global called r

#

r\sdfds``

#

bro what

brazen bone
#

Yeah if I use them a lot in some file I do that

#

r`sdfds`

#

Discord markdown is peculiar regarding ` inside inline codes

limber skiff
rugged spire
#

what is being discussed my brain just 😴 all day then i yap then i ??? now

#

is it ignoreacitvities or superreactiontweaks 0 that you're excited about specifically @opaque silo

limber skiff
#

ignore activities

#

it was their pr

rugged spire
#

oh

limber skiff
#

suggestions for other custom regex stuff

gritty canyon
#

Matching common stuff maybe? Helpers for stuff like useState or whatever

limber skiff
#

can't really do for that

brazen bone
#

Best not go overboard with overly domain specific things

limber skiff
#

vee mentioned one for something react related some time ago

#

I dont really remember though

brazen bone
#

Only thing that comes to mind is something for \(0,\i\.\i\), or \(0,\i\.jsxs?\)

limber skiff
#

yeah the second one

#

not sure about it though

brazen bone
#

Yeah it's a quite specific thing

scenic brook
#

Fairly minor but it'd be cool to have a toggle to automatically wrap \i in a group

#

I always forget and then have to go back and add it lol

limber skiff
#

it would make it unclear

#

fairly easy to just add the group anyways it's not a problem

scenic brook
#

Yeah

limber skiff
#

but what I mean is that (\i) is more clear than like \ig

#

@brazen bone btw did you see that my new implementation of webpack patching works in github with like no change lmao

#

besides that error of course

#

this implementation

#

the difference is it doesn't depend on anything discord specific

#

like webpackChunkdiscord_app

brazen bone
#

What do you mean no change, haven't you changed every webpack-related line five times

#

Or do you mean no change to any plugin code?

limber skiff
#

I just changed the userscript to run on github.com and webpack patching works with no change (ignoring the eval error)

brazen bone
#

Oh

#

Yeah that's pretty cool

limber skiff
#

for example the current vencord implementation would already not work

#

because the chunks array has a different name

#

yes it's easy to change

#

but I'm mentioning it as a implementation that works almost anywhere, with no change needed

brazen bone
#

How feasible would it be to extract it to a standalone library without any direct ties to vencord?

#

Guess that would increase maintenance burden though

limber skiff
#

to be honest

#

not super hard

#

but requires thought to make it have a good interface to use it

#

and also it wouldn't be just patching

#

it would have to include webpack finding too

limber skiff
#

but probably should

#

if you don't include webpack finding, all of the webpack patching is that single file

scenic brook
brazen bone
#

Many of the find methods are tied to the specific minification settings discord uses, so that seems like it would be a bit less universal than the hooking

limber skiff
#

not super tied actually

#

mapMangledModule can be kept

#

the only very specific thing is findStore

#

it's all very generic

#

well, of course it's pretty tied to react stuff tho

brazen bone
#

I guess so

limber skiff
#

Vencord is currently like the peak of webpack modding

#

I know there are other regex patching mods too, but I don't think any mod went this far into the internals and the ways of modifying things

#

and the chunk loading too

limber skiff
#

@lean ingot left a review btw!!

limber skiff
#

rightt

gritty canyon
#

connect an onmouseenter event trolley_crazy

austere talon
#

always better to have css file

limber skiff
#

I personally don't like when it's just gonna be small

#

and like the class is only used once too

#

but since it needs hover then there is no escape

lean ingot
#

I also looked at existing plugins, and there's a bunch with a very small css file like the one in my plugin

limber skiff
#

I know, it's not a problem

lean ingot
#

but those might've also needed :hover

limber skiff
#

just personal preference

austere talon
#

hot reload..

#

always use css file

brazen bone
#

"Css goes in css files" is a very lukewarm take

gritty canyon
#

if its really just like one class (without pseudo selectors) id put it in my js

austere talon
gritty canyon
#

or a vue dev..

brazen bone
#

I do not talk to svelte devs

austere talon
#

you still lose hot reload

#

and some performance

#

it's best to use css file whenever u can

limber skiff
rugged spire
# austere talon why

i got told to inline a style presumably because doing a :first-child is ugly within a contribution to something in #1256395889354997771
i rarely check github notifications so the requested changes took me a week to get around to and also allow maintainers to edit was enabled, yet they asked me to make the edit myself blobcatnom
pretty sure you could put a class there too

charred monolithBOT
limber skiff
#
sdfdsfds
fallen vale
#

but- why-

limber skiff
#

@lean ingot it goes back after like a second or two

fallen vale
#

not for me

lean ingot
#

no it doesnt?

#

yeah

brazen bone
#

Does not

fallen vale
#

it 100% should

limber skiff
#

oh

#

shiki

#

anyways

#

it's better to have it do

lean ingot
#

I could also use copyWithToast

limber skiff
#

just put a setTimeout(() => ..., 2000) after the copy code

lean ingot
#

but it's 04:13 and i have class at noon, so i'll do this tomorrow

brazen bone
#

If you setTimeout it, what will you do if user clicks again after one second?

limber skiff
#

copy again

#

😂

brazen bone
#

And restore the icon after one or two seconds?

limber skiff
#

after the remaining time from the second timeout

lean ingot
limber skiff
#

anyways we can just

#
onClick={() => {
    if (recentlyCopied! && bytesLeft <= 0) {
        Clipboard.copy(fileContents);
        setRecentlyCopied(true);
        setTimeout(() => setRecentlyCopied(false), 2000);
    }
}}
#

yo

#

that is the wrong side of the not operator

#

my brain is not working anymore

#

do you want me to do it for you?

lean ingot
#

recentlyCopied factorial and bytesleft

lean ingot
limber skiff
#

alright

lean ingot
#

unless you want to merge it before then

limber skiff
#

I remembered now, add a README too

lean ingot
#

then you can do it ig

#

huh

limber skiff
#

this stuff

lean ingot
#

oh

#

didn't realize that
a lot of them don't have readmes

gritty canyon
limber skiff
#

you!

brazen bone
#

Who?

gritty canyon
#

maybe ill add them for every single plugin today who knows

gritty canyon
#

im the author of that plugin :3

austere talon
#

but first we need to set a clear guideline

#

and maybe every plugin should have a banner splash with fixed dimensions

#

so we can use it in cards

limber skiff
#

should we organize plugins in categories

brazen bone
#

Every plugin should have an emoji mascot

rugged spire
#

@limber skiff do you actually know how to make proper popouts not just tooltips? i want to actually make a better looking automod reason details popout thing

rugged spire
brazen bone
rugged spire
rugged spire
brazen bone
#

You can just chuck any old react component in there

rugged spire
#

I know I can chuck any react component in a tooltip

limber skiff
rugged spire
#

yes

#

that was the exact example

limber skiff
#

I think that's just a component in a tooltip lol

rugged spire
#

i bet thats still a tooltip lol

limber skiff
#

let me see

rugged spire
#

what I want is a wide tooltip

#

would also help a lot with new plugins manager too

limber skiff
#

it's a tooltip

rugged spire
#

because I display the list of plugins requiring a restart in a tooltip in that plugin

#

okay so

#

how can I make a a wider tooltip

brazen bone
#

Css the width of the contained component

limber skiff
#

I think it's just the size of the component yeah

rugged spire
#

There is no explicit width set

brazen bone
#

Well then

rugged spire
#

ig i need to look at how the existing width limit works

gritty canyon
#

Just like a screenshot of what it does orr

rugged spire
#
.tooltip_b6c360 {
    position: relative;
    border-radius: 5px;
    font-weight: 500;
    font-size: 14px;
    line-height: 16px;
    max-width: 190px;
    box-sizing: border-box;
    word-wrap: break-word;
    z-index: 1002;
    will-change: opacity, transform;
}
#

i see now

#

Do I want tooltipClassName or tooltipContentClassName

#

Whats the difference?

brazen bone
#

Do you want to add a class to the tooltip or the tooltipcontent

rugged spire
#

hold on

austere talon
#

screenshot or collage of screenshot with the main feature

rugged spire
#

its definitely tooltipClassName I want

austere talon
#

with specific dimensions so it looks good

rugged spire
#

should I be editing the width of the default tooltip?

limber skiff
#

make a completely new

rugged spire
#

wdym

#

because this default one is only used for inline mode

limber skiff
#

a new tooltip with it's own class and component

rugged spire
#

i actually haven't documented inline mode enough have I

#

mostly because I don't use it myself

brazen bone
#

What is inline mode

rugged spire
#

this is how the current plugin works

#

i effectively shove a lot of extra reason information on that same line including which moderator did it, which channel the automod action happened in, which automod rule, and the actual reason

limber skiff
#

which you shouldn't

#

do the tooltip instead

#

(I didn't meant to sound mean lol)

rugged spire
#

it's alright

#

I'm already aware that shoving extra information in that line is a good way to overwhelm the user with too much information

rugged spire
#

IGNORE IGNORE IGNORE

row_a6ae3c rowGuildName_a6ae3c
activityIcon_a6ae3c rowIcon_a6ae3c
.activityIcon_a6ae3c {
    width: var(--custom-guild-tooltip-icon-size);
    height: var(--custom-guild-tooltip-icon-size);
brazen bone
#

I will not ignore

rugged spire
#

I will be stealing a significant amount of code from PermissionsViewer for this

#

TrollCrazy I LOVE STEALING CODE THAT IS ACTUALLY TECHNICALLY BROKEN IN THE VERSION I AM RUNNING. I HAVE NO IDEA IF IT IS FIXED IN UPSTREAM.

#

you are explode

brazen bone
#

Imagine not stashing before checkout

rugged spire
#

I wish Git knew that src/plugins/showTimeoutDetails doesnt even exist in the dev branch

gritty canyon
charred monolithBOT
fallen vale
#

how does one

resolve reviews automatically

rugged spire
#

you can merge maintainer suggestions in directly

fallen vale
#

ah right

#

i didnt know what they meant by resolve automatically

rugged spire
#

im doing a huge refactor of a plugin at this point wtf am I doing

scenic brook
rugged spire
#

Are you aware that @fossil inlet is making something just like this? Are you working on something based upon that code?

scenic brook
#

Yeah I'm just redoing what he's doing as an intellij plugin as an alternative to the vscode one

rugged spire
#

Oh okay

wary relic
#

ight make one for neovim now

#

🙏

scenic brook
#

No original ideas here suffoCoolio

rugged spire
#

So what you're saying is you want to use the patch directly from the editor?

#

Rather than what is currently loaded?

scenic brook
#

Yeah

#

It's cool being able to extract the patched module from what's already built in vencord but I think it'd be helpful to see the patch you're working on applied dynamically when you extract

rugged spire
#

i need advice

#

what icon is suitable for "moderation reason"

still wasp
#

Hammer?

#

This one maybe

rugged spire
#

See that'd be great

#

if it wasn't for the fact that I'm dealing with timeouts specifically in this UI

#

I do not want to reuse the timeout icon

still wasp
#

Guhhh

rugged spire
#

Clicking that icon is explicitly the entry point to the full UI I am building

#

Would seem like I ran out of ideas

scenic brook
#

Could just use like a standard ⓘ

#

for "more info"

rugged spire
#

I was thinking that

#

but at the same time it seems too generic?

still wasp
#

Clock but the hand is an i

#

You WILL write an svg..

rugged spire
scenic brook
#

Maybe the modview swords

#

It's kind of a modview

#

But then people might think it's just a button that opens mod view

fallen vale
brazen bone
#

Position of the button is more important than icon

#

Tooltip too, for less frequently used ones

rugged spire
#

so trolley

#

i am really leaning towards the message icon in this context for some reason

scenic brook
#

Why not just make the existing timeout icon clickable?

#

Have the tooltip on it just say "Click for more info" or something instead the current "only mods can see this" message

charred monolithBOT
charred monolithBOT
fallen vale
scenic brook
#

Oh I thought you were looking to add an additional icon

gritty canyon
#

what do we think about a readme like this for plugins

#

@austere talon oh yea are you planning to announce the 2 new plugins in #plugin-news

fossil inlet
#

Isn't the point of plugin readme's to show up on the website?

gritty canyon
fossil inlet
#

vp companion

nimble pendantBOT
charred monolithBOT
gritty canyon
#

this plugin feels giant compared to what it actually accomplishes and i very much feel like this should just be a toggle in moreusertags (esp. since they would clash together), posting here and not replying as im not sure if anyone else shares the same opinion 😭

rugged spire
#

making it an option is ehhh

#

the name of it sucks though

#

just call it UserTagCrowns or something like that

gritty canyon
#

i need to check something actually

rugged spire
#

i feel like it would inject slightly differently though

gritty canyon
#

hm

#

the plugin overrides moreusertags when both are on...?

#

i still very much feel like this should be part of moreusertags, like an option in every one of these saying like "use crown instead of tag" would be cool

hexed star
hexed star
hexed star
lean ingot
limber skiff
#

some readmes have images

#

and it's markdown which allows us to do way more

hexed star
gritty canyon
hexed star
glass jasper
#

How would they have different styles? They need choosing whether a tag appears or a crown appears

hexed star
glass jasper
#

Exactly plus if it overrides the other one people are going to complain about that

#

Say you don’t want the owner tag, but you do want the owner crown

gritty canyon
#

yea i dont think a plugin overriding a different plugin is a good idea

#

neither do i think having two plugins do basically the same thing (expanding user tags) is a good idea

#

both will lead to a lot of confusion

glass jasper
#

Plus, this just seems like two things that should be bundled together have an option of whether the crown appears or a tag appears

hexed star
hexed star
glass jasper
austere talon
hexed star
austere talon
#

by default it uses name + description

glass jasper
lean ingot
austere talon
#

it does

#

if you don't have a custom readme it does use the description

lean ingot
#

oh

lean ingot
limber skiff
#

yes

#

you can also include a picture of the button

lean ingot
#

ok

desert cosmos
#

i might be insane but can anyone else reproduce the css window turning to about:blank when clicking Edit QuickCSS / Open QuickCSS while the CSS window is open? was able to only reproduce this on web and not desktop

still wasp
#

Yeah i can

#

Tested it on vesktop and chrome extension, but it only happens on the extension

limber skiff
charred monolithBOT
lean ingot
#

@limber skiff
For the checkmark/copying thing i can leave it how it is, just change it to have a toast, or make the checkmark change back (but that causes some problems when clicking it while it's a checkmark, could probably fix, but i don't even this one in the first place)
or i suppose i could just make it not change to a checkmark and just use the toast
but my favorite is change to and stay as a checkmark with the toast
https://github.com/Vendicated/Vencord/pull/2790#issuecomment-2322652625

charred monolithBOT
woeful sable
#

Hey guys, quick thing that I noticed, the "You are using an outdated version of Vencord!" Thing will always appear even if you click "I know what im doing or I can't update", I feel personally like it should set a flag if you click that option. Would post this in #🧩-plugin-development, but this seems to be a core part of vencord (it's in _core).

#

although based on how they are structured, i'm not entirely sure if this can be added?

#

nvm onConfirmSecondary exists, this definitely could be done.

austere talon
#

deliberately not done

woeful sable
#

I mean it deliberately says I know what im doing

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

woeful sable
#

oh wait
I have the regular role but it's still triggering
that might actually be a bug

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

austere talon
woeful sable
#

fair enough ig

woeful sable
charred monolithBOT
#

I added a toast when copying. It's currently stay as a checkmark with a toast (the first video).
I don't think the checkmark changing back is necessary because it can create some buggy behaviour, and I don't think it looks as good (second video).

https://github.com/user-attachments/assets/1acdfc0e-078c-4a00-ab57-90dfbc52b504

https://github.com/user-attachments/assets/0c488b46-5231-4f2f-af2c-c53d7c38bf0e

rugged spire
grave mangoBOT
woeful sable
#

It specifically has the regular role in the TrustedRoleIDs array

rugged spire
#

am i stupid or is your vencord broken

woeful sable
#

im not sure how to intentionally outdate my vencord but it seemed to be a bug

#

or it was a heisenbug idk
it auto updated and it's gone now so I can't really test

fossil inlet
#

wtf is a heisenbug

#

does it have anything to do with walter white

woeful sable
#

Basically a bug that goes away when you try to figure out what's causing it

fossil inlet
scenic brook
#

The trusted role check is just after the outdated check

woeful sable
#

it probably should be bumped up near the isPluginDev check

austere talon
#

no

woeful sable
# austere talon no

why? anyone with the regular role is probably not gonna ask for support using outdated vencord

#

i feel like it pretty much wouldn't happen

#

and it currently filters out the external vencord version warning, which seems like an easier mistake to make honestly, especially if you are developing

fossil inlet
#

using devbuild
gets warning about devbuild
changes code in own verison to no longer get that warning
@woeful sable

rugged spire
#

if you have contributor role you are expected to not be stupid enough to ask for help with problems caused by you shoving ???? code into your client

rugged spire
#

true

woeful sable
rugged spire
#

nop

#

i will ping @limber skiff for UI design review instead

fossil inlet
#

@austere talon check dms trolley

woeful sable
#

idk it just feels logical to me that clicking "I know what im doing" should set something like how the dev build "Don't show again" sets a flag
but eh im not the boss

fossil inlet
#

i thought it did

woeful sable
woeful sable
austere talon
#

it's not changing

#

simply don't be outdated

#

or remove the plugin

woeful sable
fossil inlet
#

required:false

woeful sable
#

I know I can change the code
im not suggesting maintaining my own fork of vencord tho
nor do I want to 😭

#

but it's whatever
i usually keep vencord updated anyways

fossil inlet
#

me when i cant use git

woeful sable
#

Pretty sure this has been asked before, but couldn't this also just be something like

type StartAt = "Init" | "DOMContentLoaded" | "WebpackReady"

and then you just force the author to provide a string instead of an enum value

#

you would still get the same intellisense, but you would just pass in startAt: "DOMContentLoaded" instead

fossil inlet
#

imo its kinda eaiser to have all in a enum

woeful sable
#

fair enough
it's probably entirely personal preference

#

oh yeah I guess you would have to do the import type { StartAt } from "..." syntax instead
thanks typescript! cat_thumbsup

fossil inlet
woeful sable
#

also true

#

i've mostly just been combing through vencord the past couple days, kinda code auditing I guess?
seeing if there is anything that seems awkward or any todos that can be pretty easily fixed

woeful sable
fossil inlet
#

open any vencord settings page

#

type more than two characters

woeful sable
#

Oh thats fun

#

looks like vencord stuff doesn't show up in discord's search results either

#

which could be a factor maybe?

#

migrating some plugins to use settings instead of options seems like an easy enough thing to do while I get the energy to tackle a bigger issue

austere talon
#

it doesn't make a difference

woeful sable
#

eh alright

#

I already converted the settings plugin lol
this would probably take me an hour at most

#

but if there's better stuff to do i'd rather do that i guess

fossil inlet
woeful sable
austere talon
woeful sable
#

fair
considering it was marked todo i figured it was probably something people were trying to get merged and done with

woeful sable
limber skiff
#

yeah

woeful sable
#

figured

limber skiff
#

not related to the branch but I just used the opportunity that I was already touching most files

woeful sable
#

im absolutely horrible at ui design for the most part

fossil inlet
#

i suck at UI

rugged spire
limber skiff
#

okay maybe not today

#

will see

opaque silo
uneven needle
#

I feel like in the user popout it would get crowded

#

But where in server info do you mean?

opaque silo
opaque silo
#

honestrly the server info modal needs a rework

#

maybe it should use/build off of the user modal

uneven needle
opaque silo
#

mhm

#

itd need to be a conditional patch if the plugin is enabled but yea

opaque silo
#

compact mode could be x MFs • x MSs • x MGs or something

uneven needle
#

yeah i made a (unreleased (on gh tho) user plugin to remove those and show the icons for servers

opaque silo
opaque silo
uneven needle
#

funny, but ig thats the price to pay if i want to make a plugin for a lot of stuff

austere talon
#

what should be changed?

opaque silo
#

looks out of place compared to other elements/profiles

charred monolithBOT
#

Some issues:

  1. The stock profile effect editor is patched by this plugin resulting in it displaying all effects as unlocked and are unable to apply any & it falsely showing the remove effect button. Should behave like Decor where it doesn't modify the stock feature.

  2. The FPTE Builder should auto fill with the values from the bio.

  3. The FPTE Builder should have buttons to save to bio without manual copy & pasting being required And likewise have a clear button.

opaque silo
# charred monolith

also is there a reason a custom database isnt in use like decor userpfp and usrbg

spring gorge
#

whats vencord

#

my spotify dj sucks istg

brazen bone
fallen vale
#

how did you get access to this channel without knowing what vencord is

brazen bone
#

But I think a vns is in order

#

vns

nimble pendantBOT
spring gorge
#

but im still not fully sure

brazen bone
#

Making a pr to a project you don't know what it is?

#

Gutsy move

spring gorge
#

do you?

brazen bone
#

I see little reason to believe you are not trolling

fallen vale
#

very top of the readme.

limber skiff
opaque silo
fallen vale
fallen vale
spring gorge
spring gorge
#

i am very tired today

fallen vale
#

pick your wording mate

spring gorge
opaque silo
#

so ig that plugin is gonna be useless whenever that happens

opaque silo
charred monolithBOT
nimble plaza
#

it isnt open source but if you give a good enough reason i can give u a list of endpoints and what they take/give

#

servers too messy and afaik wont be open sourced untill jack rewrites it

glass jasper
wary relic
glass jasper
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
glass jasper
spice python
charred monolithBOT
fallen vale
gritty canyon
#

just not the backend part

#

which is not gonna be made inside of vencord

nimble plaza
#

i think badges should go through vee

#

so ppl dont put nsfw and stuff

gritty canyon
#

dw

nimble plaza
#

ah

#

okay

gritty canyon
#

this is also why this says submit and has a warning

nimble plaza
#

oh nice

gritty canyon
#

its to submit a change for review which then gets either accepted or rejected

#

wtf i just realised i accidentally put "Staff Badges" instead of discord badges (i havent really looked over/cleaned up my code yet)

glass jasper
# charred monolith

i like it, my one note tho is This (or a version of this) is a pretty popular "Snippet" for people to use so if it doesnt already it needs a icon assigned to it

#

no embed?

#

oh why is the raw link?

gritty canyon
#

thats a separate theme though isnt it?

#

not in connection to vencord

#

shouldnt be our problem to manage it, even if it does suck that there wont be an icon for the tab till they add one

charred monolithBOT
desert cosmos
glass jasper
gritty canyon
#

@limber skiff vee is too lazy to announce the new plugins to #plugin-news 😭

opaque silo
#

just chatgpt it from the change log 🤧

charred monolithBOT
#

Hello, thanks for the plugin!

I think adding an option to hide the collapse button would be good as part of the plugin. Since the roles are always expanded, there's not really a reason you would want to collapse them (since you expressed your preference not to collapse).

The button is so small it makes no difference to have it there or not. Also useful when you want to collapse for some reason

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
#

Activity type now uses a dropdown rather than 1 toggle between playing and listening.

Note: Streaming will show as Playing in the member list, however, it will show as streaming on profiles. The purple status indicator also only appears in the bottom left user card. Watching won't show the 3rd label (album name) but it seems to show how long it has been active instead.

image
![image](https://github.com/...

charred monolithBOT
glass jasper
# charred monolith

can we just lock this already? It’s nothing but a bunch of people being like “erm… I disagree, there should be an option to hide the button”

#

Why did that message just now sent?

#

what the fuck discord

fallen vale
glass jasper
# fallen vale uwu

nah… cause I typed out and sent that message a few minutes ago and it just now sent

charred monolithBOT
glass jasper
# charred monolith

oh, so they entirely made this just so they could use the LastFM plugin and still have the fancy purple streaming indicator

dusk blaze
#

skids smh

rugged spire
#

bonus

#

it just seems disrespectful to say "streaming" music

dusk blaze
#

yop

#

“listening” on top

rugged spire
#

though I do think that adding toggle to bomb things within settings of a plugin is a GOOD thing that SHOULD NOT BE RELEGATED TO CSS (because nobody looks in #🎨-css-snippets anymore)

rugged spire
limber skiff
rugged spire
limber skiff
#

e

#

copy file contents

fossil inlet
#

guhhh why does it render like this

#

unusable

charred monolithBOT
limber skiff
#

can we ignore the missing space there

charred monolithBOT
fallen vale
fallen vale
fossil inlet
limber skiff
#

some plugins have it some don't lol

#

we shuld normalize it however, yeah

fossil inlet
#

you could prob just run some regex to normalize it

charred monolithBOT
rugged spire
#

dev2

charred monolithBOT
fossil inlet
#

dev0

limber skiff
#

BOOM

#

I exploded vencord

rugged spire
charred monolithBOT
limber skiff
#

@fossil inlet apply it quick you have 5 seconds

fossil inlet
charred monolithBOT
glass jasper
fossil inlet
#

four

#

i have more, but only four slots on gpu so

rugged spire
#

You will abuse DisplayPort Multi Stream Transport

long stream
#

get a 2nd gpu blobcatcozy

#

double the ports

fossil inlet
#

mobo only supports one i think
(could be very wrong, idk anything about motherboards)
i have a 1650 thats not in use that i want to use so i can do gpu passthrough with a KVM

rugged spire
#

mobo only supports one i think
you can plug another gpu into your motherboard somehow

austere talon
#

if you have multiple pci slots you can fit multiple gpus :p

rugged spire
fossil inlet
#

wait, so can i?

glass jasper
fossil inlet
#

that would be sick

long stream
#

could be blocked by the first gpu

#

depends on the size

rugged spire
#

your second GPU won't have as much bandwidth though

fossil inlet
rugged spire
austere talon
#

that mobo seems to have 2

#

so you can fit a second gpu

#

there might be something in the way tho

rugged spire
#

you're bottlenecked by the card there to pcie 3.0

#

your limitation could be your case at this point

fossil inlet
#

Not sure if there's enough room

rugged spire
#

and maybe also the other horrible problem

#

yeah

#

the headers

charred monolithBOT
rugged spire
#

you need a right angle sata cable

#

2 of them actually

fossil inlet
#

@limber skiff when you have some time, can you make sure the volume booster plugin is good, i fixed the stock discord low volume issue

limber skiff
fossil inlet
#

nuckyz so productive

limber skiff
#

on my way to merge the small things

#

okay lets see about volume booster

austere talon
#

install refinedgithub and make sure commit messages aren't too long

#

this will be ugly cut off

limber skiff
#

I thought it was maybe to long

austere talon
#

when you go to squash & merge and have to type commit message, refinedgithub will mark it red if it's too long

limber skiff
#

neat

charred monolithBOT
limber skiff
#

ugh

#

i'm gonna throw a rock at that

#

wait wdym that's the old message not the one I edited

charred monolithBOT
limber skiff
#

😭

charred monolithBOT
limber skiff
#

@fossil inlet okay with volume booster the same volume is a bit more louder than stock

#

however I'm not sure if that is easily fixable and it's not bad honestly

fossil inlet
limber skiff
#

it's fine tbh

fossil inlet
#

stock scales volume with some algorthim, this just gives the number on the slider

fossil inlet
limber skiff
#

I mean that it being a bit louder is fine

fossil inlet
#

ah

limber skiff
#

cuz the stock bug is definitely not

fossil inlet
#

hmmm, ive never tested this on stock discord

#

(discord desktop)

charred monolithBOT
#

Content

Inspired from the BetterDiscord plugin FavoriteMedia, allows the user to add videos and images to favorites just like GIFs.
Insanely useful and intuitive. Added as menus to the GIF selection menu or as direct buttons in the message bar. Sends images and videos as links from the original uploaded file.

Request Agreement

  • [X] I have read the requirements for opening an issue above
limber skiff
fossil inlet
#

i havent used stock discord desktop in a while(few months) wanna compare to that

fossil inlet
#

@limber skiff yea, you're right. it sounds better this way

limber skiff
#

it's definitely louder than stock desktop

#

hmmm

#

let me check something

fossil inlet
limber skiff
#

I made it not use the gain but set the volume without parsing and it sounds the same with and without vencord

fossil inlet
limber skiff
#

why would I?

fossil inlet
#

let me try that on my end

fossil inlet
limber skiff
#

wait

#

this makes it sound the same

#

but now the volume is resetting to 200 everytime I restart huh

#

I just copied this but applied to the gain instead

fossil inlet
#

have to go help family, if you fix this, just commit.

limber skiff
#

hell yeah

#

it's perfect now

fossil inlet
#

tbh im kinda shocked nobody made this sooner

austere talon
#

but no one ever bothered

#

personally i don't vc much so I don't care about that feature

limber skiff
#

im trying to merge commits rn but there is A CAT ON TOP OF MY MOUSE

austere talon
#

be happy the cat hasn't eaten the mouse yet

vivid garden
#

its the cats mouse now

#

give up and relinquish the mouse

fossil inlet
#

vgh

nimble pendantBOT
fossil inlet
#

@austere talon so broken

rugged spire
#

maybe it only checks main branch trolley

limber skiff
#

what even is vgh

#

vgh

nimble pendantBOT
fossil inlet
#

links github so you get contrib role in discord

rugged spire
#

vh gh

nimble pendantBOT
# rugged spire vh gh

Link-github (github, linkgithub, gh, link-gh)

Link your GitHub account to claim the contributor and donor role

rugged spire
limber skiff
#

oh

#

neat

fossil inlet
#

also it didnt even give me donor role

charred monolithBOT
limber skiff
fossil inlet
limber skiff
#

you have to be kidding me

#

force pushing does this??

#

updates everything what

rugged spire
#

yes

#

trollface

fossil inlet
rugged spire
#

DID YOU FORCE PUSH TO MAIN OR DEV

fossil inlet
#

what if you added a stalebot to vencord

rugged spire
#

i will make antistalebot for vencord repo

fossil inlet
limber skiff
#

ran it in the wrong branch nice

rugged spire
#

wtf did you do

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

that

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

rugged spire
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
#

I saw that dirty play.

glass jasper
austere talon
rugged spire
limber skiff
austere talon
#

it's not real time

limber skiff
#

how do you want me to review if it's closed

#

ah

#

github search is horrible nvm

fossil inlet
glass jasper
#

bruh what

austere talon
#

active

rugged spire
#

i love faking example screenshots btw

limber skiff
#

oh god

#

that's too complicated for rn

glass jasper
limber skiff
#

I'm merging into main

glass jasper
#

it’s perfect gang

fossil inlet
rugged spire
#

its called "my brain dont wanna try to comprehend it all" right now

glass jasper
# fossil inlet

At least it’s better than the old version this one actually works

charred monolithBOT
limber skiff
#

time for some plugin news

rugged spire
rugged spire
glass jasper
fossil inlet
limber skiff
#

even more complicated

fossil inlet
#

tbh i might just release it as a user plugin + vsix/compile instructions

rugged spire
fossil inlet
rugged spire
#

wtf did i say

#

i mean "make the UI in the extension feel more native like vscode"

glass jasper
fossil inlet
rugged spire
#

SOON

fossil inlet
#

(i will instantly close)

rugged spire
#

you will hardcode a font

fossil inlet
#

!remind 36hr bundle font with webview

shut vineBOT
#

Alright @fossil inlet, in 1 day and 12 hours: bundle font with webview

rugged spire
#

this is not what I mean

fossil inlet
rugged spire
#

i really mean "i am being sarcastic about what you already do and failed to communicate that well"

fossil inlet
#

if you can fix the vscode font-family var not working, id prefer that, but it bugs out so much

rugged spire
fossil inlet
#

isnt that the MS font

rugged spire
#

yes it is

#

i just had new plugin idea!!!

#

WHY HUSK

fossil inlet
limber skiff
#

**AlwaysExpandRoles ** by surgedevs

ShowAllRoles replacement. The roles list in profile popouts will be expanded by default

NoMaskedUrlPaste by CatNoir

Prevents pasting a link while having text selected from turning it into a masked URL (like this)

StickerPaste by ImBanana

Similar to GifPaste. Selecting stickers will insert them into the chatbox instead of instantly sending

CopyFileContents by Obsidian

Adds a button which allows you to easily copy the contents of a text file attachment

rugged spire
#

do you seriously not have permission to post it yourself

limber skiff
#

I'm testing if it works

fossil inlet
#

volume booster isnt there, im heartbroken

limber skiff
#

bro I didn't push it to main

charred monolithBOT
fossil inlet
#

it was a joke 😭

limber skiff
#

I was not going to notice it lmao

fossil inlet
#

iirc you can allow yourself write on a channel that you can see

rugged spire
#

manage channels is not manage permissions

fossil inlet
#

yes it is?