#👾-core-development

1 messages · Page 59 of 1

austere talon
#

no

limber skiff
#

that's where PermissionsStore come in

lime stone
austere talon
#

MANAGE_MESSAGES * 0x0000000000002000 (1 << 13)

lime stone
#

ty!

limber skiff
#

PermissionsStore.can lets you check if a specific channel has a permssision bitfield

lime stone
#

yeah i was just using that! tysm!

limber skiff
#

PermissionsStore.can(channel, 1n << 13n)

quaint sapphire
#

huh

#

are there more .can?

#

cause the one I found has the perm first

lime stone
#

better to use a constant or maybe even have an enum (if ts works like that??) for other plugins to use

limber skiff
#

oh

#

I may have got the order wrong

austere talon
limber skiff
#

yeah I did

lime stone
austere talon
#

but a lot of plugins just hardcode it cause its easier

#

PermissionsBits was just added by PermViewer

#

bleh

grave mangoBOT
lime stone
austere talon
#

how is it lazy

#

its not

quaint sapphire
austere talon
#

cause its purely typings

quaint sapphire
#

enums can be typed as well

austere talon
#
somber ginkgo
#

now ive got my main pc back, gotta fix my discord update script to include the vencord installer horror

lime stone
#

i'm not trying to criticise whoever wrote the code, i think it's bad to potentially duplicate constants across plugins though

limber skiff
#

but now it's a Common so it doesnt matter

lime stone
#

still would be better to have something usable by multiple plugins

#

ye

#

it's most likely not going to change though, there isn't much of an issue

#

see i only care about this stuff if i'm a mod lmao

quaint sapphire
#

this wasn't deleted tho?

lime stone
#

hmm

#

was on my client

somber ginkgo
#

except it was

#

skill issue

quaint sapphire
#

discord be like

austere talon
quaint sapphire
#

is my message logger css broken or smth?

lime stone
limber skiff
#

nah it doesnt make the emoji gray

austere talon
lime stone
#

:3

#

ye

quaint sapphire
#

is that custom css?

austere talon
#

no

#

it's a setting

lime stone
#

it's default?

quaint sapphire
austere talon
quaint sapphire
#

lol

austere talon
#

red overlay makes the background red

#

rex text makes the text red and images grey

somber ginkgo
#

ven

quaint sapphire
#

got trolled by a grayscale emoji

somber ginkgo
#

do you have any recommendations when implementing vencord installer cli into my update script

quaint sapphire
#

why are you re-installing on every update tho?

lime stone
#

Message Logger Test (i'm not a moderator)

quaint sapphire
#

omderator

lime stone
#

it still applied... hmm

somber ginkgo
quaint sapphire
#

I've used vencord on arch linux and I didn't have to re-install vencord on update?

lime stone
#

ohh, i made a stupid mistake

quaint sapphire
#

what distro are you even using?

lime stone
#

it doesn't apply if you're a moderator

somber ginkgo
#

and rsync shits itself whenever vencord is installed

charred monolithBOT
somber ginkgo
#

so im just gonna skip rsync and reapply vencord over a clean installation directory

charred monolithBOT
#
[Vencord/Installer] New tag created: v1\.2\.9
quaint sapphire
#

so you are uninstalling and re-installing discord?

#

that aint updating bro

#

love that font

#

font designer enters the chat: that font is horrible and here are 50 reasons why

somber ginkgo
#

if i dont rerun the installer then im not actually updating anything because the app.asar doesnt get updated xdd

quaint sapphire
#

just use vencord desktop

#

and be done with it

somber ginkgo
#

i screenshare

quaint sapphire
#

maybe choose a better distro next time

somber ginkgo
#

i use fedora because debian based distros have trash package management, and i want something that has some level of package availability without something breaking every two minutes

charred monolithBOT
median rapids
somber ginkgo
quaint sapphire
somber ginkgo
#

tf ym

quaint sapphire
#

all hail arch and yay

somber ginkgo
#

im not a femboy i dont use arch xdd

quaint sapphire
#

that doesn't make yay bad, so why not hail both yay and paru?

quaint sapphire
charred monolithBOT
quaint sapphire
#

I haven't used paru tbh, yay never left me unsatisfied to even want to try another aur helper

median rapids
quaint sapphire
#

tbh, debian aint that bad if you use it in combination with apx (a distrobox wrapper for package managers) the vanilla os package manager

#

as long as you can use apx, you can have the best of all worlds

#

stable base system, and the AUR

charred monolithBOT
somber ginkgo
#

meanwhile i just use COPR

quaint sapphire
somber ginkgo
#

copr my beloved

quaint sapphire
#

whenever I use it I just alias it to apx --aur cause I only need it for arch packages lol

somber ginkgo
#

mfw asking for recommendations for my update script turned into package manager wars

charred monolithBOT
quaint sapphire
#

jk

#

you can always just do what the installer does within ur script

#

no need to use the installer

#

since you are a linux user, it shouldn't be that hard for you, right?

somber ginkgo
#

im gonna use the installer cli binary to do the heavy lifting

#

my script is just curling, validating and updating

charred monolithBOT
austere talon
#

easy

austere talon
#

with astro routes

median rapids
#

oopsies

jagged cloak
#

oops i unplugged shard 853

verbal pumice
#

le epic troll

austere talon
#

oh i have a better idea

#

i will make the installer first try github api then if it fails fall back to vencord api

#

so we minimise load on vencord api while having a fallback for github

#

no why would i do that

#

because rate limit & some isps block it

jagged cloak
#

has you seen support lmao

austere talon
#

do you really think i would bother adding a fallback and making my own github api proxy if there weren't issues with github

jagged cloak
#

jiiiiiiiiiiiiiiiiiiii

austere talon
inland zinc
#

Still waiting for timezone plugin to be approved like dead

austere talon
#

there's no timezone plugin

#

perhaps you might be referring to the popular timedones plugin?

inland zinc
#

Yes

#

The pr

#

Which is dead like me inside

#

Vencord has everything except that plugin which I use daily

#

It's amazing to kiss my homies gn knowing the time they sleep 😪

inland zinc
#

You mean merging pull request to the main?

#

It isn't hard but ig it's incomplete or something

#

And I'm too lazy to build vencord again only to use timezone plugin

quaint sapphire
inland zinc
#

Ooohhh

#

I'll send you the pr ig

quaint sapphire
inland zinc
#

Another day of building vencord again

quaint sapphire
#

lol

inland zinc
#

Good luck with that

quaint sapphire
inland zinc
#

I need to learn typescript abelthumbsup

quaint sapphire
#

and this is an update

#

@austere talon

austere talon
#

moved

#

to different files

quaint sapphire
#

ven casually making breaking changes

austere talon
#

yes

inland zinc
#

Guess I'm not building vencord again WHAT

quaint sapphire
#

one sec, will fix

inland zinc
#

Is that only eslint

#

Or is it different

austere talon
#

compile error

inland zinc
#

Ah

quaint sapphire
#

thats what we call a breaking change

inland zinc
#

Waltuh

austere talon
charred monolithBOT
quaint sapphire
#

well, revanced patches don't always work with the latest version of an app, so you most likely downloaded the wrong apk

quaint sapphire
inland zinc
inland zinc
quaint sapphire
#

the version of the apk you use, could be the problem

inland zinc
#

I was talking about building the app myself

charred monolithBOT
quaint sapphire
#

I really feel like smth gets lost in translation or smth

inland zinc
#

Nah I'm just sleepy but just hope it works

quaint sapphire
#

define "app"

#

since you said "building the app myself" I can only assume it is open source

inland zinc
#

Oh you mean the stock apps used for patching

quaint sapphire
#

the base apk

inland zinc
#

Yeah thst

quaint sapphire
#

the patches aren't apks

#

only the integrations would be apks

inland zinc
#

It's from apkmirror and the readme suggests it supports all versions

charred monolithBOT
inland zinc
#

Anyway gn

charred monolithBOT
paper rivet
#

Is there a css snippet that actuallyy works when it comes to removing the nitro gift on the message bar?

austere talon
charred monolithBOT
blissful temple
#

I really hope this is the correct channel for this, if not please tell me where this should go instead 😅 Anyways, onto the question:

Has anyone messed around with the soundboard aka voice channel effects yet?
I'm curious as to how sending works (to play a full song), but god I hate reversing webpack. I was trying to find usages to a method with no results, and now I just found out that those methods are wrapped once again by webpack (checking #assets first would've made my life slightly easier).
This lead me to something, but this code confuses me even more oh (obfuscated method name with 4 args, which seems to do something useful, but I have no idea what to do with it)
However, I did find a VoiceChannelEffectsStore store, but unfortunately contains nothing useful to send an effect.

blissful temple
#

..no? In that case, "Emote Cloner" would be selfbotting too.

#

at least, I don't intend it to be. If it is classified as a selfbot, I'll just leave it and don't do it. Don't wanna risk a ban for that 🤷

limber skiff
#

Voice Channel Effects have nothing to do with the soundboard

#

and the soundboard is done server side

#

your client just sends a request to play

blissful temple
limber skiff
#

so you cant play custom stuff with it

blissful temple
# limber skiff so you cant play custom stuff with it

I just have a server and added a lot of sounds to it, with this plugin I intend to play each of them sequentially at the correct time so it acts like a full song. So, really, I'm just trying to find the function that runs when you click on a sound to make it play.

limber skiff
#

ohh I see

blissful temple
#

I know it's a little stupid and I should use a system-wide soundboard for that, but I'm just doing it for fun since I'm bored dev_happy_emoji

blissful temple
austere talon
#
playLocal = Vencord.Webpack.findByCode(`type:"GUILD_SOUNDBOARD_SOUND_PLAY_LOCALLY"`)
playRemote = Vencord.Webpack.findByCode(`.SOUNDBOARD_PLAY`)

chanId = "1015931590741872713"
guildId = "1015931589865246730"
for (let sound of Vencord.Webpack.findByProps("getSounds").getSoundsForGuild(guildId)) {
    await new Promise(r => setTimeout(r, 400));
    sound = {
        "soundId": sound.soundId
    }
    
    playLocal(chanId, sound)
    playRemote(chanId, sound, false, guildId)
}
#

this is a snippet that plays all sounds in a specific guild (not written by me)

#

figure the rest out urself

blissful temple
#

Interesting, looks like I was on the right path then with my own research. I got playLocal and playRemote, but not getSounds.

jagged cloak
#

oh trol

#

whys playLocal and playRemote seperate

#

play for others but not yourself

lone lintel
#

Jello

jagged cloak
#

guess you are jello if you leave that quickly after messaging

austere talon
#

i mean it makes sense tbh

#

if you get the event from some other user you only wanna play locally

jagged cloak
#

ah well yeah

austere talon
#

jumpscare

charred monolithBOT
charred monolithBOT
austere talon
#

inb4 even more false detections with these latest 2 commits

charred monolithBOT
austere talon
frail skyBOT
#
Bad Patches

None

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping ```
limber skiff
#

reference error suddenly gone lmao

frail skyBOT
#
Bad Patches

ShowHiddenChannels (had no effect):
ID: 14096
Match: /(?=\|\|[A-Za-z_$][\w$]*\.default\.selectVoiceChannel\(([A-Za-z_$][\w$]*)\.id\))/

ShowHiddenChannels (had no effect):
ID: 14096
Match: /(?<=\|\|[A-Za-z_$][\w$]*\.default\.selectVoiceChannel\(([A-Za-z_$][\w$]*)\.id\);!__OVERLAY__&&\()/

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 Cannot access 'ufe' before initialization ReferenceError: Cannot access 'ufe' before initialization
    at Module.default (WebpackModule276171:2:50)
    at VencordWeb:12:719
    at VencordWeb:5:8750
    at [vencord.lazy.get] (VencordWeb:5:7113)
    at Er.<computed> [as get] (VencordWeb:5:7524)
    at Object.handleProtoChange (VencordWeb:33:23261)
    at CONNECTION_OPEN (WebpackModule473419:2:5858)
    at https://canary.discord.com/assets/cf23181d396a73116f2a.js:9376:975
    at https://canary.discord.com/assets/cf23181d396a73116f2a.js:9367:82
    at n (https://canary.discord.com/assets/cf23181d396a73116f2a.js:9376:952) ```
limber skiff
#

UGH

#

grrrr they changed an important shc module

#

that's a patch that cant break

austere talon
median rapids
austere talon
median rapids
#

i always keep uac off

austere talon
#

why

#

thats extremely stupid

median rapids
#

it's not very useful

austere talon
#

it is???!

#

not running every app as admin if it wants is very useful

#

anyway i think even with UAC disabled it shouldnt run the installer as admin

median rapids
austere talon
#

thats just not true but alright

median rapids
#

what's not true jumper

#

I definitely think it should be enabled by default
but I personally don't find it worth the minor annoyance

austere talon
#

"someone might break my lock and break into my house so i might as well keep the door wide open"

median rapids
#

locks only keep honest people out

cunning canyon
#

hmm set it to never notify doesnt force admin for me and vencord installer still works fine
only when disable it with regedit then it forces admin everything

median rapids
#

wtf

#

how did I even send that sk

median rapids
charred monolithBOT
charred monolithBOT
charred monolithBOT
jagged cloak
#

reading that gave me deja vu

#

almost like that exact conversation happened 1:1 before

acoustic scaffold
#

but why

#

there's a lot of great replugged plugins

jagged cloak
#

makes no sense

#

or what the other guy said

acoustic scaffold
#

why?

#

could it not be feasibly done?

#

colin has started to show signs of tyranny so I kinda wanna jump ship

#

and manually porting everything is annoying

golden gulch
#

the majority of practical replugged plugins already have an alternative in vencord

quaint sapphire
#

iirc the new replugged plugins use patches just like vencord

#

so it could be possible

quaint sapphire
#

oh nvm

#

they still have injectors

#

didn't they plan to migrate to patches?

acoustic scaffold
#

they have both now

#

which is based

quaint sapphire
#

injectors are only based when in C# and Java

#

and thats how I cracked a game

#

lol

charred monolithBOT
cunning bobcat
cunning bobcat
radiant reef
#

True

quaint sapphire
#

maybe 32bit chromium only has that limit on windows?

cedar snow
#

hey do we have docs for the plugin api?

#

couldn't find any?

fleet depot
#

oh lol

#

messed up the codeblock poor thing

cedar snow
#

thanks!

charred monolithBOT
charred monolithBOT
sour drum
blissful temple
#

The plugin explicitly sends Discord API requests to add the emotes to your own server.

lime stone
#

is it automated?

#

i think they're so'ing

#

you can't so when the so is already sowed

sour drum
lime stone
#

ye

blissful temple
# lime stone i mean your idea

Hmm, I'm not sure then. It just "clicks" on all of the soundboard sounds at the exact timing. Could argue that's the same as emote cloner then, since it's a legitimate action.

lime stone
#

I think if you're making requests in a way not tied to any human-created event that's a selfbot technically?

#

idk

blissful temple
#

I'm not making requests tho

sour drum
#

you are...

lime stone
#

i think it does end with some kind of request

blissful temple
#

I'm just invoking the button handler, so yes that does end with a request

lime stone
#

anyway the mods don't seem to care

blissful temple
#

It's a legitimate action, but if you insist it's a selfbot then I won't risk a ban for it. I mentioned this before, I was just doing this for fun and rather not get a ban 🤷

lime stone
#

doesn't sound like a bright idea

lime stone
#

sorry i just remember this

blissful temple
lime stone
#

i don't want to act like a moderator though, it just all begun when i asked a question

blissful temple
lime stone
#

can bots use the soundboard?

sour drum
#

no

lime stone
#

:(

blissful temple
#

Even tho emote cloner does the same, I'll just leave it alone

lime stone
#

i'm not trying to tell you what to do

sour drum
#

there's a difference between 1 api request and api abuse

lime stone
#

it seems kind of selfbot-like though

sour drum
#

for example an actual discord bot sending a message every minute in a channel is also against discord tos unless it's for a good reason

lime stone
#

but... i feel like the moderators would've pointed something out by now because there's a no selfbot rule 🤷‍♀️

blissful temple
sour drum
#

It's 1 single request. It doesn't clone every emote

#

it clones 1 single emote that you right click and press clone on

blissful temple
blissful temple
lime stone
sour drum
blissful temple
lime stone
#

ok, fair enough!

#

ven is smart though, i feel like there may be something we're missing

sour drum
lime stone
#

lmao

sour drum
lime stone
#

genuine question?

sour drum
#

Yeah. Trying to add global shortcuts to Vencord Desktop

quick ibex
#

Based scpsl enjoyer wtf

sour drum
#

just not sure what exactly triggers quick-switcher (wanting to add Ctrl + T)

lime stone
#

ooh

sour drum
quick ibex
#

I would try and host an official server

#

But too much effort

sour drum
quick ibex
#

Redline or whatever dumdum tbh, I don't understand why you would have multiple official servers if you own the servers that they are ran on

sour drum
#

Official ≠ Verified

#

And they don't own the servers.
It's the same way that Rust does it

#

There are a total of 7 Official server hosts (each with 2 servers) so a total of 14 actual official servers

quick ibex
#

From my understanding, the servers in the official tab are ran by redline on their servers, and just have other people managing them

sour drum
#

I have no idea about Redline

quick ibex
#

I say redline

#

But I have no clue if it is actually redline the Devs of scpsl

sour drum
#

Like I said

#

Official servers aren't hosted by NW (NW does host 2 official servers, but the rest are all hosted by individual communities)

quick ibex
#

NORTHWOOD

#

Idk why I kept saying northwood

#

Redline*

#

Dude I'm dumb

quick ibex
#

I'm too dumb to understand how scpsl functions

sour drum
#

The same way Rust functions

quick ibex
#

Never touched rust in my life... I really want to tho

#

Heard it was on sale, but I don't have a windows pc

sour drum
#

and CS:S/GO servers (they just don't have 'Official' servers)

#

And same way minecraft servers work too... except mojang doesn't list all active servers

quick ibex
#

🤨

sour drum
#

what

lime stone
#

I think I found the quickswitcher thingy

sour drum
#

please do tell

lime stone
#

search for type:"QUICKSWITCHER_SHOW"

#

i think it's there

sour drum
#

I think that's just the flux event no?

lime stone
#

the same function most likely also opens it

#

yep

#

running Vencord.Webpack.findByCode("type:\"QUICKSWITCHER_SHOW\"")() opens it for me

sour drum
lime stone
#

aww i'm glad i could help

sour drum
#

it works catsitR

austere talon
# acoustic scaffold but why

replugged has so little plugins

if anything, we'd add compatibility for BD, not replugged

but vencord functions entirely differently than these mods and compatibility for other mods' plugins would be an absolute nightmare both from code side and support side. if you really want to, just load both in parallel

sour drum
#

I wonder what Global Keybinds exist

charred monolithBOT
austere talon
#

in any case spamming soundboard is whatever, do it if u want but spam like that won't be accepted as vencord plugin

lime stone
#

...so it's not against tos?

blissful temple
#

I misunderstood what emote cloner did and thus thought it was fine, but it's not

austere talon
#

emote cloner clones one single emote when u right click and click clone, not all of them shiggy

blissful temple
#

Yeah xd

austere talon
blissful temple
#

That explains where you got that snippet from then trolley

lime stone
sour drum
lime stone
#

it's a hasLayers thingy

#

idk when it's false though :p

#

oh, probably when settings are open

#

you can't normally do this

sour drum
austere talon
#

yeah layers are any sort of modals

#

settings, server settings, some modal like user profile, etc

lime stone
#

you can open quick switcher with them open

austere talon
#

🤔

#

oh huh

lime stone
austere talon
#

okay fair

stark flint
austere talon
#

false positives, ignore

blazing dome
#

Ok

austere talon
#

yes

#

that's why i don't bother

#

it's pointless

#

the gui installer is only flagged by one single instance, the cli by 5

#

when it's literally the same code except cli has less code

#

cli inherently malicious

charred monolithBOT
blazing dome
#

i am summiting false postive report

#

hope kaspersky does not uninstal vencod

pallid lava
blazing dome
#

but when i compile the binaries my av does not flag it. sus

austere talon
#

it's literally built by github actions

#

make you're sure doing the same step the workflow does

#

so generate winres, build for 32bit instead of 64 bit (this plays an important part, it didn't flag 64 bit nearly as much), pass the same linker flags

blazing dome
#

i just run "go build --tags cli" and run the exe built

#

i acutally thought ou used vms to publish the pacakges

austere talon
#

vms?

austere talon
austere talon
#

but why even bother

#

who cares about false detections

blazing dome
#

yea lol

austere talon
#

even the mozilla firefox installer had a false detection when i checked it out of curiosity

#

:)

blazing dome
#

oof

charred monolithBOT
verbal pumice
#

a fate worse than death

lime stone
#

NMO!

jagged cloak
#

every time someone asks for merge a pr gets delayed by one month

quaint sapphire
#

I asked for a review and a merge

broken stump
#

Yo is anyone else having an issue where Discord randomly disconnects you if you have devtools opened? This is driving me nuts lmao

verbal pumice
#

enable NoDevtoolsWarning plugin

#

it's intended by discord to log you out

quaint sapphire
#

aliucord legacy is still getting plugins

#

crazy

quaint sapphire
#

it is an intended behaviour by discord to prevent dumb users from getting their tokens and giving it to scammers

quaint sapphire
broken stump
#

yo thx

tame escarp
#

LET IT DIE

#

LET IT DIE LET IT DIE LET IT SHRIVEL UP AND DIE

verbal pumice
#

do not let it die

#

rn ⏬

tame escarp
#

rn 📈📈📈📈📈📈📈📈📈📈📈

#

kt 📉📉📉📉📉📉📉📉📉📉📉📉📉📉📉📉📉📉📉📉📉📉📉📉📉

verbal pumice
#

you love 1.2GB ram

tame escarp
#

i have 4 gigs who cares

#

🙄

quaint sapphire
#

you only have 4gb?

#

laughs in 8gb RAM + the ability to extend it by 5gb by using the internal storage

tame escarp
#

i have 16gib on desktop which i can use as a phone if i try hard enough

burnt bough
#

how do i make vencord plugins

quaint sapphire
#

anyways, first step would be to clone the repo and install a dev build

somber ginkgo
quaint sapphire
#
git clone ...
cd Vencord
pnpm install
pnpm build
pnpm inject

if you want to make plugins, then you should already know that ... should be the repo link instead
and you should install pnpm first

#
  • don't make ur PR on the main branch
fleet depot
quaint sapphire
#

if you actually want someone to review ur PR

fleet depot
grave mangoBOT
# fleet depot https://github.com/Vendicated/Vencord/blob/main/docs/2_PLUGINS.md

**2_PLUGINS.md: **

# Plugins Guide

Welcome to Megu's Plugin Guide! In this file, you will learn about how to write your own plugin!

You don't need to run `pnpm build` every time you make a change. Instead, use `pnpm watch` - this will auto-compile Vencord whenever you make a change. If using code patches (recommended), you will need to CTRL+R to load the changes.

## Plugin Entrypoint

> If it doesn't already exist, create a folder called `userplugins` in the `src` directory of this repo.

1. Create a folder in `src/userplugins/` with the name of your plugin. For example, `src/userplugins/epicPlugin/` - All of your plugin files will go here.

2. Create a file in that folder called `index.ts`

3. In `index.ts`, copy-paste the following template code:

```ts
import definePlugin from "@utils/types";

export default definePlugin({
    name: "Epic Plugin",
    description: "This plugin is absolutely epic",
    authors: [
        {
            id: 12345n,
            name: "Your Name",
        },
    ],
    patches: [],
    // Delete these two below if you are only using code patches
... (82 lines left)
quaint sapphire
#

ah yes

#

the code is not in the codeblock

fleet depot
#

sometimes i wish bot wouldn't do this

quaint sapphire
#

but the markdown is

fleet depot
#

i just have to remember to use angle brackets i think

quaint sapphire
#

I think you are already doing smth about them, but it doesn't work

#

ok, @fleet depot if you surround the link with <>, it will not trigger the bot

burnt bough
#

do i have to reinstall vencord every time i want to make a plugin

quaint sapphire
quaint sapphire
burnt bough
#

remove vencord from discord

#

then install it again

quaint sapphire
#

you only inject once if that's the question

#

and you re-build it as many times as you want

burnt bough
#

how do i rebuild

quaint sapphire
#

pnpm build

burnt bough
#

oh

#

im dumb

fleet depot
quaint sapphire
#

ooooh, I didn't know they had a proper name

#

I just call them less than and more than

fleet depot
quaint sapphire
#

pnpm watch, dunno what pnpm --watch is

fleet depot
#

oh whoops

#

that's what i meant

#

right right

#

pnpm build --watch

#

that's what i was messing up

quaint sapphire
#

@burnt bough ok so, when you inject vencord, all it does is add some code that loads vencord from your dist folder

#

if you delete the dist folder, then discord will not open

#

or I dunno

#

never tried that

#

anyways

#

that means that whenever you build, you can reload discord and it will have the latest changes from ur code (if you built it that is)

#

hot-reloading is not a thing vencord has

fleet depot
#

only for css

quaint sapphire
#

well, for quick css

#

yeah

#

not css in plugins

fleet depot
#

yeah

quaint sapphire
#

huh

burnt bough
#

ok so is there any documentation

burnt bough
#

anywhere

quaint sapphire
#

proper documentation? no

fleet depot
#

yeah it's

#

wip...

burnt bough
#

look at plugin code

quaint sapphire
#

just look at other plugins

burnt bough
#

and just try to know what it means?

fleet depot
#

ask questions

quaint sapphire
#

and if you know regex, it should be easy to learn to patch

fleet depot
#

regex101 and regexpr are your friends

burnt bough
#

im not good with regex

quaint sapphire
#

well, if you don't require patches then thats fine

burnt bough
#

patches?

quaint sapphire
#

patches modify discord's code

#

using regex

#

we can do anything we want with them

burnt bough
#

are patches important

quaint sapphire
#

if you need to modify discord's code, then yes

#

plugins that use the existing APIs usually don't need patches

burnt bough
#

how many existing apis are there

quaint sapphire
#

like the MoreCommands plugin

quaint sapphire
#

they are easy to find

#

well, thats just the core of the APIs

burnt bough
#

how much can i do with just the apis

#

that are existing

austere talon
#

see for yourself

#

this isn't google

burnt bough
#

ok

austere talon
#

or state what exactly you're trying to do

quaint sapphire
#

you can intercept any message the user sends and edit it (or cancel the action)
you can intercept any message the user edits and edit it (or cancel the action)

you can add a button to the vencord toolbox
you can add items to the context menu
you can add commands like /lenny
you can add user badges

#

too many to say

#

just explore

burnt bough
#

ok

quaint sapphire
#

an API for keybinds is also pending to be reviewed and merged

burnt bough
#

how long will it take to be merged

quaint sapphire
#

that is not up to me

burnt bough
#

ok

quaint sapphire
#

it doesn't use any patches and it is a proper plugin

charred monolithBOT
jagged cloak
#

pretty sure that's intentional not an edge case

#

since definePlugin gives you plugin name description and authors

#

oh i didn't see the discussion

#

yeah you shouldn't need to do that but should be able to xd

quaint sapphire
# jagged cloak yeah you shouldn't need to do that but should be able to xd

Well, sometimes you may want to access the plugin from places that this does not have ur plugin.

One example is within flux events, they are their own objects, so they don't have access to the plugin object.

One easy solution would be to first make a constant and then export it.

Another solution is to fucking use the global Vencord.Plugins.plugins["whatever"]

Or to have all ur state outside of the plugin.

#

Having all ur state outside of the plugin can be messy if the plugin is small enough imo

#

And using globals means that if you change the plugin name, you also have to change the global usage.

One solution to that is to make a constant for the plugin name but guess what?

Ven couldn't be arsed to check that as well, if it ain't a string literal then it says that it ain't valid.

jagged cloak
#

oh i see

quaint sapphire
#

So yeah, you either bypass the accidental restrictions ven made, or you abide by them and write code you don't like and/or is prone to breaking if you are not careful enough.

cunning bobcat
# charred monolith

i was gonna make a comment about this and then i realised plugin. here is redundant since settings is not defined in the definePlugin()

#

damn you sleepy brain

quaint sapphire
#

@austere talon can you make flux events give the plugin instance?

You know

definePlugin({
    flux: {
        smth: (plugin, eventData) => {} 
    }
})
#

Cause the object flux is a different object instance technically, so this refers to it rather than the plugin.

#

Don't ask "why?" or "what do you want to do?", please

#

I don't even need to give an example

#

But if you want one, look at GxMod

#

It should be pretty obvious that it is annoying to not be able to access members of the plugin.

charred monolithBOT
cunning bobcat
#

i agree

charred monolithBOT
#

Discord Account

Oto#6032

What happens when the bug or crash occurs?

The bug is, i enabled translucid window but it dosnt work, i relaunched my pc and discord. (ps : i'm on macos)

What is the expected behaviour?

The bug is, i enabled translucid window but it dosnt work, i relaunched my pc and discord. (ps : i'm on macos)

How do you recreate this bug or crash?

  1. Go on macos
  2. Download vencord
  3. enable translucid mode
  4. look it dosnt work

Errors

Replace t...
austere talon
#

working with this in js is so painful

#

this is just js's fault

frail skyBOT
#
Bad Patches

ShowHiddenChannels (had no effect):
ID: 14096
Match: /(?=\|\|[A-Za-z_$][\w$]*\.default\.selectVoiceChannel\(([A-Za-z_$][\w$]*)\.id\))/

ShowHiddenChannels (had no effect):
ID: 14096
Match: /(?<=\|\|[A-Za-z_$][\w$]*\.default\.selectVoiceChannel\(([A-Za-z_$][\w$]*)\.id\);!__OVERLAY__&&\()/

ShowHiddenChannels (had no effect):
ID: 695358
Match: /(?<=renderHeaderToolbar=function.+?case [A-Za-z_$][\w$]*\.[A-Za-z_$][\w$]*\.GUILD_FORUM:if\(![A-Za-z_$][\w$]*\){)(?=.+?;(.+?{channel:([A-Za-z_$][\w$]*)},"notifications"\)\)))/

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 Cannot access 'bfe' before initialization ReferenceError: Cannot access 'bfe' before initialization
    at Module.default (WebpackModule286498:2:50)
    at VencordWeb:12:719
    at VencordWeb:5:8750
    at [vencord.lazy.get] (VencordWeb:5:7113)
    at Er.<computed> [as get] (VencordWeb:5:7524)
    at Object.handleProtoChange (VencordWeb:33:23261)
    at CONNECTION_OPEN (WebpackModule473419:2:5858)
    at https://discord.com/assets/3e55a38022c158d6e8ed.js:9383:278
    at https://discord.com/assets/3e55a38022c158d6e8ed.js:9373:270
    at n (https://discord.com/assets/3e55a38022c158d6e8ed.js:9383:255) ```
#
Bad Patches

ShowHiddenChannels (had no effect):
ID: 14096
Match: /(?=\|\|[A-Za-z_$][\w$]*\.default\.selectVoiceChannel\(([A-Za-z_$][\w$]*)\.id\))/

ShowHiddenChannels (had no effect):
ID: 14096
Match: /(?<=\|\|[A-Za-z_$][\w$]*\.default\.selectVoiceChannel\(([A-Za-z_$][\w$]*)\.id\);!__OVERLAY__&&\()/

ShowHiddenChannels (had no effect):
ID: 695358
Match: /(?<=renderHeaderToolbar=function.+?case [A-Za-z_$][\w$]*\.[A-Za-z_$][\w$]*\.GUILD_FORUM:if\(![A-Za-z_$][\w$]*\){)(?=.+?;(.+?{channel:([A-Za-z_$][\w$]*)},"notifications"\)\)))/

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 Cannot access 'bfe' before initialization ReferenceError: Cannot access 'bfe' before initialization
    at Module.default (WebpackModule286498:2:50)
    at VencordWeb:12:719
    at VencordWeb:5:8750
    at [vencord.lazy.get] (VencordWeb:5:7113)
    at Er.<computed> [as get] (VencordWeb:5:7524)
    at Object.handleProtoChange (VencordWeb:33:23261)
    at CONNECTION_OPEN (WebpackModule473419:2:5858)
    at https://canary.discord.com/assets/cb713f8022795155fa87.js:9383:278
    at https://canary.discord.com/assets/cb713f8022795155fa87.js:9373:270
    at n (https://canary.discord.com/assets/cb713f8022795155fa87.js:9383:255) ```
limber skiff
austere talon
#

cause the name is auto generated by discords bundler

charred monolithBOT
#
  • What should the plugin/feature do?
    Allow you to download files like videos, zips, etc without having to open the browser

  • How does it work?
    Instead of clicking the "Download" button that shows up whenever you hover over a file to open a link in your browser, it should rather install it without opening a link.

  • Possible links to any existing plugins for other mods that could be used as inspiration!
    There was a deprecated plugin on BetterDiscord that functioned exactly the same, h...

median rapids
#

bypass onboarding, membership screening, verification level

charred monolithBOT
lament nimbus
#

i just build the image myself

charred monolithBOT
charred monolithBOT
turbid hatch
#

i thought i already rejected this idea because its not really much effort to build it yourself

#

i do not see the benefit of us making prebuilt images when we won't even use them

quaint sapphire
#

images for what?

#

docker?

#

@austere talon I am loading all the modules that have "svg" in them

#

should it be a setting?

#

also, I think 261 is the limit of how many icons there are

(keep in mind that I said icons and not assets)

quaint sapphire
#

I first define the plugin

#

and then export it

#

actually nope

#

there is one more restriction

#

ffs

#

@austere talon come on man

#

plugins have to be reviewed either way, who is supposed to benefit from this?

#

fuck you

#

found the loophole

#

you are promoting cursed code with ur restrictions

charred monolithBOT
verbal pumice
#

only 1% can press (impossible challenge)

austere talon
#

why do people not want to open their browser

#

it makes 0 difference

austere talon
quaint sapphire
#

ill make that smarter later

austere talon
#

it would also be useful to add plugin utilities to the companion

#

like a button to enable a plugin so you don't have to do it in client

lime stone
#

is there a way to open this?

austere talon
#

you want to open the invite modal?

charred monolithBOT
quaint sapphire
austere talon
#

PS: You forgot to add esbuild to your deps, lol
because i have esbuild installed globally lol

quaint sapphire
#

well I aint a madman like you

austere talon
#

what does ur code do exactly?

quaint sapphire
#

it uhh, checks if a node is a variable, if it is, it finds all the variable declarations (cause js allows const a = 1, b = 2;)

and if a variable declaration is an object literal that has the type PluginDef somewhere within it, it adds that object literal to a variable for it to be processed by ur original code

#

basically

const a: PluginDef = { patches: [] }

is now detected

#

(well, you have to add the other properties to satisfy the type)

#
const a: Partial<PluginDef> = { patches: [] }

is also detected

#

(on purpose)

austere talon
#

it's inside a loop over node.types so you would want to keep checking more types if the first type doesn't match, no?

#

i'm not fully sure how node.types works

quaint sapphire
#

yeah, the AST burnt my mind

#

you are correct

austere talon
#
if (isTypeReferenceNode(type) && type.typeArguments) {
    for (const typeArg of type.typeArguments) {

this is for generics?

#

like Foo<PluginDef>

quaint sapphire
#

yeah

austere talon
#

that can probably be removed

quaint sapphire
#

Partial<PluginDef> works bc of it

austere talon
#

ohh

#

okay that's fair

#

maybe restrict it to just Partial and maybe more

charred monolithBOT
quaint sapphire
#

sure

austere talon
#

we wouldn't want to add it to Record<string, PluginDef>

#

well i guess the further code wouldn't match that anyway but yeah

#

i guess there's no reason to restrict it

#

so just leave it nvm

#

god this code is so unreadable

#

not your fault, just typescript AST moment

quaint sapphire
#

I think it's the LSP protocol that is like that

charred monolithBOT
austere talon
#

thanks

#

also i wanna incorporate proper patch helper into the companion

#

like a modal that has inputs similar to patchhelper

#

and shows you the matches, diff, etc

charred monolithBOT
austere talon
#

the bundle size is so deranged

#

3.4mb

#

15mb map file hahaha

austere talon
#

it's because we have to bundle typescript

#

and it's so big

#

3.4mb minified size

#

vscode doesnt let u access typescript AST / its typescript module

#

so u gotta bundle ur own

quaint sapphire
#

what if it is fetched at runtime?
or just like with python linters, it requires the local package to be installed or smth

quaint sapphire
austere talon
#

probably a command

#

and also add buttons to calls to the respective apis

quaint sapphire
#

would be nice if pnpm watch or the companion restarted the discord client on build

austere talon
#

that would restart discord a looooot

#

why not just press ctrl r manually

#

i wouldnt mind integrating it somehow but not on pnpm watch

quaint sapphire
#

maybe yarn build --restart

quaint sapphire
austere talon
#

however could be integrated into companion

#

we could add buttons in this bar

#

when you press the build button it builds and restarts connected clients

austere talon
#

what

#

how are we gonna make reloads faster

#

use vencord desktop & an alt account with little guilds for faster reload

charred monolithBOT
charred monolithBOT
austere talon
#

its 200mb

quaint sapphire
#

That's actually a lot

#

I only have 7 gigs free on my SSD

#

Are you a gamer?

#

Or are you running neural networks on ur PC?

#

Cause if not, then it's a lot

gentle spruce
#

for some reason i get worried when my disk usage hits 50%, so i clean up everything i dont need anymore

#

i really don't have a reason to worry

quaint sapphire
#

I only clean up when it reaches 500 mb free

charred monolithBOT
lime stone
#

seems it's quite complicated

#

discord user gone too

charred monolithBOT
glass cedar
#

80 gigs is loads

#

Vencord desctop is only like 200mb iirc

#

So like

#

U have loads left

#

How

glass cedar
#

How can we magically make it reload faster

#

Lmfao

#

?

#

Just install openasar then

#

Its an option in vencord installer

austere talon
#

if that's close enough

lime stone
#

i realise the web version of discord wouldn't be able to have the server

#

basically i'm trying to make it appear when you click on an invite link in someone's bio!

#

discord removed the thing which allowed you to join within the app too

#

it had no confirmation tbf

austere talon
#

opening that modal is pretty easy iirc

#

just a flux dispatch

#

but desktop only like i said

lime stone
#

is there a widget that's available not on desktop?

#

I feel like i could try recreating the dialog...

austere talon
#
return sr.Z.resolveInvite(n, "Game SDK").then((function(e) {
                    var t = e.invite
                      , n = e.code;
                    if (null == t)
                        throw new Ka.Z(M.lTL.INVALID_INVITE,"Invalid invite id: ".concat(n));
                    var o = (0,
                    eu.s0)(r)
                      , i = o.context
                      , a = o.lock;
                    return new Promise((function(e) {
                        v.Z.dispatch({
                            type: "INVITE_MODAL_OPEN",
                            invite: t,
                            code: n,
                            context: i,
                            resolve: e
                        })
                    }
                    )).then(a)
                }
                ))
austere talon
lime stone
austere talon
#

anyway findStore("InviteModalStore")

#

actually doesnt have any useful methods

quaint sapphire
#

Ig the web version does not use a modal but an entirely different app

lime stone
#

but yes

radiant reef
#

where's the console

quaint sapphire
#

Dev tools

austere talon
#

what?

austere talon
#

???

#

what load balancing

radiant reef
austere talon
#

thats the installer

jagged cloak
#

make app use it too wen shiddohwell

charred monolithBOT
charred monolithBOT
#

Discord Account

nasko222#1337

What happens when the bug or crash occurs?

I tried to inspect element something and I got logged out of my account, and needed to log back in

What is the expected behaviour?

I expected Inspect element to work fine, However it works fine after I logged back in, It also happened the first time to my friend who also used Vencord, but no longer happens now

How do you recreate this bug or crash?

  1. CTRL + SHIFT + I
  2. Inspect element on somethi...
charred monolithBOT
charred monolithBOT
#

after patching my discord client with the vencord installer, i get this error when i try to run discord :

Uncaught Exception:
Error [ERR_REQUIRE_ESM]: require() of ES Module /home/chokerman/.config/Vencord/dist/patcher.js from /opt/discord/resources/app.asar/index.js not supported.
patcher.js is treated as an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which declares all .js files in that package scope as ES modules.
Instead rename...
charred monolithBOT
austere talon
#

what

#

oh god its this guy again

charred monolithBOT
stark flint
#

why

charred monolithBOT
royal bane
#

despair

stark flint
#

why are you like this

vital flame
#

huh'

radiant reef
#

Lmao

stark flint
charred monolithBOT
radiant reef
#

NO WAY

stark flint
#

my brain had a stroke reading that omg

radiant reef
#

💀

#

OH MY GOD

stark flint
#

is he expecting to get spoonfed or something

radiant reef
#

But why does it need to fork the installer

#

😭

#

There is already a command for the powershell

#

I don't get it

quaint sapphire
#

Imagine if it is a scammer trying to token log people by installing custom vencord builds

#

For all purposes this was a joke

#

But for real many scammers upload their tools on github

#

Claiming it's for "educational" purposes

#

Like, even if it was for educational purposes, you are enabling others to scam people

#

I've seen many password stealer scripts that are for "educational" purposes

#

Like getting all the cookies and detect crypto wallets

#

Nah I did not kill these people Mr officer, I merely pulled the trigger for educational purposes.

frail skyBOT
#
Bad Patches

ShowHiddenChannels (had no effect):
ID: 14096
Match: /(?=\|\|[A-Za-z_$][\w$]*\.default\.selectVoiceChannel\(([A-Za-z_$][\w$]*)\.id\))/

ShowHiddenChannels (had no effect):
ID: 14096
Match: /(?<=\|\|[A-Za-z_$][\w$]*\.default\.selectVoiceChannel\(([A-Za-z_$][\w$]*)\.id\);!__OVERLAY__&&\()/

ShowHiddenChannels (had no effect):
ID: 695358
Match: /(?<=renderHeaderToolbar=function.+?case [A-Za-z_$][\w$]*\.[A-Za-z_$][\w$]*\.GUILD_FORUM:if\(![A-Za-z_$][\w$]*\){)(?=.+?;(.+?{channel:([A-Za-z_$][\w$]*)},"notifications"\)\)))/

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 Cannot access 'Bfe' before initialization ReferenceError: Cannot access 'Bfe' before initialization
    at Module.default (WebpackModule248059:2:50)
    at VencordWeb:12:719
    at VencordWeb:5:8750
    at [vencord.lazy.get] (VencordWeb:5:7113)
    at Er.<computed> [as get] (VencordWeb:5:7524)
    at Object.handleProtoChange (VencordWeb:33:23261)
    at CONNECTION_OPEN (WebpackModule473419:2:5858)
    at https://discord.com/assets/ad1fde4a477ddef962ae.js:9368:278
    at https://discord.com/assets/ad1fde4a477ddef962ae.js:9358:270
    at n (https://discord.com/assets/ad1fde4a477ddef962ae.js:9368:255) ```
frail skyBOT
#
Bad Patches

ShowHiddenChannels (had no effect):
ID: 14096
Match: /(?=\|\|[A-Za-z_$][\w$]*\.default\.selectVoiceChannel\(([A-Za-z_$][\w$]*)\.id\))/

ShowHiddenChannels (had no effect):
ID: 14096
Match: /(?<=\|\|[A-Za-z_$][\w$]*\.default\.selectVoiceChannel\(([A-Za-z_$][\w$]*)\.id\);!__OVERLAY__&&\()/

ShowHiddenChannels (had no effect):
ID: 695358
Match: /(?<=renderHeaderToolbar=function.+?case [A-Za-z_$][\w$]*\.[A-Za-z_$][\w$]*\.GUILD_FORUM:if\(![A-Za-z_$][\w$]*\){)(?=.+?;(.+?{channel:([A-Za-z_$][\w$]*)},"notifications"\)\)))/

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 Cannot access 'Bfe' before initialization ReferenceError: Cannot access 'Bfe' before initialization
    at Module.default (WebpackModule248059:2:50)
    at VencordWeb:12:719
    at VencordWeb:5:8750
    at [vencord.lazy.get] (VencordWeb:5:7113)
    at Er.<computed> [as get] (VencordWeb:5:7524)
    at Object.handleProtoChange (VencordWeb:33:23261)
    at CONNECTION_OPEN (WebpackModule473419:2:5858)
    at https://canary.discord.com/assets/4435b6beafe942541243.js:9369:278
    at https://canary.discord.com/assets/4435b6beafe942541243.js:9359:270
    at n (https://canary.discord.com/assets/4435b6beafe942541243.js:9369:255) ```
charred monolithBOT
tidal cloud
#

they have done the same on pretty much every server

median rapids
#

lmfao

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
#

I had two strokes trying to read that.
how is "official nvidia" a question? what does it ask?

you say that it works fine under ZorinOS, and you also say that it doesn't work fine under GNOME 4x
now I am not a detective, but I assume you did a full linux re-install when you switched to or from GNOME 4x

you can't really blame GNOME, and say that Zorin works well, if you did not use the same installation of linux
who knows what driver version you used on ZorinOS and what driver version ...

#

I did not question if you used the official drivers or not. I questioned if the package versions were exactly the same.

And even if they were, the driver could be corrupted in some way.

you sure that ain't a GPU driver issue instead?
i am pretty fucking sure it wasn't a driver issue, both drivers were the exact same. i doubt the driver got corrupted in a way that broke these select few applications in that exact same way, without changing the checksum. the only difference betwe...

#

Look, issues like this happen on windows as well, and re-installing the exact same version of windows fixes those issues. You can never be too sure of what the reason is.

You chose to blame GNOME out of anything.

because gnome was the most significant thing that's different between the 2, but sure, i can go ahead and try reinstalling fedora again, but i doubt it was corrupted in the first place.

lime stone
#

poor gnome

gentle spruce
#

honestly

#

it looks good, but that's it

lime stone
gentle spruce
#

app indicators are gone, the "official" extension adding them back is broken
weird visual bugs that don't appear on any other gnome version

  • wayland windows are sometimes blurry for no apparent reason
  • x11 title bars don't scale with the rest of the display, being mega small for me
    etc
#

with "app indicators are gone", i mean GONE

#

there is no official support for them anymore

#

they are straight up removed

lime stone
#

ah

#

app indicators are usually annoying imo

gentle spruce
#

but useful

#

i don't want to guess if toolbox is still running in the background, i want to kill it when im done

lime stone
#

why do you want it to run in the background though?

gentle spruce
#

i don't

#

that's why i need the app indicators

#

i want to close it entirely when im done

#

there is no option to not make it run in the background

lime stone
#

oh, well i think that's the issue with the software

gentle spruce
#

the app indicator it used at least let me close it entirely

#

but that broke on gnome 40

lime stone
#

usually you need app indicators if an app stays running, but apps which do that are quite annoying with app indicators too

#

but tbf without app indicators you probably have to manually kill them :p

gentle spruce
#

i dont want to bother opening the system monitor, finding that sneaky background process and killing it

#

i want to right click on the app indicator and click close

lime stone
#

toolbox?

gentle spruce
lime stone
#

ah

#

why does that stay open?

gentle spruce
#

idfk, it just runs in the background

#

i guess to allow easy access to tools but launching it takes mere seconds

#

the devs had a brainfart moment

#

but it's a genuinely nice tool, keeps the ides up to date and manages projects

#

so i enjoy using it, but keeping it running in the background is not something i want to do

lime stone
#

why do you need a launcher for ides?

#

hm

gentle spruce
lime stone
quaint sapphire
#

You are focusing on the wrong part

#

It can act as a launcher, but it's not a launcher

#

It's for managing jetbrains IDEs

#

Uninstall them, install them, update them, use preview versions etc

#

It installs them in a portable way, unlike system packages

quaint sapphire
quaint sapphire
lime stone
#

so it's like eclipse's annoying oomph thing?

quaint sapphire
#

I've never used eclipse

lime stone
#

pretty sure you have to manually update

quaint sapphire
#

Other than android studio, jetbrains IDEs don't auto update, you either run the installer for a newer version or use the toolbox

#

Yeah running the installer for a newer version is technically updating

quaint sapphire
#

I just wanted to say that it's not part of the IDE to update

gentle spruce
quaint sapphire
#

What is ur distro?

gentle spruce
#

zorin

quaint sapphire
#

Ooh