#🧩-plugin-development

1 messages Ā· Page 32 of 1

dull magnet
#

I've just been looking at its examples for like the past 15 minutes

#

never gonna use this shit in my life but i still love it

wooden dragon
#

maf

dull magnet
wooden dragon
#

WHOA

#

time to write a fluid sim with this

dull magnet
#

i love how smooth it is

wooden dragon
#

smooth like my brain

pure temple
#

me too

stuck falcon
#

Efficient linked list implementation in Rust is so... cursed

#

I still love Rust, though

austere mauve
#

linked lists are not efficient trolley

austere mauve
#

trol

stuck falcon
#

But arrays are cheaper since you need to allocate less memory

austere mauve
#

allocations are cheap nowadays

stuck falcon
#

So it shouldn't be a big of a deal

stuck falcon
#

Thanks

#

I'm just implementing a Linked List because it's fun anyway xdd

austere mauve
#

true it is

dull magnet
#

LinkedList is kinda useless in the majority of cases

#

its only better in niche scenarios

oblique lark
#

the best rust list type is VecDeque because it's fun to say šŸ‘

#

follow for more amazing rust dev tips

void topaz
#

@pure temple the plugin im making is basically just
if message has certain string
react to it with a funny emoji

pure temple
#

that's selfbotting..? lmao

void topaz
#

the certain string is a little inside joke my friend group has

void topaz
#

my bad then

#

it was the easier option out of the 2 he wanted me to do one of them

pure temple
#

couldn't you just create a bot?

void topaz
#

the other was making emoji confetti rain

void topaz
#

i meant

#

its basically the moyai extension

#

but with reactions instead of playing a sound

pure temple
#

huh? you could just create a bot that listens for keywords and reacts

void topaz
#

but i want it to be in the current channel the user is in

#

and for like 2 specific servers

#

or channels

#

just so its not abusing discord api requests

#

which is why i didnt mean for it to be a selfbot at all šŸ’€ i understand the concern but its not my intention at all

pure temple
#

seems pretty suspicious

void topaz
#

i think that should clear things up

#

im not sure what the point of selfbotting reactions is

pure temple
#

whar

void topaz
pure temple
#

that seems to be what you are doing

void topaz
#

no i mean in the manner you are suggesting

pure temple
#

well, we're not going to help with this

void topaz
#

it would only be active when the user is in that channel

void topaz
pure temple
#

to be honest, I'm not as sure about these things as other people here (who know too much)

#

but this really does seem like a selfbot to me soo nyaboom

void topaz
#

do you know how i can add images to the window via dom insertion

pure temple
void topaz
#

oh sorry it wasnt meant only for you if you dont know its fine LOL

#

maybe a bit of an advanced feature

#

oh hm i could create a bunch of elements and insert them in an array

#

and update each one by one every frame

proud cargo
#

horrible

void topaz
#

oh or i could just add css animations

#

wait

#

yeah thats probably the easiest way

proud cargo
#

idk wtf youre doing šŸ’«

#

if you just wanna know when something gets sent in a dm you can make a desktop notification

void topaz
#

how do you make it show up client side my bad

void topaz
#

ok so i want to make it rain emojis

#

but not an actual emoji just an image

#

im not really asking for someone to code 90% of it for me šŸ’€ just trying to see how i should work it out

pure temple
#

you are tho

proud cargo
pure temple
trail ginkgo
#

@void topaz you could do that with the message decorations api

#

an okay example plugin to look at that uses that is uhh

#

the message preview one

void topaz
trail ginkgo
#

lmaoo thats horror

void topaz
#

ok im not doing this shit

trail ginkgo
#

fear

void topaz
#

let me use that api

#

how do i import it again?

proud cargo
trail ginkgo
#

look at the message preview plugin i told u about

trail ginkgo
void topaz
#

anything like that will do

#

i think message decorations would be pretty baller actually

trail ginkgo
#

you could render the confetti there tho its not like ur prevented from overflowing

proud cargo
trail ginkgo
#

discord has code for confetti somewhere doesnt it

proud cargo
#

ya

#

on uh

#

boost hover no?

trail ginkgo
#

yea

void topaz
stuck falcon
#

rate @austere mauve

#

writing an immutable version soon

rocky jackal
#

made a simple vesktop plugin to recreate the discord titlebar on linux

stuck falcon
#

ayo that's cool

rocky jackal
#

literally just a snippet straight out of vesktop's code

#

with some small changes

stuck falcon
#

looks fire

rocky jackal
#

yea

stuck falcon
#

name?

#

i can't find it in search, perhaps i'm using the wrong words xdd

#

already found it

#

nvm

#

thanks anyway

minor jolt
#

did __getLocalVars() get removed Thunking

amber basin
#

yeah it was accidental i fink

minor jolt
#

it was reason enough to realize a store access throwing an exception is enough to make my shitty plugin completely inoperable trolley

#

so when can we expect the fix ?

#

oh i just realized it's a discord thing

#

wait then

#

why did it break for me just now ?

amber basin
#

u just updated?

minor jolt
#

vencord ?

#

or discord

#

im using web discord and injecting vencord userscript

#

and it literally broke like max an hour ago

#

anyway i don't really care too much about __getLocalVars per se

#

but i was using Vencord.Webpack.findStore("SelectedChannelStore").__getLocalVars().mostRecentSelectedTextChannelIds

#

to get the recent channel id's

#

there doesn't seem to be any other method on this store that returns this

#

getLastSelectedChannels just returns undefined

#

oh wait is the local vars what's stored in localStorage

#

i guess that can work

#

well that probably can't work because there is no localStorage on window

#

oh Vencord.Util.localStorage

oblique lark
#
<cursed>
  <function name="plusfour" n >
    <return value="n+4"/>
  </function>
</cursed>

this is peak html coding

amber basin
#

OH HORROR

#

WHAT IS THAT

oblique lark
stray imp
#
function cws {
  python3 -c "import json; print(json.dumps({\"folders\": [{\"path\": \".       \", \"name\": \"Root\"}, *[{\"path\": p} for p in \"$*\".split(\" \")]]}, indent=4))"
}
$ cws * > cms.code-workspace
$ cat cms.code-workspace
{
    "folders": [
        {
            "path": ".",
            "name": "Root"
        },
        {
            "path": "cms"
        },
        {
            "path": "cms-sc"
        },
        {
            "path": "cms-sp"
        },
        {
            "path": "cms-yt"
        }
    ]
}
austere mauve
#

echo $@ | jq -sR '{folders:[{path:".",name:"Root"},split(" ")[]|{path:.}]}'

oblique lark
#

i started adding my own tags :3

<cursed>
  <function>
    <assign name="n">
      <input/>
    </assign>
    <assign name="square">
      <mul lhs="n" rhs="n"/>
    </assign>
    <return>
      <variable name="square"/>
    </return>
  </function>
</cursed>
oblique lark
#

what would be the worst way to call a function

#

i thinking something like

<call func="console.log", args="&quot;Hello World!&quot;"/>
or maybe even
<call func=console.log><str value="Hello, World!"/></call>
pure temple
oblique lark
#

šŸ‘

#

im actually kinda surprised html doesnt kill me when i do stuff like <if !(n % 15)>, which is clearly not how html works

dull magnet
#

html is very error forgiving by design

plucky dove
#

wait

#

can <style> actually be used as a singular

#

or is that only because it's at the end of the script

hollow tree
#

sorry to ping you after months, but I needed some advice and was wondering if I can DM you, is it ok to DM you?

chrome elbow
hollow tree
#

why

chrome elbow
#

idk

hollow tree
# chrome elbow idk

ok then I just had some stupid questions, like how shitty implemetations can be accepted by the devstrolley

royal edge
#

favoritemedia request :(

drowsy chasm
#

Gay boy flag is timing you out for being a bad boy golang

wide parrot
#

bad boy

oblique lark
#
<function name="guess">
  <let name="num"><rand min="1" max="6" inclusive/></let>
  <let name="guess"><input/></let>
  <if guess %eq% name>
    <print><str value="You got it right!"/></print>
  </if> <else>
    <print><str value="You got it wrong :&lbbrk;"/></print>
  </else>
</function>

making more progress

wide parrot
#

HES BACK

#

with more useless support as that is literallt not what he was asking

#

in english please

serene cape
#

git isn't a working solution to that problem. if you're gonna try offer a fix, understand what works first.

cerulean orchid
#

what the fuck did i just read

#

no advice > wrong advice

serene cape
#

you were offering solutions that we already knew didn't work for the scenario.

dull magnet
#

please be respectful to others

#

i meant what i said. be respectful.

cerulean orchid
oblique lark
#

ok but why are we having this argument in the coding chat
i wanted to show off my cursed html code and now this place has been flooded

cerulean orchid
#

what the fuck is this.

oblique lark
cerulean orchid
#

go cry somewhere else

oblique lark
serene cape
#

most of the people you've been talking to here are not american

dull magnet
#

i dont think any of us are american

cerulean orchid
#

why would you do this

cerulean orchid
wide parrot
#

aspy

oblique lark
#

im not

cerulean orchid
#

@dull magnet you live in the US now

oblique lark
#

literally canadian but ok

cerulean orchid
oblique lark
#

fuck

cerulean orchid
cerulean orchid
oblique lark
#

this button exists btw

cerulean orchid
#

I NEED to see this in production

oblique lark
#

im not really sure yet

#

it kinda sucks since i have to write a definition for every keyword

cerulean orchid
#

quar

#

what does that even mean

serene cape
#

golang, where are you from

cerulean orchid
#

please think through your insults before you throw them at people

#

are you smart

oblique lark
#

only a smart man would understand what quar means

serene cape
#

only a smart man would understand extremely basic grammar

serene cape
#

@frosty fractal, where are you from?

wide parrot
#

you struggle to form coherent sentences

serene cape
#

same here

cerulean orchid
worldly lotus
serene cape
#

grammar allows other people to understand you.

wide parrot
#

10k a yearLMAOO

#

mcdonalds pays more

cerulean orchid
#

me when the employer cant read my resume because grammar is below me

worldly lotus
#

free 10k for using comma

serene cape
#

you aren't going to get a job better than starbucks without the ability to form coherent sentences.

wide parrot
#

like i genuinely thought u were learning the language or smth

cerulean orchid
#

you sound like joe biden

#

the slurring your speech part

#

2023 yeah

#

why

serene cape
#

others need to be able to understand you for you to get a job. no job, no money.

worldly lotus
#

why would i want others to understand ModernWarfare

cerulean orchid
#

oh my god the github button doesnt go to his profile lmao

wide parrot
#

i mean it does go to github

#

its clearly labelled

serene cape
#

genuinely, no employer will hire you unless you are able to use proper grammar

#

you can't write a resume or CV with your tongue

cerulean orchid
#

who do you know

lone panther
#

mans relying on being a nepo baby

cerulean orchid
#

like

#

do you have a job

#

what do you do

serene cape
#

you still need to use proper grammar with that keyboard

cerulean orchid
wide parrot
#

you could regurgitate alphabetti spaghetti and have that form a better sentence

serene cape
#

to get a job, yes you do

#

when are we banning this guy he's getting annoying

cerulean orchid
#

Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, engineering, mathematical, technological and social aspects. Major computing disciplines include computer...

lone panther
#

@frosty fractal rust better

wide parrot
oblique lark
#

one time i made a computer say "Hello, World" in giant text

#

that was pretty cool

lone panther
#

then name urself after it

#

if it's so good

cerulean orchid
#

how old are you

oblique lark
#

thank you

cerulean orchid
#

15, gotcha

wide parrot
#

whats ur mental age

oblique lark
#

(damn it im one year younger! he's legally allowed to call me kid!)

lone panther
#

nuhuh

serene cape
cerulean orchid
#

no wonder you got no support

wide parrot
#

yall got no because

serene cape
#

this dude is like 14 max

worldly lotus
#

ā€œlook these kidsā€ your 18, barely not a kid yourself acting like you’re some wise old man

lone panther
#

i think you do

oblique lark
#

love it when prettier line length setttings cause it do stuff like this

worldly lotus
#

mate you’re called golang stfu

cerulean orchid
#

.golang. šŸ”„

wide parrot
#

vscode shouted at me because i had a 3k long line

worldly lotus
#

see how stupid that looks

#

you brain rotted individual

oblique lark
#

has to include two dots in username

worldly lotus
#

i hope the lord sets you on the right path

cerulean orchid
#

who is posting this in the archive

#

i dont want to do it

serene cape
#

where are the mods, can we ban this guy now

oblique lark
#

there's an archive ???

cerulean orchid
#

boutta make you life less

oblique lark
#

can't believe this guy has degraded to the no gf argument

serene cape
#

COUNTER: i am gay

cerulean orchid
#

guh

oblique lark
worldly lotus
cerulean orchid
#

NO BITCHES?????

serene cape
#

hes gonna freak out because im gay or smth now

oblique lark
#

*sighs* yeah

worldly lotus
#

have you noticed no one cares

#

get off discord and go live your great life or whatever

oblique lark
#

oh fuck asterix actions look really bad with fira code

#

me when the font is set up for programming instead of commuincating

lone panther
#

@frosty fractal do you prefer coke or pepsi

wide parrot
#

nuh uh

lone panther
#

<@&1026509424686284924> this guy likes pepsi

oblique lark
#

bisexual

lone panther
#

can we get a ban

worldly lotus
#

real shame is you seem to have sustained brain injuries that have had catastrophic effects on your speech and word comprehension

cerulean orchid
worldly lotus
#

hammer to the brain don’t do no good

wide parrot
#

how can u be english and shit at english

worldly lotus
#

even worse from uk

cerulean orchid
worldly lotus
#

ain’t even got the excuse of being american

cerulean orchid
#

what

wide parrot
#

SPEACK

worldly lotus
#

you can’t even speak so clearly no

cerulean orchid
#

@oblique lark send your html again

wide parrot
#

this is funny

cerulean orchid
#

i lost it

worldly lotus
#

well you’ve failed several times to string together a cohesive sentence

serene cape
#

this dude is 14 max

wide parrot
#

ive got no lie

serene cape
#

wouldnt be surprised if under 13

wide parrot
#

crying rn

worldly lotus
#

how many ā€œTop 10 Epic Insults for Discord Argumentsā€ you got pulled up

wide parrot
#

cant tell if its satire or not

cerulean orchid
worldly lotus
#

you don’t got to say it twice that’s clear

wide parrot
#

need more verification

serene cape
#

truth

worldly lotus
#

tbh mandatory iq test to speak in the server should be a thing

#

also can i just remind everyone this is the coding channel wtf happened

serene cape
worldly lotus
#

are you still doing this ā€œmy life is so great unlike yours because you no dad and no gf and you discordā€ shit

serene cape
#

golang are you against gay people

worldly lotus
#

codding?

#

are you sure you’re all there buddy

#

sure if that helps you sleep at night keep telling yourself that 😊

serene cape
#

please do sleep at night

worldly lotus
#

they’ll get the worm in your brain out one day buddy

serene cape
#

so i dont have to deal with you any longer

wide parrot
#

dont skip on sleep

#

bad for you

serene cape
#

(it's 1am in golang's timezone)

wide parrot
#

i know

#

im in that timezone

serene cape
worldly lotus
#

still got that ā€œTop 10 Insults for Discordā€ page up i see

serene cape
#

golang go to bed

cerulean orchid
#

what do you use

worldly lotus
#

come on buddy it’s alright you can say something original that hasn’t been driven into the ground by being said 1000 times over

serene cape
#

you do too

wide parrot
#

i use word

cerulean orchid
#

ew

#

what the fuck

serene cape
#

explain your status

wide parrot
grizzled delta
#

ok

cerulean orchid
serene cape
cerulean orchid
#

knew it

serene cape
cerulean orchid
#

why would you use a custom rpc for

#

that

#

ur dissing vscode and then you

#

eh

green vessel
#

go.main

worldly lotus
cerulean orchid
#

i dont want to pay for intellij

serene cape
#

🄭

cerulean orchid
#

i mean its in my student plan

#

but fuck that

#

šŸ”„

green vessel
#

šŸ”„

worldly lotus
#

drop your bank details so we can verify you aren’t

serene cape
#

šŸ”„ (burn this mf)

green vessel
#

certified vencorder

austere mauve
#

why would you pay for an editor that has the less features than an open source editor

cerulean orchid
#

when did someone beg for cash

#

show me

wide parrot
#

meow

cerulean orchid
#

so true

austere mauve
#

horrible

worldly lotus
#

idk man you’re the one with a gaping hole in your head

stuck falcon
#

🧠 šŸ”Ø

serene cape
#

can we please hurry up and ban this guy he's getting really annoying

green vessel
#

man wants my card*

worldly lotus
#

where’s my screenshot of the hole in your head that makes you act the way you do?

#

are you alright buddy?

green vessel
#

pussies*

worldly lotus
#

grow up

#

least mature 18 year old on planet earth

#

or sorry

#

ā€œ18ā€ year old

cerulean orchid
wide parrot
#

you are entertaining him

green vessel
#

resorting to clown emoji when out of valid points

serene cape
#

i estimate max 14, min 11
likely 13

green vessel
#

failed

#

that’s why

worldly lotus
#

in and out of jail soon

lone panther
#

what 18 year old has been in and out of college you barely just graduated high school

worldly lotus
#

the lord will show you his path

stuck falcon
#

😭

serene cape
#

you did not pass your english gcse mf stfu

green vessel
#

šŸ”„

cerulean orchid
serene cape
worldly lotus
#

is this not embarrassing for you do you have no shame

austere mauve
#

shut up

worldly lotus
#

i’ll take that as a no

cerulean orchid
#

he got bored trolling

worldly lotus
#

okay yeah he’s fully brain dead

cerulean orchid
#

now he just wants the ban

stuck falcon
#

sanest golang developer

austere mauve
#

ven banned

worldly lotus
#

the world can now heal

serene cape
#

right

cerulean orchid
#

@oblique lark send your html again

serene cape
#

just used the Multi Function Buttonā„¢ to clear message logger (it flashbangs me, sorts out memory, and clears messagelogger, all in one!)

lone panther
worldly lotus
#

uk u leave education paid by the government when you’re 18

serene cape
worldly lotus
#

and after that you have to pay yourself for whatever else with student loan

green vessel
cerulean orchid
green vessel
#

secondary school is like year 7-8?

#

was for me

cerulean orchid
#

unsane

#

@oblique lark how does the guessing system work

#

i cant like submit a guess using chrome or firefox

chrome rune
#

ayo

#

is vencord a keylogger?

dull magnet
#

no, use ur brain

#

the code is open source

chrome rune
#

im just asking , theres ppl on reddit that said it

dull magnet
#

okay now look at the replies

#

and upvote count

chrome rune
#

was a fake ass account that claimed it

#

wanted to make sure

green vessel
#

better discord propaganda

chrome rune
#

legit fuck better discord

#

shittier discord

#

buggy asf

shy fossil
#

me when my isp "removes" the ability to make new emails (the CreateNewEmail() function wasnt removed lmao)
also i created 17 which is over the 15 email limit they used to have

lone panther
shy fossil
#

thats why theyre checked

amber basin
#

making a userscript in svelte šŸ”„

#

rate my code

#
<script lang="ts">
  import { getContext } from "svelte";
  import type { Writable } from "svelte/store";

  import { type defaultSettings } from "../settings";
  import { type Executor, setupModule } from ".";
  const settings = getContext<Writable<typeof defaultSettings>>("settings");

  // Module Code

  const execute: Executor = {
    name: "Template",
    supports: ["player"],
    loop() {
      if (!$settings.yourSetting) return;
      // Your code here
    },
  };

  // SETUP CODE

  const logs = getContext<Writable<string[]>>("logs");
  const loop = getContext<Writable<boolean>>("loop");
  const keyEvent = getContext<Writable<KeyboardEvent>>("keyEvent");
  setupModule(execute, { logs, loop, keyEvent });
</script>
#

uses stores as triggers for events

#
// ==UserScript==
// @name        asdasds Dev Loader
// @description Loads a hot-reloading asdasds instance from vite
// @match       a
// @match       a
// ==/UserScript==

const scripts = ["@vite/client", "src/main.ts"];

console.log("Loading asdasdasdsa dev instance");
scripts.forEach((script) => {
  const scriptTag = document.createElement("script");
  scriptTag.type = "module";
  scriptTag.src = `https://localhost:4000/${script}`;
  document.body.appendChild(scriptTag);
});
#

had to give vite ssl so it can be loaded šŸ”„

austere mauve
amber basin
#

oh i never showed the setup script

#
export function setupModule(
  execute: Executor,
  stores: {
    loop: Writable<boolean>;
    keyEvent: Writable<KeyboardEvent>;
    logs: Writable<string[]>;
  },
) {
  window.a.modules[execute.name] = execute;
  let errorTimeout = false;
  let errorCooldown = 0;
  function catchError(e: unknown) {
    console.error(e);
    stores.logs.update((logs) => {
      return [`Error running ${execute.name}`, ...logs];
    });
    errorTimeout = true;
    errorCooldown += 1000;
    if (errorCooldown > 10000) errorCooldown = 10000;
    setTimeout(() => {
      errorTimeout = false;
    }, errorCooldown);
  }

  function wrapFunction(fn: loopFunction | keyEventFunction) {
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    return function (args: any) {
      if (errorTimeout) return;
      try {
        fn(args as never);
      } catch (e) {
        catchError(e);
      }
    };
  }

  let isSupported = false;

  if (execute.supports.includes("player") && IS_a_PLAYER)
    isSupported = true;
  if (
    execute.supports.includes("manager") &&
    IS_a &&
    !IS_a_PLAYER
  )
    isSupported = true;
  if (execute.supports.includes("dev") && IS_DEV) isSupported = true;

  if (!isSupported) return;

  if (execute.loop) stores.loop.subscribe(wrapFunction(execute.loop));
  if (execute.keyEvent)
    stores.keyEvent.subscribe(wrapFunction(execute.keyEvent));
}
#

also it helps alot that when setting a target for a component it doesnt remove other children of the target

#

so i can add shit to preexisting toolbars

#

react just kills all the children

#

oh did i mention im using vee's webpackgrabber userscript to get fontawesome react components :3

amber basin
#
9165: function(e) {
    "use strict";
    e.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"
},```

i love random webpack modules that are required almost everywhere
minor jolt
#

WHAT IS 'h' I'M GOING TO KILL MYSELF

pure temple
#

h

serene cape
#

variable

viral roost
#

h jumpscare

dull magnet
minor jolt
#

anyway on a seemingly unrelated note

#

vencord'd discord on my epic plugin doesn't load this enum for some reason and it's making settings not open

#

ie is undefined

amber basin
#

šŸ”„

inner pendant
#

Can somebody help me out? So I have been working on getting vencord to work on my js injector that creats a script element and injects it into a iframe using the proxy ultraviolet and well uppon testing this I get this error:

Uncaught ReferenceError: unsafeWindow is not defined
    at vencord.js:12:9405
    at vencord.js:3:484
    at vencord.js:14:2142
    at vencord.js:3:484
    at vencord.js:271:8
    at vencord.js:272:1440

The version of the script is a slightly modified version of the userscript. If you wish to view it heres the link: https://cdn.z1g-project.repl.co/sodium/plugins/vencord.js

dull magnet
#

don't use the userscript if you don't use a userscript Manager

#

you should use browser.js and browser.css instead

inner pendant
#

where can I find browser.js in the repo?

viral roost
inner pendant
#

k thx

minor jolt
#

I just did window.unsafeWindow = window beforehand

dull magnet
#

the userscript also uses gm fetch

#

so all plugins using fetch will break

#

the browser.js file is a pure browser bundle

#

but you also need to add browser.css

inner pendant
#

does it need to be named browser.css specificly?

dull magnet
#

it doesn't matter

#

you need to add the css to the document

inner pendant
#

Ohhh

#

Alr

amber basin
#

look at how i did it

#

inject the script into head

#

you have to do a little workaround to get the css though

minor jolt
#

Btw is there any event I can listen to on the flux dispatcher or somewhere else that will let me know when discord has finished loading ?

#

Like has initialized

amber basin
#

i tried that, not really

#

i just waited for message_load or something

#

lemme find it

minor jolt
#

Isn't message_load when you open a channel ?

amber basin
#

LOAD_MESSAGES_SUCCESS

#

yeah its annoying

minor jolt
#

I want something even more barebones more importantly I want something that fires regardless of whether you're logged in or not

amber basin
#

nope

#

i went through all the flux events

#

nothing good

minor jolt
#

Is there any property that I can count on being set once it's done so I can check for undefined in a loop

amber basin
#

uhh idk

inner pendant
# inner pendant Ohhh

I hope this works I’m at lunch rn but when I get back to class I’ll try and add the css

silk sorrel
#

discord finishing loading isn't a singular point in time

#

some of these events can happen multiple times, like when a new ws session is established and you see the loading screen again

minor jolt
#

out of those 3 i guess after the first few files are loaded ? isn't the first thing it does connect to the websocket ? like isn't the gateway connection on the html document before it starts loading all the webpack chunks, or am i remembering wrong

#

i guess in a practical sense, when it starts showing the spinning discord logo, so after all the webpack stuff has loaded and it's in a position to render something

inner pendant
#

I got the error:

 Vencord   Settings  An error occurred while loading the settings. Corrupt settings file?
 TypeError: Cannot read properties of undefined (reading 'getItem')
    at Object.get (VencordWeb:253:1302)
    at VencordWeb:19:33467
    at VencordWeb:6:484
    at VencordWeb:26:7341
    at VencordWeb:6:484
    at VencordWeb:181:28848
    at VencordWeb:6:484
    at VencordWeb:181:31652
    at VencordWeb:6:484
    at VencordWeb:181:32117
    at VencordWeb:6:484
    at VencordWeb:186:1414
    at VencordWeb:6:484
    at VencordWeb:253:1438
    at VencordWeb:253:1459
(anonymous) @ hvtrs8/-dksaopd,cmm-aqsgtq/:c:559a21d0e39a26942,jq:540
_log @ VencordWeb:6
error @ VencordWeb:6
(anonymous) @ VencordWeb:19
(anonymous) @ VencordWeb:6
(anonymous) @ VencordWeb:26
(anonymous) @ VencordWeb:6
(anonymous) @ VencordWeb:181
(anonymous) @ VencordWeb:6
(anonymous) @ VencordWeb:181
(anonymous) @ VencordWeb:6
(anonymous) @ VencordWeb:181
(anonymous) @ VencordWeb:6
(anonymous) @ VencordWeb:186
(anonymous) @ VencordWeb:6
(anonymous) @ VencordWeb:253
(anonymous) @ VencordWeb:253
VencordWeb:19 Uncaught TypeError: Cannot set properties of undefined (setting 'Vencord_settingsDirty')
    at Object.set (VencordWeb:19:32094)
    at VencordWeb:21:11468
    at Array.forEach (<anonymous>)
    at VencordWeb:21:11426
    at VencordWeb:6:484
    at VencordWeb:186:1419
    at VencordWeb:6:484
    at VencordWeb:253:1438
    at VencordWeb:253:1459
set @ VencordWeb:19
(anonymous) @ VencordWeb:21
(anonymous) @ VencordWeb:21
(anonymous) @ VencordWeb:6
(anonymous) @ VencordWeb:186
(anonymous) @ VencordWeb:6
(anonymous) @ VencordWeb:253
(anonymous) @ VencordWeb:253
VencordWeb:5     GET https://beta.sodium-5h8.pages.dev/uv/service/hvtrs8%2F-cfn%2Cz3g%2Fppoheat%2Crgpn.ao-smdkuo%2Frlwgknq%2Ftelcmrf.asq 500

Also they are being injected correctly:

#

oops

amber basin
#

is it in the top of the head

dull magnet
#

you need to inject before discord

inner pendant
#

yes

dull magnet
#

discord deletes localStorage

#

vencord web relies on localStorage

inner pendant
#

oh it injects after iframe.load

dull magnet
#

bad

#

vencord needs to be run at document start

#

before discord, before even the body is ready

minor jolt
#

probably eval the browser.js and put the css in, then fetch discord document externally and innerHTML it and do the replaceChild trick to make the script tags load

minor jolt
#

that can work too for my case

amber basin
#

check

minor jolt
#

or some store that has the logged in status

amber basin
#

you could maybe getUser()?

#

and check for errors

minor jolt
#

yea that's what i'm doing right now and getCurrentUser returns undefined if not logged in but it also returns undefined if i run it too early

dull magnet
#

also why tf are u using replit for this

#

cursed

dull magnet
#

what do you consider finished loading

dull magnet
#

add a webpack listener for when react is loaded. you might have to then use setImmediate() to run the next tick

#

vencord used to use that

#

but we switched to CONNECTION_OPEN iirc

#

aka logging into gateway

minor jolt
#

but if you're not logged in then it won't fire right ?

dull magnet
#

yea

#

why do u need this anyway

#

what are u trying to do

#

seems like XY problem kinda

minor jolt
#

im sending a ready even to my backend that sets a state that allows the discord tab to open and the quick access UI to render, the lynchpin for when this even will be sent is the existence of a user on the UserStore, which is checked in a simple loop

#

but if the dude is not logged in and user doesn't exist, it doesn't send the ready event and the dude can't open the tab to log-in. this could be solved by sending a "loaded" event when discord has loaded regardless of login status

#

and a secondary ready event for user info etc

dull magnet
#

so you want to render some ui as soon as the ui is ready

minor jolt
#

for all intents and purposes yea ig

#

or

dull magnet
#

just wait for the existence of react then and setImmediate() your callback

#

should work

minor jolt
#

to continue the above thing, after the loaded event i can send a ready event with user if logged-in

#

like im doing rn

silk sorrel
#

does vencord even load when not logged in?

minor jolt
#

it does

#

discord doesn't reload when you log-in from the looks of it

crude iron
#

Don't run a loop, subscribe for the "CONNECTION_OPEN" event in the Dispatcher

dull magnet
#

ye

#

I was about to say that lmao

minor jolt
#

how do i check for react btw ?

dull magnet
#

start() methods are only called once you login

minor jolt
dull magnet
#

no

#

the one below is when logged in

#

to detect react being loaded you just waitFor("useState")

#

assuming you're using vencord

minor jolt
#

yea i am

dull magnet
#

you need to pass a callback function

minor jolt
#

oh

dull magnet
#

as second argument

minor jolt
#

thought it was promise like the one above lol

dull magnet
#

waitFor(Filter, mod => {})

#

it's callback because promise wouldn't be very useful

#

the entire point of it is that you just add a listener and then continue the code

#
waitForStore("DraftStore", s => DraftStore = s);
waitForStore("UserStore", s => UserStore = s);
waitForStore("UserProfileStore", m => UserProfileStore = m);
waitForStore("ChannelStore", m => ChannelStore = m);
waitForStore("SelectedChannelStore", m => SelectedChannelStore = m);
waitForStore("SelectedGuildStore", m => SelectedGuildStore = m);
waitForStore("GuildStore", m => GuildStore = m);
waitForStore("GuildMemberStore", m => GuildMemberStore = m);
waitForStore("RelationshipStore", m => RelationshipStore = m);
waitForStore("PermissionStore", m => PermissionStore = m);
waitForStore("PresenceStore", m => PresenceStore = m);
waitForStore("ReadStateStore", m => ReadStateStore = m);
waitForStore("GuildChannelStore", m => GuildChannelStore = m);
waitForStore("MessageStore", m => MessageStore = m);
waitForStore("WindowStore", m => WindowStore = m);
waitForStore("EmojiStore", m => EmojiStore = m);
#

if it were a promise you'd have to use Promise.all or smth and then you need to await

#

and you can't await on the top level

#

it gets uglier than the callback variant

minor jolt
#

you can call an async func without awaiting it though

dull magnet
#

but you need to await to get the value

minor jolt
#

or you can promise.then it

dull magnet
#

that's just callback again

#

but uglier

minor jolt
#

eh not important anyway

dull magnet
#

waitFor("stuff", callback) vs waitFor("stuff").then(callback)

minor jolt
#

to turn a promise into a callback you just .then it but to turn a callback into a promise you have to wrap it in a promise with resolve executor which is uglier :^)

#

anyway i think i can work with all that

#

thanks a lot for the help

inner pendant
#

Uhh I’ll see what I can do

minor jolt
inner pendant
#

so add the content from here: https://cdn.z1g-project.repl.co/sodium/plugins/vencord.js into this?

<script language="javascript" type="text/javascript">
        function doOnLoad() {
            addScript('inject',"function foo(){ alert('injected'); }");
        }
    
        function addScript(inject,code) {
            var _in = document.getElementById('inject');
            var scriptNode = document.createElement('script');
            scriptNode.innerHTML = code;
            _in.appendChild(scriptNode);
        }
    </script>
slim glen
#

I have very little css knowledge... is there a way to load a local font on my pc and use it as a font for Discord?

chrome elbow
slim glen
#

tysm! :3

green vessel
#

:3

amber basin
#

@rocky jackal is your colorways pr usable? i wanna add it as a userplugin

#

oo it does yay

dull magnet
dull magnet
#

bro why does astro have so terrible i18n support

#

and all the libraries for it suck

dull magnet
#

the libraries look decent but dont work properly and dont support cf

amber basin
#

how would an i18n library not support cloudflare

#

couldnt it just check for something in path

dull magnet
#

and the library depends on node inbuilt modules

amber basin
#

ohhh

#

i thought you meant proxying was messing it up somehow

minor jolt
#

nvm found it builds/main/browser.js

#

i found out today, that vencord is the lifeline of discord running in its little blissful steam simulation

#

not sure what happens in the background but it will crash unless vencord is injected

dull magnet
#

wharr

#

lol? 😭

#

how

minor jolt
#

discord in my plugin runs in a separate CEF browserview tab, but the neat thing is that steam only gives mic permissions to its own tab (for steam calls), and all other tabs don't have it

#

at first i thought it was some cef parameter on tab creation

#

but that came up empty

#

and then while fiddling i realized that any tab that is navigated to steamloopback.host (steam's internal url for stuff) will automatically have mic permissions

#

so the amazing idea was to proxy all of discord through steamloopback.host, via a mix of cdp request interception and patching xhr to send to localhost instead of discord.com

#

aagamer actually wrote that code for that

#

and for the most part it works, some stuff has a bit of undefined behaviour because some workers and few other stuff fail due to cors and what not

#

but it was working pretty great

#

but these last few days, some stuff wasn't working like opening settings and user profiles (some enums seem to be undefined for some reason, no idea how that can happen)

#

and (while probably not unrelated but not sure how related either), i get some weird webpack corruption later on ? like at first everything works great but later on it will start failing to fetch stores or whatever

#

at random times

#

that's what the h thing i posted the other day was

#

so i thought maybe vencord is doing something, and i tried turning off the injection but now discord will not load at all, like it fetches some modules and then just stops, and says fatalcrash in console

#

var t, n, o = e.user, f = e.displayProfile, d = e.bannerSrc, _ = e.onClose, A = e.guildId, C = e.profileType, D = void 0 === C ? W.y0.POPOUT : C, L = e.allowEdit, P = void 0 === L || L, x = e.showPremiumBadgeUpsell, V = void 0 === x || x, F = e.isHovering, H = e.animateOnHover, Y = re(i.useState(null == (null == f ? void 0 : f.banner) ? ie.COMPLETE : ie.SHOULD_LOAD), 2), z = Y[0], X = Y[1], Q = (0,

#

this is the first offending line, if i breakpoint it and manually fill out ie which is pic below, it will fail a bit further down on another enum for billing status or whatever

#

which is weird because in the network tab, i don't see any js request failing, it's loading all its modules as far as i can see

#

so how does this enum find itself undefined

#

and here is the error when it can't fetch a store

dull magnet
#

h

#

what module is that

dull magnet
minor jolt
#

idk, i didn't explicitly call it or anything

dull magnet
#

it does not error for me

minor jolt
#

btw, this errored some time after launch

#

if i get the stores and keep them in variables soon after discord launches i can use them

minor jolt
dull magnet
#

seems like ur discord is corrupt somehow

minor jolt
#

and i love how this madness was progressive these few days lmao, first CloudUpload find (taken from the voice message plugin), would throw the h error

#

now findStore does it

#

how can it get corrupted husk

#

it's web discord btw

#

here lemme reload it

#

yea after load it works

#

this will start failing after some time, completely randomly

#

no failed script loads btw

dull magnet
#

deifne "some time"

minor jolt
#

completely randomly

#

back there above when i posted screenshot it had been running for like half an hour

#

i've had it not fail after hours though

#

anyway, i just said all this to give you an idea, i don't care about this too much because as i said i can get what i want before it fails and keep using it

minor jolt
#

because i can't open settings or user profiles

amber basin
#

send your code

minor jolt
#

my code for what ?

#

wait lemme post the relevant LOC

#

but i'm not sure how reading any of this code will make people understand why discord gets corrupted

#

especially because it worked a couple days ago

#

here are the errors during load

#

but these were also present before when everythign worked fine

dull magnet
#

m_VirtualKeyboardManager

#

why do you use such horrible naming

minor jolt
#

blame steam husk

#

i didn't name it that

dull magnet
#

anyway none of these issues happen in vencord

#

they either mean your discord is corrupt or youre doing smth wrong in ur code

minor jolt
#

yea i didn't blame vencord lol, just thought maybe you had an idea as to why it might be happening since you have worked on reverse-engineering discord

dull magnet
#

no, they are very obscure errors

dull magnet
minor jolt
#

ie being undefined ?

#

nvm that's like the tip of the iceberg

#

there is a metric shitton of stuff that's not loaded for whatever reason

#

i give up

#

it's over

dull magnet
#

uh

#

are u changing the way they load stuff?

minor jolt
#

by changing what do you mean ?

#

i proxy the requests through something

#

i don't touch any of the actual js

#

(besides inject vencord)

minor jolt
#

nor do i get any other webpack errors besides what i posted above, which as i said i also used to get back when stuff worked fine

dull magnet
#

rewrite it in a better language than python and it'll fix itself :3

#

its hard to help you cause i know nothing about ur project

minor jolt
#

just a wild idea

#

does a flux dispatcher inteceptor affect the dispatcher itself

#

besides just listen for events

#

like if an exception happens in the callback

#

will it do harm ?

dull magnet
#

uh

#

i dont think so

#

and the dispatcher shouldnt cause such issues

dry lava
#

guh

minor jolt
#

btw are these numbers webpack modules ?

#

and n is some sort of loader ?

amber basin
minor jolt
#

amazing

#

thanks

#

ughhh

minor jolt
# minor jolt

wreq'ing any of the modules that are undefined here returns them normally

#

what gives

#

is it some race condition or whatever where they're required too early or something

dull magnet
#

i love that people use that as a resource

amber basin
#

i read it like once

dull magnet
#

you should probably just read the post i took those screenshots for

amber basin
#

its pretty easy to guess what everything is

#

oo?

dull magnet
amber basin
#

oooo

dull magnet
#

its not really complete rn

#

i might remake it and put it on my website

amber basin
#

remake it for vencord docs :3

#

i setup the basics of it (moving over installing and plugins.md from vencord and fixing formatting) but im having trouble doing the style

dull magnet
#

uh

#

dont put it into main repo

#

we plan to use a proper doc framework

minor jolt
dull magnet
#

i dont have a lot of motivation for documentation because it seems kinda pointless

amber basin
#

i was using it

#

their styling thing is weird

little relic
dull magnet
#

especially people who can't even figure out the super basics like defining a new plugin

#

the only documentation that seems useful to me is documenting how to understand discord modules and how to write patches

#

since that isn't very self explanatory just from reading code

but how to use vencord apis, how to define plugins, etc, should be obvious just from looking at other plugins and the api source code

lone panther
dull magnet
#

why

#

it has way cleaner code than all other mods imo

lone panther
#

but i get the feeling if i setup a proper environment that isnt github to look at it id probably be fine

lone panther
#

tbqh i miss cc not for cc itself but for how simple the code behind it was

#

it was the piss easiest thing to understand ever

dull magnet
#

what might make vencord a bit weird to read is the fact that i generally use 0 comments and use some language features frowned upon

but for the comments, i try to make my code self documenting which makes comments redundant

and for the things frowned upon - well deal with it sorrykirino

little relic
#

lol

viral roost
#

"self documented code" vs "commented code"
i prefer the third option, "unreadable code"

dull magnet
#

things frowned upon like

try {
    var parsed = JSON.parse(data);
} catch (err) {
    console.log(data);
    throw new Error("Failed to parse JSON: " + String(err));
}
minor jolt
#

Like callbacks trolley

dull magnet
#

most js devs scream when they see var

dull magnet
lone panther
#

thats cursed but i do see where ur coming from

dull magnet
#
try {
  var thing = stuff();
} catch {
  return;
}
```vs ```js
let thing: someType;
try {
  thing = stuff();
} catch {
  return;
}
little relic
#

try catch and exceptions is such a stupid thing

dull magnet
#

imo the var version is cleaner

viral roost
little relic
#

yea

dull magnet
#

but i think most js INFLUENCERS would murder me for using var

lone panther
#

i wish we had rust like error handling tbqh

let parsed = JSON.parse(data).expect(`Failed to parse json: ${err}`)
dull magnet
#

real

lone panther
#

fucked up code but u get what i mean

little relic
#

like i'm unironically tempted to commit go and return [{}, null] instead of using exceptions

proud cargo
lone panther
little relic
#

huh never heard of it

lone panther
#

but thats still better than exception-based control plow

dull magnet
lone panther
little relic
#

love it

haughty frost
#

Is there any pluggin to automatically add the @silent at the start of a reply?

dull magnet
#

ye

#

youll find it

haughty frost
dull magnet
#

cause it'll always be awkward to use

#

the only reason rust enums are hot is because of the syntactic sugar rust offers

#

like ?

#

and let Some()

#

(imo)

lone panther
little relic
#

something rust does VERY RIGHT is letting you return stuff from blocks, like imagine

const thing = try {
  JSON.parse()
} catch (e) {
  return e: // returns to parent
}
lone panther
#

personally

#

(ive just been spoiled by rust and hate exceptions now)

dull magnet
#

basically try catch is an expression

#

instead of a block

little relic
#

yea

dull magnet
#

i think there was a js proposal for that

lone panther
#

yeah thatd prob make it a bit better

dull magnet
#

it wouldnt even be a breaking change so it can definitely be done

#

the closest you get to that is using an iife

#

which i do a bunch with switches

#
const thing = (() => {
  switch (stuff) {
    case 1: return "banana";
    case 2: return "gurke";
    default: return "oopsie";
  }
})();
#

but like

const thing = switch (stuff) {
    case 1: return "banana";
    case 2: return "gurke";
    default: return "oopsie";
  }
};
``` would be so hot
little relic
#

pls

lone panther
#

it would

#

but Fuck You I Guess

dull magnet
#

pattern matching is hot but WTF IS THIS

match (res) {
  when ({ status: 200, body, ...rest }): handleData(body, rest)
  when ({ status, destination: url }) if (300 <= status && status < 400):
    handleRedirect(url)
  when ({ status: 500 }) if (!this.hasRetried): do {
    retry(req);
    this.hasRetried = true;
  }
  default: throwSomething();
}
little relic
#

I do this a lot

const thing = {
1: "",
2: "",
}[stuff]
dull magnet
#

yeah thats cool too

lone panther
little relic
#

constant map thing

lone panther
#

WHATMM??????

#

WHATM??????M???????

dull magnet
#

although i would make the object a global personally

#

instead of inline

dull magnet
#

their example is horridly formatted but yeah

little relic
#

i really like that

lone panther
#

do expressions are fire but i wish objects had diff syntax so you didnt need the keyword

#

and could just do it like rust

dull magnet
#

if it can parse as an object then treat it as obj

#

otherwise try to interpret it as block?

#

although ig then there would be confusion with labels

lone panther
#

aint no way theyd want behavior like that encoded in the language

#

i would think

#

"if your parser throws an error do other thing"

#
  • it could prob introduce inconsistency n stuff
little relic
#

lol

dull magnet
#

maybe

lone panther
#

i mean do keyword is def the best middleground there

dull magnet
#
let banana = :{
  const x = 42;
  x / 2;
}
#

soon

#

:{

#

why is he so sad

lone panther
#

that syntax is a bit cursed tho

#

idk why it just

#

feels cursed

#

can we just replace JS with a new lang

#

replace with JITed rust

pure temple
#

but it's a tiny bit cursed

inner pendant
#

can I redo the browser.js and make it work after iframe.load is compleated?

proud cargo
#

is this good @tall kiln

#

im not too sure but
its a native node module over ipc, thats blocking right

#

idk if its a good idea to put it into a webworker either bc id have to structuredclone to go back

proud cargo
#

unsane

proud cargo
#

guhh any time i try to use native node module in worker it shits itself
i enabled node integration for workers, sandbox is off and the module uses the context aware module registrator

#

that makes sense

#

partially at least

#

now we cooking.

#

AAAAA

#

i had to require

#

so dum

proud cargo
proud cargo
#
// this works
console.log(buf);
const res = erl.unpack(buf);
postMessage(res);

// this produces error
//console.log(buf);
const res = erl.unpack(buf);
postMessage(res);
#

horrible

#

what is the buffer lazy now??

proud cargo
thin acorn
#

anyone got a css snippet or theme that will get rid of this like just remove it

pure steeple
#

I mean this would still exist

thin acorn
#

by going to the groupchat and leaving

#

i dont join voice chats on servers so i dont need it

chrome elbow
thin acorn
#

holy shit thank you

rocky jackal
#

I am not sane

#

pure vanilla version of the plugin

rocky jackal
#

that would be nice

rocky jackal
#

Completely client global colorways selector, needs unblocked csp tho

#

still dunno how to fix that

cedar marsh
#

What on earth is a colorway

rocky jackal
#

basically recolors

cedar marsh
#

Looks like classic client theme

rocky jackal
#

pure recolors

#

kinda

#

but you can make them yourself

#

and make them a lot more complicated

cedar marsh
#

Ah

rocky jackal
#

for example:

cedar marsh
#

Vomit inducing, thank you

rocky jackal
#

and yes, this is user-creatable

cedar marsh
#

So basically just a ui for picking colors for every --primary-XXX value

rocky jackal
#

kinda, the main idea behind colorways was for them to be one line imports for simple recolors, with the UI allowing you to easily switch between them and create your own

sterile helm
#

rq question, which directory (by default) has the plugins stored at

pure temple
#

they're all part of vencord

sterile helm
#

Right but i'd like to modify one of them for personal preferences

pure temple
#

you'll need to edit renderer.js then

#

good luck

#

(or just edit the source code and build lmao)

sterile helm
#

alright

minor jolt
#

just a wild idea regarding my problem, could i somehow "re-initialize" module 76834 and push it to webpackChunkdiscord_app, so all its requires are resolved

#

since, if i take one of these requires and wreq it in the console it resolves normally

#

(but inside 76834 it is undefined)

#

i would try this but im still not fully used to how webpack works, i tried to just copy all the code from the file and run (e, t, n), n i imagine is Vencord.Webpack.wreq

#

but i'm not sure what the other two arguments would be, according to the guide, the second arg is exports, so it would be an object (?) but it complains that it's not callable, and i'm not sure what the first argument (module) is

austere mauve
#

what are you sayingā€¼ļø

minor jolt
#

im crazy don't mind me

sterile helm
pure temple
#

don't do that lmao

lone panther
sterile helm
#

Why can't I make my own plugin

pure temple
pure temple
#

renderer.js is just compiled and minified, that's all lol

sterile helm
#

oh no i was just looking for a message related to our previous conversation to ask a new question

rocky jackal
#

Bruh cloudflare was messing up my website's git repo

lofty crypt
amber plover
#

Does anybody know whether there's a good reason the TextReplace plugin doesn't store the rules in the settings.json but in the IndexedDB instead?

Using the settings.json would have a few benefits imo:

  • rules could be synced with Vencord Cloud Sync
  • users can edit their rules in the settings.json directly using any text editor (which is a blessing if you want to edit a lot of rules or copy/paste them)
  • sharing an entire set of rules with other users would be easier, too

What do you guys think?

amber basin
#

settings doesnt support arrays

amber plover
#

Wdym? It's just a JSON. Arrays work too.

amber basin
#

its not that simple

#

you need ui to edit it

#

you need handlers

amber plover
#

The UI is already there. I'm talking about the existing TextReplace plugin.

#

I'm only talking about where the data is stored.

#

The TextReplace plugin has two functions that handle data storage. "OnRemove" and "OnChange". You could simply replace the DataStore calls (for IndexedDB access) with statements that alter the settings.json entry, imo.

#

I would just like to know if you see any technical drawbacks to this, regardless of the exact implementation.

pure temple
#

it supports objects

amber plover
#

yep

pure temple
#

those objects can contain arrays

amber plover
#

exactly

pure temple
#

(in response to luna)

amber plover
#

KodeToad, you're one of the contributors of the TextReplace plugin, right? May I ask what's your opinion on my idea?

pure temple
#

i didn't do much

#

but i did already consider this

amber plover
#

Was there a particular reason why you didn't implement it?

#

Just curious, not judging

pure temple
#

i didn't get around to it

amber plover
#

okay, i see

lofty crypt
amber plover
#

I actually already implemented my idea in my fork of Vencord. Just wanted to hear some opinions before actually creating a PR.

amber basin
pure temple
#

hm?

amber plover
pure temple
#

the ui doesn't support what TextReplace is doing

amber basin
#

textreplace uses a component setting

pure temple
#

yeah but they can have data

trail ginkgo
#

because that wont work well

dull magnet
#

vban 7 @mild blaze racist

shrewd tundraBOT
austere mauve
#

sanest fall guys fan

stray imp
#

time to figure out how to patch into a react native for web site

#

@amber basin should i make patches use svelte

amber basin
#

horror

#

do it

stray imp
#

:D

amber plover
minor jolt
minor jolt
trail ginkgo
#

i imagine its more confusing for newer devs

#

since they never had to use var

lofty crypt
#

i’m so used to recognizing it as a massive code smell, mostly from coding support chat

pure temple
#

var Code_Smell;//this is high quality code

#

lol i "love" it when people use a lot of single letter variable names

dull magnet
#

i & j are fine for counters

#

n too

pure temple
#

yeah

#

although I remember when I refused to do that

#

for (int index ...