#๐Ÿ‘พ-core-development

1 messages ยท Page 135 of 1

ebon frigate
#

but vesktop plugin still cant connect

dire trench
#

the settings for this plugin ๐Ÿ’€

spark pivot
#

What plugin

dire trench
#

the show badges in chat plugin im working on

#

has a lot of sources

ebon frigate
#

but dont display the general ones

#

those would only be annoying

dire trench
#

each of those badge sources are toggleable + you can change the order of them
(enmity custom badges 1 and 2 are in the same group)

dire trench
#

(discord profile badges are not retrieved with fetch so they are not stored with usestate)

#
  • discord nitro badges
ebon frigate
#

ah thats a pain in the butt

dire trench
#

so thats 16 sources

ebon frigate
dire trench
#

i have the key for the show relationshipDB badges as "Show relationshipDB Badges"
yet it shows in the settings modal as Show relationship D B Badges

#

why are string literal keys parsed?

jagged cloak
dire trench
#

if i do showRelationshipDBBadges it doesnt show as Show relationshipDB Badges

jagged cloak
#

just use description?

dire trench
#

the setting title still shows

jagged cloak
#

then make ur title not suck

charred monolithBOT
dire trench
charred monolithBOT
junior olive
dire trench
#

i think it would be more beneficial to have a way to not have setting keys auto parsed

jagged cloak
#

add sponsors xd

umbral hedge
#

bro why did github rename the PR after i changed it to dev

#

i named it and then targeted it to dev and it fucking renamed it to sponsors lmao

junior olive
#

Do you have a useEffect that fills the state arrays @dire trench

umbral hedge
#

oh its because main is ahead of dev for some reason

junior olive
#

Turn each of those into their own hooks lol like useEnmityBadges

dire trench
#

the react docs recommend this way

jagged cloak
#

resync dev

jagged cloak
#

u have collaborator after all

dire trench
#

im react noob ngl

junior olive
#

You can make hooks

#

using existing hooks

#

they're just functions

umbral hedge
junior olive
#

so make a function named useEnmityBadges that takes a user, has a useState and a useEffect and return the useState value

dire trench
#

this what i got

junior olive
#

please separate that out into separate hooks PLEASE

dire trench
#

doesnt that just complicate it more?

#

what are the benefits of that

junior olive
#

it's way more readable lmao

jagged cloak
#

readme change in main some random prs in dev

umbral hedge
#

makes the PR diffs ugly

#

when the PR is ahead of dev trol

dire trench
#

only badge source i can think of that i dont have is reviewdb

#

but the api sucks for it

#

and u cant fetch badges for users

#

u just get the badges on the users when u fetch reviews

junior olive
#

@dire trench

function useEnmityBadges(user: User) {
  const [badges, setBadges] = useState([])
  
  useEffect(() => {
      if (settings.store.fetchEnmityBadges) maybeFetchJSON("blah blah").then(setBadges)
  }, [])
  
  return badges
}
#

sooo much more readable by seperating them out into their own hooks

dire trench
#

yeah i think that will work better

#

cuz im gonna try to do profile badges too

#

and i dont need to do the vencord ones cuz theyre already there

junior olive
#

then u just use the hook like

const enmityBadges = useEnmityBadges(user)
junior olive
dire trench
#

but better

#

cuz they show in chat and ive added more sources

#

and im not relying on the api that global badges uses

#

im getting the badges from their official sources

junior olive
#

o and theres no longer a vencord plugin

dire trench
#

also the api for global badges has a ratelimit of 20 requests per 15 minutes ๐Ÿ’€

junior olive
dire trench
junior olive
#

huh i thought it used to get official sources

#

welp

nimble plaza
#

are we talking about the wolfie or domi plugin

dire trench
#

wolfie

nimble plaza
#

bc domi gets from official sources

dire trench
#

domi uses his own gh repo which he manually updates

nimble plaza
#

thats manual?

#

i dont think so

dire trench
#

maybe with a script

nimble plaza
#

OH EW

#

okay yeah

dire trench
#

the one problem with this

#

is that it spams the console with 404 errors

nimble plaza
#

what part of it does

dire trench
#

the only way arround that is to use a service worker to intercept the fetch

#

and change the response status

#

so u just gotta hide network in devtools console

junior olive
#

hear me out: there's these magical things called cloudflare workers

dire trench
#

cuz im fetching badges like this: https://raw.githubusercontent.com/Aliucord/badges/main/users/${author.id}.json

junior olive
#

make a worker that handles getting badges from all sorts of sources and boom

#

bro why does every mod and like 5 plugins have badges

#

mods i get

#

but seriously reviewdb, usrpfp do not need their own?? ๐Ÿ˜ญ

dire trench
#

the fetch implementation sucks

junior olive
#

??

dire trench
#

the .catch chained onto fetch is not called if the fetch 404s

junior olive
#

well no

dire trench
#

there is no way to handle the 404

junior olive
#

yes there is lol

dire trench
#

and ur just stuck with console spam

junior olive
#

no

#

ur wrong

dire trench
#

yeah with service workers

junior olive
#

it not catching is fine because the request did succeed

#

it just got a not found response

#

just check if req.ok

#

in the .then

dire trench
#

there should be a way to catch the 404 tho

junior olive
#

ok then make a small wrapper around it that does that lol

#

it's not like it's not possible

dire trench
#

nah i dont even think you can wrap it in a try catch

junior olive
#

...

dire trench
#

am i stupid

nimble plaza
#

.then(i=>if(!i.ok) throw)

junior olive
#

literally

dire trench
#

nah try it

#

i swear i went through everything on stackoverflow mentioning it

#

and everyone says its impossible

#

without service workers

junior olive
#

bro

nimble plaza
grave mangoBOT
junior olive
#

not quite the same but u get the idea

dire trench
#

is that for any url?

nimble plaza
#

yes

junior olive
#

obviously remove the authorization stuff (specific to decor) but yes

nimble plaza
dire trench
#

i still get 404s

nimble plaza
#
fetch("https://api.shig.gy/asijdiuashdo").then(i=>{if(!i.okay) throw "not ok";return i}).then(console.log).catch(e=>console.log("error",e))```
#

you cant suppress those

junior olive
#

@nimble plaza hop on fn

nimble plaza
#

im on laptop trolley

junior olive
nimble plaza
#

also i had to disable it because we were fucking with genai last night and someone tought it to say "hop on fn"

dire trench
nimble plaza
dire trench
#

maybe not

junior olive
dire trench
#

i still get 404s

nimble plaza
#

you cant suppress them

dire trench
#

i tried with a nonexistant github url

nimble plaza
#

you can catch it

#

but it still logs

dire trench
#

in my plugin there are 8 sources where a 404 is expected
and it fetches those 8 for each message loaded

#

it so much spam that it causes lag

nimble plaza
#

you cant suppress the logs

#

idk how else to phrase it

dire trench
#

yeah ik

#

thankfully there is this

dire trench
nimble plaza
#

vee isnt gonna accept a service worker for that

dire trench
#

but idk about implementing that in a vencord plugin

#

or if i even can

nimble plaza
#

and you cant register a service worker in a userplugin

#

also yea idk if electron supports service workers

dire trench
#

the other solution for this specific case is to load the list of files in each of the badge repositories using the github api

#

and cache them

#

but a lot of those are in the MB size range

nimble plaza
#

what apis are meant to return 404

dire trench
#

and the github api has a strict rate limit without authorization

dire trench
#
`https://wedlock.exhq.dev/v2/marriage?userid=${author.id}`

`https://adu.shiggy.fun/v1/${spouseID}.json`

`https://raw.githubusercontent.com/WolfPlugs/BadgeVault/main/User/${author.id}.json`

`https://raw.githubusercontent.com/Aliucord/badges/main/users/${author.id}.json`

`https://raw.githubusercontent.com/enmity-mod/badges/main/${author.id}.json`

`https://raw.githubusercontent.com/enmity-mod/badges/main/data/${author.id}.json`

`https://raw.githubusercontent.com/enmity-mod/badges/main/data/${author.id}-2.json`

`https://replugged.dev/api/v1/users/${author.id}`
nimble plaza
#

@rare shale is relationshipdb hosted on shig.co or your personal

dire trench
#

the enmity custom badge ones i could suppress by checking if the user has custom badges on the main/userid.json file

nimble plaza
#

GUH

dire trench
#

i gtg to class

rare shale
nimble plaza
#

like

#

when you get a 404, mark the userid as not having those badges

#

so it doesnt spam requests

charred monolithBOT
shadow vault
#

I have no idea if anybody cares or if this is the right channel lol, but I made a very basic aur package for the cli installer for vencord. Ideally this would be automated but I just wanted to slap something together and publish it. If you want to beat me to figuring out how to automate this and pull request it to the vencord installer repo, please do that would be very nice, also let me know about it so I can give you this aur listing or something, but until then here y'all go:

https://github.com/NullCub3/aur-vencord-installer-bin
https://aur.archlinux.org/packages/vencord-installer-cli-bin

dusky sonnet
#

is there something like insertTextIntoChatInputBox that can replace all text in the textbox or something that can clear it out?

verbal pumice
dusky sonnet
#

was hoping i wouldnt have to lol

verbal pumice
#

oop

#

wrong find

dire trench
dusky sonnet
#

i wonder what happens if you delete the nodes that store the text....

dire trench
verbal pumice
dusky sonnet
#

:)))

#

i wonder if theres a way to access the slate api...

charred monolithBOT
dusky sonnet
#

doesnt even work -_-

#

which is probably a good thing

crude raptor
jagged cloak
#

horror

#

silliest thing we've had since reviewdb

elder garnet
#

@rare shale your name is being slandered, defend yourself

charred monolithBOT
#

Why? they will be needed to view them at all eventually.

Sorry, why is that? Removing the tracking parameters currently doesn't have any effect on the media linked.

In the future they will be required. Not sure if this matters in client and the client will just refresh all cdn links, but I don't see the point of removing them at this point

Just asking out of interest, how are you certain they will be required?

#

Why? they will be needed to view them at all eventually.

Sorry, why is that? Removing the tracking parameters currently doesn't have any effect on the media linked.

In the future they will be required. Not sure if this matters in client and the client will just refresh all cdn links, but I don't see the point of removing them at this point

Just asking out of interest, how are you certain they will be required?

They will be used to auth...

mortal fractal
olive aurora
#

stop doing nix

#

wheres tesser

dapper crest
#

Nix is bad?

#

I was going to use it next time I reformatted

nimble plaza
olive aurora
#

nix is insane

umbral hedge
#

i kinda wanna port quicksearch to discord desktop

#

hmm

limber skiff
#

what's quick search?

mortal fractal
# dapper crest Nix is bad?

bad is subjective
a headache if you're not willing to help yourself through shit and expect other developers to support you

#

imo nixos is only good for servers

austere talon
#

nix is inherently bad simply because its users are annoying

#

nix users are even more unbearable than arch users

frail skyBOT
#
Bad Patches

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/

PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/

NoTrack (found no module):
ID: -
Match: window.DiscordSentry=

Experiments (found no module):
ID: -
Match: ("showNewSearch")

Bad Starts

None

Discord Errors

None

#
Bad Patches

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/

PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/

NoTrack (found no module):
ID: -
Match: window.DiscordSentry=

Experiments (found no module):
ID: -
Match: ("showNewSearch")

Bad Starts

None

Discord Errors

None

charred monolithBOT
dire trench
#

gonna add those badges too

#

im at 818 lines rn ๐Ÿ’€

austere talon
#

what in the world are you doing

dire trench
#

badges

austere talon
#

global badges has been prd before and rejected

#

your plugin will have the same fate

dire trench
#

why rejected

austere talon
#

the point of vencord badges is to point out vencord contributors and donors. displaying badges from other mods is really silly and goes against the point

dire trench
#

im pretty sure every other client mod has a global badges like plugin

#

and they display vencord badges

austere talon
#

ok

dire trench
#

if the users want it i dont see why not

#

i can still third party release it tho right?

austere talon
#

yes

charred monolithBOT
mortal fractal
golden gulch
#

I haven't had time to work on it in ages and there are other plugins that take care of the most used feature now (keyword notifications)

mortal fractal
#

understandable

olive aurora
#

i should probably pr my plugin to bypass dnd for specific people

mortal fractal
golden gulch
#

maybe i'll revisit it later to add the different notification options (like some users being able to bypass DND) but maybe later

olive aurora
golden gulch
#

yeah it's really easy now

#

pre-vencord regex patches I had to rewrite the whole notification logic function

#

it was like one big 1000 character boolean logic statement

#

it was terrible

bold sonnet
#

VENCORD NOT OPENNING

olive aurora
spark pivot
#

someone give this person needy for support

charred monolithBOT
subtle harness
charred monolithBOT
turbid hatch
charred monolithBOT
charred monolithBOT
tame escarp
verbal pumice
#

most comprehensible github issue

tame escarp
#

I think the native client for linux sucks because of electron not being able to utilize hardware acceleration?
it does use hardware acceleration
I don't know Electron all too well
i can tell
but maybe, since this project uses Gluon
it does not
there might be other ways of solving this issue?
i'm thinking there isnt even an issue considering the accuracy of the rest of the paragraph

topaz thistle
glass cedar
#

I've been using it for weeks, best distro I've ever used

charred monolithBOT
austere talon
#

big if true

charred monolithBOT
charred monolithBOT
#

I am trying to install vencord on ubuntu, I have discord installed using the .deb package from their website. I use 2 users on ubuntu, and when I try to access discord from the one that I didn't use when installing vencord (User B), it doesn't open, as the configuration files are stored in the home directory of User A. The installer shows the directory at the top, and says if I wish to change it, I need to change the VENCORD_USER_DATA_DIR variable, how do I do this? I have looked inside the ....

charred monolithBOT
fresh cloak
#

ah man, this is so braindead

#

found where keybinds are stored, found how to get which button is assigned to it

#

uiohook has its completely separate keycode numbering system though

#

if only that was ever standardized clueless

#

the up arrow is like in the 5ks apparently

charred monolithBOT
#

Are you sure that's really what fixes it? I've tried streaming things that don't require me to have the game focused (Beat Saber in particular) and the verdict was pretty clear - the framerate started dropping when there was a lot of movement on screen, but it would go back to relatively normal when there was not much happening. Tabbing back to Discord means you're not doing anything on the screen, which would improve bitrates. It seems to me like the upload is somehow getting throttled.

#

Are you sure that's really what fixes it? I've tried streaming things that don't require me to have the game focused (Beat Saber in particular) and the verdict was pretty clear - the framerate started dropping when there was a lot of movement on screen, but it would go back to relatively normal when there was not much happening. Tabbing back to Discord means you're not doing anything on the screen, which would improve bitrates. It seems to me like the upload is somehow getting throttled.
...

charred monolithBOT
limber skiff
#

wtf

charred monolithBOT
limber skiff
#

okay there we go

austere talon
#

horror

charred monolithBOT
#
Stable 244133 (351234d)
Vencord 86e9434 (Vesktop V0.4.3)
Electron 27.0.2
Chromium 118.0.5993.89
Windows 10 64-Bit

Here's a video I recorded after uninstalling, deleting all vencord-related folders from %appdata% and %localappdata% and installing. Didn't touch any settings after logging in.

It says the video has been archived. Can you upload it to youtube instead?

fresh cloak
charred monolithBOT
limber skiff
#

now we can remove it

charred monolithBOT
limber skiff
#

they arent using showNewSearch anywhere but the experiment definition

#

and I tested and search works

lime stone
#

meow :3

fresh cloak
#

nya

limber skiff
#

@dawn coyote

#

oh

#

sorry

#

lmao why are you hardcoded as message tags response author

austere talon
limber skiff
#

ยฏ_(ใƒ„)_/ยฏ

charred monolithBOT
#

When trying to install pnpm modules in vesktop, I receive this error:

$ pnpm i

Lockfile is up to date, resolution step is skipped
Packages: +560
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 0, reused 539, downloaded 0, added 560, done
node_modules/esbuild: Running postinstall script, failed in 40ms
node_modules/esbuild postinstall$ node install.js
โ”‚ node:internal/erro...
charred monolithBOT
junior olive
charred monolithBOT
junior olive
#

it's called vendetta because ven owns it

nimble plaza
#

whos this "maisy" fellow

charred monolithBOT
full sorrel
#

lol

nimble plaza
#

LMAO

full sorrel
#

Aint no way

topaz thistle
#

lol

charred monolithBOT
full sorrel
#

the account is 1 day old

#

might just be a troll

jagged cloak
#

lmao

#

average github conversation

shy veldt
#

how about bro bumps into some bitches ๐Ÿ˜ญ

void echo
shy veldt
crude raptor
#

mmmh pizza

void echo
#

::after only gets you so far

void echo
void echo
#

add to quickcss to mine data

shy veldt
full sorrel
charred monolithBOT
charred monolithBOT
#

Content

Making this plugin would help when writing long messages

  • Would start off displaying 2000 limit, even with Nitro, unless disabled

  • Would switch to 4000 once message is over 2000 if subscription is active, or unless previous setting is disabled, in which case, it will always display 4000 when subscription is active

  • Options to display; characters typed, characters remaining, both at once

**Could work the BD one
https://betterdiscord.app/plugin/Cha...

charred monolithBOT
void echo
#

wild

full sorrel
#

it's the same clown

little wing
# full sorrel

they created a whole ass new account to do that ๐Ÿ˜ญ

spark pivot
#

BAHAHA

#

Curious what the reason will be this time

charred monolithBOT
void echo
#

@spark pivot i tried making this the other day but i couldnt figure out the patch for the messagebox

spark pivot
#

L

charred monolithBOT
livid heath
#

added a new feature to packmanager

charred monolithBOT
full sorrel
olive aurora
#

adryd jumpscare

jagged cloak
#

love

#

idk i typed it from memory

#

ok it is

austere talon
#

wits

frail skyBOT
#
Bad Patches

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/

PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/

NoTrack (found no module):
ID: -
Match: window.DiscordSentry=

Experiments (found no module):
ID: -
Match: ("showNewSearch")

Bad Starts

None

Discord Errors

None

#
Bad Patches

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/

PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/

NoTrack (found no module):
ID: -
Match: window.DiscordSentry=

Experiments (found no module):
ID: -
Match: ("showNewSearch")

Bad Starts

None

Discord Errors

None

woeful sable
#

yall should make a plugin that makes heic pictures and mov videos display on pc instead of showing up as files

junior olive
jagged cloak
#

yea

#

the way my site still redirects to we arej ammin

charred monolithBOT
dire trench
austere talon
#

nop

dire trench
#

yes

charred monolithBOT
elder garnet
charred monolithBOT
dire trench
#

js really needs map literals

charred monolithBOT
jagged cloak
charred monolithBOT
charred monolithBOT
charred monolithBOT
#

Description

Program stuck in the loading phase (before full size window is created)

Attempts to Fix (in order)

Update, Restart Computer, Uninstall, Clear yay Cache, Reinstall, Restart Computer

Specs

Software Information:

  • Firmware Version: 1.25.0
  • OS Name: Arch Linux
  • OS Build: rolling
  • OS Type: 64-bit
  • **GNO...
#

tray icon doesn't appear, here is the console log tho:

(node:1459) UnhandledPromiseRejectionWarning: ReferenceError: f is not defined
    at Object.<anonymous> (/home/hacktheegg/.config/VencordDesktop/VencordDesktop/vencordDist/vencordDesktopMain.js:12:5187)
    at Module._compile (node:internal/modules/cjs/loader:1271:14)
    at Object..js (node:internal/modules/cjs/loader:1326:10)
    at Module.load (node:internal/modules/cjs/loader...
#

--trace-warnings results in the following:

(node:2098) UnhandledPromiseRejectionWarning: ReferenceError: f is not defined
    at Object.<anonymous> (/home/hacktheegg/.config/VencordDesktop/VencordDesktop/vencordDist/vencordDesktopMain.js:12:5187)
    at Module._compile (node:internal/modules/cjs/loader:1271:14)
    at Object..js (node:internal/modules/cjs/loader:1326:10)
    at Module.load (node:internal/modules/cjs/l...
charred monolithBOT
charred monolithBOT
nimble plaza
#

i did a thing :D

#

it breaks if u go over 200 chars tho :(

elder garnet
#

why?

nimble plaza
#

fixed

#

forgot to remove counting logic

charred monolithBOT
nimble plaza
#

@torn knot if i give u a plugin can u do ur css wizardry to make this stay above the chat bar

#

if the message is more than one line its fucked

elder garnet
#

you can probably make the position relative to the messagebar

nimble plaza
#

yea thats what i need

elder garnet
#

position: relative

#

I think it'll move with it then

nimble plaza
#

nop

elder garnet
#

F

nimble plaza
#

top is the chat box

elder garnet
#

where the fuck is your counter

nimble plaza
#

bottom is what i need

#

?

elder garnet
#

oh place it inside the messagebar probably works

nimble plaza
#

wait i did it

nimble plaza
elder garnet
#

oh are you just making it always display?

nimble plaza
#

:D

nimble plaza
elder garnet
#

smart luna

nimble plaza
#

made it always display and count up instead of down from 2000

nimble plaza
elder garnet
#

now add an option to lock it at the bottom of the messagebar

#

position absolute;
top:unset;
left:unset;
right:0px;
bottom:0px

nimble plaza
#

@austere talon does setting.onChange fire only when the plugins enabled or whenever its changed, even if plugins off

charred monolithBOT
elder garnet
#

and since you'll read this anyways, clanwar

nimble plaza
#

?

charred monolithBOT
nimble plaza
#

this is why i wanted it to float

#

but it locks atleast

#

thats good

elder garnet
#

oh I forgor the emoji lol

elder garnet
#

I feel like below the chatbar could be a little ugly

little wing
#

does it change color when there's too much type

elder garnet
#

I GOT AN IDEA

#

color-mix and you can put in custom colours for every 20%

#

so it gradually transitions

nimble plaza
#

i dont think i can

#

ill try

little wing
elder garnet
#

I could make the CSS to get the transition

little wing
#

make it also play a very loud siren when too close to 2000 ๐Ÿ‘

#

bombs start dropping on your screen and whatnot

elder garnet
#

and make sure to integrate nitros longer limit

little wing
#

true

nimble plaza
elder garnet
#

actually, all you'd need for CSS is probably just a percentage variable that gets updated

#

lmao

#

thank me later

nimble plaza
#

there we go

#

:D

elder garnet
#

limit the width for typing indicators when it's at the bottom

nimble plaza
#

wym

elder garnet
#

max-width

nimble plaza
#

i think im just gonna have it float

#

itd be annoying to correctly do locking at bottom

elder garnet
nimble plaza
nimble plaza
elder garnet
#

max-width on the typing indicator

nimble plaza
#

that was just bc i had devtools open n it was squished

elder garnet
#

.element (forgor the typing indicator class) {
max-width 90%
}

nimble plaza
#

but yea it should do nitro limit just fine

#

i took the limit from here

nimble plaza
#

oh ew

#

how would i do that then

austere talon
#

i think

nimble plaza
austere talon
#

test it lol

elder garnet
#

it'll never interfere ever

void echo
#

ven could you review replypingcontrol when you get the chance its pretty small

nimble plaza
verbal pumice
#

Vencord.Plugins.isPluginEnabled("balls"):

nimble plaza
#

tysm

#

hey vee can i add blacklistedUsers: BigInt[] to definePlugin so certian ppl cant use it

#

someone was annoying about charcount yesterday and im petty :3

nimble plaza
#

I WILL

nimble plaza
#

/silly

lime stone
#

i will ban mantikafasi from using any of my plugins

nimble plaza
#

real

lime stone
#

and jason

#

:jasonzoom:

nimble plaza
#

jason ?

lime stone
#

jason citron

fresh cloak
#

apparently i can't just send mouse button events to the browser window for additional mouse buttons

#

like the ones for page forward/backwards

#

which makes no sense to me, since the browser can clearly understand these mouse buttons

nimble plaza
#

try mapping those to an unused keyboard key

#

like the calculator button or smt

fresh cloak
#

that might be a way to cheat the system, yeah

#

otherwise i'd literally have to hijack discord's entire keybind system and i'm not in the mood for that

nimble plaza
#

send code

#

i might be able to

fresh cloak
#

wdym

nimble plaza
#

like

#

how are you sending events to the client

fresh cloak
#

ohh right literally just

#
BrowserWindow.getAllWindows()[0].webContents.sendInputEvent({
               type: "keyUp",
               keyCode: UioHookKey[e.keycode]
           });
#

i could manually invoke the events of discord's keybinds, i did figure out how to get them

#

the issue here being i can't access webpack from where i have to set-up the global key listener

nimble plaza
fresh cloak
#

yeah it complains about that not existing

nimble plaza
#

how are you using it

fresh cloak
#

the context here is i'm doing this for Vesktop

nimble plaza
#

ohh its in renderer code?

fresh cloak
#

No in the renderer code we can happily access webpack

nimble plaza
#

bleh i meant like

fresh cloak
#

but i can't start the key listener from renderer

nimble plaza
#

electron side

fresh cloak
#

so yes this is electron side

#

and there i can't access webpack

nimble plaza
#

window.webContents.evaluateJavascript("Vencord.Webpack blablabla")

#

look at screenshare code

fresh cloak
#

yes but can i get the return value from that?

nimble plaza
#

it shows how to use it

nimble plaza
fresh cloak
#

can i grab one of discord's stores from that?

#

yeah exactly, i'd have to set up IPC for this

nimble plaza
#

here send a repo and ill do it

fresh cloak
#

it would be a lot nicer to keep letting discord handle keybinds and just sending them off to the window

nimble plaza
#

isnt that what youre doing?

fresh cloak
#

yes

nimble plaza
#

i mean like

#

use ipc to send an event to renderer

#

and have a plugin listen for that and dispatch the event

fresh cloak
#

what no

#

i'm already successfully dispatching events

nimble plaza
#

but it doesnt want mouse events

#

this would fix it

fresh cloak
#

no it does

#

what i'm telling you is

#

mouseDown does not support additional mouse buttons

#

so i have to work around that

nimble plaza
fresh cloak
#

it only supports these 3.

charred monolithBOT
nimble plaza
#
webcontents.executeJavascript('document,dispatchEvent(new MouseEvent("down",{"button": 3}))')```
austere talon
#

you can just add your own ipc method

fresh cloak
#

i might need to anyways to grab keybinds that should be global

fresh cloak
#

i know i can

#

but the less hassle the better

fresh cloak
# nimble plaza

and of course these are entirely different from the codes the key listener has

#

the fucking keys are different too

#

i have to convert them to uppercase text and get the charcode from that to be consistent with js keys

#

it really does not want to use it though

nimble plaza
#

you need to push the event directly into discord's handler

#

dont send it to the window

charred monolithBOT
fresh cloak
nimble plaza
fresh cloak
#

alright now i gotta find discord's key handler then

#

i might honestly just do IPC and manually invoke the events at this point

nimble plaza
#

485328

fresh cloak
#

No, i mean directly invoke the keybind action.

fresh cloak
# nimble plaza 485328

Would still need a way to register the mouse button keybind though so discords key input it is

charred monolithBOT
umbral hedge
#

so if anyone wants to pick up the UI side lmk

austere talon
#

what it do

charred monolithBOT
livid heath
#

is there a function to parse mentions out of a given string blobcatcozy

austere talon
#

regex

livid heath
#

i will end up matching stuff in codeblocks

#

can i take stuff out of discord's markdown renderer :thonk:

#

@austere talon can i add this to utils or do i keep it local to plugin

verbal pumice
#

its already in common as Parser

livid heath
#

oh

#

my bad

charred monolithBOT
austere talon
#

@topaz thistle ^

charred monolithBOT
#

I am working on this. iohook is old and unmaintained. I am using uiohook-naapi to do this. it also uses libuiohook, and it seems wayland support is in the works. Nothing you can do but wait until libuiohook updates for that, but i'll go ahead and keep using it.

Why not use the xdg-desktop-shortcuts? It's way more clean & portable imo (no low level hooking and such)

olive aurora
#

vencordctl cli when

austere talon
#

vencordinstaller cli

livid heath
olive aurora
#

no

#

i mean a cli for doing the keybind actions

#

so you can just do that on ur wm/de

austere talon
#

horror

livid heath
#

guh is there any way to make this not @deleted-role

austere talon
#

yes

#

you need to pass context as third arg

#

the desired guild, channel etc

livid heath
#

i tried {roles:{id:name}}, {id:name} none worked

austere talon
#

cause that's just wrong

#

ctrl shift f for parseToAST and you'll find how discord calls it

livid heath
#

well i dont know the correct format agonyagony

olive aurora
#

the correct format is /<@(\d+)>/.exec(msg)

livid heath
olive aurora
#

why is it unreliable

livid heath
#

parseToAST handles that

olive aurora
#

msg.mentions probably has what you need

livid heath
#

nop

#

i am doing this before sending

olive aurora
#

m

livid heath
#

please tell me it is not necessary to add proper typings
i'll explode if i have to type the ast

olive aurora
#

do not

livid heath
#

thanks

mortal fractal
#

dont even dare touch it

livid heath
charred monolithBOT
olive aurora
#

๐Ÿ˜ญ

uncut glen
#

๐Ÿ˜ญ

charred monolithBOT
olive aurora
#

insane

patent flint
#

w

livid heath
#

LMAO

charred monolithBOT
void echo
jagged cloak
#

yeah

void echo
#

i get a lot of x posts from friends on here n having to click it is a nightmate

#

same for tiktok actually

#

do yk an equivalent for tt?

jagged cloak
#

not in vencord

void echo
#

i mean just generally

#

a link fix for tiktok

#

cz it makes a fake embed

#

by default

jagged cloak
#

i use tiktxk for tiktok theres probably others

void echo
#

yea that works well

#

do u think replacing it in other ppls messages is a bit privacy invasive

#

or is it alr

dusky sonnet
olive aurora
#

or switch to ur cameras manual mode ๐Ÿ˜ญ

#

insane tutorial

dusty finch
kind sable
#

Hello,
I'm new here, wondering : is there a way to know if somebody is working on a plugin, outside of the plugin ending up in #1032200195582197831 ?

I have a silly idea and i'd like to know if someone somewhere has said that they're working on implementing it.

Bonus question, if nobody's working on it, where can i find people with free time and extensive knowledge of the codebase to whisper in into their ears ?

void echo
keen iron
#

heeeeeeey, is there a plugin or another way to enable middle mouse click scroll on linux?

jagged cloak
#

lmao true

#

most prs can be added as userplugins

#

so whether they get added or not you can have them if youre okay with building vc

charred monolithBOT
void echo
#

how could i replace an embed (or lack of embed) with one from a url of my choice via a plugin

#

its kinda

#

confusing me

jagged cloak
#

most likely patching renderEmbeds

kind sable
# dire trench what is ur plugin idea

having message being auto-edited upon clicking certain parts of them using templates.
Basically bringing github tickable lists to discord, and much more.

(I'd be happy with just lists but a configurable design would obviously be cooler)

jagged cloak
#

if it breaks blame vap

#

then you can just push to the embeds array i believe

void echo
#

oh!!

#

yay

jagged cloak
charred monolithBOT
void echo
#

client side changed the URLS

#

n i forgot embeds dont work lik that

jagged cloak
#

bro ๐Ÿ˜ญ

tulip garnet
keen iron
verbal pawn
#

hey this is probably not the spot to ask but i was curious about how hard it would be to code a quick plugin that grabs a person's role color and replaces the color of their text in chats with it? I was digging around and found there was an old betterdiscord plugin that was able to do that but I'm sure transferring code would be a total pain between plugin formats. or maybe even that it's been done before and I'm just crazy.

full sorrel
charred monolithBOT
frail skyBOT
#
Bad Patches

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/

PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/

NoTrack (found no module):
ID: -
Match: window.DiscordSentry=

Experiments (found no module):
ID: -
Match: ("showNewSearch")

Bad Starts

None

Discord Errors

None

#
Bad Patches

IgnoreActivities (had no effect):
ID: 52028
Match: /LISTENING.+?}\),(?<=(\i)\.push.+?)/

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/

ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/

PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/

NoTrack (found no module):
ID: -
Match: window.DiscordSentry=

Experiments (found no module):
ID: -
Match: ("showNewSearch")

Bad Starts

None

Discord Errors

None

charred monolithBOT
dire trench
# verbal pawn hey this is probably not the spot to ask but i was curious about how hard it wou...
let l="[id^=chat-messages]";let d="[id^=message-content-]";let f=()=>document.querySelectorAll(l+" [class*=username_]").forEach(e=>{if(!e.parentNode.id.startsWith("message-reply-context-")){let p=e.parentNode.parentNode.parentNode;p.querySelector(d).style.color=e.style.color;let c=p.parentNode.parentNode;while(c){c=c.parentNode?.querySelector("#"+c.id+"+"+l+":not(:has([class*=username_]))");((c?.querySelector(d)??{}).style??{}).color=e.style.color;}}else((e.parentNode.querySelector(d)??{}).style??{}).color=e.style.color});f();new MutationObserver(f).observe(document,{subtree:true,childList:true})
verbal pawn
#

ah, perfect thank you

dire trench
#

is kinda laggy tho (if u got dev tools open)

#

could fix it tho

olive aurora
#

rolecoloreverywhere:

dire trench
#

does it do that?

olive aurora
#

its an option

verbal pawn
#

rolecoloreverywhere didn't have that when i checked

#

or am i just stupid

dire trench
#

i just checked

#

didnt see any option

#

i have everything in that plugin enabled

olive aurora
#

oh it doesnt

#

who was it i saw with this

verbal pawn
#

the betterdiscord plugin did

#

but that was ages ago

#

if an existing one is out there that would be so much easier

#

or like, is the rolecoloreverywhere dev here and can see this happening?

#

if so that would be real swell to add :B

shadow mango
#

how to mod activities

#

i want to make adless watch together

austere talon
#

look at FixSpotifyEmbeds

tidal cloud
#

some pr(s) already do this

#

ok well there's one pr that does desktop native code

charred monolithBOT
inland fable
#

vendetta's rolecoloreverywhere does have it as an option

shadow mango
#

i am trying

tidal cloud
#

well I swear there were multiple but could've been closed I guess

#

so many prs ars stale too

charred monolithBOT
tidal cloud
#

they should be closed

austere talon
#

can't u just change the frame url

#

with electron api

shadow mango
#

well

#

i have to access the activity iframe and execute javascript in there to change the embed url to youtube-nocookie

#

which is in the function createEmbedURL

#

but for that i need the modules through the webpackjsonp thing

crude raptor
#

fucking despise that shit

fresh cloak
#

Same lol

#

Ads are horrendous in watch together here

crude raptor
#

i used watch together earlier
got an ad to start the video- then one literally less than 2 minutes into the video

fresh cloak
#

It's so annoying lol especially cause it's different for everyone

crude raptor
#

plus the despicable job it does where ad- YEAH THEY'RE NOT SYNCHRONIZED

fresh cloak
#

So you'll casually miss 15-20 seconds of the video while others are watching

#

Have to rewind

#

So bad

crude raptor
#

SO WHENEVER ANYONE HAS AN AD YOU HAVE GO PAUSE AND SLIGHTLY BACKTRACK

#

grah

fresh cloak
#

No you can't even pause

#

It'll pause their ad last time we tried

crude raptor
#

i dont think so but i would be utterly unsurpassed

#

unsurprised*

fresh cloak
#

It definitely happened to us once

#

Maybe a bug, still unacceptable

crude raptor
#

anyway merge this pull request immediately โ˜๏ธ๐Ÿค“

charred monolithBOT
olive aurora
#

the pr is kinda hacky

#

just throwing adguard in from inside a string

crude raptor
#

i mean its an optional plugin i think the hack would be worth the time saved without ads

olive aurora
crude raptor
#

(totally not just super hating ads)

fresh cloak
#

Well, that other person is trying a nicer approach

#

Better than literally throwing adguard in

crude raptor
#

tell them to hurry up !! /s

fresh cloak
#

Lol

crude raptor
#

i want it in my client by next Wednesday /j

misty raptor
#

lmaoo

olive aurora
#

if you really want it just add userplugin

#

theres a file outside of plugins but its rarely touched so it should be fine being uncomitted on ur clone

misty raptor
#

vencord try to be efficient with prs challenge

olive aurora
#

how about you do something about it urself

#

review prs

misty raptor
#

icant be the one to make yellow go green

#

for anyone else

junior olive
#

i've seen ant0n and mrdiamonddog both reviewing other prs

#

im not here to argue just saying that

austere talon
olive aurora
#

now we force vee to give me write access

austere talon
junior olive
#

this is irrelevant but i wonder how many fix prs there were for the rspacking

austere talon
misty raptor
#

i dont have uhhh access

austere talon
#

you don't need access

#

you can still give constructive criticism on prs

misty raptor
#

that doesnt rly fix either of the two problems you mentioned though

#

i believe (and this is just my belief) it would be a little more efficient if there was a small team of code reviewers that would approve the code quality / check for bugs or malicious, and then you can just greenlight the plugin concept and interface, and then things are more super great awesome

austere talon
#

people keep saying that but do you think i can just summon people out of thin air

#

if you want to help out (and are competent to do so), there's nothing stopping you from doing so

#

otherwise stop suggesting that cause it's pointless

misty raptor
#

there are clearly smart and competent devs who are invested in the project

austere talon
#

they are more than welcome to help out in any way they like

misty raptor
#

if one of said smart devs who was a longtime member messaged you and was like "hey i reviewed all the code for this plugin and everything looks solid, what do you think of the concept?" and you said you liked it

#

would you merge or would you have to manually double check all the code yourself

austere talon
#

depends

misty raptor
#

if they are allowed to just do the code review for you and ask for only your approval of the concept, do they know they are allowed to?

austere talon
#

why are you even asking all this

misty raptor
#

idk i am curious about inner workings of projects

misty raptor
#

as someone who also has ownership in a plugin-based system for a diff platform

#

interesting hearing ppls different approaches to the same general concept

fresh cloak
#

for our modding community we have trusted members which do code review, and then a few who can publish them

#

yet it can still take us several weeks to publish mods

misty raptor
#

so there is more than 1 person who can do the code review required for a merge

fresh cloak
#

a good amount of people can review, however approval and publishing is still essentially handled through one person.

#

my point is, anyone can give constructive criticism on a PR, however that won't mean things magically move faster

#

when you own a project, of course you want to double check what you're merging

#

For our mod loader itself, we are a small team which all have write access, however nobody merges to main before a discussion with everyone

misty raptor
fresh cloak
#

that's all well and good until you get too secure in that, and someone gets you to merge a dookie

#

and the way to prevent burnout with this, is exactly what vee is doing

#

unless it's critical, they don't have to check and merge it immediately

misty raptor
#

require at least 2 maintainers to sign off if you get too worried

fresh cloak
#

you can always build PRs you like yourself

#

until they get merged

misty raptor
#

if i was in such a position though

#

i dont think i would be any less susceptible to merging something that accidentally has some weird bug thing in it

#

compared to anyone else

fresh cloak
#

this isn't exactly about bugs

misty raptor
#

malicious?

fresh cloak
#

mostly

#

the way Vencord is designed is inherently more secure than all the other discord mods

#

plugins have to go through the owner

#

scrutinized by the public through PRs

misty raptor
#

if the maintainers have worked with the codebase for long enough, i don't see how they could be more susceptible to missing malicious code than the owner

fresh cloak
#

it's a good system, and if vee just trusted people without reviewing anything, eventually we're gonna have a BetterDiscord situation where someone manages to hide a token logger

misty raptor
#

well obv dont just trust random people

#

but yall have an appointed team i assume right

fresh cloak
#

that's the thing, it's never random people that sneak that stuff in

#

it's people you trust clueless

misty raptor
#

wouldnt that just be undone by the whole "scrutinized by the public" thing

fresh cloak
misty raptor
#

theres too many competent devs here reviewing prs for even a trusted person to pull a fast one

fresh cloak
#

you'd be surprised.

misty raptor
fresh cloak
#

our modding community had actual attack vectors there, because we trusted some of the devs enough

#

now, nothing ever happened

#

we had mods which included auto updaters, or fetched things from a remote server

#

auto updaters aren't exactly applicable to vencord

misty raptor
#

dont allow that

fresh cloak
#

but it's entirely possible that eventually you trust one dev enough to do this out of some necessity

olive aurora
#

vencord does have an autoupdater

#

not on by default though

#

but i imagine tons of people use it

fresh cloak
#

well, yes, but that's again, going through ven themselves

#

if they go rogue then the project is doomed either way

olive aurora
#

oh you mean each mod updated itself

misty raptor
#

at the very least

fresh cloak
#

yes, or something along those lines

misty raptor
#

if we are going paranoid mode

#

one other person with such code review perms

fresh cloak
#

anything that could have to fetch from a remote server

misty raptor
#

just one

#

have an alternating system

fresh cloak
#

Noah has write access i think

#

at the very least, for vesktop

misty raptor
#

one week ven does stuff one week the other person does stuff, create something constant where there arent any breaks so business runs smooth as usual

olive aurora
#

he works on the C++ stuff though

fresh cloak
#

mhm he's insanely good at what he does

#

i was shocked when he told me he made soundux dogkek

olive aurora
#

i think lewi is the only other person w write access to vencord

#

oh and megu

#

and nookies actually

misty raptor
#

so there are multiple

olive aurora
#

yeah you see its literally not a job

#

so no one is actually active

fresh cloak
#

even with multiple people things should still end up going through the owner

#

i'd never dare to merge PRs without discussion from the rest of my team

olive aurora
#

id review more prs but i usually look at a random one and go "wow this is bad" then give up

fresh cloak
#

kek

#

i feel you

misty raptor
#

reply "get good" and move on with ur day

fresh cloak
#

we've had some hilarious ones too

misty raptor
#

how do i do the thing where i suggest a commit to a pr

#

without forking it

olive aurora
#

you comment with a ```suggestion codeblock

#

that you put the code you'd like to replace

#

then it automatically adds a diff

misty raptor
#

how does it know where the diff goes