#๐Ÿ‘พ-core-development

1 messages ยท Page 15 of 1

umbral hedge
#
suggestion```
austere talon
umbral hedge
#

xd

woeful sable
#

@tropic wagon reopend

tropic wagon
#

thankx

#

also why are sets not good?

#

it seemed they might be ok

woeful sable
#

i explained to ven that same day

#

but i find it kinda boring that i have to ping him two billion times to check it out i didn't mean to close it i just deleted my fork to go back to main repo

tropic wagon
#

oh ok

woeful sable
#

as im working on my own discord mod so i don't really work om vencord anymore xd

woeful sable
#

basically sets are not good as they require a reference which is wacky

austere talon
woeful sable
#

u didn't say anything bro lol

#

i pinged u like 5 times

#

eh

#

lol

austere talon
woeful sable
#

lol didn't see that

agile musk
#

Maps good

woeful sable
#

and i still don't see why would i use a map for a one dimension array

#

lol

austere talon
#

oh my god what did i open my vscode to

woeful sable
#

bruhhhh

umbral hedge
#

lmfao

woeful sable
#

my mod has plugin loading from urls now tonguecat tonguecat

austere talon
#

noice

umbral hedge
#

i will load while (true) alert("h")

woeful sable
#

discord cors?

austere talon
#

just dont have cors problems

woeful sable
#

cors stink

#

i have alot of concerns still though

#

because the plugin is evaluated i feel thats extremely insecure

austere talon
#

well it is

woeful sable
#

what i can do for updates is hash the plugin and alert user when it changes

#

this way at least the plugin url won't suddenly update without ur notice

austere talon
#

you can just pin commits

woeful sable
#

imagine some used some paste bin plugin

#

and suddenly that paatebin is updated to token stealer or sth

tropic wagon
#

kemo but pls finish this plugin

woeful sable
#

i mean pastebin url*

umbral hedge
#

I should just replace the moyai mp3 one day for a laugh

#

replace it with a fart or something

tropic wagon
#

i would contrib but i have no idea how maps even work

woeful sable
#

bro on god its done ๐Ÿ˜ญ

tropic wagon
#

@austere talon should i contrib usage of Maps

woeful sable
#

nah i don't wanna move to maps my plugin works fine ive been using it on desktop om vencord and on web using my discord mod lul

austere talon
#

you're loading vencord plugins from urls?

woeful sable
#

my plugins ported to my discord mod

tropic wagon
#

@austere talon just merg pr because kemo deleted his fork and then change it to maps ig

#

or i can change it to maps if ur lazy

austere talon
woeful sable
#

well they're pretty close cuz i did alot of stuff the same way as vencord i hope u don't mind that or call it palagrism

#

vencord vs ultimacord (might change the name)

austere talon
#

@plugins.define

woeful sable
#

yes

#

๐Ÿ˜ฉ

#

why everyone hates decorators

umbral hedge
#

xd

woeful sable
#

ts doesn't havs macros like cpp so i had to find a way

austere talon
#

what does that do

woeful sable
#

i originally didn't have name field and i used the class name but i had to put it back so i can minify

woeful sable
austere talon
#

that's really cursed lmao

#

wait then why do u even export it

#

you could just use inheritance for this btw

#
class Plugin {
  constructor() {
    plugins.push(this)
  }
}

export new class QuickMention extends Plugin {}
brave geyser
#

Because kemo is insane

woeful sable
#

i have some wack code im retarded

#

i exporrted it so ts can eat dick adnd stop crying that the class is not used

brave geyser
#

You will explod

woeful sable
#

i won't

umbral hedge
#

i will explode

woeful sable
#

ultimacord better ur just hater

brave geyser
woeful sable
#

this is basically what if vencord was written by a retard

brave geyser
woeful sable
brave geyser
#

Can't say I wouldn't of done the same ๐Ÿ’€

woeful sable
#

yeah this project is horrible technically and i will feel ashamed when i open source it

#

but it's just something im doing to learn

brave geyser
#

To me the code is great trolley trolley trolley

woeful sable
#

it still doesn't even compile for desktop ๐Ÿ˜ญ

brave geyser
#

It'll work eventually starehandshake

#

Just gotta bash your head against the wall a few times and it'll come to you

#

Does for me anyways trolley

woeful sable
#

thanks for believing in my skidded vencord clone starehandshake

brave geyser
woeful sable
#

i swear this must be like top 5 worst code i made in my life

brave geyser
#

๐Ÿ’€

#

Could be worse

woeful sable
#

i really couldn't think of a better way to not use window

#

js is so stupid

agile musk
#

You just need a way to inject

woeful sable
#

not even that

agile musk
brave geyser
woeful sable
#

problem lies that vite literally just build a userscript

agile musk
#

Aw hell nah

woeful sable
#

the current build scripts and workflow is really smooth for development process

#

and way easier than restarted deaktop discord

brave geyser
#

Afterwards it'll explod

woeful sable
#

so when i have at least something my friends can use or try ill start making a different build flow for desktop

#

still wanna add arRPC and try porting it to armcord tho

#

ill add a big note to use vencord and only use this if i wanna explode trolley

brave geyser
charred monolithBOT
austere talon
#

dont mind me

charred monolithBOT
frail skyBOT
#
Bad Patches

None

Bad Starts

None

Discord Errors
Failed to load resource: the server responded with a status of 404 () ```
jaunty grove
#

^ untested, since I can't run/build the program with my shitty ass IGPU

#

bruh, I thought is weird the whole code are in red indent idkman

swift fjord
#

guhhh why go in webstorm

#

doesn't jetbrains have an ide specifically for go

#

they do

#

goland

lament nimbus
swift fjord
#

ky s

lament nimbus
#

you too <3

jagged cloak
charred monolithBOT
austere talon
austere talon
#

thanks!

charred monolithBOT
crude hearth
austere talon
#

it's not even asking for that husk

#

it's asking for semis inside the interface

crude hearth
#

It continued complaining

#

I will look again once I get home

austere talon
#

you have ts interface { Blah, bleh, guh; }

#

remove commas

spark cove
#

@austere talon is hljs as devdependency chill

austere talon
#

dev dep?

#

for typings?

spark cove
#

yea

#

the definitely typed pkg doesnt go to 10.6.0

#

and discord's on 10.6.0

austere talon
#

I see

austere talon
#

explode eslint

#

just remove comma and push

austere talon
crude hearth
#

ok

umbral hedge
#

I thought hljs was huge

austere talon
#

we had electron for typings but it's more than 200mb so I extracted the types into my own package and used those instesd

crude hearth
umbral hedge
#

lmao

austere talon
crude hearth
#

idk

#

its literally same as Review.ts

austere talon
#

that shouldn't happen

austere talon
#

you have some bug I think

spark cove
#

hljs is 2M

austere talon
#

yeah that's fine then

crude hearth
#

horror removing default fixed

#

BUT WHY

#

anyway who cares trolley

austere talon
crude hearth
#

eslint moment

austere talon
#

but as long as its not massive it's okay

spark cove
#

oh yea that is true

#

i dont know easy way do that

austere talon
#

make a temp folder

#

npm i thepkg

#

then see how big the node modules folder is

#

but it has 0 dependencies so it's gonna be fine just do it

spark cove
#

me when i find that ouy

charred monolithBOT
spark cove
#

I would have done a lot of these myself but you didn't give me permissions to do edits
sillytime

charred monolithBOT
woeful sable
#

non of them has commit button

#

@austere talon

austere talon
#

they should ๐Ÿค”

spark cove
#

@austere talon i marked the pr as ready whenev u want to review

halcyon salmon
#

love shiki cb

spark cove
#

dance emoji

tropic wagon
#

@spark cove port better spotiembeds? please

spark cove
#

yea thats next

charred monolithBOT
tropic wagon
#

good good

spark cove
#

i wanted to get this one out of the way cus its got all the complex stuff

charred monolithBOT
austere talon
#

so many plugins to update

#

๐Ÿ˜”

#

time to automate it

spark cove
#

that sounds fun

tropic wagon
#

Just a big replace

#

with regex

spark cove
#

u could yea

#

find and replace

#

and then lint to remove the redundant parentheses

austere talon
#

not that easy cause also gotta add imports

#

otherwise i would just sed it

spark cove
#

i think if u

austere talon
#

๐Ÿ˜”

spark cove
#

add the findlazy import line

#

after every utils/misc import

#

eslint will auto sort ur imports

#

including removing unused

austere talon
#

its just 14 more

#

i will just do manually xd

spark cove
#

real

austere talon
#

done

spark cove
#

fakeNitro ๐Ÿคจ

austere talon
#

what

#

free emojis, stickers and streaming

#

:P

spark cove
#

inside the thing

#

it uses lazywebapck

#

inside the uh

austere talon
#

oh

#

i thought u were questioning the plugin

spark cove
#

oh LOL

#

client mod ๐Ÿคจ

austere talon
#

this is why we have ci

spark cove
#

move ci to build commit hook

austere talon
#

pre commit u mean?

spark cove
#

yea

austere talon
#

nah

spark cove
#

but it was a joke

austere talon
#

pre commit hooks are pain cause its annoying

spark cove
#

joke is you cannot dev

charred monolithBOT
austere talon
#

there xd

#

i only tested if esbuild worked

#

but obviously it doesnt check function level

spark cove
#

speedy type checker when

austere talon
#

tsc so slow

#

apparently tsc 5 is supposed to get a lot faster

spark cove
austere talon
#

yea!

#

but it's not usable yet i think

spark cove
#

yea no he's farish from it

tropic wagon
#

there's also a cpp one

austere talon
spark cove
#

type support for throw

charred monolithBOT
austere talon
#
GitHub

This PR aims to add an exhaustive case completion in the completions provided inside a switch statement.
The exhaustive case completion aims to provide all the possible case clauses that are not al...

GitHub

tl;dr: Running a single file without a workspace open is a common pain point in usertesting. It should not just be easier, but also take the opportunity to check the user's environment and ...

#

these are promising

#

tbf ive just been using esbuild for the latter

#
tsrun() {
  node -e "$(esbuild "$1" --platform=node)"
}
spark cove
#

tsx?

#

the package not the filetype

austere talon
#

eh

#

overkll

austere talon
spark cove
#

fair

woeful sable
#

can i skid ur proxy lazy function

austere talon
#

yea

spark cove
#

yea its dead noiw

woeful sable
#

i will leave credit tho

spark cove
#

these are funyn

#

../webpack and ../webpack/webpack

austere talon
#

lmao

tropic wagon
austere talon
#

what file is that

#

i wish auto import was smarter than that

spark cove
#

whoReacted

charred monolithBOT
woeful sable
#

yeah auto importing sometimes shits itself

spark cove
austere talon
#

maybe we could use namespace imports

#
import { React } from "@webpack/common";
#

i think esbuild natively supports those

woeful sable
#

it does

austere talon
#

but wouldnt be hard to make from scratch either

spark cove
#

does it?

#

im sure theres a plugin for it

austere talon
#

like this right

spark cove
#

i think u just put star in the key

#

wait ur on tsconfig

austere talon
#

seems to work out of the box with esbuild

spark cove
#

my b

#

oh what ok

#

oh yea u just need baseurl

tropic wagon
#

esbuild my beloved

#

so good

spark cove
#

massive

austere talon
#

yes works out of the box

spark cove
#

banger

tropic wagon
#

@austere talon for insane performance there's an esbuild banner Option set it to prepend "use strict" before each file

austere talon
#

it does that by default

tropic wagon
#

does it? when i set it up half a year ago it didn't do that

#

but epic

austere talon
#

now how do i make esbuild enforce use of these

spark cove
#

i think its respecting tsconfig's strict config

austere talon
#

i forgot about this mess

spark cove
#

what am i looking at

#

oh its that lint rule

#

why is it real

austere talon
#

it's an eslint rule that bans import from utils index

#

cause that kept causing issues

#

(circular imports)

spark cove
#

oh lol

austere talon
#

cause if u import from here it causes all these to be imported which in turn import webpack and settings

#

so if you import this file from webpack/settings it will be circular which causes things to be undefined

spark cove
#

does eslint have per-rule include

tropic wagon
#

bro i swear vencord functions on abstractiona and wrappers

austere talon
#

it does

tropic wagon
#

that just are very generous in assuming something will work some sort of a way

#

because yes discor

austere talon
spark cove
#

scary imge

austere talon
#

mm yes

#

lmao it broke reviewdb

spark cove
#

looking painful

woeful sable
#

esbuild shit itself for me when there's circular imports

austere talon
#

okay done

austere talon
woeful sable
#

it doesn't even say anything it legit throws an error about a file that it doesn't compile ๐Ÿ’€

spark cove
#

circular imports with decorator metadata

#

is death

woeful sable
#

i use esbuild to compile plugins folder to a strings then write those to plugins.ts and esbuild was throwing an error about plugins.ts being an invalid file ๐Ÿ’€

#

at first i thought i made it compile subfolders but it turns out it's ciruclar imports

#

lmfao

spark cove
#

lolol

#

a couple days ago i made a version of shiki that compiles the whole webworker to a string

#

with an esbuild plugin

#

just JSON.stringified

woeful sable
#

Json stringify is so based

spark cove
#

it would have been a bit funnier to util.inspect it

austere talon
#

terrifying

charred monolithBOT
spark cove
#

insna

#

e

austere talon
#

my browser froze

spark cove
#

time to sort ur imports

#

sort these imports!

austere talon
#

lmao

charred monolithBOT
austere talon
#

oh yeah

#

this will cause some conflicts with existing prs

spark cove
#

yea

austere talon
#

mmm

spark cove
#

its ok i barely touched anything

charred monolithBOT
austere talon
#

now how do i enforce use of these over relative imports

spark cove
#

: O O@!#

#

does this work lmfao

austere talon
#

0 stars

#

xd

#

and 3 yo

#

probably doesnt

#

but can try

spark cove
#

mmm deprecated

austere talon
#

why does it need 71 deps UG1_sweatJPG

spark cove
#

there was 1 line of conflict lets go

austere talon
#

theyre pulled in via nanomatch mm

#

it doesnt work

spark cove
#

FUCK

austere talon
#

/ doesnt support tsconfig paths

grave mangoBOT
# austere talon https://github.com/msfragala/eslint-plugin-path-alias/blob/master/lib/utils/get-...

**get-alias-map.js: **

const getIn = require("./get-in");
const { resolve } = require("path");

module.exports = function getAliasMap(context) {
  const rootPath = context.getCwd();
  const aliasSettings = getIn(context.settings, "import/resolver.alias");

  if (!aliasSettings) {
    return {};
  }

  const aliasMatrix = Array.isArray(aliasSettings)
    ? aliasSettings
    : aliasSettings.map;

  return aliasMatrix.reduce((aliasMap, [alias, path]) => {
    aliasMap[alias] = resolve(rootPath, path);

    return aliasMap;
  }, {});
};

spark cove
#

what what

austere talon
#
spark cove
#

my brain

austere talon
spark cove
#

is works

austere talon
spark cove
#

thats actualy nice

austere talon
#

auto fix works

spark cove
#

yay my ctrl + s will enjoy

austere talon
#

mmmm

#

i want to make it prefer relative if they're in the same directory

spark cove
#

what if pnpm patch

austere talon
spark cove
#

oh yea

austere talon
#

doesnt work

grave mangoBOT
spark cove
#

pnpm patch above that line like if (/^\.\/[^\/]$/.test(importPath)) return

austere talon
#

wouldn't it be

if (!/^(\.\.\/)/.test(importPath)) {
#

just make the second dot not optional

spark cove
#

the opposite?

#

cus tahts the ignore condition

#

not the opposite nvm but

maiden elk
#

my monitor is dying

spark cove
#

i was trying to prevent something like ./blah/eh/webpack/a.ts

spark cove
#

lets go

austere talon
#

thanks for the idea

#

pnpm patch pretty cool

spark cove
#

esp when dont want make whole new packag

#

i wanna pr pnpm and add workspace installs

charred monolithBOT
austere talon
#

god i love git cherry pick

austere talon
spark cove
#

poor pnpm lock

#

yiss

austere talon
spark cove
#

me personally

#

of course i do

#

enamored

charred monolithBOT
austere talon
#

should have probably tested

spark cove
#

oh wait

#

the absence of a test has foole dme

#

atleast it passed anyways

austere talon
#

dw we good it works

spark cove
#

nice

#

my pr is up to date btw

#

i lie down for bit now

austere talon
#

accidently posted in wrong channel lol

austere talon
spark cove
#

Shiki is for types

#

Core has no depa

#

Well eventwmitter e3

#

Actualy

#

It's no hundle

#

If u look in uh

#

Dependencies ts

#

There is unpkg

#

Shiki worker uses shiki

#

But I needed the types still on clientside

austere talon
#

oh

spark cove
#

Core has like general ipc stuff

#

Shiki is shiki but without a lot of builtins + some optimizations

#

And shiki worker is the worker part yea

#

Shiki worker is like one small ts file

austere talon
#

i was confused cause it bloated the bundle a bunch

#

but that's ur json

#

the json is like 20kb

spark cove
#

Jee

#

Z

austere talon
#

cant u fetch the json from cdn too?

spark cove
#

Yes

#

I will do

austere talon
#

thanks!!

spark cove
#

Ignore fornow

austere talon
#

but also take ur time

spark cove
#

Ya Yaya

austere talon
#

and sorry for being like really annoying about bundle size but if I'm not the bundle size will explode lmao

spark cove
#

Not annoying I just didn't know

austere talon
#

i wanna optimise the settings proxy

#

cause rn it's like making and destroying multiple objects whenever u acess settings

#

lots of gc

#

this should work probably?

#

seems to work

#

holy shit so many

#

wait wtf is going on here

#

oh found a bug

quaint sapphire
#

The path is a string

#

Duh

austere talon
#

wha

#

i mean why is there both plugins/Foo and plugins.Foo

#

but i realised it was a bug in the code

quaint sapphire
#

rule #2, [...]do not discriminate others[...]

#

Ven has broken two rules so far

charred monolithBOT
austere talon
#

how did that even get in there

umbral hedge
austere talon
#

you can just say no lol

charred monolithBOT
austere talon
#

kk

#

should i merge for now then or nah

#

i can help u with the props whenever

#

(no rush btw, i just wanted an answer so i know whats the status)

charred monolithBOT
austere talon
#

just push and I can help out

charred monolithBOT
austere talon
#

im not sure what the best way to do that would be

brave geyser
#

Simply explod

charred monolithBOT
charred monolithBOT
umbral hedge
#

owo

austere talon
#

static image

#

apng when

umbral hedge
#

it is apng

#

lol

austere talon
#

how

umbral hedge
#

it's animated

#

its the sticker

austere talon
#

media doesn't serve them usually mmm

umbral hedge
#

/stickers png does

#

I get the feeling Math.random() is really shit xd

#

not that it matters for this but

#

it tends to give repeated results a lot

austere talon
#

it's not too unlikely to get multiple similar results in a row

umbral hedge
#

ig

austere talon
#

anyway if u want true random bytes crypto exists bleh bleh

umbral hedge
#

ehh

woeful sable
#

optimize Math.random() to just 1

umbral hedge
#

it's not exactly that important xd

#

i will merge it now because shiggy deserves to be in vencord

charred monolithBOT
umbral hedge
#

the shiggy wiggy

maiden fog
umbral hedge
golden gulch
jagged cloak
#

why is it only a shiggy sometimes

umbral hedge
#

because cosy blob is good too

brave geyser
lament nimbus
umbral hedge
spark cove
#

oh yea @austere talon

grave mangoBOT
#

**index.ts: **

/// <reference lib="webworker" />
import type {
  Highlighter,
  ILanguageRegistration as Lang,
  IShikiTheme as Theme,
} from '@vap/shiki'
import * as shiki from '@vap/shiki'
import { createWorkerHost } from '@vap/core/ipc'

let highlighter: Highlighter

const spec = {
  async setOnigasm({ wasm }: { wasm: string | ArrayBuffer }) {
    shiki.setWasm(wasm)
  },
  async setHighlighter({ theme, langs }: { theme: Theme; langs: Lang[] }) {
    highlighter = await shiki.getHighlighter({ theme, langs })
  },
  async loadTheme({ theme }: { theme: string | Theme }) {
    await highlighter.loadTheme(theme)
  },
  async getTheme({ theme }: { theme: string }) {
    return { themeData: JSON.stringify(highlighter.getTheme(theme)) }
  },
  async loadLanguage({ lang }: { lang: Lang }) {
    await highlighter.loadLanguage(lang)
  },
  async codeToThemedTokens({
    code,
    lang,
    theme,
  }: {
    code: string
    lang?: string
    theme?: string
  }) {
    return await highlighter.codeToThemedTokens(code, lang, theme)
  },
} as const

createWorkerHost('shiki-host', spec)

export type ShikiSpec = typeof spec

spark cove
#

waoh

austere talon
#

ye dw

spark cove
#

@austere talon are u getting this

austere talon
#

ignore

#

it doesnt matter it works anyway

spark cove
#

oki

#

i bet u could update the patch to patch the package json :^)

#

i could actually

austere talon
#

eh no need

spark cove
#

yea it still cries on a cold pnpm i

#

meh

charred monolithBOT
charred monolithBOT
frail skyBOT
#
Bad Patches

None

Bad Starts

None

Discord Errors
Failed to load resource: the server responded with a status of 404 () ```
charred monolithBOT
charred monolithBOT
charred monolithBOT
quaint sapphire
#

@spark cove

spark cove
#

oh interesting

#

thanks for debugging / testing things for me

quaint sapphire
#

i did delete my settings file

#

so that aint the issue

quaint sapphire
#

๐Ÿ˜ญ

spark cove
#

lmfaoo

#

i not understan

#

why this happen

quaint sapphire
#

same

#

really weird

#

i even deleted my settings file

#

so that aint the issue

#

i also fully restarted discord

spark cove
#

my brain wasnt processing the imaging u sent

#

it just did tho

#

so let me read some cod

spark cove
#

rebuild

#

idk

#

just at least once

#

because it looks like that issue would happen with every plugin that uses settings

quaint sapphire
#

did it again, same issue

spark cove
#

or maybe im accessing Settings at top level

#

oh i am and it doesnt like that i guess

quaint sapphire
spark cove
#

nah it would be an issue

#

patching happens after all plugins are initialized

#

top level of shikiCodeblocks/index.ts happens WHILE plugins are being initialized

#

or rather before they are

#

so plugins will be undefined in that time cus transpiler moment

#

commonjs moment

#

circular import moment

#

took me a few tries to understand what im talking about but im there i think

#

@quaint sapphire pull and try

#

:D D D D D

quaint sapphire
spark cove
#

kk

quaint sapphire
spark cove
#

wew

quaint sapphire
grave mangoBOT
# quaint sapphire test https://github.com/Vendicated/Vencord/blob/main/src/Vencord.ts#L40-L77

**Vencord.ts: **Lines 40-77

async function init() {
    await onceReady;
    startAllPlugins();
    Components = await import("./components");

    if (!IS_WEB) {
        try {
            const isOutdated = await checkForUpdates();
            if (isOutdated && Settings.notifyAboutUpdates)
                setTimeout(() => {
                    showNotice(
                        "A Vencord update is available!",
                        "View Update",
                        () => {
                            popNotice();
                            Router.open("VencordUpdater");
                        }
                    );
                }, 10000);
        } catch (err) {
            UpdateLogger.error("Failed to check for updates", err);
        }
    }

    if (IS_DEV) {
        const pendingPatches = patches.filter(p => !p.all && p.predicate?.() !== false);
        if (pendingPatches.length)
            PMLogger.warn(
                "Webpack has finished initialising, but some patches haven't been applied yet.",
                "This might be expected since some Modules are lazy loaded, but please verify",
                "that all plugins are working as intended.",
                "You are seeing this warning because this is a Development build of Vencord.",
                "\nThe following patches have not been applied:",
                "\n\n" + pendingPatches.map(p => `${p.plugin}: ${p.find}`).join("\n")
            );
    }
}

charred monolithBOT
quaint sapphire
#

@spark cove

austere talon
#

you can't do that

quaint sapphire
#

dont tell that to me

#

also its been fixed

austere talon
spark cove
#

oh right im on armcord

#

lmfao

#

LMFAO

austere talon
#

I haven't found a way to fix it

quaint sapphire
spark cove
#

should i change the tsconfig ?

austere talon
#

I think they're talking about hasOwn

quaint sapphire
#

(i assume it is a spellchecker issue)

spark cove
#

ya

quaint sapphire
spark cove
#

hasOwn

quaint sapphire
#

i also assumed that

austere talon
#

hasOwn is a recent api that isn't supported in electron 13

spark cove
#

13??!?!@

austere talon
#

you love discord

spark cove
#

i thought it was at 17

#

at least

quaint sapphire
#

how much different is it from hasOwnProperty?

spark cove
#

kile

austere talon
#

canary is at 17

spark cove
#

kill

austere talon
#

just nicer syntax

quaint sapphire
#

bruh

spark cove
#

yea

maiden elk
#

meow

spark cove
#

i dont have to grab it from a prototype

austere talon
#

Object.hasOwn(foo, "bar")
Object.prototype.hasOwnProperty.call(foo, "bar")

#

it's just a bit of sugar for the second

spark cove
#

Object.prototype.hasOwnProperty*

maiden elk
#

foo?

quaint sapphire
#

cant we make a util for that shit?

#

or just include lodash or whatever

spark cove
#

waht

#

wait

#

WHAT

maiden elk
#

bloat

austere talon
spark cove
#

why is that real too

#

oh my god of course

#

Object is an object

quaint sapphire
#

this is amazing

austere talon
#

hop on electron 22 @quaint sapphire

#

or Armcord

quaint sapphire
#

uhh, no

#

im now on windows, i wont mess with that shit

spark cove
#

is currently building their own vencord

#

wont mess with a oneclick installer

quaint sapphire
#

uhh, I don't really want electron to be globally installed

spark cove
#

why would electron be globally installed

quaint sapphire
#

thats what a one-click installer would do

spark cove
#

ArmCord is a built electron app

#

it will not install the npm electron package

quaint sapphire
#

i was talking about electron 22 w/o armcord

austere talon
#

use armcord bleh

quaint sapphire
#

no

spark cove
#

ah

austere talon
#

and electron 22 w/o armcord won't install electron globally either

#

you download latest binaries zip from github and extract in your discord folder, overriding all the files that conflict

quaint sapphire
#

i really dont feel like doing that shit rn

#

its about the mentality

#

when using linux i go way beyond

#

when using windows i just let it be

spark cove
#

mentality moment

quaint sapphire
#

sad that this doesn't get highlighted

#

well, makes sense

#

but still

#

@spark cove is it possible to also apply it to file previews?

austere talon
#

yeah that'd be cool

quaint sapphire
spark cove
#

thats how hljs knows the lang

#

but yea sounds like a good idea for a bit later

#

im gonna do some final splitting of the Highlighter file

#

and ask for review so i can work on ArmCord audio video screensharing

spark cove
#

@austere talon ok hi i can haz review?

austere talon
verbal pumice
#

i should probably answer this

and the reason i didnt do it until now is because i think the automod embed just looks better. messages would be nicer because i dont have to parse images/videos/etc. myself. maybe add embedding actual message components as a fallback in case there's something not showable in the automod embed? or just go the cleaner way of only having an embedded message component

charred monolithBOT
charred monolithBOT
charred monolithBOT
umbral hedge
#

dowoas

woeful sable
#

doas my beloved

verbal pumice
# charred monolith

it took so long !!!1!
this is objective indisputable proof that windows is better !!

charred monolithBOT
#
[Vendicated/VencordInstaller] New tag created: v1\.0\.5
austere talon
#

oh its arm64

austere talon
#

Windows don't take 3 trillion years to build challenge (failed)

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
muted mural
#

heh

brave geyser
lament nimbus
#

Remote code execution

brave geyser
austere talon
#

finally vencord is getting remote code execution

brave geyser
#

Yop

#

Long awaited feature, been under development for the past few months

rigid venture
#

bipolar girl

austere talon
#

hey man

brave geyser
#

๐Ÿ’€

austere talon
#

once i edited i realised it's not actually that funny

rigid venture
#

i forgive you

brave geyser
#

It's pretty funny

crude hearth
#

ven is kind of person that would rewind time because it was not funny

#

if he could

austere talon
crude hearth
austere talon
#

14% battery heelp

#

i dont wanna get up and get charger

brave geyser
#

Turn off your buttplug guhhh

austere talon
#

too comfy in bed

crude hearth
#

HORROR YOU INIRONICALLY USE LAPTOP ON BATTERY

austere talon
#

guh im in bed

crude hearth
#

use phone

brave geyser
#

No outlet next to bed?trolley

austere talon
#

i was watching love live with megu trolley

#

hence in bed cause comfy

austere talon
#

charger is far away

brave geyser
#

Yell at the top of your lungs and ask someone to bring the charger

austere talon
#

my mum would kill me

crude hearth
#

bad idea

brave geyser
#

Skill issuedogsmirkreverse

#

When my parents sleep they're near impossible to wake up

#

I can't fucking English

crude hearth
#

h

#

I will go to sleep

#

its 4AM

austere talon
#

SLEEP

brave geyser
#

Same and 3am dogsmirkreverse

crude hearth
austere talon
#

bring me charger before u sleep

brave geyser
#

Nop

#

You will explod

spark cove
#

Jqjab

frail skyBOT
#
Bad Patches

None

Bad Starts

None

Discord Errors
Failed to load resource: the server responded with a status of 404 () ```
austere talon
#

mfw linux building two different binaries is way faster than windows building just one

austere talon
#

we becoming ultra zoomer

#

doas and wayland ๐Ÿ’ช๐Ÿš€

#

soon sudo and x11 support will be dropped ๐Ÿฆต

fiery jungle
#

it was my first anime i watched

#

long long ago

charred monolithBOT
lament nimbus
austere talon
#

๐Ÿค”

#

that's not why people use doas

#

it's a lot lighter and simpler

lament nimbus
#

(i know, I was joking)

#

I used to use doas until I realized there is no point

austere talon
#

lmao yeah

lament nimbus
#

It's not like an entire gigabyte so why should I care, I'm not some gentoo user who needs everything to be minimalist

charred monolithBOT
maiden elk
#

i am minimalist

woeful sable
quaint sapphire
#

Dunno why they didn't just re-implement sudo

Why did it have to be incompatible?

woeful sable
#

then it wouldn't be simple anymore

quaint sapphire
#

I'm talking about the command line args

#

It could have been a drop in replacement

quaint sapphire
woeful sable
#

^ clueless about sudo's configuration system

#

I personally never had a use case for an arg other than --user

woeful sable
quaint sapphire
maiden elk
#

just map it doas to sudo???

#

so when you run the word sudo

#

its actually doas

#

then everything work

quaint sapphire
#

That's not how it works

#

Lol

#

It will work if you don't use any CLI arg or ENV

#

Which is very limited

maiden elk
#

wat

#

just alias

#

alias sudo doas

brave geyser
maiden elk
brave geyser
#

Same. Just saying it's a thing that some people need trolley

maiden elk
#

what if

#

sudo doas

#

explod???

austere talon
#

sudo vs doas is silly

#

Big code = many cves
doesn't really make a lot of sense

#

you should probably stop using an operating system or browser as well then

#

sudo is the de facto standard, usually the people using doas for "security" are people using Linux on their home pc where it doesn't even matter to have vulnerable software (cause noone is gonna exploit it)

#

(not saying doas is bad, I think it's neat, but it's too limited for me, mainly the lack of environment variable support sucks)

crude hearth
#

actually if I break into their houses since their hard drive is not encrypted I probably dont even need to hack it

austere talon
#

if you use doas on your home pc for security then you should also encrypt your disks, disable the root user altogether, and so on

lament nimbus
#

And I do have full disk encryption trolley

fresh lodge
#

a lot of servers do this by default

#

you can only use sudo or sudo su

maiden elk
#

so how will you authorize

#

lol

fresh lodge
maiden elk
#

when running sudo

#

you get asked for a pw

fresh lodge
#

sudo uses your user's password

maiden elk
#

watafak

fresh lodge
#

that's why you can even use sudo for a root account that doesn't have a password

#

you can also configure the sudoers config to not ask for a password, if you'd wanted

#

If you tried to just su root without sudo, it'd ask for root's password then (which you obviously wouldn't have if it simply didn't exist)

#

this is why you'd sudo su

half jacinth
austere talon
#

or change its login shell to nologin (bad idea lmao)

swift fjord
#

i encrypted vens files

austere talon
#

NO

swift fjord
#

:)

#

im not giving you the key

maiden elk
#

"decrypt one file for free!"

quick ibex
umbral hedge
#

can't wait for people to ask "How do I know if I have X11 or Wayland"

charred monolithBOT
verbal pumice
#

i just realized how stupid my last (now deleted) message was

#

anyway, embedding the message component actually doesnt look that much worse

#

well, wont look that much worse after i unfuck the font

charred monolithBOT
charred monolithBOT
#

this is not true. If you omit keys, React has no way of knowing which element exactly is which, which will in the worst case lead to mixed up states (as was the case in the old plugin page where if you searched something the switch state got messed up). if it works as expected, you were simply lucky. It also technically shouldn't matter if the rendered items are stable and never change but its still best practice to add them anyway

austere talon
#

pointless argument just add keys xd

charred monolithBOT
umbral hedge
#

huskhuskhuskhuskhuskhuskhusk

#

it's just good practice to always use a key on iterated elements

quaint sapphire
#

cant use that as a key

#

what would you use for the key?

#

lines.map((line: JSX.Element, i: int) => { /*...*/ })
like, really

austere talon
#

the solution is to not do a double map

#

make the first map build the full finished ui and add keys there

quaint sapphire
#

I do agree that the code is split in weird ways
but do you perhaps mean to use the entire line (the actual string) as the key?

#

a checksum would also work, but that is overkill lol

austere talon
#

you can just use the line if that's the only option yes

quaint sapphire
#

now comes the question of: is it still a good practice at that point?

#

I wonder how expensive a md5 checksum is