#๐Ÿ‘พ-core-development

1 messages ยท Page 87 of 1

olive aurora
#

use eslint

olive barn
#

do i not have eslint enabled wtf

#

????????????

tawny cipher
#

reload, eslint server is funny most of the time

olive aurora
#

pnpm i

grizzled halo
olive barn
olive aurora
#

trol

olive barn
#

my brain defaults to yarn

#

ig it didnt install it

#

what should i return instead, null seems to work fine

tawny cipher
#

just make sure it can't be null where you want to use it

limber skiff
#

@olive barn make the plugin name PluginInfo

tawny cipher
#

otherwise ts complains

austere talon
#

use fragment

#

<></>

#

null is not the issue

olive barn
#

ahhh tyty

grizzled halo
#

im so confused

#

im sorry did i breathe incorrectly?

#

are you bullying me?

#

wadidido

olive barn
olive aurora
#

cuz both new and old headers are valid

olive barn
#

ohhhhhhhh

#
Copyright (c) {year} {author}
SPDX-License-Identifier: GPL-3.0-or-later
``` right
grizzled halo
olive aurora
#

ys

#

if you remove it'll autofix it

grizzled halo
#

aye

#

that aint fix anything

woeful sable
#

i have an question can fake nitro plugin developers make a thing that allow to use profile deocorations for free? (it will be visible to persons that have enabled this plugin)

teal halo
olive aurora
#

thats install

grizzled halo
#

yes

#

already up to date

#

so

olive aurora
#

pnpm lint --fix

teal halo
#

๐Ÿคจ

woeful sable
olive aurora
#

jumpscare

grizzled halo
olive aurora
#

your ide should have smth for eslint fix

#

tho

grizzled halo
#

didnt install any extensions

teal halo
grizzled halo
#

thx it worked

#

mannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn

#

gon cry in my pillow ig

olive barn
grizzled halo
#

ok two very nice questions

#
  • How do I apply css and unapply it depending on each setting
teal halo
#

import Settings object from <@&1118512699836481547>pi/Settings

then do Settings.plugins.YourPluginName.PluginSetting1 to access it's value

grizzled halo
#

nice ping

olive barn
#

ew

#

if you use definePluginSettings then

#

settings.store.settingName

teal halo
#

stinky

#

why do you want another object

grizzled halo
#

ok that easy

teal halo
#

when you could put them in defineSettings

olive barn
#

isnt the old settings deprecated

grizzled halo
#

i got it

austere talon
#

fix the type @olive barn

#

as import("banana")

olive barn
#

it yelled at me and stern told me to remove it

austere talon
#

i think just without typeof

olive barn
#

.

#

OHHHHHHH

austere talon
#

yes

#

not the entire thing

olive barn
#

oh nvm i got it

#
import { type PluginCard as PluginCardType } from "@components/PluginSettings";

const PluginCard = LazyComponent(
    () => require("@components/PluginSettings").PluginCard as typeof PluginCardType,
);```
charred monolithBOT
olive barn
#

markdown is weird :(

grizzled halo
#

๐Ÿฅฐ

charred monolithBOT
grizzled halo
#

How do I go from

olive barn
#

you dont

grizzled halo
#

Great

olive barn
#

the top is whats right

grizzled halo
#

๐ŸŽ‰

#

Aight

charred monolithBOT
olive barn
#

use css

grizzled halo
olive barn
#
button[aria-label="Open GIF picker"] {
  display: none;
}```
grizzled halo
#

Right.. what do I change..?

#

I aint following

olive barn
#

i mean it doesnt need to be a plugin

#

and your code will only work on english

grizzled halo
grizzled halo
olive barn
#

adds themself before making the code trolley

#

you arent gonna get contributor easily

grizzled halo
olive aurora
#

just add it to quickcss

olive barn
#

yea

olive aurora
#

also this code is not sane

grizzled halo
#

I'm literally not sane

#

can less hardcode it ik

olive aurora
#

seems right

grizzled halo
olive barn
olive aurora
grizzled halo
#

where is it

#

i dont see it

olive barn
#

omg i found how i can do soundboard without nitro

#

i used rnnoise code to attach into getUserMedia and added another source from a sound

#
async connectSoundboard(stream: MediaStream): Promise<MediaStream> {
    console.log("connectSoundboard", stream);

    const audioCtx = new AudioContext();

    const source = audioCtx.createMediaStreamSource(stream);


    const dest = audioCtx.createMediaStreamDestination();
    source.connect(dest);

    window.playSound = async (url: string) => {
        const res = await fetch(url);
        const buffer = await res.arrayBuffer();
        const audioBuffer = await audioCtx.decodeAudioData(buffer);
        const source = audioCtx.createBufferSource();
        source.buffer = audioBuffer;
        source.connect(dest);
        source.start();
    };

    // Cleanup
    const onEnded = () => {
        source.disconnect();
        audioCtx.close();
    };
    stream.addEventListener("inactive", onEnded, { once: true });

    return dest.stream;
},```
spark cove
#

only works for web but real

olive barn
#

yea ik

spark cove
#

hmm should probably make an api for that stuff if more things start using it

charred monolithBOT
spark pivot
#

Keep getting this error when using this patch, I have no clue why

find: "d:\"M20 7H12L10.553 5.106C10.214 4.428 9.521 4 8.764 4H3C2.447 4 2 4.447 2 5V19C2 20.104 2.895 21 4 21H20C21.104 21 22 20.104 22 19V9C22 7.896 21.104 7 20 7Z\"",
replacement: {
    match: /;return(\(0,r.jsx\)\(")svg(.*)/,
    replace: ";var img=$1img$2;console.log(img);return img;"
}
charred monolithBOT
austere talon
#

illegal return statement

#

use patchhelper to find out why

charred monolithBOT
olive barn
#

:3

charred monolithBOT
olive barn
#

forgot to remove enabledByDefault when copying rnnoise whoops

charred monolithBOT
austere talon
#

why is edited not a separate event agony

austere talon
#

@olive aurora pr to forgejo to make edit a separate event

#

or i will ignore edit in ghwp

#

๐Ÿ”ฅ

#

gteawp soon

spark cove
olive barn
#

it should

#

im using rnnoise rn

#

yea it does

#

"hey im testing something, can you hear this"
"UH"

spark cove
#

real

#

oh ur hardcoding support for rnnoise

#

mm yea then def should move that into an api

olive barn
#

yea

charred monolithBOT
olive barn
#

whar

#

i didnt push

austere talon
#

wrong

charred monolithBOT
austere talon
#

i love this u can just sent events infinite amount of times

#

unlike github

olive barn
#

oh god

austere talon
olive barn
#

here lemme

charred monolithBOT
olive barn
#

oki

charred monolithBOT
austere talon
#

what

olive barn
#

i was checking if it still did the pr synced webhook

#

vap do u want me to make the voice api

blazing dome
#

hey ven , do you mind if i edit your github actions to push the cli exe to winget-pkgs when there is a new version released?

#

@austere talon

frail skyBOT
#
Bad Patches

IgnoreActivities (had no effect):
ID: 870640
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;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%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
frail skyBOT
#
Bad Patches

IgnoreActivities (had no effect):
ID: 870640
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;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%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
charred monolithBOT
#

Allows plugins to hook onto the voice stream, modifying it

The voice property in plugin definitions is a bit hacky, as i cannot access this. For now, it is an array of function names, that will be called by the api

olive aurora
#

undefine

#

idg whats happening

olive barn
#

you cant access the plugin's this from there, so my hacky fix is just giving a function name and just hoping it exists

olive aurora
#

erm

#

it wont

#

just move it out of the function object dummy

olive barn
#

?

olive aurora
#

the things you have to acces from this

#

move them out of the object

#

so you dont need to

olive aurora
#

well, just hte func

charred monolithBOT
olive barn
#

oh that works

charred monolithBOT
spark cove
#

oh yea

charred monolithBOT
#
vap

i dont think letting a plugin will ever need an array of callbacks, probably mostly just one. if a plugin needs to do multiple things it can do that within 1 function still.

though, you should make the api something like voice: { mic(stream)?: [whatever this tuple is] }, so that we can add other types of streams in the future (eg: user(id, stream))

spark cove
#

letting a plugin will ever need

#

ok english

olive aurora
#

i didnt even notice

#

english ๐Ÿ‘

spark cove
#

@blazing dome you might wanna wait a bit for vee to respond

#

cus the current installer is soon to be replaced

blazing dome
#

this runs on the cli one

spark cove
#

i guess the versioning will be the same and it'll probably be on the same repo

#

so its probably fine

charred monolithBOT
#

These patches mainly originate from the packaging in Nixpkgs

  1. Add two env vars to preset values that would otherwise be generated during build time
  • VENCORD_VERSION can be used to set the value of git-hash
  • VENCORD_REMOTE can be used to set the value of git-remote
  1. Add support for SOURCE_DATE_EPOCH to improve reproducibility (See https://reproducible-builds.org/docs/source-date-epoch/)
    3...
charred monolithBOT
austere talon
#

how do package identifiers work

#

why is it not reverse domain

charred monolithBOT
dire thicket
#

i haven't seen him since before i existed

#

back when the others were active in prism launcher discord

lime stone
lime stone
dire thicket
lime stone
#

how did you see him before you existed

lime stone
#

typical

#

existence for me may have started yesterday tbh, i can't disprove that

#

not existing is pretty lame though

#

I would recommend existing

grizzled halo
#

I see who you are, you are my enemy.

#

right above open with terminal too

charred monolithBOT
teal halo
#

cta_think any way we could make clips work on web or not?

#

web and/or machines that donโ€™t meet the minimum reqs

tame escarp
charred monolithBOT
teal halo
#

ooh i see

#

it sees \/ as a regular slash

#

and thinks the regex ends there

#

that's dumb

charred monolithBOT
teal halo
#

nvm

#

guess i'm too slow

austere talon
#

youre too slow ๐Ÿ™„

teal halo
#

no u

teal halo
#

when update tho

austere talon
#

2 business weeks

teal halo
#

next year it is

charred monolithBOT
stone hollow
blazing dome
charred monolithBOT
torn knot
lime stone
#

issues are turned off..?

torn knot
#

oh wait

#

bruh

#

I had the tab open

austere talon
#

how ๐Ÿ˜ญ

charred monolithBOT
charred monolithBOT
torn knot
charred monolithBOT
#

i dont think letting a plugin will ever need an array of callbacks, probably mostly just one. if a plugin needs to do multiple things it can do that within 1 function still.

though, you should make the api something like voice: { mic(stream)?: [whatever this tuple is] }, so that we can add other types of streams in the future (eg: user(id, stream))

Fixed!

austere talon
#

wtf is HD

umbral hedge
#

high quality moyai thud trolley

austere talon
#

yeah but

#

how is it higher quality ๐Ÿ˜ญ

umbral hedge
#

listen to it

austere talon
#

I can't listen rn

umbral hedge
#

a

#

i send

austere talon
umbral hedge
#

simply blindly merge it

tawny cipher
umbral hedge
#

i mean compare them

#

where the original is compressed as shit

#

this is crispโ„ข๏ธ

austere talon
#

shit quality = funny tho

charred monolithBOT
umbral hedge
#

ye thats what the toggle is for trolley

teal halo
#

best PR

umbral hedge
#

its shit quality by default

#

its not like it increases vencords size anyways since the audio files are stored in a separate repo xd

austere talon
#

oh yeah im not like criticising or anything im just curious

verbal pumice
#

this is only complete if you add an ultra low quality option

tawny cipher
#

8bit moyai

umbral hedge
#

lmao

#

just a text to speech saying "thud"

charred monolithBOT
olive aurora
#

underwater

verbal pumice
#

yuh uh

umbral hedge
median rapids
#

is it in their keywords lmao

#

that's amazing

verbal pumice
#

thats just gonna bring stupid users lmao

umbral hedge
#

yeah its in their keywords

verbal pumice
#

can vencord not apply for discovery again or is it just that no one cared enough to change shit up to discord's standards

nocturne haven
austere talon
#

aren't the keywords chosen by the server

olive barn
#

yea

charred monolithBOT
median rapids
#

yeah why is this server not on discovery

charred monolithBOT
woeful sable
#

I think ven did a funny

olive aurora
#

it was before

#

I don't think discord gave us a reason they removed us from discovery

#

actually they did

#

lmoa

#

i forgot

median rapids
#

real

#

you can just reenlist

#

they didnt blacklist

olive aurora
#

@austere talon apply when

median rapids
#

you can just enable it

#

just fix the description ig sk

woeful sable
#

yeah see I told you ven did a funny

olive barn
#

time to figure out how to patch discord desktop mic stream

austere talon
#

probably not possible from js

#

though if it is, it'll be inside the discord_voice native module

olive barn
#

oki

#

@spark cove

#

dont think its possible

spark cove
#

The desktop one ya it isn't

olive barn
#

discord native voice module for pannig

#

yea

median rapids
#

time for native code patching

olive barn
#

:3

spark cove
#

Bad

median rapids
#

you love discord voice being incredibly needlessly complicated

olive barn
#

nowhere in the native module does it include ANY mention of audio input device D:

median rapids
#

nah i doubt it's there

spark cove
#

Huh

#

The native module is compiled from c

median rapids
#

yeah it's compiled lol

olive barn
#
const KrispModule = require('./discord_krisp.node');

console.info('Initializing krisp module');
KrispModule._initialize();

KrispModule.getNcModels = function () {
  return new Promise((resolve) => {
    KrispModule._getNcModels((models) => resolve(models));
  });
};

KrispModule.getVadModels = function () {
  return new Promise((resolve) => {
    KrispModule._getVadModels((models) => resolve(models));
  });
};

module.exports = KrispModule;

everythings in the c https://cdn.discordapp.com/emojis/1102371462934962187.webp?size=48&name=pureagony&quality=lossless

spark cove
#

Its in discord_voice

olive barn
#

i just checked there

spark cove
#

But the audio device and webrtc connection happens in the native module

#

Native module meaning .node file

olive barn
#

shrimply edit the compiled binary trolley

spark cove
#

Trolley

#

Real solution: don't use native audio subsystem

#

But then u can't screenshare

#

So sad

charred monolithBOT
median rapids
#

webrtc isn't great

spark cove
#

i know sob

median rapids
#

has there really never been a native modules src leak

#

that's so sad

austere talon
#

i mean

#

they would have to be very stupid to leak that somehow

spark cove
#

i doubt the native modules src code gets seen by many people

spark cove
#

@olive barn ur pr looks FIRE now

#

wtf codeberger doesnt have suggestion codeblocks??

charred monolithBOT
spark cove
#

no itsok

jagged cloak
#

codeburtger

charred monolithBOT
austere talon
#

FAKE SUGGESTION

spark cove
#

doing a diff wouldve been funnier

austere talon
#

we need to pr suggvestion support to forgejo

spark cove
#

truth

#

if only i used it enough to care

austere talon
#

i love how the fact that its open sourcew changes it from "github doesnt have this feature what ashit platform" to "pr immediately"

spark cove
#

lichrelly

#

open source on top

olive barn
#

it might not allow pr suggestions bc u dont have write access?

spark cove
#

maybe i think its just bad probably

median rapids
#

this will never not be funny to me

#

i really hope they keep them like this

#

it's so bad it became good again

spark cove
#

what is that

woeful sable
spark cove
#

oh lol

olive barn
#

why is there a blank spot

olive aurora
#

oh i didnt

#

notice it was a gif

#

lmoa

median rapids
charred monolithBOT
#

Running 0.3.0 out of the box. Vesktop loads perfectly fine, icon loads, except I can't right click to pin Vesktop to my dock. This action works fine for every other app I have except Vesktop.

Digging into /usr/share/applications/vencorddesktop.desktop I see that:

StartupWMClass=Vesktop

However, running xprop WM_CLASS and selecting Vesktop gives me:

WM_CLASS(STRING) = "vencorddesktop", "VencordDesktop"

Setting StartupWMClass to "vencorddesktop...

spark pivot
#

How do I fix this error?

olive barn
#

@webpack/common

#

you cant import react

spark pivot
#

got it thanks

charred monolithBOT
teal halo
#

trying to get clips to work on web, final part
it errors at file manager being undefined, and i am definitely not going to try to make the browser summon a Download File modal every time you save a clip, that sounds painful

olive barn
#

save a blob of it to indexeddb trolley

#

Vencord.Api.DataStore

teal halo
#

150mb for every 2 minutes clip

#

yeah sure

olive barn
#

indexeddb doesnt have storage limits

#

thats why i chose that over localstorage

teal halo
#

me when 60kb/s upload internet speeds

teal halo
#

you mean this?

#
t(n, "CLIENT_THEMES_GRADIENT_CHROMA_GLOW", "Chroma Glow"),
t(n, "CLIENT_THEMES_GRADIENT_FOREST", "Forest"),
t(n, "CLIENT_THEMES_GRADIENT_CRIMSON_MOON", "Crimson Moon"),
t(n, "CLIENT_THEMES_GRADIENT_MIDNIGHT_BLURPLE", "Midnight Blurple"),
t(n, "CLIENT_THEMES_GRADIENT_MARS", "Mars"),
t(n, "CLIENT_THEMES_GRADIENT_DUSK", "Dusk"),
t(n, "CLIENT_THEMES_GRADIENT_UNDER_THE_SEA", "Under the Sea"),
t(n, "CLIENT_THEMES_GRADIENT_RETRO_STORM", "Retro Storm"),
t(n, "CLIENT_THEMES_GRADIENT_NEON_NIGHTS", "Neon Nights"),
t(n, "CLIENT_THEMES_GRADIENT_SEPIA", "Sepia"),
t(n, "CLIENT_THEMES_GRADIENT_STRAWBERRY_LEMONADE", "Strawberry Lemonade"),
t(n, "CLIENT_THEMES_GRADIENT_AURORA", "Aurora"),
t(n, "CLIENT_THEMES_GRADIENT_MINT_APPLE", "Mint Apple"),
t(n, "CLIENT_THEMES_GRADIENT_CITRUS_SHERBERT", "Citrus Sherbert"),
t(n, "CLIENT_THEMES_GRADIENT_RETRO_RAINCLOUD", "Retro Raincloud"),
t(n, "CLIENT_THEMES_GRADIENT_HANAMI", "Hanami"),
t(n, "CLIENT_THEMES_GRADIENT_SUNRISE", "Sunrise"),
t(n, "CLIENT_THEMES_GRADIENT_COTTON_CANDY", "Cotton Candy"),
t(n, "CLIENT_THEMES_GRADIENT_LOFI_VIBES", "LoFi Vibes"),
t(n, "CLIENT_THEMES_GRADIENT_DESERT_KHAKI", "Desert Khaki"),
t(n, "CLIENT_THEMES_GRADIENT_EASTER_EGG", "Memory Lane");
#

ehh

#

when you select a custom client theme, it just edits this class

woeful sable
#

How do I get third partys plugins on the web edition?

tawny cipher
#

vns

nimble pendantBOT
woeful sable
woeful sable
charred monolithBOT
frail skyBOT
#
Bad Patches

IgnoreActivities (had no effect):
ID: 985101
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;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%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 ```
#
Bad Patches

IgnoreActivities (had no effect):
ID: 985101
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;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%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 ```
turbid hatch
#

@spark cove is there anything else we need to do for new installer

#

oh wait yeah we need to test on mac

#

and see if we can work out linux support

olive barn
#

i can do mac testing if needed

spark cove
#

linux can just use cli if they dont have webkit installed

blazing dome
#

Is the new installer a gui one or cli @spark cove

turbid hatch
#

grab this

#

macos-latest

spark cove
#

its both

turbid hatch
#

should be a .app?

olive barn
#

oki

spark cove
#

atleast, it will be both

turbid hatch
spark cove
#

wdym is it dependent right now?

turbid hatch
#

it tries to load libraries that only seem to work on ubuntu because that's where it was built, and it can't statically build because .. i dont know, it just cant

olive barn
#

waaaaaaaaaaaa

turbid hatch
#

whaaa?

#

uhhh

#

oh

#

it might be quarantined

olive barn
#

quarentine gives a diff message

turbid hatch
#

oh

#

then try something like uhh

olive barn
#

chmod it

turbid hatch
#

yeah that

#

it's because it's been put in a zip

#

so it loses the attribute

#

i should just tarball it tbh but this is just quick ci stuff

#

so im not bothered rn

#

i'll make dmgs later

olive barn
#

:D

turbid hatch
#

:D

#

its got a big forehead

olive barn
#

%appdata% needs to be changed

turbid hatch
#

ye its hardcoded atm

#

to that string

olive barn
#

oki

turbid hatch
#

so its not a worry

spark cove
#

i see

#

u have to build for specific package managers

spark cove
#

because the libraries will have different names

turbid hatch
#

i gotta do whatever the fuck this is xd

olive barn
turbid hatch
#

although i think wails does most of this

olive barn
#

might just be my install being weird

turbid hatch
#

the underlying installer code is the same as the go installer

#

so

olive barn
#

ah

blazing dome
turbid hatch
#

it's just a ui reskin atm

turbid hatch
#

so :(

olive barn
spark cove
#

NOT SAD

#

NOT SAD

olive barn
#

sudo would fix definitely

turbid hatch
#

whaaa?

spark cove
#

static build is terrible might as well force them to use cli

blazing dome
turbid hatch
#

linux build begone

#

you will have CLI competency

blazing dome
#

Sudo del /Applications/Discord.app/*

spark cove
#

we should support pacman and apt

turbid hatch
#

oh luna

blazing dome
olive barn
turbid hatch
#

can i ask you to try something out

olive barn
#

ofc !

spark cove
#

because those people have higher chance of not knowing cli well enough

spark cove
blazing dome
turbid hatch
#

can you install go and wails for me, and try building it from source? i'm curious if it's losing the permission because i'm zipping it or if it's because it never gets set in the first place

spark cove
#

i mean support dynamic linking of their libgtk packages etc

turbid hatch
#

go install is as normal

#

wails is this

#

go install github.com/wailsapp/wails/v2/cmd/wails@latest

olive barn
#

oh fuck i just noticed this

#

uhh

turbid hatch
#

aha

#

that's the

#

full access thing

#

i think

blazing dome
#

So people should just run vencordcli --install -- branch stable

spark cove
#

yes there will still be a cli

#

but we're talking about the gui

turbid hatch
#

dont worry about issues with it for now

#

im curious about the build process

blazing dome
#

But apt requires to be silent roght

turbid hatch
#

i dont have a mac to try this on so

blazing dome
#

Pacman too

turbid hatch
spark cove
#

i dont know what ur saying

turbid hatch
#

they're trying to say if we make deb packages

olive barn
turbid hatch
#

they have to be silent

olive barn
#

my discord install is on an alt so idrc

turbid hatch
olive barn
#

oki

spark cove
#

idk what silent is in this context

turbid hatch
#

as in

#

sudo dpkg -i vencord.deb
<does the thing>

blazing dome
#

No user input during install

turbid hatch
#

i think they've confused themselves

#

because packages have no requirement to have no user input lol

#

loads of packages have user input

spark cove
#

yea

turbid hatch
#

you install postfix and it prompts you to configure it

#

you install apache2 and it will ask you some questions (although i think this is redundant now)

#

mysql requires a root password

#

phpmyadmin requires a mysql account

#

etc.

blazing dome
#

Oh

spark cove
#

we would probably just ship the cli installer as its own package though

olive barn
blazing dome
#

They ask you that when you run the deb ?

spark cove
#

instead of the installer running as an install hook

turbid hatch
#

it's part of their package install script

#

lol

olive barn
#

1s

turbid hatch
#

you could try parsec

blazing dome
#

So just dump the cli file as the install script

olive barn
#

ill just get normal chromium its fine

turbid hatch
#

alr

spark cove
#

parsec does have a web client

#

kinda fire

olive barn
#

yea

spark cove
#

i wanna try moonlight

#

i havent tried it yet and parsec is so annoying

turbid hatch
#

i forgot about this

#

thanks parsec

blazing dome
#

What is parsec

turbid hatch
#

remote control tool

spark cove
#

does parsec have mac host support these days

turbid hatch
#

yeah

#

macos 10.15+

spark cove
#

real

olive barn
#

uujftugjfu it doesnt wanna install

#

does anydesk have macos

#

it doess

turbid hatch
#

(anydesk is so balls lmfao)

olive barn
#

waaa

#

parsec then ?\

turbid hatch
#

ye

#

i dont think anydesk works on my machine anymore

#

lol

#

i deleted my licence key and it self destructed

blazing dome
#

Why do you all want a react installer instead of a native installer

turbid hatch
#

it's svelte

#

not react

#

and because the current installer's ui sucks to develop for lol

#

the alternative was that you downloaded a separate piece of software onto your machine that runs in the background and then you use a website to install vencord

#

but i thought that was really silly

blazing dome
#

How about c# Maui?

#

Or uwp?

turbid hatch
#

that means rewriting the entire installer in c#, a language very few of us (i think only me?) know properly

#

UWP isn't cross platform

#

also MAUI has issues still and is alpha

blazing dome
#

Oh

woeful sable
blazing dome
#

Svelete Vs react?

turbid hatch
#

preference

#

svelte is more performant though

olive barn
#

:D

spark cove
#

what is this

#

thats not me

#

impersonation

olive barn
#

ik

#

here

#

context:

#

hi vap lewi here

spark cove
#

LOL

olive barn
#

you hardcoded the titlebar size when there's a chance there wont be such a titlebar!

#

:3

#

thats no bueno

spark cove
#

OWNED

olive barn
#

so anyway i'm now making it so mac doesnt have a titlebar either!

#

i just have to eyeball the size because mac doesnt seem to have uh.. a spec for it

spark cove
#

OWNED

olive barn
#

brother im going to kill you

spark cove
#

OWEd

olive barn
#

i just realised i need to port everything im doing here onto my own pc lol

#

i should probably start doing that

#

i can dm u the files -luna

#

dw i think i got it

#

just make a .patch file

#

however tf u do that

#

oh yeah true

#

:D

turbid hatch
#

now i get to do the fun bit

#

of fixing this up on my end

#

xd

olive barn
#

:3

#

could u just edit the header of it to ur git info?

turbid hatch
#

oh i mean making it so that the titlebar actually works xd

olive barn
#

ohhhh

charred monolithBOT
turbid hatch
#

how do mac apps display icons

#

or do they not

olive barn
#

wym

turbid hatch
#

like do they have icons in their titlebars

#

like windows

olive barn
#

these?

turbid hatch
#

cause i mean

#

i put one in the mac titlebar

#

and it doesnt look quite right

#

cause i dont know if they actually do have icons

olive barn
#

OH THOSE TITLEBARS

turbid hatch
#

ye

olive barn
#

uhh i dont think

turbid hatch
#

i'll take vscode as an example methinks

#

oh yeah parsec doesnt

olive barn
#

nothing that i use does

charred monolithBOT
turbid hatch
#

..seriously

#

oh my god

#

of course safari is special

#

"requires a vendor prefix for use"

#

fyucking

olive barn
#

just force it to use chromium if installed trolley

turbid hatch
#

LOL

#

THATS NOT WHAT I WAS GOING TO WRITE

#

BUT IT GOT THE SENTIMENT

olive barn
#

REALLL

charred monolithBOT
turbid hatch
#

@spark cove can we do something abotu the massive forehead the installer has lmfao

spark cove
#

lmao whatt

turbid hatch
#

because of the invis titlebar everything's shifted down by 2rem

#

so it looks so whack

spark cove
#

give it some padding bottom like 20vh

turbid hatch
#

wait i have a genius idea

#

POSITION ABSOLUTE

spark cove
#

thats a bad idea

#

it sounds like a bad idea

turbid hatch
#

its only a bad idea

#

if you make it out to be

tame escarp
turbid hatch
#

fixed.

tame escarp
#

horrid

turbid hatch
#

wait i wonder

spark cove
#

how does that fix it

turbid hatch
#

thats not even the

#

right bit

#

lfmao

#

methinks

#

this is GENIUS

#

it was in fact

#

not genius

#

HOLY SHIT

#

IT WAS GENIUS

#

FOREHEAD IS GONE

olive barn
#

:D

turbid hatch
#

@spark cove so actually

#

my mistake of putting position:absolute in .frame.maximized

#

ended up actually being correct

#

then absoluting the titlebar also fixes it

spark cove
#

frame is already position absolute though

turbid hatch
#

uhhh

#

yes!

#

correct

#

i think it might've just caused the hmr to work lmafo

spark cove
#

true and real

turbid hatch
#

yeah it did

#

HEY it works now

#

forehead gone

spark cove
#

are u absoluting only maximized titlebars?

turbid hatch
#

yea

spark cove
#

also nice thats based

charred monolithBOT
turbid hatch
#

banger commit names if i do say so myself

olive barn
#

how do u get discord development /curious

#

webkit is cat :D

turbid hatch
#

like u do with canary

#

but just change it to dev

#

xd

olive barn
#

oh lmao

turbid hatch
#

discord dev doesnt do anything though

#

its just canary 2

olive barn
#

awa

#

im collecting discord clients rn

#

the silly

charred monolithBOT
spark cove
#

i forgot position absolute also implies relative

#

thats so based

turbid hatch
#

magic

charred monolithBOT
charred monolithBOT
turbid hatch
#

^ 3am*

charred monolithBOT
charred monolithBOT
maiden sapphire
#

when colorway plugin

charred monolithBOT
hazy steeple
#

Hello, where can I find API methods like addServerListElement? I tried to find them in the web version, but did not find

#

Oh, api/serverlist...

#

Thanks

charred monolithBOT
hazy steeple
#

Now I canโ€™t add my own setting) It seems that all settings are created in VencordSettings, where each setting returns wrapTab(element, name), while I did not find links to each setting separately, which means that the code parses them somewhere. Maybe someone knows how to add your item to the settings menu?

sleek pine
hazy steeple
#

yessss it works

#

And yes, i wanna do betterdiscord theme browser

#

Now it's inside the vencord, because I don't see the point of creating a separate group for the sake of one tab

dire thicket
#

next: make betterdiscord plugin browser

crude hearth
#

oh it uses golang and webview I think

verbal pumice
blazing dome
#

Hey

charred monolithBOT
dusty finch
#

@olive barn Discord dev is broken

#

if they haven't fixed it

#

You can rename Update.exe to Update1.exe and run the .exe

#

but VC won't work

turbid hatch
charred monolithBOT
somber ginkgo
#

merge immediately

hazy steeple
dire thicket
#

in vencord

hazy steeple
hazy steeple
#

why is my div stretching...
I did everything exactly like the plugin card div and the theme card div...

charred monolithBOT
hazy steeple
#

its look like vc-addon-grid didnt work

#

OHHHH

#

its vc-settings-theme-grid

charred monolithBOT
hazy steeple
#

wtf, my value on page update only after reopening that page...

#

(yes, im using usestate(val))

#

It turns out I was using the wrong React... How many problems are there with this react and vue

#

now react is null bruh

olive barn
#

plugin guide on github:

#

reading other plugins to see how they use react:

hazy steeple
#

YES

#

i fix it

#

As I expected, the React object is not initialized immediately, and you canโ€™t use it right away

olive barn
#

dont use the react object at all

charred monolithBOT
hazy steeple
#

He will definitely take advantage of ts' ability to search for elements by id and so on, instead of huge regexes for html...

charred monolithBOT
austere talon
#

wtf is that

hazy steeple
charred monolithBOT
hazy steeple
#

bro...

#

where uncaptured groups?

#

Nicee

#

i fix this

olive aurora
#

bro is not cooking

hazy steeple
#

NOOOOOOOOOOOOO

#

I HATE THIS

#

Last time I spent a day solving this problem, and the fix was a self-written server

#

Now I don't have access to the server...

#

It looks like this can only be solved by changing the server

#

or you can write fetch from scratch using Tcp

olive barn
#

wtf are you trying to do with the betterdiscord api

teal halo
#

add the domain u wanna fetch to this list in src/main/index.ts (?)

#

oh wait nvm

hazy steeple
#

no i make BetterDiscord Theme browser

olive barn
#

ohhhh

hazy steeple
#

And I did everything

teal halo
#

cors origin *

hazy steeple
#

except fetch request

#

and here is such a setup

hazy steeple
charred monolithBOT
teal halo
#

try js headers: { 'Access-Control-Allow-Origin':'*' }

#

maybe somehow it'll work

hazy steeple
#

Unfortunately I don't have access to the BetterDiscord servers ๐Ÿ˜ฆ

teal halo
#

you can put that in your fetch request

#

i wonder how BD does it

hazy steeple
olive barn
#

theyre saying betterdiscord api doesnt give a cors header

teal halo
#

CORS is pain

olive barn
#

if you have your own server you can make a proxy that has cors that just fetches the real one

olive barn
#
app.on('/', async (req, res) => {
  const response = await fetch(`https://betterdiscord.com/blablabla/${req.pathName}`).then((_ => _.json())
  res.json(response)
})```
#

simple express impl

hazy steeple
#

You either need to write BetterDiscord, or write your Http request via TCP from scratch

hazy steeple
teal halo
#

amazing

olive aurora
#

this is like

#

way too much work

#

just use the website and copy the links lol

olive barn
#

yea

olive aurora
#

no point

hazy steeple
#

hmm, but everything is much more complicated there

olive barn
#

wtf is that

olive aurora
#

do not

hazy steeple
#

And where are 100500 http protocol requests

hazy steeple
olive barn
#

if you really wanna make this work either make a proxy for it or bug betterdiscord devs until they fix it

olive aurora
#

yea thats how it works

#

http is just plaintext

hazy steeple
#

Oh wait, it's http not https

olive aurora
#

but why

hazy steeple
#

that's why it's so easy

charred monolithBOT
olive aurora
#

https is the same but you ssl encrypt it

hazy steeple
#

"Sending an HTTP message: HTTP messages (pre-HTTP/2) are human-readable. Starting with HTTP/2, simple messages are encapsulated in frames, making them impossible to read directly, but fundamentally remain the same."

olive barn
#

๐Ÿ˜จ

hazy steeple
#

And how do I create a damn TCP request in react

#

Difficult...

olive barn
#

you cant

#

youd have to use ipc

hazy steeple
#

are you sure?

olive barn
#

pretty sure

#

the plugins run in whats essentially a browser

austere talon
hazy steeple
#

in browser you can do something like chrome.experimental.

austere talon
#
await fetch("https://google.com")
olive barn
#

their issue is betterdiscord website doesnt have cors

#

cant fetch it

austere talon
#

yes

#

shrimply dont fetch it

hazy steeple
#

So i want to write my http using tcp

nocturne haven
#

it does iirc, one of our devs did something to make it work inside discord

austere talon
#

anyway you're also fetching from the html page

#

instead of using the api

olive barn
hazy steeple
austere talon
austere talon
#

devilbro uses request

olive barn
#

dablu jumpscare

hazy steeple
#

The most annoying thing is that, for example, the same curl works quite well

nocturne haven
austere talon
#

anyway just make a github workflow that downloads and puts into a repo the bd themes list like once an hour

hazy steeple
#

Why this policy if it works only on behalf of the client

austere talon
#

what

nocturne haven
hazy steeple
#

well, CORS restrictions happen purely on the client side

olive barn
#

nop

hazy steeple
#

I'm already scared

hazy steeple
#

I did not know about api and used a different request

#

I'll try it now

austere talon
#

or just dont make this plugin

#

its kinda useless

hazy steeple
#

API moment?

#

What the hell api doesn't have cors poicy disabled at all

#

it's api

#

whyyyyyyyyyyyy

austere talon
hazy steeple
#

But

#

I will move on

#

I will make my own server which will have disabled cors policy

nocturne haven
#

Seems rather hacky tbh. You could just use onHeadersReceived and add that little * on your own

hazy steeple
#

which will already safely request data from the address I need

charred monolithBOT
hazy steeple
#

It's not difficult, I already have my own web server, I'll just add one more api request

olive barn
#

@dire thicket :D

dire thicket
#

thank you

olive barn
#

ofc :3

austere talon
hazy steeple
#

I want realtime updates(((

olive barn
#

closest u can do is have it update every hour or so

hazy steeple
#

to update github

olive barn
#

wtf is a dzshn

austere talon
charred monolithBOT
hazy steeple
austere talon
#

i already told you

austere talon
#

i already pointed to this message like 4 times and u still havent read it?

olive aurora
olive barn
#

?

hazy steeple
#

I auto-translate long messages because I'm too lazy to translate them myself

nocturne haven
#

(imo good english knowledge is a requirement for programming)

hazy steeple
#

It's just harder than pushing one button lol

olive aurora
#

then its not fluently

hazy steeple
#

And therefore, instead of trying to read initially, I immediately translate

olive aurora
#

thats stupid

#

i think

hazy steeple
#

Yes

#

I'll know

olive aurora
#

consider Not

nocturne haven
hazy steeple
#

Large posts just commonly use terminology and rare words

nocturne haven
#

thats not fluently, more like "chunky"

hazy steeple
#

Okay, I should definitely stop messing around with this chip...

#

Now, for the sake of interest, I want to measure my reading speed

#

128 wpm

#

not so bad

#

but bad

olive barn
#

VencordNative is available on web too right

woeful sable
olive barn
#

ty

charred monolithBOT
olive barn
#

(ft: broken css snippet lmao)