#👾-core-development
1 messages · Page 56 of 1
Dunno if this is already a known issue, but on web (and vencord desktop) this plugin makes it impossible to connect to a VC.
It is stuck at "RTC Connecting".
@cold patio uhh
do you understand the point of having the Devs constant?
Cause to me it looks like you don't.
Why do you have your own constant, that uses the Devs constant?
that is such a BD concept
like, this is hilarious
and makes me want to question your life choices
it is not practical in any way and it makes it harder to read who the author is
since you have to open the constants folder, and realize that the index file doesn't have the constant, you instead have to open the constants.ts file to see the author
like, why?
do you like obscuring away who the author is?
you prefer having more files that decrease the readability over just putting the damn info directly in definePlugin?
heck, you didn't even use definePlugin, you made a class that implements it
That's weird, it probably has something to do with something else because I'm not having any issues at all. Have you tried restarting your PC?
What's up with having different constants for the plugin contributors and the plugin author?
like, if you want to know who the author of a plugin is, it usually is the first dev on the list of authors
we don't re-order the authors array
this here is bullshit
why even have a folder for stores at this point?
you made so many unnecessary folders
do you want to torture the others that try to review your code or smth?
did you try on normal discord?
or did you mean vencord desktop? vencord desktop is discord web on an electron wrapper
look man, I can't even begin to read your code because of your style choices
how do you expect anyone to honestly review it?
it not only is huge in length, it also abstracts away everything
oh you want a logger?
it is a single file within an entire folder"why?" you may ask?
because I like watching people suffer
this is my impression of you
so many darn folders that serve no purpose
they don't help organize your code, in fact they make it worse
Instead of having READMEs, use the settingsAboutComponent
you you see how easy it is to read and review this plugin?
that should be your goal
you don't bundle and deliver a single js file like in better discord
if you want a plugin bundled with vencord, then it should follow vencord's style guides
even if no guide is officially out there, you can easily see what our style is by looking at other plugins
I didn't look at your code with the intention of badmouthing it, I only looked at it to help review it and revive your PR.
But this is really that ugly.
you don't consider the DX when writing code?
(DX=Developer Experience, basically how good it feels to work with any given piece of code)
your code shouldn't need to make me feel excellent, but it also shouldn't give me a headache when trying to comprehend it
you really need to learn to voice criticism in a nicer way
you're always being so aggressive
🫡
yeah I am, but this time it is the truth
I can't even review the code, bc of the way it is structured.
@quaint sapphire thanks for reviewing my code and giving me feedback. Sadly it feels really negative. Also didn't you see that the pr is closed? This is my way of programming and I never thought it's great but I know I can always improve it and will if someone helps me. I can't just magically program how you would like it. Also no one is forced to review my pr or accept it. I always try to get better at programming but it is really hard for me especially because I need to learn it by myself. And I know there a people who can do exactly that but I just can't do it that good.
I only reviewed it to give you my opinion and if you are up to it, help you refactor the code.
I did not expect you to magically code it the way I like.
well, I can't even call this a review
it is a surface level review
I don't want to sound rude but no one asked for it honestly. And if you tell me your opinion I think you shouldn't be that negative / aggressive because that's just rude. Imagine if I did that to your voluntary pr that took you forever to make.
you don't sound rude
I just don't try to make my words sound better
Whatever is on my mind is what I type
if you felt attacked, then so be it, but please understand that is not my purpose
^
you can't just say that with what you typed
you very much did attack them, aggressively at that
I "attack" everyone here for that matter
IRL I am not even angry at anyone or smth
reviewing code is always nice but you should do it in a nice way
@cold patio what's your plan with the plugins going forward anyway? i haven't really looked at it because it's just sooo much
Okay I understand you're just being honest and direct and that's okay. I'll keep the stuff you told me earlier in mind and pay more attention to it in the future.
idk if you saw but i was working on external plugin support and it's essentially done, i just haven't finished some more important aspects like updating and how users can install plugins
I did not mean to just give you instructions ofc, if you want a helping hand I can do that as well.
I just wanted to voice that a lot of stuff should change to increase the readability of the code.
Stuff that you may not like, which is why I did not just start refactoring this myself and voiced my opinion.
I don't want to waste time refactoring your PR for you to not like my refactor.
I did sound aggressive and rude, I admit it.
oh yeah, concerning that, how about doing a plugin proxy just like vendetta?
that way no malicious plugins can push a naughty update to token log users
by plugin proxy I mean a repo where we have third party plugins
actually, now that I said it out loud, it doesn't sound practical
@cold patio would you like it if your "plugin library" was refactored into a general API for inserting buttons at locations where buttons are?
I don't really know because there are some minor bugs and I just can't find a solution to that. It probably has to do something with the way I'm patching the Screenshare. I also really dislike the way I'm doing it and because of that I will probably do everything from scratch if I'm going to update the plugin in the future. But at the moment I'm not really interested in it anymore because I just worked too much on it that I have burned out or something. Just thinking about the plugin scares me a bit. Also when are you going to add an option to add external repositories to Vencord? Because I frequently get asked how to build the plugin since it's often too hard for the majority of the people.
That would be awesome.
ok, I can start working on that
for now would you like to make a new branch on your fork?
you mean an org for third party plugins?
Oh lol I just read it now forget what I said earlier.
sounds better than my idea to say the least
yeah an org where plugin authors make pull requests to update their plugins sounds great
if we do end up doing this, moving all the non-api plugins to it would be nice
And besides I just remembered the reason why I actually created the plugin library. And that was because I asked on the discord multiple times if I should add all the stuff which maybe could be used by other plugins to Vencord itself but no one responded so I thought that would be the safest way.
a plugin that would let you change the appearance of the tray icon and also hide it.
I think a plugin llibrary is overkill as well so that you know.
the beauty of using autocomplete and helper functions like definePlugin
I bet you did not have that speed when using your class
it depends a lot on what kind of stuff you're talking about
if it's useful to other plugins too and not trivial to do then absolutely
I really like classes that's why I did that unnecessary work hahaha but your right it took way longer.
yeah, since we will be reviewing third party plugins, they ain't really that different from our current plugins
(if we go this way)
wait til u find out about vencord companion snippets
Some stuff in the library wouldn't be used by other plugins for sure.
well, the buttons part could be a general library
I'd say individual repos per plugin makes more sense
well, if vencord owns the org and the repos, the plugin authors could use it as a mirror
and PR any changes
Yeah that would work too 😆
nahhh
my ass is not making 5 million repos
monorepos are good for stuff like this
and me (i don't know what i'm doing)
monorepos mean we get notifications about unrelated issues
unless we use tags
if we can even filter notifications by tags
your ass has contributors like @umbral hedge that could make repos
h
megu
I'm near Québec
so stinky
sorry but
you did it to urself
nooooo u changed it back
h?
discord moment
Discord Account
sprmcell#2751
What happens when the bug or crash occurs?
Says everyone (Admins/Owner/Mods) are bots, happens in multiple servers


What is the expected behaviour?
The expected result is that it displays people correctly.
How do you recreate this bug or crash?
Op...
@cold patio ok so
to give you an example of what is preferred and what is not
let's start with the buttons panel you insert, shall we?
your patch takes the entire sidebar and instantiates it (with Reflect.apply)
you then insert ur panel as a child and return the instance of the sidebar
that would be acceptable if it was the only option at hand, it aint a bad solution but you get what I mean
instead of doing all that mumbo jumbo, you can directly patch the panels array
(technically this aint the same as what I did, since you patched a level higher than that)
what I'm trying to tell you is that patches should only patch what they want to modify
and not more
patching more than you need could lead to conflicts with other plugins
and adding a custom panel is much simpler (and cleaner) this way as well
the custom panel in question
this is just advice for future plugins you may make
if u want to add to the panel just look at spotify controls
it does it really cleanly
that patches the account panel
not the panels overall
it is always above the account panel
it can't be anywhere else
(other than below it)
so I'll keep my patch
are you making an api for accounts panel?
I mean
that panel isn't big
it cant support many stuff
you could just do a normal patch
predefined locations means a lot of places
not just that
this could also be one of the available locations
having every plugin that adds buttons patch the location they want not only makes it harder for new plugin authors, it could also lead to conflict with other plugins
as easy as .RTC_CONNECTION_PANEL.+?}\),
huh
that sidebar isnt the same as the account one
^
I'm looking at this
that is just one of the locations
why are we even having this discussion?
do you want to stop me or smth?
using splice is kinda ugly ngl
and also finding the index of a panel to add a new panel ontop/below it is hacky
it's better than ordering them all from scratch lmao
both?
that is just plainly wrong and subjective
that is one valid reason
i'm not a fan of adding an api for things a plugin could hypothethically do
i think everything should start of as patch in its own plugin and if there's ever multiple plugins doing the same thing refactor to turn it into an api
getting every element isnt clean 😂
APIs are for streamlining the process of doing smth
you think that because you didn't understand why I get every element
that screenshot is just a WIP
not the end result
ofc I did not plan to find every panel just to return it as-is
okay then
nothing the API can't handle by moving the buttons below the user or smth
and this ^^
yes I started
cause there's actually like 5 plugins doing it
I kinda finished it
that is already taken by another person that I can't remember the name of
just undocumented
god im trying to find a good icon for view album covers
and untested
the discord desktop app uses so little icons
look at the mobile app to find an icon then
vendetta just does it cuz it's easy
we would have to webpack search to try to find every svg export or something
it is easy to find all the SVGs, I don't get whats hard about it
cause they are all SVGs
lol its struggling to render all svgs
and how are you gonna find all svgs???
nookies, why are you so pessimistic?
hes not
have you tried doing it and concluded that it is hard?
or are you just assuming that it is?
I'm just trying to understand how you are gonna do it
whats the pink svg used in
I call that being pessimistic
I dont see how it's easy
then tell me???
I have digged inside discord enough to know how they store svgs
and I dont see an easy task getting them all
did you try though?
we can't know that if we don't try
that's why I called you pessimistic
yes we can know lmao
Svgs are either webpack exported or not exported at all
they are react components
why can't u use raw svgs
that require their own properties sometimes
how are you gonna figure what properties they need
how are you gonna access the unexported ones
i think this is good
all SVGs take the same properties from what I've seen
looks alright
width, height, color, foreground
that's from the mobile app
as I said vendetta does it because it's easy
The desktop app takes a different approach
instead of spending time pointlessly arguing with you, I will try to do the "hard" thing you are talking about
they're not actually pink
okay try it
the pink is my windows accent colour
I already said that I will
if you can get all the svgs you will prove me wrong
finding svgs is easy, you just need to look for (0,r.jsx)("svg"
but many of them won't be exported and parsing the js is non trivial
yes exactly ven
and some might be abstracted away
it seems easy on the surface but it really won't be
does it look silly with duplicate icon
kinda imo
it's fine imo
ehh I find it fine
what would u add tho
the brand icons
that would look cool
ig the issue is finding a svg for each
this seems like a really good idea
honestly that's not even that bad
other than the broken ones ofc
something with all written 😂
i think this is decent
ig
what other vencord context menus are there
is this better?
in parity with the apps menu
(ofc also gonna change All)
yeah i guess since it's an external thing kinda like apps
companion
no that's kill
round icons i beg
mean
looks like shit with yandex / saucenao
ehh tru
but i beg get rounded tineye and iqdb icons
leave imgops as well
yop
narrateSelf is kind of a misleading name and this if should be inverted
const user = isMe && !Settings.plugins.VcNarrator.sayOwnName ? "" : UserStore.getUser(userId).username;
so far I got this done
const EmojiStore = findStoreLazy("EmojiStore");
Also this is now used by 3 plugins (EmoteCloner, FakeNitro, Yours, maybe more?), so perhaps it could be moved to webpack commons and properly typed if you would like doing that
Using optional chaining here makes the null check obsolete
|| state.query?.type !== "EMOJIS_AND_STICKERS"
You only check for 0 here and then later assume results.emojis is non nullish when it could be undefined. Just dropping the === 0 and instead negating solves that
|| !state.query.results?.emojis?.length
sort sorts in place so there is no need to reassign
state.query.results.emojis.sort((a: Emoji, b: Emoji) => {
and then you ask me why I am rude 99% of the time
what?
"set color lmao"
thank you for pointing the obvious
Do you know how frustrating it is when someone points out smth that obvious as if I didn't plan to do that?
beautiful
oh no
are we all bots? 😭
isn't that supposed to be fixed with ur changes
As an AI language model,
oh wait i know why
it's cause i don't have the plugin enabled
so its patch hasn't applied
and everyone is a bot

horror
yeah it was cause plugin off
nO

tbf its not as easy to tell if you were gonna actually do that from just a screenshot
Please don't pr from the main branch in the future, it causes so much pain
people can assume
but not ideal since assumptions lead to what happened not too long ago earlier
lol
mut
wait did you merge my pr?
ye
I'm mobile gaming now
i should close some old stale prs
It is a screenshot taken right after I made the modal
"So far I got this done"
This obviously means that I am not done. Assuming that I would not color the icons is wrong
or merge perms viewer 
And implies that I don't have the common sense of coloring the icons.
Sorry for not looking at this in so long. I really like this but like I mentioned the first time this was brought up I am still worried about the risks involved with sending "bad" requests like this or whether using this is safe. Have you been using this for a while? Do you know of others who used this?
Is your concern that discord would think of the user as a self-bot user?
yes, since this is sending "bad" requests
aka requests the normal client can not send
Now they're too far apart
Other than those concerns and the fact that there are many lint errors (pnpm lint:fix to the rescue!), it still works now, which is neat
Following the patches is a bit hard though. Please comment them so we can understand what's going on
Also you seem to be generating a lot of code as string with your patches, which tends to not be as robust and not very maintainable, better style is to insert a function call to $self.doFoo() and then implement the code in an actual function doFoo() on ...
infallible plan
does RN have those?
Personally I'd think it's ok since discord doesn't do anything about client mods overall.
But it does not like self-bots, so it is kinda mixed
" Some of these are already available in the mobile app TabsV2 redesign as a part of the gui."
it's not about what discord likes or doesn't like
it's about them possibly automatically detecting spam
so I'd avoid sending requests the client can't send

especially search i can imagine they might moderate for privacy reasons
to avoid scraping a lot of user data
lmao yeah it sucks
anyway i don't know if using those search params is safe or dangerous, that's why i asked
I'd rather be safe than sorry
if it were just my account i wouldn't care, but I don't want to risk any of our users to get banned
Can't it be done client side?
Although that would require fetching more results
yes but
search is paginated
u only get like 50 per page or idk the exact number
so the more specific your filter, the more pages you'd have to load
and search has a pretty bad rate limit
tbh i dont even wanna look at the code anymore, it always resparks my PTSD maybe i will just merge
don't hardcode timestamp format, americans will be very upset
Vencord.Webpack.findByCode("M6 2C3.79086 2 2 3.79086 2 6V18C2 20.2091 3.79086")
7a27de8 [ReviewDB] Improve UI & Use new RewviewDB api e... - mantikafasi
return userId in ChannelStore.getMutablePrivateChannels();
I don't think this accounts for group DMs
it does! getSortedPrivateChannels just does Object.values(mutablePrivateChannels).sort().reverse()
r.getMutablePrivateChannels = function() {
return U
}
r.getSortedPrivateChannels = function() {
return i()(U).values().sort((function(e, t) {
return a.default.compare(e.lastMessageId, t.lastMessageId)
}
)).reverse().value()
}
how would that work?
I'm looking to see if the user has a dm or group dm with that user ID as a recipient
it's exactly the same thing except that with getSortedPrivateChannels().some you have O(2n) whereas with getMutablePrivateChannels you have O(1)
oh i see
Object.values(getMutablePrivateChannels()).some then
@austere talon
what
my bad, i didn#t read the original code correctly
return Object.values(ChannelStore.getSortedPrivateChannels()).some(channel => channel.recipients.includes(userId));
ah
that's still better because you're skipping the sort
I see
cause the sort is unnecessary
wasn't me
what u doing @rigid venture
??? you are seeing things
EXPLAINNN

👽
caf77a3 NoReplyMention: add option to only exclude spec... - outfoxxed
could you add a comment stating how much time this is?
nextChange = setTimeout(() => this.checkForUpdate(), (startTimestamp + 86_400_000) - now);
this is not very informative. you should advise the user how to solve the issue
real
const updateTheme = findByCodeLazy("clientThemeSettings:{") as (data: { theme: "light" | "dark", backgroundGradientPresetId?: number; }) => Promise<void>;
pretty sure this is a webpack common now? If not, please make it one, sine @utils/discord also uses it
import { Devs } from "@utils/constants";
UserStore.getCurrentUser().premiumType === 2;
this might or might not exist in @utils/text
if you make checkForUpdates a top level function, you can avoid this Vencord.Plugins.plugins.Plugin as any hack
additionally, just import isPluginEnabled instead of using the global!
@crude drum thanks!
your plugin has no description, could you please describe what this does and maybe show a screenshot?
there are 50 other prs out of which many are awaiting a review
i'm doing this in my free time as a hobby
I'll review urs sooner or later, but it's only been a day so dunno why you're already impatient

this setting seems silly. Why would one want unopenable blocked messages? At that point one would rather use the HideBlockedMessages plugin
your plugin has no description, could you please describe what this does and maybe show a screenshot?
Normally when you block a user and they send a message in a mutual server it shows a big giant “Blocked message - show message” banner which gets really distracting and annoying and basically this plug-in replaces it with a small bar that can still be opened but if the user chooses they can disable the function of being able to view the blocked message
the button kind of conflicts with the message popover
it's hard to hide blocked messages
also conflicts with the new message bar
i think it would semantically make more sense if this outside div would instead be the button, and then just have a plain string "Blocked Message" as last child
is permission viewer a cool plugin 
that div is needed otherwise it shows errors cause a JSX expression needs a parent div
you're violating the rules of react hooks here, hooks must never come after a possible early return, that will throw errors. Either remove the if (!props) return null as props should never be null or move this hook call above that line
i don't think you understood me correctly. What i meant is: change this div to be the button instead and then replace the current button with plain text
i mean
we can keep it if you find it useful
it just seemed silly to me
if you don't want to see the message just don't click 
None
None
font-weight: bold;
color: purple;
Cannot access 'ofe' before initialization ReferenceError: Cannot access 'ofe' before initialization
at Module.default (WebpackModule138875:2:50)
at VencordWeb:12:719
at VencordWeb:5:8750
at [vencord.lazy.get] (VencordWeb:5:7113)
at kr.<computed> [as get] (VencordWeb:5:7524)
at Object.handleProtoChange (VencordWeb:33:23175)
at CONNECTION_OPEN (WebpackModule473419:2:5858)
at https://discord.com/assets/fd1f9ea7de3b25548016.js:9365:766
at https://discord.com/assets/fd1f9ea7de3b25548016.js:9355:818
at n (https://discord.com/assets/fd1f9ea7de3b25548016.js:9365:743) ```
poggers
None
None
font-weight: bold;
color: purple;
Cannot access 'ofe' before initialization ReferenceError: Cannot access 'ofe' before initialization
at Module.default (WebpackModule138875:2:50)
at VencordWeb:12:719
at VencordWeb:5:8750
at [vencord.lazy.get] (VencordWeb:5:7113)
at kr.<computed> [as get] (VencordWeb:5:7524)
at Object.handleProtoChange (VencordWeb:33:23175)
at CONNECTION_OPEN (WebpackModule473419:2:5858)
at https://canary.discord.com/assets/b3d5f3823513e4979546.js:9365:766
at https://canary.discord.com/assets/b3d5f3823513e4979546.js:9355:818
at n (https://canary.discord.com/assets/b3d5f3823513e4979546.js:9365:743) ```
wait i'm really confused, won't this lurk ALL guilds? how would you normally join a guild with this on
const LurkingStore = findStoreLazy("LurkingStore");
this is GuildStore from webpack commons
const SortedGuildStore = findStoreLazy("SortedGuildStore");
what in the world is your id :shipit:
what param
did u forget some code?
unless im missing something, rn it will just unconditionally lurk every guild

how did u even get that id
lmao
Please don't pr from the main branch in the future, it causes so much pain
What do you mean by that?
i was like oh he doesnt want his id in the mod but no it's actually his legit id 😭
well alt but still
juppy things
oh right, old way checked a param, yeah i guess every guild is just “lurked” but also not really since this just makes it look like you joined the guild normally, so if your really in it there’s no difference, if your actually lurking client thinks your in it
yeah but it would still lurkingGuildIds.lurkingGuildIds().pop();
so it'd be better to add the check back
@lean elm did you not understand what i said or are you asking for reasoning?
this doesn’t do anything tho right? if i’m not lurking the guild there is nothing there
imagine if you're lurking one guild and then join another
wouldnt that unlurk the previous one
anyway i dont know anything about lurking stuff
idk I haven't seen the code
privacy
not wanting to be added by randoms
worry of getting banned (you wont)
real
no
ez ban list (real)
gifted by a friend
the biggest risk you'd take with having ur id in this is that some dumb server admins might ban all people listed there
well I've somehow had this acc for 2 years 
but yeah discord isn't gonna ban u for it lol
if they wanted to ban client modders they'd just ban everyone in this server (and other mod servers)
but they have no reason to do that
lmfao
I like how you never replied /s
my response was "what"
i didnt understand what you were trying to tell me
i already have that svg https://github.com/Vendicated/Vencord/blob/main/src/components/Icons.tsx#L106-L116
**Icons.tsx: **Lines 106-116
export function ImageIcon(props: IconProps) {
return (
<Icon
{...props}
className={classes(props.className, "vc-image-icon")}
viewBox="0 0 24 24"
>
<path fill="currentColor" d="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z" />
</Icon>
);
}
Please tell me you are pretending to be dumb and you are not that dumb to not realize that I replied to a previous message of mine that was referred to you
they would never van literally all of their power users lol
ye
look at the members here and see how many of them have nitro
then compare to a normal server
i mean
they did last week
it's way higher
yeah but they all kinda deserved it for abusing the api

I pinged you with an icon for the image thingy
and i dont think they meant to hit normal users
probably just that the endpoint got botted im guessing

You have a special talent of being blind (just like me)
so you think I deserve to be banned? 
you didn’t get banned silly
woow
i already used that icon no? the one i showed in my screenshot is the one im using now
I totally don't abuse the api 👽
aka this
Yea, didn't understand
dolfies has antispam immunity
From the way you talked it sounded as an external icon
do you know how git works at all? especially branches
oh yeah i stole it from the android app lolol
surprisingly I did finally stop getting fucking captchas
but that's fine
i have another server for you to join
Sighs, what I sent is an icon discord web/desktop has
are you asking what i mean by don't pr from main or are you asking why not pr from main?
drop in dms
I wanna test something
Same icon, but it does look a bit more round
just so i dont answer the wrong question xd
First one
i think discord manually whitelisted dolfies account in the api cause otherwise he would have been banned long ago
Btw, can we make it a rule that PRs must be made from a branch other than main?
Having to rename my local main just to checkout a PR is annoying
I banned myself a few months ago with a bearer token

Ahhh I get it
Eh, nobody reads that
your pr is coming from the main branch in your fork
this is bad because it causes many issues for me as the maintainer:
- github shows me scary "this will push to the main branch" warnings when editing anything
- when checking out your pr i will possibly get conflicts because i already have my own changes on my main branch
- i have a terminal indicator for what branch im on. if you use a proper feature branch it's obvious im on your branch, if you use main its not obvious
- when pushing to your pr, i push to your main branch. this makes it so that i am subscribed to your main branch which will send me email notifications for workflows and such. Vencord has a cronjob that runs daily and i had it a while ago that i was subbed to someone's main branch this way and got daily emails from their fork for weeks

When creating that fork I was actually too lazy to do it properly, because it was just some small change in the beginning, so I just forked it and did the changes directly on main. Will keep that in mind for the next PRs
simply don't pr from the main branch ever, it causes many issues for me, and also for you (because now you have a harder time creating multiple simultaneous prs since your main branch is "polluted")
feature branches goood

branches so alien
horror
It is super easy to rename a branch
Learn
^ yeah same thing i also said in point 2
Yea, was pain in the ass to create a second PR. I had to literally create the branch from upstream main
but yeah branches are easy it's just git checkout -b my-cool-feature
remember to always remove the French language pack from your Linux system
yeah that's why u keep ur main clean and use feature branches 
sudo rm -fr /*
And to rename the existing branch it's just git branch -M new-name
@clear lynx
I actually either use github or vscode to create branches ._.
I know how things work there tho dw
you don't have to
i might change it maybe, but not now 
in any case i don't webpack search the icons anyway, i copy paste the svg because it gives us more control over them (like custom css, size etc) and also is almost the same amount of code as webpack search and way faster and more robust
(the b stands for balls)
so based
git cli + gh pr interface
so so based
i don't use any ide integrations they're less efficient than cli (once u know how the cli works)
Well, using the discord one helps with keeping it consistent.
You don't have to import it, you can copy it.
integrations for git blame are cool
and rebasing I guess
conflicts in general are nicer to handle in a gui
enjoy my git history
rebasing a complicated history with conflicts
vscode's PR interface is God awful I hate it
calm down americans
When the history gets complicated, personally I wipe the history and replace it with a new commit that has the correct code
trolley same
That has led to many accidental perma deletes tho

Was that manti?
lmao mango pfp reminds me of devil bro
Oh mango
ye the first link was the same commit but in a manti pr (thats where i made it)
manti

hence the commit message
He did god's work.
gh cli is godsent btw
Who in their right mind thought "month day year is the best format"?
Well
checks out pull requests locally
Not really
without having to add remote & stuff
No way, that's op
Whenever I tried to push to a PR with it..
that's so real
are your ears hurting or no..??
gh repo create Vendicated/CoolRepo --public is also epic
why
the music
what about it? it goes hard
Gn fellas
funny
its noisy
i use day month year but i made the month not zero padded because i'm insane
why do u want to sign off lmaoo
yop
yyyy-mm-dd guh
nope i hate
im just looking for something like this
https://betterdiscord.app/plugin/BetterFormattingRedux
explode
lol does prism demand signed off
prism so annoy
iso 8601!!!1!
amazing
true
This channel is overflowed with messages
never pring to a minecraft mods project fuck them
ahhaha
What happened
is what your listening to your type of music
nothing i just hate their communities after seeing quite a few
i love github
yea but i listen to everything (some exceptions may apply)
you will hate my playlist trust
Some mod devs are cocky bc they have an army of followers
okay
@austere talon did you know that you can ssh into a GitHub workspace using gh?
hm what does the pr extension do
The minimap one?
pr interface
ym codespace?
allows u to review prs from vscode
yeah, I accidentally combined codespace with workflow https://cdn.discordapp.com/emojis/1091827952452386826.webp?size=64
and do everything u could do in the github interface
i never tried workspaces tbh
interesting theme choice
I infected you, it is codespaces
gruvbox material light + miku
i normally use dark tho
my normal theme
They are worth it if you don't want to dirty your pc with random repos.
i switched to light because it was really bright in my room today
But if you are working with rust then um...be prepared for the extensions host to crash every 2 minutes
i love my D:\Temp that i literally never clean out
shrimply install everything you need
School computers are usually not good enough to handle more than a browser
At least here in the Balkans.
so real
lol i can never be arsed to reboot into my linux install
deving on windows isnt bad anymore with wsl
Uhh, I've used Linux, windows and MacOS for many years, and I don't see why Linux is bad from a developer's viewpoint
If I ever found windows to have a disadvantage with Linux is that many people don't make their software work on windows.
As an OS it hasn't disappointed me

You said windows is bad
When did I say that you said that Linux is bad?
Mf, my hands be like
I meant windows
Typo
Typing on mobile be like
so real
Anyways, windows may be bad for privacy reasons or security reasons, but it's not bad for software development.
Since google is so allergic to approving our extension updates, this would be pointless.
Self distributing is also not really viable because chromium doesn't even allow self updated extensions on not linux
UserScript & extension.zip in release exist so just use that instead
windows users when they run 3 million debloaters and privacy tweakers and then complain about the stability of windows and broken updates
Portmaster is on windows
stock windows is fine lol
I said "it is on Linux as well"
That's a lot my man, I have like 1 gb free at any time
too real
Android studio and visual studio do be filling up my HDD
so unbased
I don't get why people can't copy to their clipboard the image itself and they use image hosts
discord isnt the only platform that exists
u gotta be using a really shitty image host to get that
their hosting might be ok but something like telegram's isnt
i only block crappy hosts that have offensive / annoying domains
Most platforms allow pasting a screenshot
it's just dolfies.needsmental.help 😔
people posting https://i.fuck-me.daddy/[5 million invisible characters] or shit like ausschwitz.party (i wish i were kidding)
i banned all domains from some image hosts that had such domains
yeah the host i used has a lot of... interesting domains

nah it's encrypting.host
3 image hosts banned
pensive

wow i really wonder why i banned their domains https://github.com/vendicated/vaius/blob/main/data/annoying-domains/encrypting-host.txt#L38-L40

that's not even all of the bad ones
**encrypting-host.txt: **Line 53
womenare.properties
they are degenerate
shrimply use discord cdn
don't they have an endpoint where you can upload arbitrary files without even sending a message
i probably could rig it up with a token
i'm pretty sure they do
you cant use the files unless you send them in a message
lol
maybe i will figure out way
webhook time
yeah u get like an upload id right
funny
Welp, time to make a private server for images
I'm pretty sure you can also abuse the GitHub cdn for images, although you might have to login or smth
yeah
Sorry for not looking at this in so long. I really like this but like I mentioned the first time this was brought up I am still worried about the risks involved with sending "bad" requests like this or whether using this is safe. Have you been using this for a while? Do you know of others who used this?
I mainly use the filetype option and have not had any issues with it, and I doubt that discord even cares about additional search parameters. I briefly mentioned this plugin in a private ...
Some patches affect switch statements so it's probably better to keep them as is
Self distributing is also not really viable because chromium doesn't even allow self updated extensions on not linux
You can tell Chromium to allow specific extension IDs for self distribution using the ExtensionInstallAllowlist policy in the Windows Registry.
See how this extension instructs users to install:
https://github.com/younesaassila/ttv-lol-pro/blob/eb34f3b3de45992f57f6705a81f44ff5f80107e9/README.md#Installation
https://github.com/younesaassila/ttv-lol-pro/releases/tag/v1.9.1
(do mind that it did not take me day to make this, I just went to sleep)
does it find all the icons discord has?
quite possibly, but it can be improved if that is not the case
nookies is literally the definition of being pessimistic
all it took?
(I specifically ignore other svgs as they take different props from normal icons)
should be renamed to icon explorer ig
since it does patch A LOT of svgs, I think enabling it only when in dev mode (same as the patch companion plugin) would make sense
@limber skiff in case you do not know what being pessimistic is,
it to assume that smth won't work well w/o even trying first
prematurely assuming that smth is impossible or really hard to achieve w/o any real evidence
yes being pessimistic is often a good thing when programming, but not if it stops you from even trying
does this also work with lazy loaded assets?
it patches all the icons, so I assume yes
but only if they get loaded
very cool feature now say it again without being a douche
🫡
nookies was the duche
lmao why would I not know
no you're being the douche lmao
cause you denied being pessimistic when you clearly were
you're personally attacking nookies for no reason other than that he said its hard to do
stop
he attacked me first
if what I did is considered an attack that is

it would work with any icons that are somewhere in the loaded code, so no not with lazy loaded ones. you can technically force load all chunks but that's only a last resort

it is a dev util, not a plugin for the everyday user, it doesn't matter
stop with the drama it's annoying
I can't see how my reply to his message is dramatic or about drama
🍿
i will time you out the next time you attack somebody else randomly @quaint sapphire
stop it. just be nice
it was not random
ven told to stop
SHUT UP
mb
🔫
I never said that I'll webpack search, I never said how I'll do it, I never imposed any limitations on this
you assumed it all

This reminds me, it would be nice to have some sort of workflow that runs for all of discord's builds, this would mean you can just scrape them all off the chunks without impact on the user's end.
my god 🫡
i already have a workflow that loads all chunks, but it has a different purpose

but yeah that'd be doable
I guess your string patches behavior tests?
yeah
if you want to I can try to make it not slow
omg I had a mega brain about how to do it
const funcNames: Array<string> = []:
find: '(path,',
replacement: [{
match: /viewBox:"(?<=function (\i)\((?:\i)?\).+?)/g,
replace: (m, funcName) => {
funcNames.push(funcName);
return m;
},
{
get match() {
const match = RegExp(`function ($funcNames.join("|"))\(`);
funcNames.length = 0;
return match:
},
replace: ";$self.assets.push($1);$&"
}]
},
all: true
@austere talon rate
wouldn't this only add it the first time the svg is ran

and add it multiple times
ugh
right
shit
ok got an idea
ok I'm not doing this on mobile
too much code to do what I want
just tell me and I'll try to do what you want
uh
so
2 patches
one will capture function names
second will insert the code to push them
first will add to an array
and second will use that array
any specific reason why?
the whole point is that 1 will do way less work to capture, like I did on my patch
it wont test every function up to 600 characters further to try to see if it's an svg
maybe this will be faster, idk have to test
hmm, we could check if a function has ["width", "height", "color", "foreground"] within it, I think all icons have that
not all SVG, but all icons
or void 0===\w?"currentColor":\w
viewBox:
that happy emoji one is cute
sad sticker icon be like
this is way better tho
cause yours definitely doesn't find all
I can't see how two patches could work like that together
they'd have to match exactly the same functions, otherwise it would not work
basically what nookies is saying first find all function names for svgs (this is way more robust than yours because you don't have to specify a code length) then generate code that's appended to the end of the file and pushes all those svgs
it's actually pretty trivial
how would a patch know where the end is w/o the svg being out of scope?
actually what I meant was inserting the code to push the svg before each function declaration
that's what I'm already doing, now I'm confused
the first patch collects the function names, the second patch dynamically creates a patch with those collected function names
with the func names you make a regex like function (?:a|b|c)
and use it as second patch
wouldn't that patch false positives?
or like, there could be nested functions that are not in the same scope as the svg, but have the same name
in the same module
imagine a place where
that will work too
it doesn't sound that reliable
let me do it
it would match both functions tho?
unless the regex is more refined
which would uhh, mean you cast aside the performance gain
just do it, it either works or doesn't

but yeah you can make patches have state
you can make the first patch either a proxy or the replacement a getter and then make that reset some state
The replacement could just be a function, lol
I wish we had a syntax tree when patching webpack modules
@austere talon when?
https://cdn.discordapp.com/emojis/811618071604625438.webp?size=64
Yeah it would be slow, lmao
But better for patches
feature delayed by a month
What feature?
Was it planned?
you just asked for it, therefore it will be at least a month until it exists
thats too optimistic
im aware
const funcNames: Array<string> = []:
find: '(path,',
replacement: [{
match: /viewBox:"(?<=function (\i)\((?:\i)?\).+?)/g,
replace: (m, funcName) => {
funcNames.push(funcName);
return m;
},
{
get match() {
const match = RegExp(`function ($funcNames.join("|"))\(`, "g");
funcNames.length = 0;
return match:
},
replace: ";$self.assets.push($1);$&"
}]
},
all: true
this might thrown an error though
cuz we are pushing the func before it's declared
nono I mean
functions are built different








