#πŸͺ…-progaming

1 messages Β· Page 131 of 1

jade stone
#

use linters that integrate with the type system

#

(typescript-eslint)

#

enums are a personal choice, also know the difference bewteen enum and const enum if you use them

#

if you dont use them, know what literal types are (string interpolated types can help with generating these sometimes)

#

know what as const and satisfies Type mean

#

know what tuples are and how to use them

deep mulch
#

as const so cursed

jade stone
#

nop

deep mulch
#

yop

jade stone
#

do you know what it does

deep mulch
#

why doesn't const keyword work

#

isnt it for making it read only

jade stone
deep mulch
#

@jade stone slimey sadan

jade stone
#

@deep mulch everything you need to know about as const

// literal object without as const
const _1 = { // { foo: number; bar: string; }
    foo: 1,
    bar: "abcd"
};

// literal object with as const
const _2 = { // { readonly foo: 1; readonly bar: "abcd"; }
    foo: 1,
    bar: "abcd",
} as const;

// literal object with prop as const
const _3 = { // { foo: number; bar: "abcd"; }
    foo: 1,
    bar: "abcd" as const,
};

// tuple without as const (not actually a tuple)
const _4 = [1, "abcd"]; // (string | number)[]

// tuple with as const
const _5 = [1, "abcd"] as const; // readonly [1, "abcd"];

declare const myStr: string;
declare const myNum: number;

// tuple with non-literals *without* as const (not really a tuple)
const _6 = [myStr, myNum]; // (string | number)[]

// tuple with non-literals *with* as const
const _7 = [myStr, myNum] as const; // readonly [string, number]
deep mulch
#

why does leading const not make it a readonly

pseudo sierra
#

shit language

deep mulch
#

true

pseudo sierra
#

js is a dumpster fire, ts puts out the fire but the garbage is still there

tired vigil
#

Dont forget that you can also add a "const" specifier to generic types in functions, so you can omit "as const" when passing in a literal

deep mulch
pseudo sierra
#

shrimply transpile c++ to js somehow

#

surely can't be that hard

jade stone
#

do they use llvm jit at runtime?

pseudo sierra
#

why would you bother with jit if you already have llvm ir

jade stone
#

oh yeah

#

dum

pseudo sierra
#

malware

deep mulch
#

@jade stone

pseudo sierra
#

salad

jade stone
#

@royal nymph found this gem in a library i was using because i needed to reimplement it because the author is terrible at packaging

royal nymph
sour wing
sour wing
#

(I fucking hate cmake)

median root
#

are there even any good widely supported alternatives to it?

deep mulch
#

no

median root
#

is it that well supported?

sour wing
royal nymph
#

go and cargo are pretty good build tools

shrewd canopy
deep mulch
pseudo sierra
#

and cmake sucks so much ass that I'd rather do extra bs to make meson work instead of having to use cmake

jade stone
#

how do i encode av1 with ffmpeg and not have it go at .5fps

#

ffmpeg -i "orig/2_h264.mkv" -c:v libaom-av1 av1/2_av1.mkv

royal nymph
#

don't use libaom it's slow

jade stone
#

what should i use instead

royal nymph
#

if you want fastest and ur gpu supports it, av1_vaapi

#

otherwise libsvtav1

pseudo sierra
#

gpu encoding sucks ass tho

jade stone
#

Currently, Gemini CLI restricts IDE integration features to environments where TERM_PROGRAM is vscode (or other hardcoded values)
insane

#

WAIT

#

WHAT IS THAT THREAD

jade stone
pseudo sierra
jade stone
royal nymph
#

and good enough imo

#

I tried some encoding with my 9070xt and it's good enough and insane speed

jade stone
elder yarrowBOT
# jade stone vai what does this error mean in ffmepg

This FFmpeg error indicates a failure during video conversion, specifically related to filter processing and encoder initialization. Here's a breakdown of what the messages mean:

  • "Impossible to convert between the formats supported by the filter 'Parsed_null_0' and the filter 'auto_scale_0'": This suggests that there's a mismatch or incompatibility in the video formats (pixel format, resolution, etc.) between two internal FFmpeg filters that are trying to communicate. Even though both src: yuv420p and dst: yuv420p are listed, something in the filter chain is not happy with the format conversion. This can happen due to inconsistent input dimensions or incorrect image formats.
  • "Error reinitializing filters!": This error often accompanies the format conversion issue, meaning FFmpeg was unable to properly set up or reconfigure its processing filters for the task. This can be caused by various issues within the filter network.
  • "Task finished with error code: -38 (Function not implemented)": This error code (-38) typically means that a requested function or feature is not available or implemented in the FFmpeg build you are using, or by the specific hardware acceleration being attempted.
  • "Could not open encoder before EOF": This indicates that the video encoder (in this case, av1_vaapi) failed to properly initialize and start writing output before the end of the input stream was reached. This could be due to incorrect encoder parameters or a problem with the encoder itself. For instance, if using hardware acceleration, the decoder might not know how to decode the input stream. Sometimes this can also be a warning that can be ignored if the output file is still fine, but in this case, it's part of a larger failure.
  • "Task finished with error code: -22 (Invalid argument)": Error code -22 signifies an invalid argument was provided…

-# Response generated by gemini-2.5-flash. AI may be incorrect or misleading.

royal nymph
#

gemini2.5 flash is kind of dumb

#

use a better ai

#

but ai loves making up fake ffmpeg switches

jade stone
# jade stone

i get 25% faster than this by using -hwaccel vaapi but not sure if thats the same thing

royal nymph
#

I don't think it is

#

pretty sure u have to explicitly use vaapi

jade stone
#

hmm

royal nymph
#

hwaccel seems to be for input decoding

jade stone
#

guhhhhhh

#

it didnt copy all sub and audio tracks

deep mulch
#

@jade stone stinky sadan

jade stone
#

@royal nymph gpu doesnt support encoding to av1

#

only decode

royal nymph
#

get better gpu

jade stone
#

@deep mulch @royal nymph guess i'm not doing amf

little bluff
#

any plugin/userplugin which removes the "forwarded" text when you forward a messege?

elder yarrowBOT
little bluff
#

sorry, didnt know it was supposed to be asked in support

weak zenith
#

someone called it

#

by someone i mean worf

supple whale
#

mmmm cool

jade stone
#

coming back to code i wrote a while ago

ornate quiver
pseudo sierra
supple whale
#

but...

#

its not meant to be faster?

#

its meant to be more convinient and automatically infinitely scaleable

#

but yeah i also hate cloud computing

ornate quiver
#

point was that for the same vcpu and memory configuration the performance was abysmal while being much more expensive

short dragon
#

glad to see this work lmfao

shrewd canopy
supple whale
#

and why vite sucks because it doesnt support JSON imports :)))

shrewd canopy
supple whale
supple whale
#

:)))))

dense sand
supple whale
#

why?

#

lmao

#

its a dogshit runtime

#

why would i fix something thats broken, when i can instead not do that

#

and use somethings thats NOT broken and works better

#

?????

dense sand
#

i have a very positive experience with Bun

supple whale
#

i have nothing but dogshit experiences

#

its fine for running little scripts

#

for which stock nodejs is also just as good

#

for anything more complex its ass

dense sand
#

idk i have medium sized project with workers and for some reason, workers work better in bun than in node

supple whale
#

well

#

at least its not spidermonkey

#

could be worse LOL

jade stone
#

Bun is just more pain than it's worth

#

I'd rather use node and keep my sanity

supple whale
#

its already hell that i need to use vite and cant use webpack/rspack

#

cuz vite is fucking hell as well

#

as me and sadan experienced trying to get a worker in a sub-dependency working

#

because what was it? rollup or esbuild treats workers from dependencies as assets and not code?

#

and that breaks vite, which breaks sveltekit

#

gotta love minifying data to reduce import sizes

fallow token
#

i love my baremetal

#
OS: Ubuntu 24.04.3 LTS (Noble Numbat) x86_64
Host: PowerEdge R6615
Kernel: Linux 6.8.0-90-generic
Uptime: 22 days, 19 hours, 42 mins
Packages: 2684 (dpkg), 60 (nix-default), 9 (snap)
Shell: bash 5.2.21
Terminal: /dev/pts/0
CPU: AMD EPYC 9254 24-Core (24) @ 4.15 GHz
GPU: Matrox Electronics Systems Ltd. Integrated Matrox G200eW3 Graphics Controller
Memory: 9.49 GiB / 377.47 GiB (3%)
Swap: 0 B / 8.00 GiB (0%)
Disk (/): 52.99 GiB / 438.49 GiB (12%) - ext4
Local IP (enp133s0f0): 
Locale: C.UTF-8```
#

isnt this just perfect

#

awh man i js leaked the ip of it :C

#

its not even the local ip πŸ˜”

supple whale
#

88 -> 47kb doe

#

nice

supple whale
#

i see....

#

welp at least u can run doom!

#

200kb of RAM for 7.6k fonts is not bad

pseudo sierra
#

given I've seen mbs for a single font that's pretty good

supple whale
#

read the readme in the package

pseudo sierra
#

oh

supple whale
# pseudo sierra oh

Local Font Access API ponyfilled via Google Fonts API. Allows you to use LFA on any environment which supports fetch and ESM import().

pseudo sierra
supple whale
#

its cool shit

#

my sub renderer can load fonts from ur pc or from google if it doesnt find them

pseudo sierra
#

much fancy

frosty obsidian
#

is that just ubuntu being ubuntu

pseudo sierra
#

yes it's 6.8

#

not 6.6 or 6.12

frosty obsidian
#

insane

pseudo sierra
#

very

deep mulch
#

@frosty obsidian uses ubuntu

supple whale
#

any TS enjoyers know how to make T inferred?

export async function settle<U, T> (promises: Array<Promise<T>>): Promise<{ errors: U[], results: T[] }> {
  const settled = await Promise.allSettled(promises)
  return settled.reduce<{ errors: U[], results: T[] }>(
    (acc, cur) => {
      if (cur.status === 'fulfilled') {
        acc.results.push(cur.value)
      } else {
        acc.errors.push(cur.reason as U)
      }
      return acc
    },
    { errors: [], results: [] }
  )
}
supple whale
#

I fixed it 20 seconds later

#

dont mind me

jade stone
#

Hope this helps

supple whale
tired vigil
jade stone
#

tanstack start is neat

#

vite but ssr actually works

jade stone
#

i can only ssr this rn 😭

ornate quiver
jade stone
#

Debian lover when bigger Debian lover walks in

winged mantle
#

I love cpp

using Proto = void ();

// OK
// defines void my_func();
Proto my_func;

// not OK
Proto my_func {

}
#

actually you could do a similar thing in C

slow sundial
#

amazing

winged mantle
#

looks like declaration and function definitions are pretty different in the grammar

#

function definition requires a parameter list in the declarator

#

function declarations just go together with other declarations and i guess are determined based on type

jade stone
#

oh

#

sick

#

finally standard

deep mulch
#

husk

supple whale
#
const ptr = this._malloc(uint8.byteLength)
console.log(ptr)
#

returned the same pointer 15 times

supple whale
fierce pendant
supple whale
#

C/C++ any1?

fierce pendant
supple whale
#

.,,,,

fierce pendant
#

typescript -> javascript -> java -> c++ -> c

royal nymph
dense sand
#

theres nothing which makes them similar other than the name

#

(its a joke right?)

jade stone
#

Both c-style, high level

dense sand
#

wow you could say the same about 90% of other high level languages

fleet cedar
#

"C-style" meaning "if(cond) {}"

fallen nebula
#

Guys i trying to make music
What do you think of the bases
https://julienraptor01.ddns.net/music
I'm using strudel which is funni writing code to make music

fierce pendant
fallen nebula
#

Tf is that bro

lusty ivy
#

learning how to code a discord bot out of spite

#

some person told me when i asked how she made custom bots, "i dont teach. buy one from me or learn it yourself"

#

so i will

#

update though, he can go online if i run the verycool.js :3

jade stone
#

@supple whale jellyfin subtitles took like 2 minutes to load for an episode im watching

supple whale
#

they don't use my renderer which fixes this exact problem

#

meanwhile I'm making my subtitle renderer load fonts from your device system fonts, and from Google fonts

#

if they are not properly included

#

also deduplicating fonts so the same font isn't loaded multiple times

#

etc etc

#

jellyfin fixes none of these!

jade stone
#

findroid fixes this

#

findroid so good

#

@deep mulch port findroid to desktop

supple whale
#

I'll do it no joke

fierce pendant
frosty obsidian
#

its a variable font so they probably just have some stuff configured

#

you can also just tweak it to match

runic sundial
#

Are you using the regular one, or getting epically trolled by the variable weight one?

#

Oh it only has a variable variant

#

Probably take a screenshot of it, open in something like Krita and tweak the weights there till you can get text to perfectly overlay

deep mulch
#

you will make

deep mulch
#

i just use system font anyways

#

nop

#

i think mine is google sans

#

ripped from pixel

#

how

#

@young flicker wyd

#

are you a gamer

torpid solar
#

Dont use

#

Use pelican

#

So much better than pterodactyl

#

Why would you run something in docker that already runs the things you do in docker

#

Girl are you insane

dense sand
#

Just use coolify or something

supple whale
supple whale
#

im sometimes appalled by how bad my own code is

foggy gulch
#
const modules = Object.values(
  window.webpackChunkdiscord_app.push([[Symbol()], {}, (e) => e]).c
);
const settingsModule = modules.find((m) => {
  try {
    return m.exports?.Z?.getState?.()?.[2]?.proto;
  } catch {
    return false;
  }
});

const protoData = settingsModule.exports.Z.getState()[2].proto;
const urls = atob(protoData).match(/https?:\/\/[^\s\x00-\x1f]+/g);

Object.assign(document.createElement("a"), {
  href: URL.createObjectURL(
    new Blob([JSON.stringify(urls, null, 2)], { type: "application/json" })
  ),
  download: "discord-favorite-gifs.json",
}).click();

i have this js snippet i found online to download all favorite gifs, it used to work but a few days ago i started getting the error Uncaught TypeError: Cannot read properties of undefined (reading 'exports') at <anonymous>:12:34. i assume it's some change related to discord's bundling but i can not for the life of me find out what to replace here.

(i know about the one in #πŸ“œ-js-snippets but that requires vencord to be installed and im trying to write a program to automate downloading your favorite gifs. while i can automate installing vencord as an extension id prefer not to)

deep mulch
#

@royal nymph fix

shrewd canopy
shrewd canopy
# shrewd canopy Use proper proto store please
enum GIFType {
  NONE = 0,
  IMAGE = 1,
  VIDEO = 2,
}

/** A mapping of gif URLs to gif metadata */
const gifs: Record<string, {
  format: GIFType,
  src: string,
  width: number,
  height: number,
  order: number,
}> = UserSettingsActionCreators.FrecencyUserSettingsActionCreators.getCurrentValue()?.favoriteGifs?.gifs ?? {};
const gifUrls = Object.keys(gifs);

Something like that should work

supple whale
#

@jade stone holy fuck

#

holy fuck

#

holy fuck

#

some1 needs to witness my genius

#

you mentioned that font shit in JF right?

#

i already had mostly fixed it a few years back, by simply loading the fonts async, so the library isn't being blocked

#

so on init, it would use the fallback font if it wanted to use a not-yet loaded font, and it would just load the entire list of fonts async

#

i just made it x100 better

#

it now load NO FONTS, and instead auto-detects what fonts are required for a given frame to render and if that frame is about to render fetches them async and loads them ONLY if they are actually about to be used for rendering

#

additionally it can load fonts defined by the developer in the constructor, if that fails, dynamically load fonts from the user's OS, and if that fails, load fonts from google fonts API

halcyon cosmos
#

okay!

lusty ivy
#

YESS I DID IT

fierce pendant
#

unknown....

#

are you claude?

tidal summit
#

πŸ€”

foggy gulch
#

i was trying to change m like an idiot πŸ€¦β€β™‚οΈ

tired vigil
#

base64 decoding a protobuf string and parsing out the urls is so horror, I wonder why they added that 😭
also I'm pretty sure this doesn't even work correctly?? it doesn't differentiate between source and media urls so you get unusable duplicates

supple whale
#

this shit so cool

#

D:

#

this is like the coolest thing since sliced bread

#

I spent 3 days on this, im gaslighting myself that it matters

deep mulch
#

guh how should I handle data in a database that has differing properties

#

I don't like leaving them null

royal nymph
fallen nebula
#

also if you really bad you can store json in the db

deep mulch
fallen nebula
#

that's called git isn't it ?

lucid trail
#

nulls would prolly work

deep mulch
#

ulgy

royal nymph
#

does the database need to know about the event specifics?

#

could just have shared columns like id timestamp reason type then a data field that is just the data as json string

#

this is the cleanest solution if the database doesn't need to know about the audit log data

pseudo sierra
fallen nebula
#

basically every db can speak json now

ornate quiver
#

storing json is pretty inefficient

#

depends on your requirements

supple whale
#

store it as as raw binary data

#

serialize the objects

#
import { serialize, deserialize } from 'node:v8'

db.put(serialize({hello: 'world'})))
const data = deserialize(db.get())
#

wont get much faster and efficient than that without compression

fallen nebula
deep mulch
jade stone
fallen nebula
#

java 25 cool
java is the future
also groovy for gradle nice
and kotlin if you're a hipster

deep mulch
#

groovy not nice

#

groovy evil

fallen nebula
#

find what is wrong for a cookie

#

no, i'm using rust, cargo
and this isn't the right answer

#

no no everything is working

solemn ravine
#

its in rust

ornate quiver
#

im rusty

fallen nebula
ionic lake
supple whale
#

custom website with custom IPC running on chromecast

#

which means i can simply open any URL on any chromecast target, and send any arbitrary messages to it

#

from a nodeJS cli

#

:D:D:D:D:D:D:D:D:D:D:D

#

@jade stone HOW ABOUT THIS

#

IS THIS "JUST NEAT"?

#

HUUUUUH

supple whale
pseudo sierra
#

fancy

supple whale
#

with this you can simply open any URL

#

even on your local network

#

so you can host a LAN only website in your house

#

and just open it on your chromecast

pseudo sierra
#

localhost:3000 on the chromecast πŸ—£οΈ

supple whale
#

camera streams, dashboards, homeassistant, anything

supple whale
#

instead of localhost you'd do something like 192.168.1.220

#

your PC's local IP

#

and that'd work too.

pseudo sierra
#

ofc

supple whale
#

it is kinda fire

#

i'm gonna use it to render http urls from my torrent client that you'll be running on your PC or phone

#

πŸ”₯

pseudo sierra
#

@young flicker

jade stone
#

@supple whale

#

so much faster

supple whale
#

is that the experimental vite shit?

jade stone
#

yeah

supple whale
#

idk skill issue, mine is insta

#

and its like 10MB of code

jade stone
#

im doing ~1000 more modules

supple whale
#

probably icons

#

definetly icons

#

you probs import root dir of some svg icon lib

#

and it rapes build perf

jade stone
#

hmmm

supple whale
#

its a cerified hood classic

pseudo sierra
#

importing 2k minky pictures

supple whale
#

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

#

KILL ME PLEASEEEEEEEE

#

I CANT ANYMOREEEEE

#

TEST IN PROD WITHOUT INSPECTING IS PAIN

jade stone
supple whale
#

lmao thats so ass

jade stone
#

i do have a few large deps i'm bundling

#

(monaco-editor, typescript)

#

but those should all come pre-bundled

pseudo sierra
#

bundling my salad

jade stone
#

@supple whale i think i found the culprit

#

combo of my shitcode and other code

#

i have some files that i generate at build-time

#

and they are expensive

#

i think another vite plugin is making them get generated more than once, even though the output will still be the same

supple whale
#

fuck it i give up with this

#

imma debug like this

jade stone
#

i love ssr

jade stone
supple whale
#

shit's sandboxed to ass

jade stone
#

love

supple whale
#

debugging doesnt work

#

i tried

#

docs say it does

#

docs lie.

pseudo sierra
#

shrimply explode sandbox

#

or does that break other shit

dense sand
#

How should I cite Git? Who should i provide as author and the title?

pseudo sierra
#

elaborate

#

like an entire git repo?

#

a single commit?

dense sand
pseudo sierra
#

like git itself?

dense sand
#

yes

pseudo sierra
#

torbalds as the author and idek whoever the fuck is the current maintainer after he was done with it

fallen nebula
deep mulch
#

@pseudo sierra

pseudo sierra
#

@deep mulch

deep mulch
pseudo sierra
#

puter

jade stone
#

got codeblocks working with ssr blobcatcozy

winged mantle
fallen nebula
#

Just don't do SSR

jade stone
#

now i will learn how to do embed things

royal nymph
#

just install a library...

supple whale
#

so u cant move away once it goes to shit, because you're reliant on bun-only shit

ornate quiver
#

yop

supple whale
#

worst of all, is they will gloat "our native C code is 14% faster than this 10 year old JS only library!" like its a good thing

#

and if you took the time to write the same code in NAPI or Rusty, it'd be x10 faster

#

[notably that 10 year old JS library runs x3 slower on bun than on v8, which is why they needed to re-write it to native in the first place, so their runtime doesnt look incompetent]

#

// slander

jade stone
#

Guhhh

#

React hydration is so annoying with suspense

supple whale
#

never look back

#

it just works

jade stone
#

Tried svelte once

#

Never again

supple whale
#

no, unironically you wont be able to write react after u touch svelte, i'd rather be unemployed than go back to react

#

it burst the bubble of dogshit so much

supple whale
jade stone
#

No

#

I didn't try sveltekit

#

I tried svelte

supple whale
#

yeah

#

svelte is just the component framework

jade stone
#

Yes

supple whale
#

sveltekit is the whole SSR, CSR, routing, etc shit

#

its sooooo good

jade stone
#

I don't like svelte in general

pseudo sierra
#

salad doesn't like anything

jade stone
#

Never tried kit as there was no point because I didn't like svelte

#

And kit wouldn't change that

supple whale
#

salad likes jf, thats about it πŸ˜›

jade stone
supple whale
#

skill issue if u hate svelte

#

nothing better in this world simply

pseudo sierra
#

istg ur allergic to good takes

supple whale
#

those are universal truths

#

not bad takes

jade stone
#

At least we can both agree bun is bad

supple whale
#

i love bun!

pseudo sierra
jade stone
supple whale
#

i made my own, with blackjack, hookers and anime waifus

pseudo sierra
#

πŸ”₯

ornate quiver
#

jf as in jellyfin?

supple whale
#

yeh

jade stone
ornate quiver
#

yeah jf is a pita to work with but idk anything better

supple whale
#

i aint reading all that, fuck that garbage

#

"HERE'S THIS COOL, THING, AND 1 WAY TO USE IT CORRECTLY, IF YOU USE IT ANY OF THE 99 OTHER WAYS YOU'LL BREAK EVERYTHING"

pseudo sierra
#

reactplosion

supple whale
#

1 sec imma do a funny

supple whale
#

want your route to behave differently?

#
export const ssr = true
export const prerender = true
export const trailingSlash = 'always'
#

i love hating on rect

#

dw sadan i love u

#

i just hate react

jade stone
supple whale
#

writable<Promise<void> | nulll>(null)

#

ah yes

#

nulll aka 00 instead of just 0

#

now with x2 the 0's!

pseudo sierra
#

nulll

woven mesa
#

gm

open nymph
#

shush

shrewd canopy
# royal nymph just install a library...

No, nobody wants 100500 identical libraries that do exact same thing
Next you get other libs that depend on some random markdown library and you have different one

deep mulch
night sphinx
#

make ai resolve identical libraries for u problem solved

jade stone
#

Only 12k

#

Did some get inlined or smth

deep mulch
#

@jade stone sloppy

jade stone
#

Well yeah

#

But desktop has 25k

winged mantle
#

very trustworthy

#

the thing is it's true it never sends any requests (so the keys generated stat must be fake)

#

(unless it's just page views ig)

#

i like the way there's a loading bar at the top that never goees away

jade stone
#

i love destructuring blobcatcozy

ocean basin
#

Guys, is it possible to get your own user ID in a plugin? I need to check if I'm being mentioned in a message listener

supple whale
#

we love protobuf

#

"outputs for es6 for nodejs"

#

import proto from "./proto.js"

#

yes thank you useful

#

god i hate these libs

fierce pendant
#

how do i do integer factorization for numbers bigger than 1 trillion in javascript in less than 1ms

frosty obsidian
#

you don't

fierce pendant
jade stone
#

is it possible to match an element that has a selection as a decendant
eg: match p because i am selecting text within p

#

the ::selection pseudo class is weird, and none of the :focus-* selectors work as text is not focused

fierce pendant
jade stone
#

was my first thought

supple whale
#

then go number by number

#

check if u can divide by 2, then 3, then 4

#

then bitshift/bitmask by those values if you can

#

then sum app the steps you applied

#

then...

#

idk something like that, i imagine that kind of algo would get u most of the way there

ocean basin
#

Can anyone tell me why Vencord will fail to load if I build it with this user plugin? It's my first attempt, I can do it in the devtools, but making it into a plugin causes Vencord to not even load

const Dispatcher = Vencord.Webpack.findByProps("actionLogger");
Dispatcher.subscribe("MESSAGE_CREATE", onMessageCreate);

const ipcRenderer = Vencord.Webpack.findByProps("isIPCReady");

function onMessageCreate(e: unknown) {
  if (!isMessageCreateEvent(e)) {
    console.error("Received invalid data:", e);
    return;
  }
  if (!shouldNotify(e)) return;

  const notificationConfig = configureNotification(e.message);
  ipcRenderer.invoke("NOTIFICATIONS_SEND_NOTIFICATION", notificationConfig);
}

function configureNotification(msg: Message) {
  return { title: msg.author.globalName + " says", body: msg.content ?? "" };
}

function isMessageCreateEvent(obj: any): obj is MessageCreateEvent {
  return obj?.type === "MESSAGE_CREATE";
}

function shouldNotify(e: MessageCreateEvent) {
  const myId = UserStore.getCurrentUser().id;
  // Don't push notifications for my own messages
  if (e.message.author.id === myId) return false;
  // If the message is a DM, push
  if (!e.guildId) return true;
  // Only push server messages if I'm explicitly mentioned
  if (e.message.mentions.some(mention => mention.id === myId)) return true;
  return false;
}

export default definePlugin({
  name: "NotificationFix",
  description: "Restores push notification functionality",
  authors: [{ name: "Lucas", id: 315570989117210625n }],

});
supple whale
#

i forgot how to destructure factorization

#

problem is prime nubmer factorization

#

that will take more than 1ms for sure

#

you could probably get it under 10ms for sure tho

shrewd canopy
ocean basin
shrewd canopy
deep mulch
#

@frosty obsidian Good afternoon! I am contacting on behalf of GitHub support. We are interested in taking over ownership of your GitHub client "Gloom". Your work on it has been very impressive and we would hate to see it go to waste. In exchange for ownership we can give you lifetime GitHub pro and Copilot Pro+. If you are interested in our offer, please transfer the repository to our admin user "zt64". Thanks!

ocean basin
shrewd canopy
ocean basin
deep mulch
supple whale
deep mulch
#

I will ressuect

#

ressuewvt

#

resurect

supple whale
#

link me?

deep mulch
supple whale
#

this...

#

for lifetime gh pro?

#

wtf

deep mulch
#

yea

supple whale
#

damn, what a january

#

unemployment indicator right there

ocean basin
#

got it working, thanks @shrewd canopy

#

shame I can't get it to open in the right channel, but it's better than not getting notifications

jade stone
#

@supple whale have you seen how insane oxc minifier is

jade stone
supple whale
jade stone
#

It turns the array into a string.split call

supple whale
#

and thats good because?

#

its more compute so its slower?

jade stone
#

Never really said it was good

supple whale
#

idk i dislike it

#

a minifer shouldnt alter code

#

it should minify it

#

not edit whats ran

jade stone
supple whale
#

it is

#

it runs .split()

#

the original code didnt [i assume]

#

what if you're patching .split() because u need to support some weird engine that doesnt have it, like tvOS, and it now errors at eval

#

just hell naw, i dislike it a lot

jade stone
#

You can set what syntax the minifier can emit

jade stone
supple whale
#

tvOS

#

its a modern engine

#

^^

#

well it does now, but it used to not

#

there are still a fuckload of tvs on old tvos vers

#

which u cant update

tired vigil
# jade stone

Smh it doesn't even use ```js
str.split.

to save two more bytes
tired vigil
#

Yeah ofc

#

It's just the template string calling convention

jade stone
#

Calling convention is string[], ...values

supple whale
#

but yeah its not 2 bytes

tired vigil
#

Oh
Ig the array gets stringified then? Cuz I've used this multiple times in code golf challenges

supple whale
#

not how compression works

supple whale
jade stone
#

windows strikes yet again

#

why are the paths not equal

deep mulch
#

hop off windows @jade stone

jade stone
#

id love to

#

linux has no support for my laptop

dense sand
#

what kind of laptop do you have

deep mulch
#

everything supports your laptop

jade stone
dense sand
jade stone
#

yes

dense sand
#

hop of arm

jade stone
#

nop

dense sand
#

use amd64 like a normal person

jade stone
#

i like this laptop

dense sand
#

i dont

pseudo sierra
#

salad insane

deep mulch
#

salad insane

jade stone
# jade stone why are the paths not equal
warning: in the working copy of 'patches/@tanstack__start-plugin-core.patch', LF will be replaced by CRLF the next time Git touches it
diff --git a/patches/@tanstack__start-plugin-core.patch b/patches/@tanstack__start-plugin-core.patch
index 25d16b7..d86f632 100644
--- a/patches/@tanstack__start-plugin-core.patch
+++ b/patches/@tanstack__start-plugin-core.patch
@@ -1,12 +1,12 @@
 diff --git a/dist/esm/start-manifest-plugin/plugin.js b/dist/esm/start-manifest-plugin/plugin.js
-index 3ea8ad7aaaa1bf99f6ee75d9d9cd0549b43f42e3..6c00ac88543ebb8440d99549689491f5e1dd1400 100644
+index 3ea8ad7aaaa1bf99f6ee75d9d9cd0549b43f42e3..beb40e1766fba8f39588139710fc29512b999cc7 100644
 --- a/dist/esm/start-manifest-plugin/plugin.js
 +++ b/dist/esm/start-manifest-plugin/plugin.js
 @@ -4,6 +4,7 @@ import { VIRTUAL_MODULES } from "@tanstack/start-server-core";
  import { tsrSplit } from "@tanstack/router-plugin";
  import { resolveViteId } from "../utils.js";
  import { ENTRY_POINTS } from "../constants.js";
-+import { resolve } from "node:path"
++import { resolve, normalize } from "node:path"
  const getCSSRecursively = (chunk, chunksByFileName, basePath, cache, visited = /* @__PURE__ */ new Set()) => {
    if (visited.has(chunk)) {
      return [];
@@ -23,12 +23,12 @@ index 3ea8ad7aaaa1bf99f6ee75d9d9cd0549b43f42e3..6c00ac88543ebb8440d99549689491f5
            const clientBundle = opts.getClientBundle();
            const chunksByFileName = /* @__PURE__ */ new Map();
            const routeChunks = {};
-+          const entryPath = resolve(userClientEntry ?? defaultClientEntry);
++          const entryPath = normalize(resolve(userClientEntry ?? defaultClientEntry));
            for (const bundleEntry of Object.values(clientBundle)) {
              if (bundleEntry.type === "chunk") {
                chunksByFileName.set(bundleEntry.fileName, bundleEntry);
 -              if (bundleEntry.isEntry) {
-+              if (bundleEntry.isEntry && bundleEntry.facadeModuleId === entryPath) {
++              if (bundleEntry.isEntry && normalize(bundleEntry.facadeModuleId) === entryPath) {
                  if (entryFile) {
                    throw new Error(
                      `multiple entries detected: ${entryFile.fileName} ${bundleEntry.fileName}`
#

diff of diff file funny

deep mulch
#

salad loves microslop

#

salad has windows 11 sticker

#

@jade stone has Microsoft poster

#

@jade stone

jade stone
#

you

shrewd canopy
shrewd canopy
jade stone
deep mulch
#

bloated kernel
can be compiled to be under 1 mb and ran on embedded devices

shrewd canopy
jade stone
#

i think you're insane

deep mulch
#

yop

shrewd canopy
# jade stone >linux >bloated kernel ?????

There's billions of drivers and features
Half of drivers are not loaded and features are in kernel itself
Plus nearly all of drivers run in kernel mode
This is discouraged in Windows and almost always you should use UMDF

shrewd canopy
jade stone
#

@supple whale another vite W

supple whale
#

all my nggas love vite

supple whale
#

gonna make u make out with svelte frfr

jade stone
#

oh

#

thanks windows

deep mulch
jade stone
#

oh

#

my exact issue

shrewd canopy
pseudo sierra
deep mulch
#

besides java swing audio stuff nop

#

I was working on an mpv wrapper but hard

#

I think you'll have to use an existing java library if there is any that works with navidrome

#

this library implementation kinda sucks @jade stone will tell you all about it

#

yop

jade stone
#

but still prob bad (havent tried it)

deep mulch
#

I should make my kmp tray library

#

tray stuff shouldn't be tied to compose since it's system level

#

unhusk

#

aghh I hate the api so much

#

fake composable dsl

#

ths causes me pain

ionic lake
jade stone
supple whale
#

neat

#

LG TVs dont have webgl1

#

NEAAAT

#

and i thought FF was bad

jade stone
#

funny typescript code
⁨⁨```ts
// https://developer.mozilla.org/en-US/docs/Glossary/Falsy
function assert(cond: null | undefined | false | 0 | -0 | 0n | "" | HTMLAllCollection): never;
function assert(cond: unknown): asserts cond;
function assert(cond: unknown): asserts cond {
if (!cond) {
throw new Error();
}
}

#

typescript doesnt infer ⁨⁨asserts falsy⁩⁩ to ⁨never⁩

supple whale
#

i gotta learn typescript guard clauses

#

i dont rly use them much

jade stone
jade stone
#

tbh i use it the most for block-scoped assertions with something like this

#

you could probably make that safer if you want by making it generic over ⁨thing⁩ and require it extends T

supple whale
#

I want shit like if boolean property on this class is true, then other variable in class is defined

#

or if promise is settles, the variable in class is defined

#

or if property in class is true, then this variable is type a otherwise type b

jade stone
#

discriminated unions blobcatcozy

#

the typescript API makes heavy use of them for AST nodes

pearl stagBOT
supple whale
#

I did this shit but I don't like it

jade stone
#

hop on leading ⁨&⁩ and ⁨|⁩

#

with indentation

supple whale
#

pr it

jade stone
#

@supple whale can only one of video or canvas be set?

#

but not both

#

wouldnt ⁨never⁩ work there

supple whale
#

idk how never works

#

never used it

jade stone
#

HOW

supple whale
#

I don't understand it

#

it doesn't exist in js so I never learned it

winged mantle
#

all I know is that it seems to act like noreturn on return type and in expressions acts like any

#

and it scares me

#

wait i guess it acts like any in expressions because if you're passing a function which never returns to something it doesn't matter what it evaluates as
probably basically just makes the compiler treat the expression as unreachable (which would include function calls which return it)

jade stone
#

@supple whale not sure the exact details of the type, but you can get something like this

#

you can do more if you care about property presence, but that would come back to bite you at some point

supple whale
#

show how?

jade stone
# supple whale show how?

⁨```ts
export type JASSUBOptions =
& {
timeOffset?: number;
debug?: boolean;
prescaleFactor?: number;
prescaleHeightLimit?: number;
maxRenderHeight?: number;
workerUrl?: string;
wasmUrl?: string;
modernWasmUrl?: string;
fonts?: Array<string | Uint8Array>;
availableFonts?: Record<string, Uint8Array | string>;
defaultFont?: string;
queryFonts?: "local" | "localandremote" | false;
libassMemoryLimit?: number;
libassGlyphLimit?: number;
}
& (
| {
video: HTMLVideoElement;
canvas?: never;
}
| {
canvas: HTMLCanvasElement;
video?: never;
}
)
& (
| {
subUrl: string;
subContent?: never;
}
| {
subContent: string;
subUrl?: never;
}
);

jade stone
#

(not sure if that's just in object literals tho)

#

least cursed template literal

winged mantle
#

insane

winged mantle
#

tbh lisp seems kind of cool

#

even if slightly esoteric

opal hearth
winged mantle
#

ryan is following me everywhere

opal hearth
#

I am the watcher on the walls

winged mantle
#

it is peak

zinc kelp
#

Heh I thought this was a gaming channel at first

opal hearth
#

whatever made you think that

tired vigil
#

This is the grammar channel where we discuss professional grammars

winged mantle
#

t = true and format with true goes to stdout

#

tbh thinking about it lisp's syntax is probably better for representing an ast rather than actually writing

jade stone
#

where has this extension been my whole life

vagrant crescent
#

do u guys think this should be done via a patch? https://github.com/Vencord/plugin-requests/issues/518

or do we do it better

⁨⁨```typescript
/*

  • Vencord, a Discord client mod
  • SPDX-License-Identifier: GPL-3.0-or-later
    */

import { Devs } from "@utils/constants";
import definePlugin from "@utils/types";

export default definePlugin({
name: "DirectlyDownload",
description: "Skip opening an empty browser tab and directly downloads the file",
authors: [Devs.Immabigboil],

onMessageClick(msg, channel, event) {
    const url = msg.attachments?.[0]?.url;
    if (!url) return;
    event.preventDefault();
    const a = document.createElement('a');
    a.href = url;
    a.download = '';
    a.click();
    return true;
}

});

GitHub

Plugin Description I don't know if it's possible, but I would like to see a plugin which skips the annoying part of the empty browser tab opening every time I press the "download file&...

jade stone
vagrant crescent
#

right

pseudo sierra
#

surely it can't be that hard to just figure out the attachment index

jade stone
#

your best bet would probably be if ⁨event.target⁩ is an ⁨a⁩, if not, a patch would probably be best

pseudo sierra
#

insane

jade stone
#

use a patch

vagrant crescent
#

sorry for flashbanging anyone in euroope

deep mulch
#

@jade stone

#

satan

jade stone
#

who could have guessed adding caching to my rollup plugin would make the build 2x faster

#

this isn't just build times

#

also dev time as well

#

site loads 10x faster in dev

supple whale
jade stone
#

with what you had earlier, it was valid for the user to pass both

#

this gives a typescript error if they do that

#

plus it provides more strict narrowing

supple whale
supple whale
#

satisfies is goated

delicate groveBOT
#

Alright @placid igloo, in 6 hours: …

placid igloo
# jade stone

wait that's really cool I didn't know this was a thing

supple whale
#

trully

#

its life changing

winged mantle
#

I ported nanoid from js to go but still not sure if nanoid for primary key is a good idea blobcatcozy

#

was fun though

opal hearth
#

I wrote a super compact nanoid implementation in Rust at one point

#

⁨⁨```rust
use rand::distr::{Distribution as _, slice::Choose};

static ALPHABET: [char; 64] = [
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S',
'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4',
'5', '6', '7', '8', '9', '_', '-',
];

pub fn nanoid(len: usize) -> String {
Choose::new(&ALPHABET)
.unwrap()
.sample_iter(&mut rand::rng())
.take(len)
.collect()
}

fierce pendant
winged mantle
#

i love imperative solutions <3

#

(you better remember grow or it does unnecessary allocations)
(and yep this is copied pretty closely from the js version)

supple whale
#

i have no clue wtf im looking at

#

can we go back to js

#

D:

rugged berryBOT
#

Your js(18.15.0) code ran without output @winged mantle

winged mantle
rugged berryBOT
#

Here is your js(18.15.0) output @winged mantle

FizzBuzz
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29```
pulsar elk
#

bools take 192 bits in python

#

?

#

what the fuck bro

#

why

pulsar elk
supple whale
#

pricks

#

some1 was fucking my api

#

not that it did much since i was already caching and ignoring strings

#

but now just to block it for good measure :)))

#

worst part is its a botnet

#

its from all over the world

fierce pendant
#

currently torturing claude by making it write 28kb of base64

tepid grotto
#

why?

deep mulch
#

why?

tepid grotto
#

as in why am i asking why?

fierce pendant
#

torture

delicate groveBOT
#

@placid igloo, <t:1769868136:R>: …

tepid grotto
winged mantle
# opal hearth ⁨⁨```rust use rand::distr::{Distribution as _, slice::Choose}; static ALPHABET:...

basic c solution in less lines (not counting blank) and no third party libraries
⁨⁨```c
#include <stdbool.h>
#include <sys/random.h>

#define ALPHABET "abcdefghijklmonpqrstuvwxyzABCDEFGHIJKLMONPQRSTUVWXYZ0123456789-_"

bool nanoid_generate(size_t len, char output[len]) {
char random_bytes[len];
if (getrandom(random_bytes, len, 0) == -1)
return false;

for (size_t i = 0; i < len; ++i)
    output[i] = ALPHABET[random_bytes[i] & 63];

return true;

}

unkempt ember
#

Isn't size_t part of stdlib.h ?

winged mantle
#

it's part of stddef.h

#

but i guess it got transitively included

opal hearth
winged mantle
#

tbf random.h isn't part of the c standard library either

opal hearth
#

⁨⁨```rust
use rand::distr::{Distribution as _, Uniform};

static ALPHABET: &str = "abcdefghijklmonpqrstuvwxyzABCDEFGHIJKLMONPQRSTUVWXYZ0123456789-_";

pub fn nanoid(len: usize) -> String {
Uniform::new(0, 64)
.unwrap()
.sample_iter(&mut rand::rng())
.take(len)
.map(|i| ALPHABET.chars().nth(i).unwrap())
.collect()
}

#

it;s probably less efficient than the impl before though

unkempt ember
winged mantle
tepid grotto
# opal hearth is ⁨`rand`⁩ really a third party library <:clueless:1365039216488349766>

both ⁨⁨rand()⁩⁩ and ⁨⁨srand()⁩⁩ are included in ⁨⁨stdlib.h⁩⁩

c - Where is random.h in msys2 - Stack Overflow (Farside)

opal hearth
#

I was talking about Rust rand

tepid grotto
#

ofc lol my bad

winged mantle
#

rand in C is pretty pathetic

#

without seeding it you always get the same values

#

not random at all

tepid grotto
#

true

#

solution: seed it

shrewd canopy
#

And/or /dev/urandom

solemn ravine
#

@young flicker wyd with zig

#

girl did something weird with memory

#

whats a qapp

#

oh so u

tepid grotto
#

(imagine that's a trans heart)

solemn ravine
#

btw zed has a debugger so use it

tepid grotto
#

what sent the sigsegv?

#

(use the debugger)

#

no use the debugger to trace it

#

if you want to hop on vc I can help

solemn ravine
#

paige is a soundboard

tepid grotto
#

fair

tepid grotto
solemn ravine
#

lmao the debugger makes my inlay hints just awful to read

tepid grotto
#

I have no idea what's going on in that picture lmao

#

are we sure ⁨qtc⁩ is an object?

#

I hate that

#

can you trace it harder? /hj

#

is this maybe in a different file than New()?

#

I just noticed that ⁨qapplication⁩is

  1. lowercase but has a constructor
  2. a struct but has a constructor

I hate this

#

before you return, could you please log ⁨&qtc⁩, ⁨qtc.QApplication_new⁩, ⁨&argc_param⁩, and ⁨&argv_param⁩

#

oh I just saw this

solemn ravine
#

not using my xcode theme smh

tepid grotto
#

what is going on here?

#

oh can you log ⁨&argc⁩ and ⁨&argv⁩ then?

#

no I mean with ⁨.Debug⁩

what is the dot doing hanging out there?

#

apparantly doesn't like zig

#

weird

solemn ravine
#

languages like rust usually know the type that way as well

tepid grotto
#

also weird

#

POSIX Shell ++ is The Only Way

solemn ravine
#

very cool

tepid grotto
#

sorry I'm back I dropped my computer

solemn ravine
tepid grotto
#

mayhaps go? (/s)

#

r?

#

lisp, even?

#

POSIX Shell ++

#

(not bash fuck bash)

#

kotlin is alright

#

I haven't tried swift

solemn ravine
#

it might be a problem of the people who made the wrappers unfortunately

#

ive been learning (or trying to learn) zig recently so I dont have to use rust

#

cute

jade stone
#

i think id take c++ over zig any day

solemn ravine
#

ya

#

@young flicker maybe just copypaste and see whats wrong

#

yk

tepid grotto
solemn ravine
# jade stone isnane

honestly from working with a rust codebase for so long I got really tired of reading/writing for it

jade stone
#

seems too insane, even for me

solemn ravine
#

whats wrong with it

#

I like zigs build system and its beautiful c interop

jade stone
#

ehhh

i like it as much as i like c++

#

they both have features that i love

#

i like checked generics in rust

#

and the build system is good

#

but lambdas in rust are terrible compared to c++ lambdas

#

and async can get really convoluted

solemn ravine
#

yesterday I spent some time learning how you would even structure a zig codebase and stuff like this confused me a lot

#

its a bit strange

tepid grotto
#

very

solemn ravine
#

just get everything

tepid grotto
#

wtf, me?

solemn ravine
#

@young flicker I have a zig build thing that generates an xcframework

#

its so awesome I think

#

cache so smol

jade stone
solemn ravine
jade stone
#

how is this flag unstable

#

insane

solemn ravine
#

funny

#

it works now though!!

#

cute

#

wonder how good qt is with zig

deep mulch
#

add ai

solemn ravine
#

idek

halcyon cosmos
#

@young flicker

solemn ravine
deep mulch
#

sammy wammy

tepid grotto
#

smooth

#

want to help me make a userscript to add a ⁨⁨/slap⁩⁩ command to cinny?

#

it's surprisingly complicated πŸ™ƒ

deep mulch
#

@young flicker wyd

tepid grotto
#

no but have you considered matrix api + random js client bullshit???

#

OH MY GOSH I HATE THAT DISCORD DOESN'T SHOW THE REPLY BUTTON ON YOUR OWN MESSAGES

deep mulch
#

insane

tepid grotto
#

yeah I decided to file a issue instead seems like a much higher probability of success

deep mulch
#

@young flicker hiiii

tepid grotto
deep mulch
#

yes

#

calculator

tepid grotto
#

I meant to use an emoji there oh well

tepid grotto
#

pretend this is a reply to the reaction

also how tf is matrix better than discord at something?

patent vortex
tepid grotto
#

like come on it's matrix

patent vortex
#

i run a tuwunel homeserver

tepid grotto
#

is that reliable?

patent vortex
#

couldn't find a good public one

patent vortex
#

it's on the cheapest hetzner vps

tepid grotto
patent vortex
#

might join later when i get cinny working again

tepid grotto
#

(not complianing just pleasently surprised)

patent vortex
#

welcome to the client modding community

tepid grotto
#

thanks

jade stone
#

vp reply

elder yarrowBOT
jade stone
#

nope

#

idk what it's called

#

but a plugin fixes that

tepid grotto
#

there's ShowAllMessageButtons which does fix it, but ironically that hides the react button(s)

jade stone
#

i forget whats called

#

Enabled Plugins (87):

AlwaysAnimate, AlwaysTrust, WebRichPresence (arRPC), BetterFolders, BetterNotesBox, BetterRoleContext, BetterSettings, BetterUploadButton, BlurNSFW, CallTimer, ClearURLs, ConsoleJanitor, ConsoleShortcuts, CopyEmojiMarkdown, CopyFileContents, CrashHandler, Experiments, ExpressionCloner, F8Break, FakeNitro, FakeProfileThemes, FavoriteEmojiFirst, FavoriteGifSearch, FixYoutubeEmbeds, ForceOwnerCrown, FriendInvites, FriendsSince, FullUserInChatbox, GifPaste, GreetStickerPicker, HideMedia, ImageZoom, ImplicitRelationships, LoadingQuotes, MemberCount, MentionAvatars, MessageLatency, MessageLogger, MutualGroupDMs, NewGuildSettings, NoDevtoolsWarning, NoF1, NoMosaic, NoUnblockToJump, PermissionsViewer, PictureInPicture, PinDMs, PlainFolderIcon, PlatformIndicators, PreviewMessage, QuickReply, ReactErrorDecoder, RelationshipNotifier, ReverseImageSearch, ReviewDB, RoleColorEverywhere, Summaries, ServerInfo, ShikiCodeblocks, ShowConnections, ShowHiddenChannels, ShowHiddenThings, ShowTimeoutDuration, SilentTyping, SortFriendRequests, SpotifyControls, SpotifyCrack, SpotifyShareCommands, StickerPaste, SuperReactionTweaks, TextReplace, ThemeAttributes, Translate, TypingIndicator, TypingTweaks, Unindent, UserVoiceShow, ValidUser, VoiceChatDoubleClick, VencordToolbox, ViewIcons, ViewRaw, VoiceMessages, VolumeBooster, WebKeybinds, WebScreenShareFixes, WhoReacted
```**Enabled UserPlugins (12):**

AntiTessie, ComponentDemangler_, CopyStatusUrls, CtrlEnterSave, DevtoolsInPopouts, EmojiOnMouseUp, PlayAllCodecs, UnitConverter, StaticTitle, UrbanDictionary, UserDevCompanion, SpotiMbed

#

one fo those

royal nymph
tepid grotto
jade stone
tepid grotto
#

hmmm

#

it's not one of the regular plugins so shrug

jade stone
#

i really need to make a plugin bisection menu lol

solemn ravine
#

anything u want

deep mulch
solemn ravine
#

why did you ask anyway are you moving to iced

jade stone
#

lc.def bisection

signal oakBOT
jade stone
#

@tiny copper fix

tiny copper
tepid grotto
#

anything productive you've been pushing off doing?

#

if you're already bored might as well be productive while bored

deep mulch
#

made up word

pseudo sierra
#

stupid zoot

#

zootie patootie will learn git

pseudo sierra
#

@young flicker

tepid grotto
#

why do you guys keep randomly @ing each other?

patent vortex
#

@young flicker

#

inside joke

valid jetty
#

@deep mulch

tepid grotto
#

what font is that?

#

excellent choice deleting that (/j)

#

reminds me of the time a teenager joined freenode general chat and said something was "sus" with emojis, and then immediately got trout slapped by most everybody

valid jetty
#

what did they say?

valid jetty