#πŸ‘Ύ-core-development

1 messages Β· Page 262 of 1

austere talon
#

doesnt hurt :P

limber skiff
#

then why not re-export all?

austere talon
#

just add to the import bans if u care

limber skiff
#

nah I don't care that much I just want to make sure it's consistent

#

since code refactor

grave mangoBOT
# austere talon https://github.com/Vendicated/Vencord/blob/main/scripts/build/common.mjs#L361-L3...

common.mjs: Lines 361-368

export const commonRendererPlugins = [
    banImportPlugin(builtinModuleRegex, "Cannot import node inbuilt modules in browser code. You need to use a native.ts file"),
    banImportPlugin(/^react$/, "Cannot import from react. React and hooks should be imported from @webpack/common"),
    banImportPlugin(/^electron(\/.*)?$/, "Cannot import electron in browser code. You need to use a native.ts file"),
    banImportPlugin(/^ts-pattern$/, "Cannot import from ts-pattern. match and P should be imported from @webpack/common"),
    // @ts-expect-error this is never undefined
    ...commonOpts.plugins
];
austere talon
#

you can add to this

limber skiff
#

okay I just realized the whole components index file with re-exports is useless

#

we don't have a path for just the components index

#

so it was never going to be used

#

neither vesktop seems to use it

#

so I just nuked

grave mangoBOT
limber skiff
#

😭

austere talon
#

this is the only place using it

#

and that's put on the window

#

keep it that way

limber skiff
#

okay good catch

grave mangoBOT
austere talon
#

lol

#

this imports it

#

YOUR PLUGIN

#

nvm sadan#s fault

#

YOUR FAULT

#

we should just ban imports of /index$

#

nvm we cant

limber skiff
#

I DO NOT REMEMBER THAT!

#

must have been my intellisense

austere talon
#

yeah it happens with autoimport

#

sometimes i auto import from the craziest place imaginable and have to manually fix it

glass jasper
#

I just roll with it

#

Sure why not import from there

austere talon
#

this is what i was talking about 😭

charred monolithBOT
limber skiff
#

@austere talon u didnt cause any regressions in patch helper right?

austere talon
#

i tested and it seems to work fine

limber skiff
#

it had so many little fixes that could either cause crashes or not work

austere talon
#

i made the json box auto resize

limber skiff
#

I'll just trust u didnt cause regressions, if anything we can fix later

austere talon
#

patchhelper isnt that important

#

but i didnt really change any logic i think

limber skiff
elder plinth
limber skiff
#

so I think now we dont need this

#

let me test

austere talon
limber skiff
#

I think I did something...

austere talon
limber skiff
#

😭

#

no idea why

austere talon
#

btw it might be easier to review the changes by going through the commits

#

the first bunch of commits purely moves code around

#

only later did I start making actual changes

limber skiff
#

what's the difference here?

limber skiff
austere talon
# limber skiff

previously the returned value wasn't actually a valid plugin object

#

it was a PluginDef, not a Plugin

limber skiff
#

okay I kinda want to fix this

austere talon
#

the change fixes it

limber skiff
#

so this is the issue

#

but ~plugins is imported first

#

🀨

austere talon
#

but the plugins import api and such

#

it's a very deep circular dependency lmao

austere talon
#

maybe it's that

#

but don't worry too much about it for this pr

#

It would be better to try to tackle the circular stuff in a future pr instead

austere talon
limber skiff
#

didnt work

austere talon
#

and instead make init functions and call them in order

limber skiff
#

I dont get it tho

austere talon
#

that doesn't matter much

limber skiff
#

import just ~plugins works

#

but also plugins doesnt?

#

the first import should happen before

austere talon
#

it's not that simple

limber skiff
#

I am not seeing something then

austere talon
#

all parts of vencord import each other recursively

top level code competes for who gets to run first. if top level code depends on each other recursively you get into this trouble

#

the way it currently is it imports in just the right order to make it work

#

if you move around or add new imports it changes the order

limber skiff
#

~plugins is everything inside plugins excluding index right

austere talon
#

it's very ugly but the only solution is looking into what is exactly causing it and doing a deeper refactor

austere talon
#

just don't worry about it for this PR let's tackle it separately πŸ™πŸ»

limber skiff
#

I'm just so confused lol

#

cuz look

#

that's it?

#

cursed

charred monolithBOT
austere talon
# charred monolith

the naming was mostly intended

if its named after a component, PascalCase

otherwise camelCase (like commons)

#

but this is fine too it doesn't really matter

charred monolithBOT
limber skiff
#

ooops

#

did they just break a find

#

nahhh

#

settings are cooked @austere talon

charred monolithBOT
limber skiff
#

are we gonna merge this right now

#

vtest refactor-settings-ui

nimble pendantBOT
fossil inlet
#

@limber skiff if you removed inputDefault shouldn't this be updated

limber skiff
#

ah

#

you are right

#

but they nuked it

charred monolithBOT
fossil inlet
limber skiff
#

yeah just did that

fossil inlet
#

@limber skiff fear

limber skiff
#

huh

#

did I not change the name

fossil inlet
#

doesn't respect them

austere talon
#

Windows user spotted

fossil inlet
#

i remember this being a pain in the ass on a personal project a while back

austere talon
#

try git mv commons Commons

charred monolithBOT
limber skiff
#

guhhh

charred monolithBOT
limber skiff
#

why isn't vscode smarter on that

fossil inlet
limber skiff
#

it's both cuz vscode could call git mv

fossil inlet
#

(assuming you're talking about renaming a file)

limber skiff
#

yes

fossil inlet
#

few reasons

  • not everyone uses git (no vcs or other vcs)
  • when you rename a file you dont expect git to be invoked
#

this is just an issue with git on windows

#

not with vscode

limber skiff
#

I mean yes, I get why it's a git issue

austere talon
#

this is just an issue with windows :P

limber skiff
#

@austere talon do we plan or merging it soon

#

if not need to backport the find fix and push it as soon as possible

#

since it breaks plugin settings

fossil inlet
odd heath
fossil inlet
odd heath
#

nah i can also just like

#

resolve that in half an hour myself

limber skiff
odd heath
#

but it needs to be reviewed anyway bleh

#

cuz the code wouldnt change much id just shuffle files around

austere talon
#

oh

#

add it separately for now

#

and bump extension

limber skiff
#

alright

austere talon
#

the refactor should sit in dev for a while so enough people test it

charred monolithBOT
limber skiff
#

vtest dev2

nimble pendantBOT
nimble pendantBOT
nimble pendantBOT
charred monolithBOT
limber skiff
#

almost

charred monolithBOT
limber skiff
#

I'll wait a lil bit and then push tag

odd heath
#

you should still merge refactor to dev methinks

charred monolithBOT
#

I develop and maintain a number of personal userscripts for browser-based Discord. These are, effectively, implementing something slightly more powerful than QuickCSS, capable of containing some dynamic logic and element injection.

I can't run these on current Vencord without reimplementing them as plugins, but this increases maintenance effort (I use the browser to save RAM when possible) for what are ultimately rather simple scripts, not particularly more complicated than oneko.js.

...

glass jasper
#

Hasn’t an idea like this be denied multiple times before

#

β€œQuickJS”

fossil inlet
gaunt bluff
gaunt bluff
#

Ohhh

limber skiff
#

so why are we husking extension bump now

gaunt lava
#

idk

glass jasper
limber skiff
#

i was waiting for possible bugs

glass jasper
#

Still tho thats why husk

gaunt lava
fossil inlet
charred monolithBOT
#

Content

Back in the days TeamSpeak had a feature which played a beep sound when you tried to speak while your microphone was muted.

Better Discord seems to have a plugin for that, but so far I haven't found one for Vencord.

I myself often forget that I am muted so I developed one.
If there is an interest, I'd create a pull request.

So far it supports:

  • custom base64 audio files for beep sound
  • setting for beep interval
  • setting ...
jolly egret
#

not for feature requests guhh

scenic brook
#

It's not even a feature request because they've created it already, this could just be a PR lol

elder plinth
#

the contributing guide does say to open an issue but thats on the now defunct plugin-requests repo and the link leads to a 404 so maybe they got confused

scenic brook
#

Fair

austere talon
charred monolithBOT
#

We considered something like this a while ago but decided against it for security reasons. users who want this should just build from source and add their script as a userplugin. Or in your case you can use a userscript manager. You can even even use vencord apis from it, vencord exposes all its apis as window.Vencord

Many users share their settings backups and sometimes people even ask strangers to send them theirs for whatever reason. This pr would turn that into a security hazard as s...

austere talon
#

should we merge the settings refactor into dev now?

charred monolithBOT
#

There are some situations where browser Discord is insufficient, so a userscript manager is not always available.

Secondly, after all the issues I've repeatedly had with various vague Node cryptography API breakage and so forth, I am extremely skeptical of "just build from source" as a statement in regards to any Node/NPM-based project.

This is not to mention that, as Discord is a moving target, a source build is also a moving target.
Do you have some reasonably deployable rebase-and...

jolly egret
#

screams "never used a dev build before outside of this PR"

#

theres measures in place that (as long as dependency changes don't happen) the updater can just git pull and rebuild for you lol

#

anyway voiding security of people all for this is dumb

limber skiff
#

I'm so annoyed by this 😭

austere talon
#

just make it faster, duh πŸ˜›

limber skiff
#

where's the logic

#

how do we go from 0.05 milliseconds to 7 milliseconds

austere talon
#

evil nuckyz

limber skiff
#

I didnt merge dev

#

πŸ˜›

charred monolithBOT
austere talon
#

i think i did it right

#

yeah

#

so we merge?

prime dew
charred monolithBOT
jolly egret
#

i was gonna say that

#

i was typing that actually

limber skiff
#

vext

nimble pendantBOT
limber skiff
#

@austere talon they are cooking so hardly

#

has anyone experienced discord freezing in chats

#

it's like the fourth time my client completely freezes out of no where

fossil inlet
#

On Windows I've always experienced random crashes, but that's with the stock client, so I figured that was just the issue.

jolly egret
#

i haven't restarted yet

#

actually did i?

#

can't remember but i haven't seen anything odd

charred monolithBOT
limber skiff
#

I have a feeling it's related to typing tweaks

#

it was changed recently no?

#

but it's so hard to debug because the whole client just freezes

austere talon
#

your theme?

limber skiff
#

client theme

austere talon
#

do u have any custom css

limber skiff
#

it's 100% a function looping infinitely

austere talon
#

wait does it freeze forever?

limber skiff
#

yeah

austere talon
#

ohhh

limber skiff
#

completely

austere talon
#

wtf

#

i thought u meant lag spikes

limber skiff
#

I cant even open devtools

#

no lol it's even worse

austere talon
#

yeah no i never had that

#

well try to replicate it with devtools open

#

then you can pause scripts

#

and see where it got paused

fossil inlet
#

@opaque silo when will electron fix the 30s hang when theres no notification daemon

austere talon
#

@opaque silo

glass jasper
#

Its like a ghost

charred monolithBOT
limber skiff
#

vtest dev2

nimble pendantBOT
nimble pendantBOT
nimble pendantBOT
charred monolithBOT
limber skiff
#

vtest dev2

nimble pendantBOT
nimble pendantBOT
nimble pendantBOT
charred monolithBOT
odd heath
#

time to check how bad the merge conflicts are

#

horror

odd heath
#

cool

#

fixed it blobcatcozy

glass jasper
odd heath
limber skiff
#

show what you mean

odd heath
#

one sec

#

margin20

limber skiff
#

yeah okay actually

#

the margin is too big

odd heath
#

yeah but

#

it works in other places with 20

limber skiff
#

I dont know how I didnt notice

odd heath
#

oh it doesnt

#

eww

limber skiff
#

but it should be decreased

odd heath
#

i could just put it to 8 in my pr and then you merge it Clueless

#

did that

limber skiff
#

better?

odd heath
#

yes

limber skiff
#

or should I make margin 12

elder plinth
#

this is why you should make every plugin with 100% components for custom margins Clueless

odd heath
#

but i think 8 is best

limber skiff
#

yeah no looks weird already

gaunt lava
limber skiff
#

ClientTheme color #101010

odd heath
#

and maybe review my pr if you have time pretty please :3

gaunt lava
limber skiff
gaunt lava
#

avatar is not rendering

limber skiff
#

errors look so bad...

#

my discord just froze again

odd heath
limber skiff
#

this is so bad

#

hold on this is bad rn

limber skiff
#

discord form components are so bad

#

we need to stop using them

#

like why does a switch have 20 pixels of bottom margin??

odd heath
odd heath
charred monolithBOT
limber skiff
#

looks good?

#

or increased gap betwen each setting

gaunt lava
odd heath
# limber skiff

i dont think the gap between title and subtitlew should exist

#

like this is husk

limber skiff
#

see that's another reason to stop using form components

#

they have so much random margin

odd heath
#

wasnt it completely fine before wires

limber skiff
#

@austere talon werent form components deprecated so long ago

#

this for example does not look like the switch we use

odd heath
limber skiff
#

the gap between the title and description

odd heath
#

ohhh

scenic brook
#

Settings modals without a save button feels wrong lol

glass jasper
#

Yk when that hits main should prolly post something about incase people ask about it

elder plinth
#

how does this change actually work. for custom components will it just call the setValue instantly instead of waiting for save to be pressed?

limber skiff
#

it will be breaking for third party plugins I think

#

custom components would already instantly save in most cases

elder plinth
#

oof if you validate a field and prune it you'll need to defer that now cause it'll be impossible to update the field otherwise

limber skiff
#

huh?

elder plinth
#

how would you even know when to validate a field now though. onclose?

elder plinth
# limber skiff huh?

like enforcing a syntax in a field and not saving otherwise. and clearing it if the syntax is wrong

#

guess I'll just have to try it and to see how it works

limber skiff
#

yeah try it

#

I dont have the answer on top of my head rn

elder plinth
#

it just calls the passed setValue for custom components right

limber skiff
#

you have to call it from your custom components

#

and it's debounced

elder plinth
#

yeah you pass it as a prop

limber skiff
#

so basically everytime your component calls setValue it will attempt to save

#

but it will save debounced so if you call it a lot it wont spam saving

#

you can have your custom component do parsing with a useState

#

and only call setValue when the parsing is successful

#

to then save the value

elder plinth
#

ok so does onChange still exist? if so then nothing really changes actually

limber skiff
#

yeh

elder plinth
#

you just have to be more careful about when you call setValue or it will call onChange and overwrite a field mid typing in it cause it's technically bad syntax

#

not that bad

limber skiff
#

not really

#

the way you implement a custom component it should never reflect the changes of the setting you are changing

#

the state which controls the field should never be overwriten by parsing

#

so what I'm trying to say is, even if you do call setValue all the time, it wont overwrite the field because the state should be different

elder plinth
#

looks like I actually only have one setting where this will be an issue

limber skiff
#

how does your validator works?

elder plinth
#

that will remove invalid options so if you're mid typing and it insta calls onchange due to attempting to save it then it'll yeet what you're typing wont it or am I missing something

limber skiff
#

where does it show the error

limber skiff
elder plinth
#

no error it just checks your list vs the current quests so it never gets too long and has outdated quests

limber skiff
#

you are using the wrong state

#

dont use for example

const { quests } = settings.use(["quests"]);

inside your component

#

use const [quests, setQuests] = useState(settings.store.quests)

#

on field changes always call setQuests and setValue

#

onChange will validate your quests and remove the invalid ones

elder plinth
limber skiff
#

setQuests will make sure your field remains intact so when the user finishes adding a proper quest, it will pass your validator and save it so settings

limber skiff
#

ignoredQuests and setIgnoredQuests

#

what is ignored quests? a list of ids?

elder plinth
#

comma list of quest names

limber skiff
#

what about your validator

elder plinth
#

nvm multi line list of quest names

limber skiff
#

is your validator something like this

elder plinth
#

validator checks if the quest still exists or if you've completed it or not

limber skiff
#

alright then it's similar

#

do your validation and set the parsed setting with settings.store

#

and it should work just fine

grave mangoBOT
glass jasper
#

Honestly one is the best I’ve heard lately

#

At least it’s not a clichΓ© Better_____

odd heath
elder plinth
#

originally named QuickQuests when it was just a shortcut to the quests page but then I had to rename it when I added a ton more and really wanted to avoid the Better_ syntax lol

elder plinth
odd heath
#

@gaunt lava why ghost ping me 😭

spark cove
#

@limber skiff are you alive

limber skiff
#

why?

spark cove
#

everytime i pnpm i on the vencord repo

#

my lockfile changes

#

my patchfile hashes differ from those in the upstream lockfile

fossil inlet
#

have you tried pnpm i --frozen-lockfile

limber skiff
#

oh rn I can't help, but make sadan can

#

πŸ˜›

spark cove
#

oo okay

spark cove
#

 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH  Cannot proceed with the frozen installation. The current "patchedDependencies" configuration doesn't match the value found in the lockfile

#

do u not have this issue @fossil inlet ?

fossil inlet
#

no

spark cove
#

ok imma see how the hashes are calculated

#

and ask u more questions in a sec

fossil inlet
#

i'd just compare the patches/lockfile to what's upstream as a starting point

#

also pnpm version

spark cove
#

well the actual patches

#

are the same

#

its just that when pnpm patches the modules i think the hash is hashing the post-patch code

fossil inlet
#

that's really weird

#

the upstream hashes look to be in a different format

spark cove
#

OH

#

oh

fossil inlet
#

@spark cove pnpm version

spark cove
#

ok then its prob a pnpm version

#

mismatch

#

lol

fossil inlet
#

pnpm seems to love breaking changes

#

(it actually annoys me so much)

spark cove
#

yea im on 9

#

imma hop on 10

fossil inlet
#

old versions refuse to do anything in some packages that have use newer versions

#

(including things like pnpm --version

spark cove
#

that sounds like a corepack thing

fossil inlet
#

(the error comes from fields added to the pnpm-workspace.yaml file that the olderversion doesnt know about)

#

something corepack should not be reading

spark cove
#

ohh lmfao

#

yea that amkes sense

#

THANK YOU

fossil inlet
#

the field is automatically added by newer versions for anything that has a "built" dependency

#

(most native things)

spark cove
#

i didnt even think to look at the old value

fossil inlet
#

love pnpm
but hate their constant breaking changes

spark cove
#

cus i just assumed same format diff hash

spark cove
#

i just realized they introduced a breaking change in the lockfile format without upping the lockfile version

fossil inlet
spark cove
#

yea fair

fossil inlet
# spark cove yea fair

it depends if the new version updates hashes to the new format even if the content didn't change

#

if it does then it's a breaking change

#

if not then it's not

#

(i think)

#

because afaik pnpm doesn't promise forwards compat

austere talon
#

plugin page used to use formswitch and it was really slow (would freeze for a second)

#

that's why i rewrote switch from scratch and switched to that

#

some of their settings indeed use a new component but not all

charred monolithBOT
#
[Vendicated/Vencord] New branch created: plugin-tags
#

Adds a tags field to the plugin definition where plugins specify one or more predetermined tags (like Accessibility, Commands, Shortcuts, Utility, etc) - Users will then be able to filter by these in the settings

We already have a tags field currently but it's just used for search aliases/keywords, so I renamed it to keywords.

I came up with the following list of tags for now, but this is subject to change:

Accessibility
Activity
Appearance
Commands
Customisation
Developers...
scenic brook
#

Plugin categories real

charred monolithBOT
scenic brook
#

I still run the categories thing I fucked around with a while back but I removed all the categories from the plugins because I couldn't be bothered dealing with merge conflicts everywhere forever lol, so it only really serves to filter user plugins now

austere talon
#

that layout is horrifying

#

why would you want 10 plugins in one row

scenic brook
#

Just fucking around

#

I kinda just stopped dead at one point so it is what it is, I don't go in there much

#

Six felt better back here

prime dew
#

4

scenic brook
#

If they had image banners four would be good

prime dew
#

True

gaunt lava
charred monolithBOT
limber skiff
#

I found this to be what looks the best

#

Ideally there shouldn't be that huge margin between the title and the subtitle, but we need to move away from form components to fix that

#

once again their random ass margins

#

@austere talon looks good?

austere talon
#

i never noticed the switches are not aligned

limber skiff
#

they aren't?

austere talon
#

that looks bad

#

horizontally

limber skiff
glass jasper
austere talon
limber skiff
austere talon
limber skiff
#

ohhh

glass jasper
limber skiff
# austere talon

wait until you realize that's how it looks in all discord settings

limber skiff
austere talon
#

probably cause so little margin

limber skiff
#

that makes sense

austere talon
#

they werent made to have such low margin

#

just dont use formswitch

limber skiff
#

that's the same margin we currently have

#

well, a bit less

#

added more margin in just the switches

austere talon
#

just stop using the formswitch

limber skiff
#

alright

#

I'll just make our own using our switch

#

more margin?

austere talon
#

that's better

#

and looks aligned

#

did you use our Switch

limber skiff
#

yeah

austere talon
#

nice

limber skiff
#

super easy lol

austere talon
#

i think that's good

limber skiff
#

what about stop using FormTitle and FormText

austere talon
#

why

limber skiff
austere talon
#

what else

limber skiff
#

the gap between the title and description is too big

limber skiff
austere talon
#

i mean sure

#

when are you speeding up ur patch πŸ˜›

limber skiff
#

I would if I knew how lmao

#

do you remember what's the text variant for the grey text

fossil inlet
#

just remove the patch, who cares about the plugin trolley

fossil inlet
#

test
-# thing

limber skiff
#

too bad there's no muted

#

I also can't find a variant that matches the current title...

#

so that's how they do it

#

😭

#

md medium with hardcoded style

fossil inlet
#

@limber skiff pass color: text-muted

#

to Text

#

try that

limber skiff
#

how does it looks now

#

@glass jasper do you still think it's too little gap?

glass jasper
limber skiff
glass jasper
#

First screenshot was better

limber skiff
#

the select components look so weird imo

limber skiff
glass jasper
limber skiff
#

with more gap it looks a bit better

glass jasper
#

Agreed

limber skiff
#

I could also just add a line under every setting?

#

or nah

#

nah

#

this is good

charred monolithBOT
limber skiff
#

@odd heath does your array settings have a name and description?

odd heath
limber skiff
#

alr

charred monolithBOT
limber skiff
#

just wanted to know if setting section name and description should stay required

#

I kept them required and added an inline option to the component

#

for settings like booleans

charred monolithBOT
limber skiff
#

last one I promise

charred monolithBOT
glass jasper
#

So what exactly does this change?

#

Like just the GUI?

limber skiff
#

they looked bad after the rewrite

glass jasper
#

??

limber skiff
#

we pushed a refactor earlier and it messed up settings a bit

#

this fixes the issues but also improves the layout as we were just discussing

#

nothing else

austere talon
#

they were always like this, no?

austere talon
limber skiff
limber skiff
austere talon
charred monolithBOT
limber skiff
#

it's nice but I also think we should potentially separate plugins in categories in the list

austere talon
#

how?

limber skiff
#

just categories which can be expanded and collapsed

#

we can put all the Better* plugins in Improvements or something for example

glass jasper
austere talon
bright island
#

adding the keyword "depressing" when a plugins code just looks sad

austere talon
#

mainly the tweak plugins that just alter some stock behaviour

#

idk if putting better* in one category is a good idea

#

we should just give them appropriate tags and make the tag filter accessible (as in not hide them in some menu but instead display them always)

bright island
#

are the keywords to help people find the plugins they want?

#

then i don't think making the Better* stuff have its own tag would be helpful, might just end up being annoying

austere talon
median rapids
#

is the waveform gen in the vm plugin the same as what the mobile client does?

brazen bone
charred monolithBOT
limber skiff
#

it was a bit too small but now it changes accordingly

umbral hedge
dusk blaze
umbral hedge
#

I wouldn't say no to it

#

only downside is apple is too restrictive, so any mac support would still have to do file patching

charred monolithBOT
hollow musk
#

arm on desktop just feels like it is in a weird state

charred monolithBOT
charred monolithBOT
#

Content

Plugins always translate from the original language to English.
This means that people from other countries cannot use them.
Discord plugins are typically used for themes and translations.
However, this leaves behind almost 50% of users who use them for translation.

This issue could be resolved by allowing users to select their preferred language.

Request Agreement

  • [x] I have read the requirements for opening an issue above
scenic brook
charred monolithBOT
charred monolithBOT
charred monolithBOT
woeful sleet
elder plinth
# woeful sleet A bit pedantic but would it be better for `developers` to be `development`? Does...

Accessibility Plugins βœ…
Activity Plugins βœ…
Appearance Plugins βœ…
Commands Plugins Hmm
Customisation Plugins βœ…
Developers Plugins ❌ -> Development Plugins βœ…
Emotes Plugins Hmm
Friends Plugins Hmm
Fun Plugins βœ…
Media Plugins βœ…
Notifications Plugins Hmm
Organisation Plugins βœ…
Privacy Plugins βœ…
Roles Plugins Hmm
Servers Plugins Hmm
Shortcuts Plugins Hmm
Utility Plugins βœ…

Hm I agree with Developers being better as Development. The others you mentioned and a few others feel a bit weird ( Hmm ) but I think that's mainly because they're plural forms. Also as you said they slightly semantically describe something different than the rest of the tags. πŸ€” But overall I don't think they're bad.

||Also Customiszation & Organiszation America||

charred monolithBOT
limber skiff
#

vtest dev2

nimble pendantBOT
nimble pendantBOT
nimble pendantBOT
charred monolithBOT
charred monolithBOT
elder plinth
#

Existing patch technically works it just has no effect cause Discord added a terniary operator. At least I'm assuming that's what the change was.

fossil inlet
elder plinth
#

well it has one now so I guess so lol

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
scenic brook
#

As if anyone's gonna read through smali

jolly egret
charred monolithBOT
charred monolithBOT
elder plinth
#

you can speed up videos like 10x but ntts just made a video on orbs and showcased the quest exploit script so inb4 discord finally patches it? SKULL_SKELETON

analog knoll
#

(from what I've heard), someone should keep an eye on the news here

austere talon
#

who would even install that

#

why -patched

dusk blaze
#

has "electron patches" whatever that means

limber skiff
#

you can always simply replicate what the client is doing

#

and javascript makes it so easy

elder plinth
#

surely they can patch the thing that allows you to send video progress reports 10x the speed that should be possible

#

guess it wouldnt matter much if you were still able to fake watching it at all

#

just would take longer to finish

analog knoll
odd heath
charred monolithBOT
charred monolithBOT
elder plinth
#

multiple people have mentioned adding the quest speedups to the plugin and I've always took it as a joke cause I don't want to ruffle Discord's feathers but now I'm wondering is it a joke? Should I genuinely add it? I suppose it isn't that much worse than fake nitro at the end of the day. Except instead of Discord losing out it's their advertisers πŸ€”

limber skiff
#

you could simply ask aamia to do it

#

@fringe basalt they made the snippet anyways

elder plinth
#

was just curious if it was too much for an official plugin

limber skiff
#

not in my opinion

#

is it possible to complete more than one quest at once?

elder plinth
#

aight. in other news I just learnt you can complete mobile quests on desktop. praise be

#

uh idk

limber skiff
#

that could be very interesting lol

elder plinth
#

get your account flagged in 1 easy step, complete all 7 open quests at the same time

fossil inlet
#

i also wouldn't feel comfortable putting that in a plugin

elder plinth
#

the speedups or specifically the multi at once

#

cause yeah I also wouldnt want the multi at once personally

fossil inlet
#

not worried about discord flagging it because you could have more than one client open at the same time

#

?remind 2 weeks make keybind api

shut vineBOT
#

Alright @fossil inlet, in 2 weeks: make keybind api

fringe basalt
elder plinth
#

Did you do exact testing to land on the 10 second max and 7 second values in your script? or were they just ballparks

charred monolithBOT
#

add auto-skip (video.currentTime = video.duration) :trollface:

That would be unreliable. Discord tracks the timestamp of accepting the quest on the server, and doesn't allow you to send a video timestamp greater than (now - start) + 10s. I.e. your code would only work properly if you waited out the video's duration before running it.

fringe basalt
#

the 7s is just how often the client sends it

elder plinth
#

can I use some logic from your script and add you as an author so I dont have to do a bunch of my own testing

charred monolithBOT
#

On newer Android versions, some ColorDrawables are cached too early, or preloaded such that Themer can't hook setColor for them. One such noticable colour is the main background.

This PR adds a new patch for loadDrawable and sets the colour there. loadDrawable normally finds the ColorDrawable in cache, or if it doesn't exist would eventually lead to ColorDrawable.setColor.

limber skiff
#

rare aliucord plugins pr

fringe basalt
fossil inlet
#

why is the first character times new roman 😭

fringe basalt
#

it would have to be updated too often

fringe basalt
fossil inlet
elder plinth
#

how much of it changes often? does the video speed part change a lot?

fossil inlet
#

i need to make some plugin that normalizes names

fringe basalt
#

for example all quests used the taskConfig field until like 1-2 weeks? ago where newer ones started using taskConfigV2 instead

fossil inlet
elder plinth
#

hmmm

fringe basalt
fossil inlet
#

yeah

elder plinth
#

showmeyourname fix sitting there in shambles

fringe basalt
fossil inlet
elder plinth
#

yeah I just added an option to make that work on desktop

elder plinth
fossil inlet
#

oh

#

yeah i saw that pr

glass jasper
#

-# Tbh this whole time this Quest plugin as seemed more of a userplugin to me anyhow

elder plinth
limber skiff
#

the feature to disable fetching quests is kinda useless tbh

fossil inlet
elder plinth
#

if you want to completely dequest then not really

#

there's another option to disable the popup above your profile area so it is sorta kinda redundant

limber skiff
#

yeah

#

and it breaks the quests page

elder plinth
#

all it does it makes no quests appear, right?

limber skiff
#

in your pr desc you said it broke

elder plinth
#

huh

fringe basalt
#

if you want to get rid of the quest popups while keeping quests functional then just do something like thisjs FluxDispatcher.addInterceptor(function(event) { if(event.type === "QUESTS_FETCH_CURRENT_QUESTS_SUCCESS") { event.quests.forEach(x => x.config.features = x.config.features.filter(y => ![1,3,8].includes(y))) } })

elder plinth
#

I just patch the popup to not show

#

plus the same popup is used for progress tracking

jagged reef
elder plinth
#

so you need to check for that

elder plinth
fossil inlet
elder plinth
#

it's an option you wouldnt turn on unless you were already turning everything else on. not really necessary I guess but also not detrimental Shrug

limber skiff
#

ahh I must remember wrong then

elder plinth
fossil inlet
#

it still needs work to be pretty i'd say

elder plinth
#

huh? looks great imo

fossil inlet
#

ran into some issues with it

elder plinth
#

explain blobcatcozy

fossil inlet
#

test

elder plinth
#

very helpful thanks

limber skiff
#

😭

#

truly a bug report

fossil inlet
#

sorry

#

@elder plinth why is everything !important

#

this will make thing a pain for themes to style

elder plinth
#

some of them needed it and I lost track of which ones did at some point and started putting it on everything blobcatcozy

elder plinth
#

ill go through at some point and see which ones actually need it then 😭

glass jasper
#

Bro just had to make that comment

elder plinth
#

real

#

btw how did we go from you telling me the settings didnt look nice to this

fossil inlet
#

just found some weird styling things

elder plinth
charred monolithBOT
elder plinth
#

oof that was definitely copilot autofilling for me.

charred monolithBOT
elder plinth
#

oh the settings page supports light mode. agony

fossil inlet
elder plinth
#

huh

elder plinth
#

or anyone else that knows what he means

fossil inlet
#

lc.wiki noop

rancid idolBOT
# fossil inlet lc.wiki noop

In computer science, a NOP, no-op, or NOOP (pronounced "no op"; short for no operation) is a machine language instruction and its assembly language mnemonic

fossil inlet
#

@astral birch fix html encoding not being decoded

elder plinth
#

it does do something though?

#

it adds a feedback prop

#

I patch it in. but the default component doesnt have it

#

and so the type hinting gets mad at me without this

fossil inlet
elder plinth
fossil inlet
#

insane

elder plinth
#

why

charred monolithBOT
austere talon
#

aliucord jumpscare

charred monolithBOT
charred monolithBOT
#

add auto-skip (video.currentTime = video.duration) :trollface:

That would be unreliable. Discord tracks the timestamp of accepting the quest on the server, and doesn't allow you to send a video timestamp greater than (now - start) + 10s. I.e. your code would only work properly if you waited out the video's duration before running it.

yeah, that was before I knew about your script. for some reason resending a enroll request but changing the platform to be something invalid (I...

jolly egret
#

When are you pushing the fixes for irccolors and showmeyourname?

#

they have been broken on stable for days now with suitable fixes waiting for deployment

limber skiff
#

it's waiting a bit because settings refactor go along with it

austere talon
#

we can probably release it

#

maybe tomorrow (EU) morning

#

I'm gonna sleep very soon

#

so in like 10 hours or so

olive aurora
#

huh im on dev and smyn is broken

#

or is it a PR

elder plinth
#

I have a PR open for it

charred monolithBOT
elder plinth
#

have these always been a thing? cause ive only started noticing them recently

limber skiff
#

click the filter

elder plinth
#

ah that's ModalImageClasses

#

which it seems nothing uses

limber skiff
#

merge dev

#

I removed that already

elder plinth
#

surely it'll make it to main eventually

limber skiff
#

why does that matter tho

elder plinth
#

wdym

#

why does what matter

#

making it into main?

#

cause I base my stuff off main

#

cba to switch to dev

fossil inlet
#

Sometimes fixes take a while to get into main

charred monolithBOT
kindred tree
#

this would also be cool

toxic forge
#

kagi

austere talon
#

we're lucky that didn't cause any crashing

#

the original

charred monolithBOT
austere talon
#

high vulnerability
look inside
build tool config is "vulnerable" to denial of service

#

if you're running untrusted code as build config you have deeper problems

#

why are the headings so small @limber skiff

#

Authors and Settings

#

i will make them bigger

charred monolithBOT
austere talon
#

also I agree with using Text over Forms @limber skiff

#

I used it in this commit

#

it's nice that you can easily choose which variant you need

#

so good

#

vtest dev

nimble pendantBOT
elder plinth
#

what's _oldChildren for in the smyn patch? πŸ€”

nimble pendantBOT
nimble pendantBOT
austere talon
elder plinth
#

is there a reason you can't just remove the entire terniary and return only the function result

#

just curious what I might have accidentally broken with my patch by doing that. seems fine so far but idk

#

πŸ€”

austere talon
#

without having to match it

elder plinth
#

I didnt lol

#

match: /(onContextMenu:\i,children:)[^}]+}[^}]+/,

#

mm I see my method removes the data-text though

austere talon
#

:P

#

case in point

#

this is why you don't try to match it

elder plinth
austere talon
#

lol it puts it in the html that's funny

scenic brook
#

You need to patch data-text as well anyway for the hover glow to match the added/reordered names on gradient roles

elder plinth
#

gradient works fine for me without

#
match: /(onContextMenu:\i,children:)[^"]+/,
replace: "$1$self.renderUsername(arguments[0]),"

πŸ€”

elder plinth
#

works

scenic brook
#

It won't if you put the other name first

austere talon
#

that is terribly unsafe and will eat up an arbitrary amount of code if they ever change the code

elder plinth
#

:)

austere talon
#

if they remove "data-text" you will eat half the module

elder plinth
#

I suppose I should redo a lot of my patches that rely on [^}]+ then huh

scenic brook
#

Here the glow is emitting based on the display name from the start but that's not the correct text

elder plinth
#

it's just so convenient

scenic brook
#

It's the wrong text, the glow doesn't match the chars and extends past the username

#

It's more noticeable when the display name has an emoji

elder plinth
#

what should I be noticing in the second one

scenic brook
#

The glow is for the text "Kerla 🌈" but is displayed behind "foreverkara"

#

I don't really know how else I can describe it

elder plinth
#

oh you want the glow on kerla?

#

it just makes sense to me the first listed name would always get the gradient

scenic brook
#

It's just weird to have an arbitrary glowing shape behind the text that doesn't match the characters

scenic brook
elder plinth
#

oh I thiink I accidentally killed the glow in my smyn pr which is why I havent been understanding

scenic brook
#

If you were patching out data-text then yeah you will have done lol

elder plinth
#

mm yeah lol

scenic brook
#

Anyway it's not a huge deal, was just meant to be a passing comment lol

elder plinth
#

oh yeah I changed the order and the glow is fucked

#

so data text needs to be patched too

#

ugh

scenic brook
#

That's why my PR extracts getting the different names into its own function, so I could use it in both the actual name component and the data-text

#

The patch in that PR won't work anymore but eh

elder plinth
#

so does the glow only extend for however far the data text is

#

so if I want the glow to extend for multiple names stacked I gotta return the whole string formatted hmm

scenic brook
#

Yeah it's just used by this :after

elder plinth
#

hmm weird ive somehow broken it so the glow stops before the last name

#

wtf it's cause of @ in the data-text

#

even encoding it @ isnt working

elder plinth
#

guess I'm just .replaceing @ to a lol

charred monolithBOT
jolly egret
#

let's go finally

dusk blaze
austere talon
scenic brook
#

How can you live without fart plugin

dusk blaze
#

and splattie will not be online for years

jolly egret
#

VEN HOW DO I GET FREE NITRO

limber skiff
#

I guess we could even recreate the text component with more variants

#

or easier color management maybe

charred monolithBOT
limber skiff
#

imo it's good to stop relying on webpack finds for settings

austere talon
#

oh from scratch?

#

I mean i guess but that's a lot of work

#

have fun reimplementing the interactive components especially

#

switch etc

limber skiff
#

I mean we got the switch already lol

limber skiff
#

their text already supports color lol

charred monolithBOT
jolly egret
#

crazy how we still haven't fixed this yet

#

though isn't this a show me your name thing

olive aurora
#

is it

#

i have twemoji installed globally so i would never notice

fossil inlet
#

i've never managed to get a working twemoji install

austere talon
#

you can just use a css snippet it's way easier

#

use mine it still works

fossil inlet
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
fossil inlet
#

should be compatable with stable

limber skiff
#

just remove the limit from the look behind

gritty iris
#

@granite sky why did you do ChannelStore.getChannel(this.getChannelId()) when you could just use getCurrentChannel()? they both do ChannelStore.getChannel(SelectedChannelStore.getChannelId())

granite sky
#

Lmao

gritty iris
granite sky
#

Couldn't find this method

gritty iris
granite sky
#

Will look again in a few minutes

gritty iris
#

its from discord

#

import { getCurrentChannel, getIntlMessage } from "@utils/discord";

granite sky
#

Thanks

gritty iris
#

mhm

austere talon
#

that file is from vencord 😭

#

it's called discord cause it's utils for getting discord data

austere talon
#

canary πŸ‘οΈπŸ‘ƒπŸ‘οΈ

jolly egret
#

again? great!

charred monolithBOT
austere talon
fossil inlet
austere talon
#

yeah

#

it's text area

fossil inlet
#

old one is 921227

#

guhghhh

austere talon
#

they converted it to a function component

fossil inlet
#

yeah figured

#

it looked like the old module id was just a empty wrapper

#

this works but it sucks

#
findComponentByCode('"aria-labelledby":null!=(')
austere talon
#
findComponentByCode(".error]:", ".inputWrapper", '"input"')
fossil inlet
#

yeah