#๐พ-core-development
1 messages ยท Page 28 of 1
so you can store arbitrary data and objects there even if they aren't json serialisable
do you think that this is ok?
i didnt want to first get and then set if it did not exist, so i used the update method
oldValue is undefined according to the doc
*if missing
uhh, kinda useless tbh
since typescript will force me to type guard it every time
so it is redundant
I actually find this plugin useful since I have many foreign friends around the globe
so yeah
datastore is indeed nice
oof, it will say timezone removed no matter what in that snippet
tbh I think we can void that code completly
and stick to modals 
idk
its not like you are forced to use them
like in my latest commit i added this (thanks to arjix)
actually you can disable this
so you have a point
hmm also this looks ugly if people have statuses written
it looks like part of the status
this was entirely written by github copilot
we could change the font or use italics
ok fully migrated to the data store
@crude hearth can i have push access to your fork?
how do I do that hm
ArjixWasTaken
got it
yeah
lmao
i am not toxic anymore lol
Pog
working on batch fetch
@fiery jungle why is it a POST? shouldn't it be a GET?
no data is modified after all
is it so that the ids are sent in the body instead of the query params?
weird design choice imo
Discord renamed the function
yeah
i didnt really think of query params atm
doesnt matter though
@fiery jungle im getting 404s, please help
(it re-tries every 3 seconds)
no response is given
just 404
is it even sending the request?
kk
maybe its bc you dont handle preflight requests or smth? im confused af
we should be
FIX CORS @fiery jungle
UNFIX CORS
Waiting for the timezones API to resolve the CORS issue, or if I am doing smth wrong to be pointed out.
@fiery jungle why not found?
i did login
is the bulk just broken?
oooh
the content type header is at fault
Really weird
VoiceChatDoubleClick (had no effect):
ID: 298716
Match: /onClick:([A-Za-z_$][\w$]*)(?=,.{0,30}className:"channelMention")/
RevealAllSpoilers (found no module):
ID: -
Match: .revealSpoiler=function
None
VoiceChatDoubleClick (had no effect):
ID: 298716
Match: /onClick:([A-Za-z_$][\w$]*)(?=,.{0,30}className:"channelMention")/
RevealAllSpoilers (found no module):
ID: -
Match: .revealSpoiler=function
None
Lmao, I did make it retry only after 15 seconds
So not that bad
But still wtf is going on?
Anyways, tomo I'll make the modals
Actually, does it really have to be a modal?
We could just add a drop-down in-place when you click edit
guhzones also add bulk fetch NOW
If it is done well it will feel like a native discord feature
I added bulk fetch...
it probably will in future
if we make it good enough discord developers will steal code from us
I added bulk fetch...
cors is fixed i think idk you will test NOW
guhzones also add bulk fetch NOW
yop manti so lazy
@crude hearth
when you click the edit icon, it lets you pick a timezone, clicking the edit button again saves the timezone, and delete does what you expect it to
(it deletes the timezone from the db)
also when you click the time, it tells the timezone
with a toast
@crude hearth you can now check this off
๐
@crude hearth can you move all the inline styles I have to conditional classes?
not now
I can confirm that this weird code works and that it is no longer a draft, but it is ready for reviews.
Currently I already know the following:
- I should refactor the inline styles to be in classes instead
- The in-message "local" timestamp doesn't update properly
@crude hearth if you could make it to not be a draft PR, that would be nice
don
this adds real typings for settings definitions that dont have a default field:
COMPONENTtypes are still alwaysanySELECTtypes areT | undefinedif there are no{ default: boolean }elements- everything else is
T | undefinedif there is no default field
@crude hearth two out of the three conversations can be marked as resolved
@Captain8771 can you review as well
which ones
@spark cove time to write vencordbot so we can do /assign user
in the order they appear in code, lol
all the ones except the "set own timezone thingy"
lmao, actually that works as well, cause the last one doesnt matter
since we link the link
well if i was to do it, itd be so that it could auto-assign reviewers for plugins that they own (based on the actual contributor field in the file?) or so that anyone who's an admin can authorize the auto checks or whatever
@turbid hatch how does this work
in backup / restore
there should be some dev buttons
click authorize to set it up
forgor is to deauthorize yourself
sync to cloud will upload your current settings
sync from will pull them down
i will backup my settings one sec
the other button doesnt work atm cuz i broke it
it should 404 initially cause you dont have anything up there
the request works, the logging bit doesnt

404s are definitely intentional though when you dont initially have any settings data
ohh
WHAT
hooks dont work if you return before them
all returns must be made after all the hooks
if a hook is not called consistently it wont work
they dont have to work
@turbid hatch whats the E2E encryption for
if user is null you dont do anything
oh
using fflate
xd
(i have no clue what is good practice in typing)
oh lol silly
but yes i presume the intent is to validate it
im moving fetch logic into a class so just making sure
i hope
mwah
which one because a lot of what im doing could probably apply to it as well xd
OAuth2AuthorizeModal
**Utils.tsx: **Lines 42-72
openModal((props: any) =>
<OAuth2AuthorizeModal
{...props}
scopes={["identify"]}
responseType="code"
redirectUri="https://manti.vendicated.dev/URauth"
permissions={0n}
clientId="915703782174752809"
cancelCompletesFlow={false}
callback={async (u: string) => {
try {
const url = new URL(u);
url.searchParams.append("returnType", "json");
url.searchParams.append("clientMod", "vencord");
const res = await fetch(url, {
headers: new Headers({ Accept: "application/json" })
});
const { token, status } = await res.json();
if (status === 0) {
Settings.plugins.ReviewDB.token = token;
showToast("Successfully logged in!");
callback?.();
} else if (res.status === 1) {
showToast("An Error occurred while logging in.");
}
} catch (e) {
new Logger("ReviewDB").error("Failed to authorise", e);
}
}}
/>
);
epic
i dont particularly care about them
i figured it could have been a security thing
xdxd
you can align it urself!
TRUE
Hi, when i was on Vencord, my mic wasn't working. I unninstall the patch and it work perfectly.
@quaint sapphire can you remove me from the screenshot on github
Sure
thank
lol why
i dont want my discord that public
no need
theres a reason i dont put my discord anywhere
also my tz trolley
commits only have gmt-7
vencord plugin that is enabled by default that opens profile modal for Devs.rushii
Shyyyy
Rusher dont be shy
nop
you provided 0 info and this is not even the right place. Use the support channel on the Discord server please
you could just use a .filter on this to remove both yourself and blocked peeps
@austere talon here but idk how to check for blocked setting and blocked users without making it more complicated than it is
you're doing wrong
yeah
const myId = UserStore.getCurrentUser().id;
const typingUsersArray = Object.keys(typingUsers).filter(id => id !== myId && !RelationshipStore.isBlocked(id))```
this is what u want
when you make a proper function body with {} u need a return
sure but i need to check for setting too
just do that then silly
HOW
๐
&& !store.whatever.includes(id) im pretty sure
shhhh
depends how you did it
const myId = UserStore.getCurrentUser().id;
const typingUsersArray = Object.keys(typingUsers).filter(id => id !== myId && !(RelationshipStore.isBlocked(id) && settings.store.hideBlocked))```
oh that
true
silly fawna
be nice
fawn will never be not silly
also i added the brackets when i was trying to add the blocked too then left it
it's okay
why can i not request two reviewrs at the same time
webstorm?
hey @austere talon, ever thought of leaving a new review on the timedones PR?
@austere talon REVIEW
if ur talking abuot the editor it's just vscode
(thats not how i meant it )
i meant inlining it here and in the other places
return isWaitFor ? [nested, Number(key)] : nested;
VoiceChatDoubleClick (had no effect):
ID: 298716
Match: /onClick:([A-Za-z_$][\w$]*)(?=,.{0,30}className:"channelMention")/
RevealAllSpoilers (found no module):
ID: -
Match: .revealSpoiler=function
None
VoiceChatDoubleClick (had no effect):
ID: 298716
Match: /onClick:([A-Za-z_$][\w$]*)(?=,.{0,30}className:"channelMention")/
RevealAllSpoilers (found no module):
ID: -
Match: .revealSpoiler=function
None
makes pre-send and pre-edit events optionally asynchronous
whats up with people closing and opening new prs
one way to find out
@supple turtle hoi! why close and open pr
idk, but this warning is a little late
next time i won't
@austere talon merge literallyt right now
Hello, i recently added a theme and it has a custom background, but i dont see the background, photo: https://imgur.com/XCYvWWT
but in the settings menu, i can see the background, photo: https://imgur.com/ooO5cer can y`all help me? thanks
theme issue + not the right place, report it to the theme author
theme issue + not the right place, report it to the theme author
Hello, i recently added a theme and it has a custom background, but i dont see the background, photo: https://imgur.com/XCYvWWT
but in the settings menu, i can see the background, photo: https://imgur.com/ooO5cer can y`all help me? thanks
@quaint sapphire i fixed ur design
@shut dome depressing status :(
Death is not friendly. It's dark, black where you look at it. You're all alone. But it's no different when you're alive, right? No matter how many relationships we seem to have, we're all alone. - Misaki Mei
i have only one thing to say: fuck life's purpose. it doesn't have one, so just don't care and enjoy as much as you can
Death is wholesome, w/o death you wouldn't enjoy life. /s (ofc it is not wholesome, but it aint dark)
yippee?

that was too dark
how is that dark?
- worrying about smth you cant change is a waste of time and energy, so you should instead focus on living your best life
- if you were immortal, there would be no incentive for you to enjoy life
thats the worst thing I heard today
what you said is like supporting drugs
import type { ReactElement } from "react";
const results = navIds.map(id => navPatches.get(id)?.delete(patch) ?? false);
contextMenuApiArguments?: Array<any>;
this should probably be done either conditionally (only when the plugin is enabled), or the plugin should be marked as required
@austere talon REVIEW
changes of note:
- this now creates a new settings entry (
settingsSync) to control whether it's turned on or off, instead of relying on the presence of the secret purely - cloud settings now has a separate tab to hold its settings, and in the event that we extend the backend more, we can shove all of this under a generic "cloud" tab, or.. "Vencloud" if you will :^)
- uses a lot less IDB entries (in fact, just two - one to store the secret and one to store when settings were last written ...
VoiceChatDoubleClick (had no effect):
ID: 298716
Match: /onClick:([A-Za-z_$][\w$]*)(?=,.{0,30}className:"channelMention")/
RevealAllSpoilers (found no module):
ID: -
Match: .revealSpoiler=function
None
VoiceChatDoubleClick (had no effect):
ID: 298716
Match: /onClick:([A-Za-z_$][\w$]*)(?=,.{0,30}className:"channelMention")/
RevealAllSpoilers (found no module):
ID: -
Match: .revealSpoiler=function
None
What should the plugin/feature do?
Allows you to favorite GIFs, images, videos and audios.
How does it work?
Allows you to favorite GIFs, images, videos and audios.
Any images or mockups?
Gif Here
Possible links to any existing plugins for other mods that could be used a...
agreed
i made something similar here: https://github.com/Vendicated/Vencord/pull/461
however theres no audio support.
i may or may not add support for it later
I am pretty sure the match and replace was correct, the issue was the find
I am pretty sure the match and replace was correct, the issue was the find
Oh didn't put that into consideration I just recreated it from scratch and that is what I've come up with
now that vencord has it's own switch component instead of using the discord one can't boolean setting options be made to use switches now
ye
wha
they could already use switches before
megu just decided to implement it this way because idk why
[[2* doesn't work for me. That targets a different module. On Discord Stable 175517 (1fc3105)
the old switches were gross and wouldn't work how I wanted them to
@Nuckyz Okay it only works with how it's currently pushed for me. Can you double check and send your Discord version?
๐ค
cant remember exactly but it was probably because of all the extra styling they added on top that couldn't be removed
probably the same reason I didn't want to use them originally on the plugin list
whilst not fully finished i will now accept reviews for improvements and changes - just bare in mind some of this may not be final still and therefore may be invalidated at a later date, even if the change is made.
@vagrant topaz we are talking about different modules lol
the one I point has like the same thing
are you sure yours is the correct one?
it doesn't have an iconType
the old code patched the one with it
I haven't tested

either way my the current match and replace would work
let me test
okay yeah yours is the one that works
@vagrant topaz you just have to change the find to the one you put
I just tried this and it worked
||a||||a||||a||||a||||a||||a||||a||||a||
||a||||a||||a||||a||||a||||a||||a||||a||
@vagrant topaz Implement this fix on revealAllSpoilers too
patches: [
{
find: ".removeObscurity=function",
replacement: {
match: /\.removeObscurity=function\((.\i)\){/,
replace: ".removeObscurity=function($1){$self.reveal($1);"
}
}
],
yeah
just so both plugins get fixed
ehhh
another pr just for that?
kinda meh
oh guh I made a typo there
remove this dot
ye
you can rename the pr too
insane
yes
that's our custom syntax
it gets transformed into something else
huh
this
[A-Za-z_$][\\w$]*
it's for matching discord variable names
i love
its just weird that its opinionated by default
im sure u can turn off it's linter as a whole
you will add 10mb of timezones
just include the package you copied this from
uhhh......I did not use a package for this shit...
Initially I downloaded the data from iana and wrote a python script to extract all the timezones from all the files
but the TimezoneDB does not use timezone codes, rather it uses city names, so I scraped the timezones from TimezoneDB, and I included the classic Etc/GMT timezones from iana
by using a standardised tool rather than reimplementing the wheel using their own proprietary tool?
so in fact, this list is semi-manually made
also, it is weird that the timezone code for GMT+2 is Etc/GMT-2
i remember iana having a comment saying why it is that way, but I didnt really read it
here is the original list, with the timezones exclusively from iana
I do sound overly dramatic, but rushii being so confident that I stole the timezones from a package made me act up
cause in fact, I put in effort to gather that list
@austere talon in your opinion, is fetching the list of timezones, on every single restart, the way to go?
why would you need a list of timezones
...
?
how do you even think this works?
let the user type the timezone lol
and another reason for the list, is to verify that the timezone is correct
why would anyone want a drop down with hundreds of options
because api updated to use timezone strings ๐
so bad ux
a dropdown is worse
you expect every fucking user to know the goddamn timezone string?
if you country starts with E just go straight down
if it has thousands of entries its bad ux no matter how its sorted
who would expect that GMT-2 is actually Etc/GMT+2?
it only has like 200
nobody
don't use GMT+2
add the fancy timezone selector map 
^ I second this
Still bad
I wouldnt wanna look at wikipedia just to set timezone
i too would like a search bar, but that is discord's fault
I prefer this
that also needs a list
ffs
fuck you ven
zamn
the argument is "why would you need a list"
then it went from that to a discussion of UX
once you demonstrated what the list was for
yes, i agree having the list is good for validation
but the way its being presented as a list of choices to the user is hell
ven asking why we need a list when he most likely hasnt even seen the plugin is what made me mad
its better than just giving users input box imo
no, i dont want to memorise my timezone string either, but neither do i want to scroll through 200 odd options just to find mine
or another person's
an input box to filter out the list is great
but not already implemented by discord
nor do i understand what every single timezone string corrolates to
discord has a list of countries built in
use that and then make a api call to get the timezone when ur configuring it? idk
i have no need for a list of countries
unless you want it to be a two step process
input box with auto complete is better than list imo
selecting the country and then the city
stop being an asshole lol
exept for this
the question is ,is there autocomplete input box
we use a select box
so he does not mean that
actually, why is the discord select so bad?
discord has select boxes you can type into
what do you mean then
the default browser select has search built-in
gib
im pretty sure we use it somewhere
is it a param to the component or smth?
idk its been aaages
settings has search, that?
yeah im stupid
one moment
https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select
if you click the select, and start typing, it marks a matching option
I'm still not a fan of including it like that in discord
the list?
I would do a plain text input and if you think users don't know timezones, you can link them to a site like https://kevinnovak.github.io/Time-Zone-Picker/
also it doesnt work on discord selects
sorry but if we are being honest, the users are too dumb for that
yeah that map was what i was referring to earlier
i see users failing at doing that
xd
+1
i didnt say it is great, but still better than a plain select w/o search
you know how dumb users are
@umbral hedge cant seem to find what you're looking for in @webpack/common
they will manage to miswrite
yeah idk where it went
custom component?
I definitely used it once
I could make my own select if you prefer that
and then you just tell them that the timezone they entered is invalid? I don't get the problem
^ which CTI is a valid use case for
possible but still
for each person you wanna set timezone
redirecting to website
I dont support that
bad ux
then make it not a requirement
ah there's a searchable option for <Select>
to do so
by try/catching it?
actually, why doesn't js expose the built-in timezones?
fr
does discord itself use it anywhere?
also
you can
Intl.supportedValuesOf('timeZone');
aha there's a component called SearchableSelect
lol
it returns every timezone supported by Intl
so now including the list is a non-issue because you dont need it
what is that running on
default discord
stable?
fucking pieces of shit
can they just
upgrade to electron 17
cause it works great there
search for --icons-width
seems like its the SearchableSelect component
spent ages just looking for unique code to find it by 
ok what if we conditionally load the list if Intl does not have the list (due to electron being old)?
im talking about fetching it at runtime...
like many dependencies
suing discord to get them to upgrade electron
Also see how this list has way more values than your list
another reason I dislike hardcoding a list
my list is TimezoneDB + timezone offsets
I wonder when discord is actually gonna update stable electron ver
that list is most likely a lot more cities
it does seem to have cities
when their HQ explodes
e.g. America/Dawson and America/Dawson_Creek
identical offsets but unique timezones
yeah but like
dawson is yukon time and dawson creek is mountain standard time
if Europe/London is valid then America/Dawson_Creek should be too
im all for that, but using cities as timezones is a bit meh
lmao
the map method is way better
what if you are in the same timezone as Europe/London, but you dont live in the UK?
there's multiple timezones listed under GMT/UTC
why not just Etc/GMT?
because DST exists
like, i never get that
timezones hell
because those don't account for so many factors?
if you hardcode it to GMT
fuck them cities
we all die
guess we will die
it also happens in multiple timezones around the world at different times due to various reasons
what about the +8:30 offset or whatever it is
tbh we could really oversimplify the timezone picker and do what ven said and send people there
visit this link to get your timezone name
show map
select location
copy this value into vencord
ez
also, if you havent already
A web app that works out how many seconds ago something happened. How hard can coding that be? Tom Scott explains how time twists and turns like a twisty-turny thing. It's not to be trifled with!
A Universe of Triangles: http://www.youtube.com/watch?v=KdyvizaygyY
LZ Compression in Text: http://www.youtube.com/watch?v=goOa3DGezUA
Characters, Sym...
please watch this
kthx
if someone doesn't know their timezone name they also won't find it in a dropdown
- who doesn't know their timezone
or GMT
i wont, cause I have watched almost every video from that channel
99% of people just need to type their continent and capital city
pull in the map JS remotely like we do with shiki and have it appear in the settings form
well thats your own downfall i guess, cuz the entire video is about how painful dealing with timezones is and how to do the UX for them
downfall? lmao
yes, im trying to give you a resource on the issues with dealing with timezones and the UI/UX that have already been attempted and failed
dont give me anything, manti should fix it https://cdn.discordapp.com/emojis/932622403845099550.webp?size=48&quality=lossless
if someone doesn't give a reason against this, then my vote is for this xd
good for me
if it only downloads the code when you open that plugin's settings then I don't see an issue with size, and its decent UX
...i literally suggested it a few messages above
^
yeah that was a bit vague
indeed
ah yeah that was not quite the same
i originally thought it meant you include it in the bundle, not load it remotely
"conditionally load" is the key point
yeah same
yeah but you can conditionally load stuff from the bundle as well

it wasnt clear
anyway
but there is no reason to
regardless
but ya my vote is with pulling the map bundle when you open the timezonedb settings
would be stupid
(there are valid reasons e.g. patching for behaviour differences but that's for another time)
oh well
the 400+ items list or the list I made?
no, this thing http://kevalbhatt.github.io/timezone-picker/
This timezone-picker is a responsive jquey plugin which creates a Map using SVG. A user can select a country from worldmap and it returns timezone value of selected country.
jquery
I remember doing image zones on youtube banners back in the old days

arguably we could just load the SVG
or
the one ven sent, they dont use jquery much (why the hell do they even import that shit)
we'd barely have to change anything honestly
i remember websites using images instead of html

anyway so this searchableselect thing
ye
is it just select with an extra prop
nah thats the old one
.
its props seem to be basically the same as normal select
yeah but the difference is we're only pulling in the map when you open the plugin settings
its not really a biggie i think
yeah it looks about the same
in fact it might be the same
id have to compare each prop but from a quick glance yeah
- we can remove that when discord finally gets their act together and updates electron
ah actually no bc they have coords in that json
so adding it as a component it should just be
nvm
like

should be similar to the existing settings components we use
export const SearchableSelect = waitForComponent<t.Select>("SearchableSelect", filters.byCode("--icons-width"));
more or less
why is this still a debate
default to electrons timezone in a full drop down list
I literally did it for the tzdb website
ig
you probably want more filters than that but yeah
yeah i'll probably just copy the select filters and stick icons-width on the end
our current debate is about adding a map
what about https://ndom91.github.io/react-timezone-select/ ?
Vite react-timezone-select demo app
not a map tho
because people are too stupid to search for "Europe/London"
that's so dumb
have you seen discord mod users
no, people are too stupid to type it the exact way it is
re second point, we cant
because electron 13 doesnt have the right method
lol
bruh
electron 17 does though
discord does not use 17 tho
canary does
just do it anyways
canary is on newer isn't it
canary is on 22 now actually
it's gonna happen eventually
default to nothing if the method from electron 17 doesn't work
shipping a data set of timezones by geolocation is so bad
oh great idea
surely someone has made a website to find your tz based on geolocation on a map
just link to that instead of shipping it
has both select and map
yes it has to be a list
or we can just use it directly...
wheres the data loaded from
yeah I think this is pretty sensible, have a text input and add autocomplete if that method is available
you can also just display the current timezone to the user so they can give it to their friends or smth
yeah we found an autocomplete component
Intl.DateTimeFormat().resolvedOptions().timeZone
should work for getting current timezone
instead of giving current timezone, you could just set the timezone on TimezoneDB
you cant set for other users
why would the other user give you the timezone instead of setting it?
everyone I know does so
just gzip it or something and decode when you need
its gonna go down to a single kb
thats uniquely you
I am everyone I know? thats dark
no
Works on my machine life
youre the only one in that situation
barely anyone i know actually uses remote tzdb
what about client mods?
that too
i tried "popoutPosition", "autoFocus", "maxVisibleItems", "--icons-width" and just the last one and it couldnt find the component
which is annoying
nobody I know uses tzdb, but if they use this plugin they will come to know of it
i wont do anything lol
manti https://cdn.discordapp.com/emojis/932622403845099550.webp?size=48&quality=lossless

@austere talon
well it can definitely find it
epic filter fail
what
i mean the filter works :<
DEATH
where do you get it then from 
does electron have a list
show cod
// export const Select = waitForComponent<t.Select>("Select", filters.byCode("optionClassName", "popoutPosition", "autoFocus", "maxVisibleItems"));
export const Select = waitForComponent<t.Select>("Select", filters.byCode("popoutPosition", "autoFocus", "maxVisibleItems", "--icons-width"));
literally what u said earlier
i was hoping that'd do it
cuz --icons-width only points to this searchableselect component
so this will never be done?
why did u comment out 1 did it not work
(btw im only reexporting it as Select to test)
no thats the original
:P
i was using it as reference
to test this component
you're confusing me xd
this is the SearchableSelect thing megu found
to not update the imports ofc
im testing it by reexporting it as select since it has the same props
we will find something
so i can play with it
I will force chatgpt to write me a good component
oh it's a different thing
the old select component had a searchable prop but the new one doesn't
not Select
ye
the new Select component was split into Select and SearchableSelect
also wth are we discussing rn
but its the same as the Select component from our standpoint, just with different functionality
select component or 10kb timezone file
ยฏ_(ใ)_/ยฏ
both at once
its strange though that just the last filter doesnt work
huh??
do you know where discord uses it @umbral hedge ?
uhh
address form, guild community settings, in interaction components (autocomplete ig), user settings game activity component
yeah in community settings
community settings?
you can type in these
huh, guess that works
weird
it should be able to find it
maybe its because its in a forwardref?
although that doesnt make much sense
yes
pretty sure thats what we use mapMangled or whatever for
const filter = wp.filters.byCode("popoutPosition", "autoFocus", "maxVisibleItems", "--icons-width")
find(m => m.render && filter(m.render))
that is the component
well i tried doing this
export const Select = waitForComponent<t.Select>("Select", m => {
if (typeof m !== "function") return false;
return m.render && filters.byCode("popoutPosition", "autoFocus", "maxVisibleItems", "--icons-width")(m.render);
});
which got me nowhere
because its not a function
this is true!
it doesnt seem to respect default values though
actually wait ive never fiddled with those
hold on
https://discord.coffee/9UQqQiB.png okay yeah this is gonna take some fiddling
xd
so select -> onChange
it seems
which i guess makes sense
just read code to see what it takes
manti will update
i think ive gotten every meaningful option out of it
the rest seem to be a bit jank or dont make much sense
Exposes a searchable select component.
VoiceChatDoubleClick (had no effect):
ID: 298716
Match: /onClick:([A-Za-z_$][\w$]*)(?=,.{0,30}className:"channelMention")/
RevealAllSpoilers (found no module):
ID: -
Match: .revealSpoiler=function
None
VoiceChatDoubleClick (had no effect):
ID: 298716
Match: /onClick:([A-Za-z_$][\w$]*)(?=,.{0,30}className:"channelMention")/
RevealAllSpoilers (found no module):
ID: -
Match: .revealSpoiler=function
None
guys please its just timezone plugin dont make this most commented issue on github
UNFAIR
IT DIDNT EVEN PASS 6 MONTH PULL REQUEST WAIT TIME
@umbral hedge REVERT
And OPEN PR LIKE OTHER USERS
Nop
Adds notifications for the following:
- Friend Added
- Friend Removed
- Outgoing Friend Request Created
- Outgoing Friend Request Cancelled
- Incoming Friend Request Created
- Incoming Friend Request Cancelled
- Block added
- Block removed
On click, it opens the target user's profile.
TODO:
- [ ] Allow each notification to be enabled/disabled

Now wait 6-8 months depending on vens psychology
I will review and merge it myself 
also reviewing PRs is a ballache, you can hardly blame him
Merge mine too
Just a single click
Do it without ven noticing
xd
so ugly
i will do settings rewrite in 3 million years
I think I prefer doing it like this
Sad
Lov
3bf81ee make each notification type toggleable - MeguminSama
b972aa1 fix some labels in settings - MeguminSama
ok its done i think
๐ข๐ข๐ข
New Discord update makes multiple images in a single post to be displayed side-by-side or in a grid, and makes single images larger. Would be great to have a plugin which reverts it back to the old style, as new previews are cropped and often useless.
I'd love to see that, it was one of my favorite plugins in Powercord.
the new select component has multiselect btw
so you could use that
how
because its not the legacy select component

its the new one with search and stuff
ooh
#450 would like a word with you
it was a rare moment of adhd "oh fuck I can program suddenly after ages of not being able to do anything"
I won't be very sad if it gets dropped
Yours is more compact code-wise
Maybe see if both plugins can be combined in a way?
(If yours is lacking features)
yeah they seem to have guild/channel notifs as well
I'd prefer to move that into my PR bc it feels cleaner but that's just personal preference
oh they also have offline notifs
thats's pretty neat
Discord Account
A user#8169
What is it that you'd like to see?
If a moderator mentions a channel that it does not exist, Discord will display as ๐ No acess. It would be cool if it did display the name of the channel

Request Agreement
- [X] This is not a plugin request
It does feel cleaner for me as well
Maybe ping the author
I want to reimplement their stuff in this style but I also don't wanna mess with their efforts xd

this isn't a permanent fix, as one day the experiment might disappear, but in the meantime you can do this:

@austere talon merges any pull requests challenge (impossible)
simply pay ven a reasonable salary
200000โฌ
money cant buy friendship merge my pr
did u kno megu is sponsoring vendy
and vendy sponsors me
@clr134 i haven't seen any image grid till now :๐คทโโ๏ธ so im confused
fake
do not the webviewcord
I also noticed this because my theme didn't do the thing with the thing and then the thing looks bad (green >:()
wha
i think they mean that themes depend on the checked class to apply switch coloring
but because vencord's custom switches dont have that, they dont get the coloring
so they look different from the rest of the switches
i don't think so because the checkbox's container div has the color, not the checkbox itself
:has is what you want, dunno about electron compatibility tho
i don't think so because the checkbox's container div has the color, not the checkbox itself
:hasis what you want, dunno about electron compatibility tho
#506 - its only available on canary as of present, electron 13 doesn't have it
VoiceChatDoubleClick (had no effect):
ID: 298716
Match: /onClick:([A-Za-z_$][\w$]*)(?=,.{0,30}className:"channelMention")/
RevealAllSpoilers (found no module):
ID: -
Match: .revealSpoiler=function
None
VoiceChatDoubleClick (had no effect):
ID: 298716
Match: /onClick:([A-Za-z_$][\w$]*)(?=,.{0,30}className:"channelMention")/
RevealAllSpoilers (found no module):
ID: -
Match: .revealSpoiler=function
None
Can't I'm busy making this the most commented pull request on github
this is cool & goated
Can't I'm busy making this the most commented pull request on github
I hope you explode
Can't I'm busy making this the most commented pull request on github
I hope you explode
I hope you explode
Can't I'm busy making this the most commented pull request on github
I hope you explode
I hope you explode
I hope you explode
Can't I'm busy making this the most commented pull request on github
I hope you explode
I hope you explode
I hope you explode
I hope you defenestrate yourself





