#👾-core-development

1 messages · Page 93 of 1

agile gull
#

nie masz vdolców trolley

agile gull
azure jay
austere talon
#

WANNACRY-OPS???

lime stone
# charred monolith

I realise that but surely undefined is preferred in modern js? (and I assumed you got this from copying Discord code trolley )
It's not a big deal and the code looked pretty good to me so i approved :P

lime stone
lime stone
#

i can't seem to resolve it cat_sob

austere talon
lime stone
#

you do it then :P

olive barn
#

is it possible to get esbuild to ignore readme.md in userplugins

nvm fixed by putting it in .github

austere talon
#

also technically u can still override undefined now trolley (but that's not why)

lime stone
#

i find essentially casting 0 to undefined a bit weird as primarily a user of other languages such as Java and C++ lol

olive barn
#

tired of copying plugins between machines so im making it a git repo

lime stone
#

I know (void)[thing]; works in c++ though

lime stone
#

😎

austere talon
#

/run ```js
console.log(void undefined)

vital lionBOT
#

Here is your js(18.15.0) output @austere talon

undefined
austere talon
#

so good

lime stone
#

js has too many quirks lol

austere talon
#

i mean void is actually useful

lime stone
#

or maybe not enough

austere talon
#
if (stuff) {
    thing()
    return
}``` vs ```js
if (stuff)
    return void thing()
#

return thing() doesn't guarantee the return value is void

#

or you can pretend you're a C developer 🔥

void function lmao() {
}```
#

(this immediately discards the function, very epic)

lime stone
#

/run

#include <iostream>

void myEpicFunction();
const char *myEpicFunctionWhichReturnsACoolThing();

int main() {
    myEpicFunction();
    return 0;
}

void myEpicFunction() {
    return void(myEpicFunctionWhichReturnsACoolThing());
    std::cout << "This code doesn't run 😎";
}

const char *myEpicFunctionWhichReturnsACoolThing() {
    std::cout << "🚎\n";
    return "very cool";
}
vital lionBOT
#

Here is your c++(10.2.0) output @lime stone

🚎
lime stone
#

oh, i got confused lmao

#

yay

#

so looks like the void cast in c++ works pretty similar trolley

#

however, js is weirder as you can actually use the value of void x

austere talon
#

yeah but it's always undefined

lime stone
#

it feels like javascript was designed to have enough different nulls to keep the programming from being bored

#

null, undefined , void 0

#

are there any more?

#

lol

austere talon
#

0

#

wait will you find out about go default values

lime stone
#

(average vencord-dev conversation)

austere talon
#

it's funny

olive barn
#

can plugin-author-modal have dev merged into it

#

also how will cobu links work, since theyre not in discord connections

austere talon
#

they won't

#

idk if I wanna add hardcoded connections

#

imo website is enough

#

codeburger

charred monolithBOT
austere talon
#

should probably also only add if crash.date is recentish?

verbal pumice
#

or just include the date in the message

turbid hatch
#

does date actually work?

#

it's not set on a manually triggered crash so i dont know

#

@austere talon @verbal pumice

austere talon
#

idk bleh

austere talon
charred monolithBOT
tawny cipher
#

merge branch main into main

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
frosty cliff
#

i wouldve personally hit you

#

if you were insulting go

austere talon
#

hmm maybe it should be a separate file to load less unnecessary json

lime stone
#

what is this?

austere talon
#

plugins.json

lime stone
#

:o

austere talon
#

so we can have proper docs for plugins

#

instead of just the super basic description

lime stone
#

oh my god i typed [bad site] instead of vencord.dev

austere talon
#

thats more like it

lime stone
austere talon
#

this is purely for consumption by vencord.dev

#

not for end users

lime stone
#

still seems more logical

austere talon
#

u can already find it here

frail skyBOT
#
Bad Patches

IgnoreActivities (had no effect):
ID: 215965
Match: /!([A-Za-z_$][\w$]*)(\)return null;var [A-Za-z_$][\w$]*=([A-Za-z_$][\w$]*)\.overlay.+?children:)(\[.{0,70}overlayStatusText.+?\])(?=}\)}\(\))/

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 resetSocketOnError Cannot access 'Lde' before initialization
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
austere talon
#

hi reporter

lime stone
#

yay

frail skyBOT
#
Bad Patches

IgnoreActivities (had no effect):
ID: 215965
Match: /!([A-Za-z_$][\w$]*)(\)return null;var [A-Za-z_$][\w$]*=([A-Za-z_$][\w$]*)\.overlay.+?children:)(\[.{0,70}overlayStatusText.+?\])(?=}\)}\(\))/

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 resetSocketOnError Cannot access 'Lde' before initialization
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
charred monolithBOT
lime stone
#

yeah i'm tired but you seem to have the right idea (and you actually know what you're talking about lol)

#

i only took a brief look at vencord.dev's repo :p

austere talon
#

the double header is a bit silly

#

oh god

#

thats more like it

#

@turbid hatch

charred monolithBOT
#
[Vencord/vencord.dev] New branch created: plugin-readmes
turbid hatch
#

looks fire

charred monolithBOT
#

this is already mergeable now technically, but will likely need more adjustements to the css in the future for additional markdown features like ul/ol, etc

right now, ThemeAttributes and ServerProfiles are the only plugins that have a README, so writing README for more plugins would be the next step after merging this

image

austere talon
#

i think the header undrline is not muted enough

#

rate the name

turbid hatch
#

lmao

charred monolithBOT
austere talon
turbid hatch
#

use color-mix NOW

austere talon
#

wtf is that

#

too soon....

charred monolithBOT
#

Deploying with  <a href="https://pages.dev"><img alt="Cloudflare Pages" src="https://user-images.githubusercontent.com/23264/106598434-9e719e00-654f-11eb-9e59-6167043cfa01.png" width="16"></a>  Cloudflare Pages

<table><tr><td><strong>Latest commit:</strong> </td><td>
<code>660e71c</code>
</td></tr>
<tr><td><strong>Status:</strong></td><td> ✅  Deploy successful!</td></tr>
<tr><td><strong>Preview URL:</strong></td><td>
<a href='https://573d1c31.vencord-website.pages.dev'...

turbid hatch
#
--light-fg0-muted: color-mix(in srgb, var(--light-fg0) 40%, transparent);
#

smh

austere talon
#

wtf is that

turbid hatch
#

it mixes the color

#

with 40% transparency

austere talon
#

anyway

turbid hatch
#

(aka 66 in hex)

austere talon
#

pr is mergeable i think

turbid hatch
#

probs

austere talon
#

tho we will have to retouch it later

#

to style more elements like ul/ol, hr, blockquote, etc etc

turbid hatch
#

might as well get started with it

#

rn

#

and then add as needed

austere talon
#

or we could go the lazy route and just

#

20kb css

turbid hatch
#

maybe

austere talon
#

but will look basically identical to github markdown

turbid hatch
#

we'll see

#

i'll have the effort to put into it at some point xd

austere talon
#

i mean i just did the basics

#

copy pasted this shit from the thing i just linked lol

#

immediately looks decent enough

turbid hatch
#

heh

austere talon
#

i hate the :global spam

#

but i dont think theres a better way

#

cause of the set:html

#

i used marked btw

#

idk if theres anything better, marked seems decent and was super easy to setup

#

idk what this is supposed to mean

turbid hatch
#

its the same as what svelte does

austere talon
#

should markdown output not be safe by design?

turbid hatch
#

markdown can include html

#

marked does not do any sanitisation

austere talon
#

hmm

turbid hatch
#

it can also include script tags

austere talon
#

well it's fine since we have full control over the markdown

turbid hatch
#

github markdown does not permit this however

#

so it would render as plaintext on github

#

and we'd immediately see it

austere talon
#

i mean

turbid hatch
#

alternatively

austere talon
#

its not like xss on vencord.dev would matter

#

since the site is only content

turbid hatch
#

you can use @bots-gg/markup which is what we use

austere talon
#

bots-gg SKULL_SKELETON

turbid hatch
#

which is based on marked but has a strict subset of whats allowed to be rendered

austere talon
#

oh wait

#

idk what i was smoking i thought of botlabs for some reason

#

but bots-gg are the homies...

turbid hatch
#

lmao

#

yeah we open sourced our lib just cause

#

but it contains sane defaults

#

its a combo of marked, xss, and highlightjs

#

and parse5

austere talon
#

anyway i dont think thats necessary

turbid hatch
#

and stylis

#

xd

austere talon
#

since we have full control over the markdown

#

we will have to see long term if this is a good idea

#

since this json might become pretty chonky

#

but it's all done on the server anyway

turbid hatch
#

well its only used to generate the pages

#

i dont think it matters

austere talon
#

the user gets sent finished html

turbid hatch
#

worst case scenario

#

is you static render it

#

unless it already is

#

i dont remember

austere talon
austere talon
#

with 1d cache

turbid hatch
#

ah

#

you can do combo ssr+ssg which is nice

austere talon
#

yeah but id rather not

turbid hatch
#

though it does get a bit weird when they fall out of sync

austere talon
#

1d cache is good imo

turbid hatch
#

ye

austere talon
#

readme updates arent that important

#

we will still have to see how we can display the markdown in client

#

probably iframe vencord.dev

turbid hatch
#

eh.

#

maybe, but we could also just use marked again and substitute h1/h2... with react components

#

we shall seeeeeeeee

austere talon
#

it will duplicate h1

turbid hatch
#

append an extra # to every header

#

:^)

austere talon
#

but like...

#

github is not bothered either

turbid hatch
#

i dont think anyone really cares for header semantics anymore

austere talon
turbid hatch
#

yeah lol

austere talon
turbid hatch
#

i mean you can see they have loads of accessibility things that they add

#

they just dont do it in tags

austere talon
#

yeah ok

#

i mean tbf getting headers right with component librarries is very hard

#

unless u use a context based Header component

turbid hatch
#

also multiple h1s is actually fine

#

<section>s can have their own h1s

austere talon
#

is that so

#

that makes sense

#

we could change it to article

turbid hatch
#

according to w3c

#

"a section is a thematic grouping of content, typically with a heading"

#

articles work the same im fairly sure

austere talon
#

i change to article

#

The article element represents a complete, or self-contained, composition in a document, page, application, or site and that is, in principle, independently distributable or reusable, e.g. in syndication. This could be a forum post, a magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or any other independent item of content. Each article should be identified, typically by including a heading (h1–h6 element) as a child of the article element.

#

thanks vscode

charred monolithBOT
turbid hatch
#

anyway me sleep

austere talon
#

good night!!

#

shoud li just merge?

#

and start migrating plugins

median rapids
#

you will migrate to revolt

austere talon
austere talon
median rapids
#

then guilded staging instance

austere talon
#

oh wait i didnt check mobile support

#

looks fine

olive aurora
#

gotta account for vendroid users

austere talon
#

interesting images

#

yeah mobile support looks good!!

median rapids
#

W

#

sleel

austere talon
#

nooo lewi went to sleep without answering me

#

its so over

median rapids
#

your turn

austere talon
#

soon

median rapids
#

husk

austere talon
#

step 2 would be also adding plugin banners

#

then we can display them in both the cards and link embed

#

well that was a lie

austere talon
#

btw @median rapids u overcomplicated ur pr

#

u dont need this

#

GUILD_MEMBERS_REQUEST chunks for u

charred monolithBOT
median rapids
mortal fractal
#

lol theres finally a usercss pr when im the only person who writes usercss themes

austere talon
#

bd is planning to add (/ migrate entirely to ?) usercss

mortal fractal
#

interesting

austere talon
#

idk if im supposed to be publicly sharing this actually

mortal fractal
#

🚰

austere talon
#

well i dont see why it'd be secret

median rapids
#

it would probably be better if i add another patch to implement nonces in discord's code

#

instead of blindly sleeping like this

austere talon
median rapids
#

betterdiscor

mortal fractal
#

surprised they wrote their own parser

#

cause i just hacked together a way with usercss-meta

austere talon
#

something something bloat

mortal fractal
#

i know

#

im just fucking lazy ms_slight_smile

austere talon
#

how is that shit 13kb

#

tf they got in there

mortal fractal
#

theres so much shit i need to eventually fix but probably will never have the care to or be able to

cedar vessel
#

is anyone else having truble woth vencord

austere talon
#

it's so pixely and looks low res

mortal fractal
cedar vessel
#

ok

charred monolithBOT
charred monolithBOT
woeful sable
#

I'm trying to make a plugin, are there any docs or something to get started?

charred monolithBOT
woeful sable
#

thanks

charred monolithBOT
woeful sable
cunning canyon
#

no

mortal fractal
#

wdym

#

adding new codecs, not possible

#

detecting mimetypes, yes, theres a module in discord

woeful sable
#

Is there anyway to change the video player?

#

Like the built-in discord player

mortal fractal
#

technically yes but glhf

woeful sable
#

so it's gonna be hard asf 😭?

mortal fractal
#

to someone with no experience yes

woeful sable
#

So I could theoertically embed a different video player which could support more codecs no?

mortal fractal
#

no because you cannot add new codecs purely in javascript afaik unless theres some wasm black magic going on

austere talon
#

what r u trying to do specifically

woeful sable
mortal fractal
#

unless you know chromium supports a specific codec and discord is just not embedding it because their media proxy doesnt

austere talon
#

h265

woeful sable
#

yea

#

I always forget which one it is they don't support

mortal fractal
#

yeah that cant be done in pure js and would need support in chromium/electron

woeful sable
#

Chromium supports hevc though?

austere talon
#

no

mortal fractal
#

prob not in the version discord ships electron with

austere talon
#

(delusional)

woeful sable
#

wouldn't that lose quality though

mortal fractal
#

do not run wasm ffmpeg in the browser

austere talon
#

H.265 [Google Chrome only and only where supported by the underlying OS]

#

electron uses chromium not chrome

mortal fractal
#

116

#

electron 25 is on 114

#

(which is what vesktop uses)

#

oh 107 was earliest hm

woeful sable
#

🤔

austere talon
#

it's not supported on chromium

mortal fractal
#

that too

#

if anything we just need apple to stop using HEVC and HE-AAC

#

(impossible)

austere talon
#

hevc sucks

woeful sable
#

so the only way to do it is converting the video

austere talon
#

wait it also says h264 is chrome only??

#

how

woeful sable
#

huh

mortal fractal
#

it isnt truly native builtin

austere talon
#

ff?

mortal fractal
#

firefox

austere talon
#

this is chromium spec thingie

mortal fractal
#

oh

austere talon
#

silly

#

i was saying in what world does chromium hot have h264

mortal fractal
#

prob the same licensing issues they have with hevc

austere talon
#

I swear it does, ive been daily driving it for ages and never had issues

mortal fractal
#

or it prob does

#

it most likely does since im pretty sure half the mp4s on discord are h264

woeful sable
#

they are fs

austere talon
#

yeah and like most streaming sites use h264

#

chromium works flawlessly for me with those sites

woeful sable
#

tiktok the only site I know that has h265 for some videos

mortal fractal
#

yeah but its not default and prob only served to ios users

woeful sable
#

it's not served to anyone

austere talon
#

and Cisco Systems pays royalties to MPEG LA on behalf of the users of binaries for its open source H.264 encoder openH264

#

lol???

#

cisco made an open source encoder and went yeah man ima pay for everyone's bill

#

also obligatory reminder that software patents are cancer

woeful sable
#

holy fire

austere talon
#

why is cisco doing that

#

i mean it's kinda cool but also why

woeful sable
#

they are elon musk

austere talon
#

simply use open codecs

#

fuck patents cat_disguise

mortal fractal
woeful sable
#

or just allow all codecs 👍

austere talon
#

you cannot

#

blame the people who made the codecs and put cancerous patents and royalties on them

#

not the people who make your software

woeful sable
#

right

#

if anyone ever makes that plugin spam ping me (I quit it seems too hard)

mortal fractal
#

if you want to run ffmpeg in the browser, go ahead, but its going to be slow as fuck

austere talon
#

why do u even need it

#

who tf sending h265 on discord

woeful sable
#

my friends who download h265 tiktoks

austere talon
#

??

mortal fractal
#

ive ran into more HE-AAC videos than i have HEVC videos

#

cause fucking ios telegram users

woeful sable
#

telegram my favorite website

austere talon
woeful sable
#

don't block me please I use an iOS device

austere talon
#

blocked

mortal fractal
#

no its friends reuploading shit from meme channels

austere talon
#

lmaoo

woeful sable
austere talon
#

punish ios users by spamming non opus voice messages

mortal fractal
#

i just throw them into ffmpeg and reupload them

austere talon
#

id do the same

mortal fractal
austere talon
#

oh right was it that webms don't embed on ios

mortal fractal
austere talon
#

why tf not? the format is literally free crapple just needs to add library and done

woeful sable
#

is there already a plugin for embedding from discord cdn? (like so it doesn't show the url)

mortal fractal
#

thats stock discord? (minus videos)

#

im of the opposite where i want the urls so

woeful sable
#

I meant vidoes yea

mortal fractal
#

@austere talon did i ever tell you the endpoint for external rich presence assets has no mime checks

mortal fractal
#

so you can just make proxied urls for anything

#

and i abuse this for embedding external audio

woeful sable
#

interesting

#

has discord ever taken down this server? or they just don't care

mortal fractal
#

they dont care

#

they just have clauses in the tos just so no one can sue them over it

woeful sable
#

mhh I see

mortal fractal
#

theres been a few petty incidents of people getting banned but its user stupidity except for one

austere talon
#

banning client modders would be shooting themselves in the knee

mortal fractal
#

just dont gloat about experiments in front of staff thumbsup

austere talon
#

banning all your power users is a great way to hurt your platform

mortal fractal
#

or at least i have in the past

austere talon
#

not to mention client modders probably are proportionally a massive part of their nitro subscriber base

mortal fractal
#

ironically enough

woeful sable
#

Yeah

austere talon
#

and yeah it's not like they would gain anything from banning modders llameow

austere talon
mortal fractal
woeful sable
#

what the

mortal fractal
austere talon
#

like ive talked to a bunch of staff with them well knowing i use client mods and they do not give a single fuck

mortal fractal
#

its less of a stigma nowadays yeah

#

considering we have some evidence that some staff use mods

austere talon
#

there are still multiple discord staff in the Aliucord server

#

they've been there for ages

#

they are aliucord users (real)

mortal fractal
woeful sable
#

what's the worse client

austere talon
#

also tons of staff are very friendly with modders lmao

austere talon
mortal fractal
austere talon
#

the objective answer is they all suck uninstall discord immediately

mortal fractal
#

and the one i cannot say

#

but thats just cause its malware and the dev is a nonce

austere talon
#

avoid the mod called "vencord" it's very bad

woeful sable
austere talon
austere talon
#

blue or thomiz

#

thomiz always just seemed weird to me

#

so probably blue

woeful sable
#

I use armcord

austere talon
#

|| armcord is just lightcord continuation ||

#

but don't tell the common folk that

#

you trollface react but it actually is

woeful sable
#

How?

austere talon
#

fridge the armcord guy used to be lightcord maintainer

#

but armcord is actually good

#

i love legcord

woeful sable
#

leg cord?

austere talon
#

it's like armcord but for people who don't have arms

mortal fractal
#

webcord is amusing to me because its like, full paranoia mode

woeful sable
#

wait does discord support the new markdown everywhere now?

mortal fractal
#

yes

woeful sable
#

the hyperlinks too?

mortal fractal
#

yes but i think theres an automod rule

#

i know theres one for headers

woeful sable
mortal fractal
#

ok theres not

austere talon
#

webcord is just paranoia embodied as a discord client

mortal fractal
#

they try to not have spoofing links but not hard enough

austere talon
#

how tf do you inject style sheets without html

#

does he mean by using electron api

#

that injects user agent style

mortal fractal
woeful sable
austere talon
#

not really

#

it still shows the warning alert

mortal fractal
#

theres already a psa twitter post going around ms_slight_smile

woeful sable
mortal fractal
#

cant wait for cf to detect me as a bot from using webcord

austere talon
#

webcord has so many pointless security measurements

mortal fractal
#

oh god its worse in this other file

austere talon
#

the code is so unreadable

mortal fractal
austere talon
#

the directory structure and filenames are horrid and the code is also pretty weird

mortal fractal
#

safe storage encrypting css

austere talon
#

yeah he does so many weird things

mortal fractal
#

Loads unpacked Chromium extensions from {userData}/Extensions/Chromium.

#

loading vencord in webcord HahaYes

austere talon
#
/* Makes all CSS variables and color / background properties
                 * `!important` (this should fix most styles).
                 */
mortal fractal
#

why

austere talon
#

that's from webcord lmao

mortal fractal
#

ik

#

i saw that

austere talon
mortal fractal
austere talon
#

another weird thing is that he lazy imports everything

#

???

mortal fractal
#

??????

#

you love

#

dolfies wants me to add this into vencord's

austere talon
#

i was gonna do that but got lazy

#

vencord's still needs some fixing anyway

#

i didnt account for the fact that discord is stupid so banners can be any resolution

#

also the friends scroller is kinda scuffed

#

I had a lot of trouble making it not overflow

#

cause i don't use modalcontent since modalcontent makes the entire modal scrollable

mortal fractal
#
const guildExperiments = new Map();

// ...

const registeredExperiments = Flux.useStateFromStores(
  [ExperimentStore],
  () => ExperimentStore.getRegisteredExperiments()
);
const cachedGuildExperimentDescriptors = Flux.useStateFromStores(
  [ExperimentStore],
  () => ExperimentStore.__getLocalVars().cachedGuildExperimentDescriptors
);

if (!guildExperiments.has(guild.id)) {
  const experiments = new Map();

  for (const key of Object.keys(cachedGuildExperimentDescriptors)) {
    if (!key.startsWith(guild.id)) continue;
    const desc = cachedGuildExperimentDescriptors[key];
    if (!desc?.bucket) continue;

    const expKey = key.split(":")[1];

    const exp = registeredExperiments[expKey];
    const bucket = exp.buckets.indexOf(desc.bucket);

    experiments.set(
      expKey,
      `\x1b[32m${exp.title}\x1b[30m (${expKey})\x1b[39m\n\u2517 ${
        exp.description[bucket] ??
        `<bucket ${desc.bucket}, no longer in client>`
      }`
    );
  }

  guildExperiments.set(guild.id, experiments);
}
#

you're going to hate mine because i replicate the profile modal

austere talon
#

I mean same

mortal fractal
#

to the point of ive made the worst thing ever to ensure i have the classnames

austere talon
mortal fractal
austere talon
#

look at the Screenshots

mortal fractal
#

We can’t connect to the server at plugin-readmes.vencord-website.pages.dev.

#

firefox dns caching moment

#

i hate that it has its own separate cache

austere talon
mortal fractal
#

nope still not working wtf

austere talon
#

i tried using them but since they were lazy loaded i just copy pasted discords css

#

easier than loading the modules

mortal fractal
#

fair

austere talon
#

there, so u don't have to visit site

mortal fractal
#

oh right i looked at the video in the pr earlier anyways

austere talon
#

lmao

#

like i said the user scroller has issues

#

because you're supposed to use modal content but then the entire modal is a scroller which sucks

mortal fractal
#

i should figure out something like that

#

just cause its annoying especially on the channels and roles tabs

austere talon
#

figure out what exactly

mortal fractal
#

minimizing banner

austere talon
#

ohh

austere talon
#

do u know how to solve this

#

i ended up hardcoding max-height of the scroller but it somehow still overflows for some guy

mortal fractal
#

idk theres modals where ive just said fuck it and not even use modal content which is where the max height issue comes in

austere talon
#

yeah exactly thats my issue

mortal fractal
#

i should bed

austere talon
#

same

elder garnet
#

I actually didn't drop a star before :o

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
lime stone
harsh field
lime stone
#

nom

turbid hatch
#

and i'd thought it'd be a fun little sideproject

median rapids
teal halo
#

display name 🔥

charred monolithBOT
charred monolithBOT
austere talon
# charred monolith

PreviewMessage: fix preview message button staying after sending message

wasn't this already fixed?

austere talon
teal halo
#

confettis from party mode

median rapids
#

real

teal halo
#

even if you have server/user settings open, as soon as someone in your member list starts typing they appear

#

goofy ahh feature

median rapids
#

amazing feature

#

did you know they have a killswitch for it in the client

#

that they never ended up using

teal halo
#

"too good to let it go"

austere talon
#

oh you did show, im sorry

austere talon
#

try to include stuff like this in pr descriptions instead of sending it on discord

#

So development is a bit more transparent to non discord members

charred monolithBOT
charred monolithBOT
austere talon
#

wrong link moment

charred monolithBOT
half shell
#

What's policy with adding files to components? If a same component is used in more than 1 plugin then it's added there? Currently changing something in the channel tabs PR and thought the NotificationDot component could be useful for other plugins in the future even though no other plugin currently uses it hmm

austere talon
charred monolithBOT
charred monolithBOT
turbid hatch
#

honestly at this point the only thing left is the modal

#

@spark cove ^^ so once its polished up i think this is ready for review and refactoring

#

🔥

spark cove
#

REAL

#

BIG REAL AND TRUE

charred monolithBOT
turbid hatch
#

but the BD themes do the same

#

for the UI

#

i could pass the parsed header data to the compiler tbf

austere talon
#

this stuff being in utils is weird (blame me for putting quickCss there)
what do you think about moving it all to src/themes?

turbid hatch
#

i think it'd be a good idea

austere talon
turbid hatch
# charred monolith

yyyyes but also no, because we apply theme parsing to BD themes and the header parser can also take plain CSS adding default values

turbid hatch
#

but also it recompiles the themes twice

#

idk why

#

it seems to do it once on start and once when you go to the themes tab

austere talon
#

define 'it'

turbid hatch
#

i dont know what it is

#

:P

#

if i knew i would tell you

austere talon
#

who's it...

turbid hatch
#

it compiles on client start and then again when you open the themes tab

#

i see it duplicated

austere talon
#

lewi

#

what's it

#

😭

turbid hatch
#

I DONT GET THE QUESTION

austere talon
#

what compiles them

#

our code?

turbid hatch
#

yes

austere talon
#

then that should probably be fixed

turbid hatch
#

but i dont know what specifically

#

is triggering it

austere talon
#

Oh i think i noticed that, your theme flicks off and on when you open the themes tab

turbid hatch
#

ah does it?

#

then that's probably why

austere talon
#

that's probably cause its reapplying it

turbid hatch
#

yeah

#

okay that makes sense

#

then im fine with the duplicate compile

#

as long as its not some

#

weirdness

austere talon
#

no i mean like discord goes unthemed for a sec

turbid hatch
#

yeah thats what i mean

austere talon
#

it's not intended

turbid hatch
#

hm

#

oh

#

its because of this

#

im fairly sure

#

or that the onChange is being fired for whatever reason

austere talon
#

isn't that just react state

#

it shouldn't cause that

#

onChanhe is more likely

turbid hatch
#

which is odd because we arent performing any changes here

#

hm

#

oh

#

setEnabled

#

is it that checkboxes fire their onChange event once when they're initialized?

austere talon
#

no

#

they don't

turbid hatch
austere talon
turbid hatch
#

then i dont understand how its being fired

austere talon
#

getThemesList does re"compile" all themes but it shouldn't cause themes to flicker

turbid hatch
#

oh actually @spark cove can i ask you to push the modal stuff cause i dont want to start a massive refactor and then ur stuff becomes broken

austere talon
#

what modal stuff?

spark cove
#

i'll just paste it its like 30 lines

turbid hatch
#

alr

turbid hatch
spark cove
#

settings modal

austere talon
#

uh?

#

for usercss?

turbid hatch
#

yes

austere talon
#

ah

spark cove
#
interface ColorPickerProps {
    value: number | null;
    showEyeDropper?: boolean;
    onChange(value: number | null): void;
    onClose?(): void;
}
const ColorPickerModal = LazyComponent<ColorPickerProps>(() => find(m => m?.type?.toString?.().includes(".showEyeDropper")));

function ColorPicker(props: ColorPickerProps) {
    return (
        <Popout
            renderPopout={() => (
                <ColorPickerModal value={props.value} onChange={props.onChange} showEyeDropper={props.showEyeDropper} />
            )}
        >
            {popoutProps => (
                <div {...popoutProps} style={{
                    width: "2em",
                    height: "2em",
                    cursor: "pointer",
                    backgroundColor: props.value ? `#${props.value.toString(16).padStart(6, "0")}` : "var(--background-secondary)",
                    borderRadius: ".125em",
                    border: "1px solid var(--background-tertiary)",
                }}></div>
            )}
        </Popout>
    );
}

function UserCSSSettingsModal({ rootProps }: { rootProps: ModalProps; }) {
    const [color, setColor] = useState<number | null>(null);

    return (
        <ModalRoot {...rootProps}>
            <ModalContent>
                {/* <Forms.FormTitle tag="h2">um?</Forms.FormTitle> */}
                <Forms.FormSection title="Color" />
                <Forms.FormText>A color</Forms.FormText>
                <ColorPicker value={color} onChange={c => setColor(c)} showEyeDropper={true} />
                <Forms.FormDivider />
                <Switch checked={false} onChange={() => { }} />
            </ModalContent>
        </ModalRoot>
    );
}
turbid hatch
austere talon
#

yes but we don't update the css

#
if (!IS_WEB)
        VencordNative.quickCss.addThemeChangeListener(initThemes);
#

does listening the theme dir somehow cause this to be fired?

#

listing

turbid hatch
#

lets see

#

where's that?

austere talon
#

hold on...

#

reading a file updates atime

turbid hatch
#

ahahaha

austere talon
#

does atime update trigger a file change?

#

can you try that

austere talon
#

does it fire?

turbid hatch
#

ill use devtools to attach

#

ez pz

blazing dome
#

hi

austere talon
austere talon
#

hmmmm

turbid hatch
#

its not firing the breakpoint

#

but if i write the theme it does

austere talon
#

try to just call .listThemes()

#

does it fire it

turbid hatch
#

oh wait

#

this isnt updating the

#

atime

austere talon
#

use nodejs to read it

turbid hatch
#

wait what

#

how am i reading the files without updating atime

#

that seems weird

austere talon
#

fs.readFileSync() it

turbid hatch
#

alr

#

it does not

austere talon
#

hmm..

turbid hatch
#

breakpoint was not hit

austere talon
turbid hatch
#

getThemesList?

austere talon
#

ye

turbid hatch
#

no breakpoint

austere talon
#

huhhhh

#

then it's smth else

turbid hatch
#
document.addEventListener("DOMContentLoaded", () => {
    initThemes();

    toggle(Settings.useQuickCss);
    addSettingsListener("useQuickCss", toggle);

    addSettingsListener("themeLinks", initThemes);
    addSettingsListener("enabledThemes", initThemes);

    if (!IS_WEB)
        VencordNative.quickCss.addThemeChangeListener(initThemes);
});
#

these are the only references

#

to initthemes

#

so it has to be the settings firing it

charred monolithBOT
teal halo
#

nice pr

graceful hedge
#

fear

turbid hatch
#

@austere talon its not doing it anymore

#

wtf

turbid hatch
#

i literally CNR

#

it works completely fine now that im trying to debug it yeah

turbid hatch
#

doesnt fire when i open the tab

#

welp

turbid hatch
#

which then gets rid of the dep in the natives

crude hearth
#

@austere talon findbycode so bad

#

does it check .Z.type.render

austere talon
#

make it check that

#

oh not findByCode

#

find(m => m.type?.render)

crude hearth
#

okay

austere talon
#

real ones use find2

#

find is kinda bad

crude hearth
#

what does find2 add

austere talon
crude hearth
#

les goo

#

okay changes done

#

review again

charred monolithBOT
austere talon
crude hearth
austere talon
#

every time I merge 1 pr, 2 new prs pop up

crude hearth
#

merge my pr and dont merge any other ever again

austere talon
#

ok

turbid hatch
#

and for my next trick

#

i will make all of the parsing

#

done in the renderer

#

woooooo

#

(the natives no longer do any parsing of theme data)

verbal pumice
#

simply announce the final update of vencord

#

no more prs

charred monolithBOT
austere talon
teal halo
#

this is probably not required but i bet something will fuck up at some point and it'll be needed

crude hearth
#

wouldnt obj=>obj be enough

teal halo
#

done

charred monolithBOT
austere talon
#

relax

teal halo
#

how many times can you fork a single repo

austere talon
teal halo
#

damn

graceful hedge
#

but you can create near infinite branches

median rapids
austere talon
#

yop

#

that'd be 3 tho

median rapids
#

you asked me to add and never reciprocated

#

so rude

graceful hedge
#

but I can accept if u want

teal halo
#

me when they made a ignore all friend reqs button

teal halo
median rapids
median rapids
teal halo
#

what about third page

woeful sable
#

is there any particular reason why transformCompoundSentence in fakenitro defaults to false

#

confused me for quite a while, thought it was a bug in the detection code and was gonna submit a pr lol

austere talon
#

because that's how others see it too

#

so it's off to not mislead you into thinking it looks decent

lime stone
#

:3

woeful sable
#

i mean, fair, but by that logic the same would apply to emoji only messages

#

just a bit odd i thought it was actually some kind of fault

graceful hedge
#

don

crude hearth
#

damn you cant approve your own pull request

#

I edited dom and enabled approve button but it leaves regular ocmment trolldayruined

lime stone
#

editing dom worked on stackoverflow for me previously

#

would it be possible to add shiggy support to reviews simply by typing :shiggy:?

austere talon
#

yop

#

do this @crude hearth

#

also add native husk and trolley support

crude hearth
#

you can type emojis like :explode: just like on discord

#

just autocomplete doesnt exist

austere talon
#

no they mean even if u don't have shiggy emote

#

it should always work

crude hearth
#

oh

#

I think that wouldnt be possble trolldayruined

#

because I cant do anything on emoji picker

#

need to add discord emojistore

lime stone
#

oh, does it support <:x:id>

crude hearth
#

yes

#

since I use discords parser and input

lime stone
#

is that a good idea trolley

crude hearth
#

it supports everything regular discord does

lime stone
#

hmm

crude hearth
#

I thought maybe people will start spamming nsfw emotes

lime stone
#

people could already send nsfw links i suppose

#

yeah

crude hearth
#

but worst case scenario is I will prevent it server side

#

and make it only accesible to admins and approved users trolley

lime stone
#

maybe server-side replace :shiggy: with <:shiggy:1024751291504791654>

#

and disallow anything else

#

what did i do

#

confusion

crude hearth
#

what do u say @austere talon

#

also heres another thing

lime stone
#

i tried to send an actually shiggy 😭

#

discord didn't seem to like it

crude hearth
#

I cant hide server emojis from emoji picker

#

they will show but server will prevent people from sending it

lime stone
#

i think i used a shiggy from the wrong server

#

it was probably boost locked or something

#

:shiggy:

#

what why discord

crude hearth
#

getting trolled

lime stone
#

weird

#

oh, you need a: for animated

#

I did not know that

#

i had a "shower thought" (not in the shower admittedly) that there could be a set of emojis usable in reviews lol

#

all you need is rainbow_1, transgender_1, shiggy

austere talon
lime stone
#

yeah...

austere talon
#

it will contain shiggy, free smileys, trolleys and some more

lime stone
#

otherwise... i can imagine there being some nsfw

#

although, doesn't reviewdb have some plugins for other modifications?

lime stone
#

aren't there other frontends besides the one found in vencord?

crude hearth
#

oh

lime stone
#

some emojis may not be so relevant in other communities lol

crude hearth
#

yes but bleh

#

custom emoji thing is not really needed anyway

#

I can add support for trolley and husk but other than that bleh

olive aurora
#

husk review this man

lime stone
#

custom emojis are an essential part of life

#

lol

#

yeah trolley and husk seems reasonable

crude hearth
#

the pain it will bring to moderation

#

but as I said I can make a list of approved users which can use custom emojis

lime stone
#

yeh that was what i thought

charred monolithBOT
lime stone
#

nvm

#

i read that wrong

olive aurora
#

i can be trusted with custom emojis😇

lime stone
#
[
    {
        "name": "NopeMonkey",
        "id": "1106410717655080970",
        "animated": true
    }
]

would it be fairly simple to have an endpoint where the client could get a list of allowed emotes?

#

and the server could filter the same way

crude hearth
#

I mean even if there was there is no way to modify picker

#

sadly

woeful sable
#

I wish I knew ts

lime stone
crude hearth
#

because it uses regular discords input box

lime stone
#

could just reimplement the thingy

crude hearth
#

need to do it without affecting chat and other places

crude hearth
#

too painful

olive aurora
lime stone
#

hmm

olive aurora
#

nannannan

lime stone
#

couldn't you do a super hacky property

#

lol

woeful sable
crude hearth
#

I need to drill a property all way down to emoji picker

#

which would need multiple patchs

olive aurora
#

u will simply create emoji picker from scratch

crude hearth
#

and tbh I doubt its worth

lime stone
crude hearth
#

yeah

#

then if I want to make custom input box then good luck to me

lime stone
#

and you'd need to figure out how it works

crude hearth
#

react slate jumpscare

olive aurora
#

or ig just translate :emoji: serverside

lime stone
#

could you disable the picker?

lime stone
woeful sable
#

what os do y'all use 🤔

lime stone
#

still sounds a bit suffering

lime stone
woeful sable
#

same

crude hearth
#

and autocomplete

crude hearth
#

but that will also prevent people from using regular emojis

#

thats why I dont wanna

lime stone
#

but i see what you mean

crude hearth
#

this is kinda what people got used to

lime stone
#

oh, you also implemented the menu

#

i assumed it was just the autocomplete

crude hearth
#

oh nop

lime stone
#

ah

#

would be so cool 😿

#

it can be done

#

the question is whether it can be done in a sane way

#

you still probably have to disable custom emojis though

#

seems pretty high-risk

crude hearth
#

custom emojis are meh

#

just disable server-side

#

regex match it and if its present prevent people from reviewing

sacred plover
#

any announcements on the vencord extension?
its not on the firefox store anymore.

teal halo
#

firefox is dumb

#

use another browser

sacred plover
#

yeah thanks.

#

but seriously

crude hearth
lime stone
woeful sable
teal halo
#

mfs cant even compile an extension

sacred plover
#

it was taken down, that was it

lime stone
#

when you're comparing it to chrom(e|ium)

#

firefox as a browser actually seems good

mortal fractal
#

AMO is a shitshow into of itself and shouldnt reflect firefox as a whole

crude hearth
#

firefox is also terrible for developing extensions

woeful sable
#

What browser do you use

crude hearth
#

they dont have some api's present in most other engines

#

and terrible manifest v3

mortal fractal
sacred plover
#

oh my brain lmao

#

i didnt see that it was lit up

mortal fractal
#

anyways

#

why does findByCode never fucking work for me

lime stone
crude hearth
austere talon
mortal fractal
crude hearth
#

yes but if the code you are trying to look is inside
module.Z.render module.toString wont have it

austere talon
#
if (typeof browser === "undefined")
    var browser = chrome;