#👾-core-development
1 messages · Page 24 of 1
bad

you will also merge this ven, trust my patches 😉
6418036 ViewIcons: Fix finding ImageModal and props pas... - Nuckyz
9602f52 Future proof Volume Booster to work with volume... - Nuckyz
is there a way to add your own plugins, that aren't a part of the built-in list?
180b155 Improve scuffed install error & help user resol... - Vendicated
This plugin aims to improve embeds for TikTok by using Britmoji/tiktxk, a CloudFlare worker which creates embeds that actually contain the video.
Works on the following URL formats:
Thanks for the effort, but I'm not accepting any more text replace plugins! We already have too many and there's way too many use cases for wanting to replace text like this. Instead, someone should make a generic text replace plugin where users can manually add rules
mrowt
The Discord Client automatically unmutes and undeafens the user when joining a call.
This plugin allows the user to stay muted and/or deafened when joining a call, and to automatically join any call or voice channel already muted and/or deafened.
I only now was able to see that #assets was hidden 
A reinstall fixed the issue for me!
epic megu help
is the rtc connecting issue too?
dang
it's so strange it happens more with fakenitro
there's no correlation I tried with fake nitro on and off and managed to reproduce it both times
yeah I never tested
people jump to blame client mods
just noticed more people blaming it and figured it kinda happened to me too
we will make a voice fix lol
Thanks for the effort, but I'm not accepting any more specific text replace plugins! We already have too many and there's way too many use cases for wanting to replace text like this. Instead, someone should make a generic text replace plugin where users can manually add rules
Would you be open to merging this plugin with the existing FxTwitter plugin by renaming the plugin and adding each site as its own boolean setting? That way a user wouldn't need to create/find their own patterns.
Skip dot files in root of plugin dirs.
Which previously would cause build to fail if say, .git/ existed in src/userplugins/.
None
None
Failed to load resource: the server responded with a status of 404 ()
None
None
Failed to load resource: the server responded with a status of 404 () ```
That doesn't fix the issue at hand: opiniated repetitive plugins
A generic text replace plugin would let users input any amount of matchers and their replacements. We could then have a channel in the Discord where people can post their rules for all sorts of things and people could just add the ones they want
i guess a separated git repo would be better to handle it instead of regex snippets on a discord channel. the plugin would fetch a list of regex matches from that repo, and then the user could choose which ones they want. the reason as this is better is because bad regex expressions could be sent by users, and without a good way to properly review them, maybe it could bring down user experience. other than that, the plugin could sort that list by popularity and by release, things not possible...
that's overly complicated and I don't think that would be relevant
goodluck ven
8a43e9b dev: Better errors when using Node < v18 - Vendicated
whats the point of this setting btw, why would you ever want to see unreads in a hidden channel
have you tested that Message Logger still works?
could you please add comments explaining what each individual patch does?
description: "Show a more useful message when several users are typing"
description: "Slash command to create speechbubble memes",
Sorry for only looking at this now!
Why not make the speechbubble part transparent?
It would also be cool to have the option to add it on the bottom, similar to esmBot
you can just use $self instead to refer to your plugin in patches
return shouldOverride || (s.mute && (e.guildId != null || this.settings.store.noAutoUnmute || (s.deaf && this.settings.store.noAutoUndeafen)));
have you tested that Message Logger still works?
not exactly since they were fairly simple changes
for now we can keep that setting
and if you could just make completely sure message logger works for me you can merge it
I'm not on pc anymore
actually eh no need to test
there is no way it's not working
I'm using both moment and timestamp on showhiddenchannels
I just made message logger import them from common
Why not make the speechbubble part transparent?
It's on my plan, I just got busy last week, but I'll do this, sure
what about the other mod ideas?
It would be cool to have a plugin that shows everyone with a specific role, similar to this plugin:
75050e7 ShowHiddenChannels: better ui, alternative disp... - Nuckyz
thank you! Superseded by #446
3f03eb1 fix: emojis with duplicate names failing to clone - MeguminSama
Emojis with duplicate names are locally called emojiName~n. The ~ is invalid in emoji names and causes the cloner to break.
83757b1 fix: emojis with duplicate names failing to clo... - MeguminSama
This plugin will send show a notice at the top of the screen (and a desktop notification if discord isn't focused) when a friend removes you or cancels their friend request to you and when you are removed from a group chat or a server.
This also fixes transitionTo not working (credit to the sun from the vencord discord server)
cb4c508 [SpotifyControls] Add option to show Controls o... - HypedDomi
importing from index is a really bad idea, since you risk running into a circular import which will lead to weird behaviour. Instead import from the settings file
you don't seem to persist these anywhere. Why not do that (DataStore is the best way to do that) so you can also notify for changes while Discord was closed?
25d32ce Settings: Fix plugin switch state not updating ... - Vendicated
5e87ac2 Make Windows Ctrl+Q feature optional - Vendicated
Tell us all about it.
Should also publish to chrome store finally
Request Agreement
- [X] This is not a support or plugin request
Unless I'm mistaken.
The installer puts the Vencord files on /root after requiring root privileges to access /opt . Then, when trying to launch discord, it craps itself because it does not have access to /root/.config/Vencord.
I also tried to set the VENCORD_USER_DATA_DIR variable, but nothing happened. I even put it inside install.sh script and still it didn't affect anything.
In the end I installed it to a /home/user/.config/Vencord folder and manually moved the app.asar folder to /opt...
don't run the installer as the root user, use the provided wrapper script or sudo/doas as a normal user
The installer already resolves the correct home dir based on SUDO_USER/DOAS_USER
https://github.com/Vencord/Installer/blob/180b15562636afbad9ca656b36af7a0107e3b84a/find_discord_linux.go#L38-L61 and panics if ran as root without either of those variables set. So the only way to have it install to /root is to run it with sudo or doas as the root user
so beautiful 😭
noleeks
hmmm
discord does not like channels that you can't view but can connect
you can click this and it opens the window
None
None
Failed to load resource: the server responded with a status of 404 ()
None
None
Failed to load resource: the server responded with a status of 404 () ```
gonna have to find where the logic that decides if those buttons will show up is
b2ecb02 Make Windows Ctrl+Q feature optional; add opt-i... - Vendicated
the installer chooses older directory which has an installation of discord bd which didn't go away upon using the bd installer to uninstall.


just delete the folder it mentions manually
yeah, deleting that folder, reopening discord and then trying fixed it.
i fixed the eslint issues, can you run the workflow again?
- Remove buttons like the invite button when hovering hidden channels (as they do not work correctly)
- Make hideUnreads false work with HiddenIconWithMutedStyle
- migrate to definePluginSettings
- Change hardcoded constants to webpack gathering
- Clean up some patches
- Other minor things
I run it as a non privileged user.
[iliq@PC-50418 ~]$ sh -c "$(curl -sS https://raw.githubusercontent.com/Vendicated/VencordInstaller/main/install.sh)"
Downloading Installer...
Wayland detected
Now running VencordInstaller
Do you want to run as root? [Y|n]
This is necessary if Discord is in a root owned location like /usr/share or /opt
> y
Running with sudo
VencordInstaller was run with root privileges, actual user is iliq
Looking up HOME of iliq
Actual HOME is /home/iliq
...
hmm, could you run echo $XDG_CONFIG_HOME and sudo sh -c 'echo $XDG_CONFIG_HOME' please?
that's the issue, thank you! Now the question is why your root user sets that variable (though that should be fixed by the installer)
if you still need a fix, sudo XDG_CONFIG_HOME="$XDG_CONFIG_HOME" ./VencordInstaller should fix it

god typing these is pain
I can probably help with that xd
wym
l = mt(e, [
"type",
"className",
"disabled",
"selectable",
"children",
"style",
]),
what does this do
is this like propsExceptThoseKeys
what component
FormText
looks like it's just a replacement for the spread operator?
const FormText = ({type, className, disabled, etc..., ...props}) => {}```
are those passed down to Text or smth
yeah
husking
it adds classname and style, and just {...props}
why not do /** @default {FormText.Types.DEFAULT} */
i think that works at least
xd
needs to be inside ComponentType<>
okay fixed them

now gotta type all of the rest

improb
makeWaitFor
- minified react error undefined isnt component type blah blah
+ Could not find Button
le simple

i found issue with that
o?
some components have props
wdym
isn't the user supposed to provide the props anyways
this should fix
Button.Sizes.SMALL
Button becomes LazyComponent which doesnt have SIzes prop
.

le epic fix moment
yop u love
love
doesnt seem to make a performance difference
even though every component is wrapped in a function now
MORE
did a funny
type FluxEvents = "MESSAGE_CREATE" | "ACTIVITY_INVITE_MODAL_OPEN" | "ACTIVITY_INVITE_MODAL_CLOSE" | "SHOW_KEYBOARD_SHORTCUTS" | "HIDE_KEYBOARD_SHORTCUTS" | "APPLICATION_COMMAND_SET_ACTIVE_COMMAND" | "CONNECTION_OPEN" | "CONNECTION_CLOSED" | "AUDIO_SET_MODE" | "PREMIUM_PAYMENT_MODAL_OPEN" | "PREMIUM_PAYMENT_MODAL_CLOSE" | "MESSAGE_LENGTH_UPSELL" | "POST_CONNECTION_OPEN" | "CHANNEL_SELECT" | "AGE_GATE_MODAL_OPEN" | "AGE_GATE_MODAL_CLOSE" | "AGE_GATE_SUCCESS_MODAL_OPEN" | "AGE_GATE_FAILURE_MODAL_OPEN" | "WINDOW_FOCUS" | "APP_STATE_UPDATE" | "LOGIN_SUCCESS" | "RTC_CONNECTION_VIDEO" | "AUDIO_SET_LOCAL_VIDEO_DISABLED" | "VOICE_CHANNEL_SELECT" | "CONNECTIONS_GRID_MODAL_SHOW" | "CONNECTIONS_GRID_MODAL_HIDE" | "LOGOUT" | "CHANNEL_DELETE" | "UNVERIFIED_GAME_UPDATE" | "GAME_ICON_UPDATE" | "CHECK_LAUNCHABLE_GAME" | "POGGERMODE_SETTINGS_UPDATE" | "POGGERMODE_TEMPORARILY_DISABLED" | "CHANNEL_CALL_POPOUT_WINDOW_OPEN" | "RTC_DEBUG_POPOUT_WINDOW_OPEN" | "PROFILE_CUSTOMIZATION_OPEN_PREVIEW_MODAL" | "MESSAGE_UPDATE" | "MESSAGE_DELETE" | "SPEAKING" | "GUILD_CREATE" | "CHANNEL_CREATE" | "RPC_NOTIFICATION_CREATE" | "ACTIVITY_JOIN" | "ACTIVITY_PIP_MODE_UPDATE" | "THERMAL_STATE_CHANGE" | "ACTIVITY_SCREEN_ORIENTATION_UPDATE" | "RELATIONSHIP_ADD" | "RELATIONSHIP_REMOVE" | "PRESENCE_UPDATES" | "PRESENCES_REPLACE" | "LOBBY_UPDATE" | "LOBBY_DELETE" | "LOBBY_MEMBER_CONNECT" | "LOBBY_MEMBER_UPDATE" | "LOBBY_MEMBER_DISCONNECT" | "LOBBY_MESSAGE" | "ENTITLEMENT_CREATE" | "ENTITLEMENT_DELETE" | "USER_ACHIEVEMENT_UPDATE" | "VOICE_CHANNEL_EFFECT_SEND" | "VOICE_STATE_UPDATES" | "SPEAK_TEXT" | "SPEAK_MESSAGE" | "STOP_SPEAKING" | "AUDIO_TOGGLE_SELF_DEAF" | "USER_SETTINGS_PROTO_UPDATE" | "USER_PROFILE_MODAL_OPEN" | "USER_PROFILE_MODAL_CLOSE" | "USER_REQUIRED_ACTION_UPDATE" | "CURRENT_USER_UPDATE" | "USER_SETTINGS_PROTO_ENQUEUE_UPDATE" | "USER_SETTINGS_PROTO_LOAD_IF_NECESSARY" | "IDLE" | "MESSAGE_REACTION_ADD" | "MESSAGE_REACTION_REMOVE" | "SIDEBAR_VIEW_CHANNEL" | "LAYER_PUSH" | "GUILD_FEED_ITEM_READ_ACK" | "STREAM_WATCH" | "STREAM_START" | "STREAM_CREATE" | "STREAM_UPDATE" | "STREAM_DELETE" | "STREAM_CLOSE" | "CALL_UPDATE" | "CHANNEL_UPDATES" | "MEDIA_ENGINE_VIDEO_STATE_CHANGED" | "RTC_CONNECTION_STATE" | "TYPING_STOP" | "TYPING_STOP_LOCAL" | "PREMIUM_REQUIRED_MODAL_OPEN" | "PREMIUM_REQUIRED_MODAL_CLOSE" | "OVERLAY_SET_INPUT_LOCKED" | "QUICKSWITCHER_SHOW" | "QUICKSWITCHER_HIDE" | "EMBEDDED_ACTIVITY_LAUNCH_FAIL" | "EMBEDDED_ACTIVITY_OPEN" | "EMBEDDED_ACTIVITY_CLOSE" | "EMBEDDED_ACTIVITY_INBOUND_UPDATE" | "EMBEDDED_ACTIVITY_DEFERRED_OPEN" | "RPC_APP_DISCONNECTED" | "STREAM_STOP" | "RUNNING_GAMES_CHANGE" | "MEDIA_ENGINE_SET_DESKTOP_SOURCE" | "MEDIA_ENGINE_PERMISSION" | "START_SESSION" | "CALL_CREATE" | "CALL_DELETE" | "AUDIO_TOGGLE_SELF_MUTE" | "AUDIO_TOGGLE_LOCAL_MUTE" | "PURCHASE_CONFIRMATION_MODAL_OPEN" | "PURCHASE_CONFIRMATION_MODAL_CLOSE" | "ANALYTICS_FEED_ITEM_SEEN" | "ANALYTICS_FEED_ITEM_UNSEEN" | "ANALYTICS_FEED_FLUSH" | "DRAWER_OPEN" | "DRAWER_CLOSE" | "EMBEDDED_ACTIVITY_FETCH_SHELF_SUCCESS" | "EMBEDDED_ACTIVITY_FETCH_SHELF_FAIL" | "INVITE_MODAL_OPEN" | "INVITE_MODAL_CLOSE" | "ACCESSIBILITY_SUPPORT_CHANGED" | "ACCESSIBILITY_COLORBLIND_TOGGLE" | "ACCESSIBILITY_SET_SATURATION";
owo
hm?
pain
maybe we should map the string to a type (containing the data the event sends/receives)
and just get people to add them as they get used, rather than having lots of redundant ones
also jesus thats a lot
i mean this is pretty useful
true..
and this
i mean its not like it'll get compiled into prod so there isn't much harm
definitely put it in its own file though xdd
i dont get one thing
m?
i guess it treats "async" functions differently
Hey something on this PR broke the Hide Muted Channels hiding muted hidden channels.
Just tested on Vencord 8a43e9b and it still works:
https://user-images.githubusercontent.com/5883538/214331072-4a0ec48e-8d58-4dc5-84cf-154cb1129cb4.mp4
However on Vencord 75050e7 and above it doesn't:
https://user-images.githubusercontent.com/5883538/214331439-d81a1a7b-e143-407a-899a-46f401b8c488.mp4
whats wrong here
idgi
why is it missing that prop
i will porobably just not the type
it pointless
whats the type of Dispatcher.subscribe
that
i just typed the event as any
no point typing that it has type property
not really useful
true
Hmmmm im really curious why Discord performs so poorly
central event handler that sequentially handles 1400 different events: 

🤨
nuckyz exploding prod
yes
moo
okay done i think
well besides
TODO: Type rest of components
if anyone wanst to help with that
fixed in
None
None
Failed to load resource: the server responded with a status of 404 () ```
None
None
Failed to load resource: the server responded with a status of 404 ()
ultra poggers
we love
u will love fully typed components
d628924 ShowHiddenChannels: More improvements (#454) - Nuckyz
find: ',"SEVERAL_USERS_TYPING","',
b2ecb02 Make Windows Ctrl+Q feature optional; add opt-i... - Vendicated
3427630 Fix Settings UI (Discord removed default margins - Vendicated
a38ac95 chore: Remove legacy workarounds - Vendicated
f19504f split up webpack commons into categories & type... - Vendicated
d628924 ShowHiddenChannels: More improvements (#454) - Nuckyz
among
merging main into branch moment
lol
A green throbber appears in the white screen after some seconds before it crashes
Vencord version: 1.0.6 (1.0 according to app manager)
Operating system: Android 5.1.1, not flashed
Device model: SM-J105B (Samsung J1 Mini)
Encryption enabled (whole device and SD card). Giving this information because I had some issues that made apps not work properly
Workarounds attempted:
- Disabling I2P and VPN.
- Disabling and changing Wi-Fi network. Disabling it, the throbber spins infinitely (t...
very likely you don't have a working webview or it's very outdated. Try checking logcat
we love broken webview version
same thing was causing my aliucord authorization thingy to crash
None
None
Failed to load resource: the server responded with a status of 404 ()
None
None
Failed to load resource: the server responded with a status of 404 () ```
Makes listeners async, so pre event listeners can wait for async operations to complete before sending messages.
This adds a toggle switch to the Vencord settings next to the frameless window toggle that allows the user to make their client have a transparent background.
The point of this setting is for custom themes that make use of being transparent, an example of this is my own custom theme as seen here:

This that might be interesting to improve upon this is the ability to change th...
very likely you don't have a working webview or it's very outdated.
Imgur videos and specific types of videos - which probably requires some type of codec I think (?) - won't play. I didn't look further on which types of videos won't play. These videos don't work in my integrated video viewer but work in something like VLC (which I'm looking for a smaller alternative). According to the app manager, "Android System WebView" is in version 95.0.4638.74 and the (app) size is 112MB for refere...
This is essentially ready now, just like usual the workflows aren't tested :I
Update README.md has to be the best feature added
Discord Account
Aleister#3982
What happens when the bug or crash occurs?
Updated once again an hour ago and when i click on a reaction i dont see it highlighted as reacted and the number doesnt change but when I hover over it it shows i've reacted.
1 react (not mine):

2 react (reacted and it doesnt update)
 ```
None
None
Failed to load resource: the server responded with a status of 404 () ```
adds two patches so Alt+Shift+Up/Down and Alt+Up/Down don't teleport you to the void accidentally
bruh
Makes the patches a bit harder to fail or patch the wrong thing
match: /(?<=getState\(\)\.channelId.{1,30}\(0,\i\.\i\)\(\i\))(?=\.map\()/,
replace: ".filter(t=>!$self.isHiddenChannel(t))"
match: /(?<=getChannel\(\i\);return null!=(?<channel>\i))(?=.{1,130}hasRelevantUnread\(\i\))/,
replace: "&&!$self.isHiddenChannel($<channel>)"
co-authored-by fail
you gotta remove this from the end
None
None
Failed to load resource: the server responded with a status of 404 ()
None
None
Failed to load resource: the server responded with a status of 404 () ```
- [ ] put actions as cover art hover overlay
- [ ] use intersection for resource data
- [ ] tooltip unavailable tracks
- [ ] batch track/album requests with a debounce
- [ ] add embed preview in settings
h
why not use the channel type from discord-types?
why do you only show the topic of forum channels and not regular channels?
replace: "$1$self.setContext($2)$3"
replace: "$1,$self.render()"
what's the point of this state? This does nothing
072ad3d feat(settings): Add the ability to make the win... - Kaydax
I would have to the match the url from the module which isn't exported and is lazy loaded
misses some types related to forums
Regular channels already show the topic on the header, I'm not removing that component. However forum channels do not show it there
Please do not use [\w\W] just use ., also always use the non greedy modifier. You also seem to just match to the next function, hardcoding that function's name. this is a bad idea and you should find a better way, what if they change order of their methods?
export type SendListener = (channelId: string, messageObj: MessageObject, extra: MessageExtra) => Promiseable<void | { cancel: boolean; }>;
Just make the promise aspect optional instead of forcing plugins to make their listeners async
could just Channel & { myChannelExtension?(): void }
6971507 browser ext: change applications to browser_spe... - Vendicated
Done, also fixed a typo I found in the process lol
None
None
Failed to load resource: the server responded with a status of 404 ()
None
None
Failed to load resource: the server responded with a status of 404 () ```
no idea why restore didnt work. In any case i fixed it now
Aight this is for sure ready now, there is nothing else to add
Ok state itself was useless, but invite guild needs to be captured for button to open the correct guild instead of whatever was rendered last
basically it lets you organize your gifs / images into collections
would love some feedback and improvements
todo:
- [ ] option to remove a collection
- [ ] option to remove a gif from collection
- [ ] use data store instead of localstorage
- [ ] figure out width and height of gifs :|
waiting on merge 
thanks that helped
@austere talon merge 460 im dying
moment seems to follow Discord thresholds and refuses to change its settings (it turns 30 seconds into a few seconds)
And I couldn't find a way to do it with Intl
I'd like to suggest a plugin similar to Complete Timestamps. I personally really like this plugin, as it shows the absolute timestamps (2023-01-30 00:06), not the relative ones (Today at 00:06), which makes it easier to navigate through old(er) messages :)
I'd also like something like this, however I'd also like to be able to only customise the format of what appears in the tooltip when hovering over timestamps. Perhaps this could be a setting of modifying only the tooltip or the relative text too?
None
None
Failed to load resource: the server responded with a status of 404 () ```
None
None
Failed to load resource: the server responded with a status of 404 () ```
If this is implemented, please do it with a toggle. Using unavailable reactions is useful to quickly and stealthly check if you're blocked by someone (as the blocked user check that shakes the screen has priority over the emoji availability check).
None
None
Failed to load resource: the server responded with a status of 404 ()
None
None
Failed to load resource: the server responded with a status of 404 () ```
Probably fixes other languages too, idk. I also made it use nicknames in guilds
@dapper tiger you will make it use friend nicknames on dms too
how
also i didnt even know friend nicknames were a feature
i thought they were just abandoned experiment
they released it
I can help you test it if you need
add me, set a friend nickname for me and I will type for you
aight
find: '"SEVERAL_USERS_TYPING":"',
do you even need this patch now
yes, crashes on English US without it. do you love?
@austere talon whats !
non null assertion
guildId could be null though
wouldnt it be better to not perform getNick when its null
yeah but I guess it will return undefined in that case
so you can just ignore it
idk that's ven suggestion
guhh

yes
it covers the case that guild id is null
Plugin to bypass 8mb upload limit
You can't bypass the upload limit without getting Nitro.
Unless you mean uploading files to a third-party service, in which case, that's not really "bypassing"
I don't know if you can call this a "bypass" but you can split a file into smaller than 8mb segments and reassemble upon download.
There's a plugin like this for betterdiscord here: https://github.com/ImTheSquid/SplitLargeFiles

why in the world
what the fuck why
this is terrible just upload to any file host
Was working on a plugin to upload to external file servers, but abandoned it. You can use it as a 3rd party plugin, but you probably shouldn't use sharex, just stick to gofile and file.io. other than external uploads, can't really bypass (and splitting a file is so stupid for so many reasons)
So i can assume this type of plugin won't be implemented ?
judging from the response you got it most likely wont be lol
@austere talon i make plugin that uploads to file host
would you love
oh my god quit playing ow
addiction
why
try having no nitro for 48 years
hop on sharex
hop on flameshot
nop
hop on 
@austere talon guh you will merge https://github.com/Vendicated/Vencord/pull/460
None
None
Failed to load resource: the server responded with a status of 404 ()
ReverseImageSearch (had no effect):
ID: 386239
Match: /(?<props>.).onHeightUpdate.{0,200}(.)=(.)=.\.url;.+?\(null!=\3\?\3:\2[^)]+/
MessagePopoverAPI (had no effect):
ID: 415342
Match: /\?(?<makeButton>[A-Za-z_$][\w$]*)\(.{1,35}\.Messages\.CONFIGURE.+?message:(?<message>[A-Za-z_$][\w$]*).+?children:\[/
None
Failed to load resource: the server responded with a status of 404 () ```
EW AGAIN
love
why didnt u figure it out with moment
wasnt moment literally made for this
It doesn't work
I spent an hour trying to do it with moment
No matter what settings I tried to apply it kept making 5 seconds turn into a few seconds
which is not what I want
I don't want time like that
I want it to be 47 minutes and 18 seconds
Yes I know I looked at something called durations
and I as I said it refused to work the way I wanted
I still need to add commas and the "and"
like if something isn't exact it's gonna be for example 2 years, 4 months, 1 day, 5 hours, 7 minutes and 8 seconds
var dur = wp.Common.moment.duration(182810281)
var didFunny = false;
console.log(["years", "months", "weeks", "days", "hours", "minutes", "seconds"].reduce((full, unit, i, arr) => {
const x = dur[unit]();
if (x > 0 || didFunny) {
if (didFunny)
full += unit === "seconds" ? ", and " : ", ";
full += `${x} ${unit}`;
didFunny = true;
}
return full;
}, ""))
just use this
2 days, 2 hours, 46 minutes, and 50 seconds
result
uhh to be honest I made chat gpt make it
I was lazy
ok hold on I will switch to it
actually u dont need the didFunny
grr you aren't supposed to only add the and after seconds
function formatTime(ms: number) {
const dur = moment.duration(ms);
return ["years", "months", "weeks", "days", "hours", "minutes", "seconds"].reduce((res, unit) => {
const x = dur[unit]();
if (x > 0 || res.length) {
if (res.length)
res+= unit === "seconds" ? ", and " : ", ";
res+= `${x} ${unit}`;
didFunny = true;
}
return res;
}, "")
}
it's supposed to always end with end
wdym
2 hours and 1 minute
wp.Common.moment().fromNow()
SO DUMB
let me turn on my pc
do a time that would output exactly 2 hours and 1 minute
idk if this is fully correct but probably
🤨
if u dont want the 0 seconds u can just alter it
but it feels weird to have gaps
like 2 weeks and 3 minutes would feel weird imo
i prefer 2 weeks, 0 days, and 3 minutes
aight
I will make one simple change to only add s if it's different than 1
yeah
eh can you do it for me and change on my branch
it's probably faster than me doing it
function formatTime(ms: number) {
const dur = moment.duration(ms);
return ["years", "months", "weeks", "days", "hours", "minutes", "seconds"].reduce((res, unit) => {
const x = dur[unit]();
if (x > 0 || res.length) {
if (res.length)
res+= unit === "seconds" ? ", and " : ", ";
res+= `${x} ${x === 1 ? unit.slice(0, -1) : unit}`;
didFunny = true;
}
return res;
}, "")
}
ok sure
never
oop you left a didFunny there
function(props) {
const { x, y, z } = props;
}```
what caused it
0
the 0
😰
im fixing rn
const { foo: { bar } = {} } = {}
jumpscare
it dosnt work for voice channels
@limber skiff
bro i cant find a channel to test formatDuration
because you're misusing react
you should never call react components as plain functions
it will break hooks and other things

always use React.createElement or jsx
btw the asset url is safe to use
the path is just md5 hash of the file
so stable
It did change once
that's why I kept a comment saying exactly where it is found
btw this is how it will look if it errors
not pretty but not worth it to make it look better
I removed the noop
aight
cause error info is more useful than nothing rendered
true
I would only noop if it's either not very relevant (not in the foreground, like a button in the chat bar) or very small so having a codeblock would be ugly
👍
no???
On Tue, 31 Jan 2023 at 20:14, SimaoFonseca1 @.***>
wrote:
So i can assume this type of plugin won't be implemented ?
—
Reply to this email directly, view it on GitHub
https://github.com/Vendicated/Vencord/discussions/464#discussioncomment-4833270,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJJ7XQQ55FEBNCSPKJITCRLWVFQC5ANCNFSM6AAAAAAUMW6UJI
.
You are receiving this because you commented.Message ID:
@.***>
github mail trolls again
if only discord was decent and supported multi level blockquotes
you say that, as if anything with discord is decent
ain't no way
I swear why does when I test it everything works correctly
what I changed about it shouldn't have changed the functionality
@austere talon I will cry discord does not like to show me the issues when I test
I didn't touch the path?
🤨
lmao I don't know how that happened
u will fix
description: "Also send a desktop notification when discord is unfocused",
why not just ```suggestion
export default definePluginSettings({
has someone tested https://github.com/Vendicated/Vencord/pull/450
it looks good mostly
but testing that kinda pain
seems to work pretty well but the top banners are a really bad way to notify for this imo since they lack pfp capabilities and it's just ugh. I've been planning to implement neat in-app notifications for a while now
instead of using the context variable, doesn't this patch have access to the guild object? If so, you should pass it as prop, global variables should be a last resort
yeah its finished :D
i forgort to say it finished was whoops
okay cool, wasn't so sure because your last commits all sound like this is a WIP
this is a really cool plugin btw, but now write an AI that will sort my ~200 favourited gifs into collections
I would just show a Toast for this, you can find many examples of toasts in the codebase
crap i forgot about that 1 sec
thanks
what's the point of checking length one line above if you're not gonna check here?
return new URL(url).pathname.split(".").pop();
you need to depend on the MenuItemDeobfuscatorApi plugin to use context menus
ok there seems to be an issue with the menu. target is undefined so i cant get the height and widths of the gif. ima try fix it gimme a sec
8b40760 fix(showHiddenChannels): revert lock icon to co... - D3SOX
oooooh didnt know that
that might be the issue
(performance has been supported in all relevant browsers for ages now so this is obsolete)
why not make this a setting, allowing people to use a custom url?
ReverseImageSearch (had no effect):
ID: 386239
Match: /(?<props>.).onHeightUpdate.{0,200}(.)=(.)=.\.url;.+?\(null!=\3\?\3:\2[^)]+/
MessagePopoverAPI (had no effect):
ID: 415342
Match: /\?(?<makeButton>[A-Za-z_$][\w$]*)\(.{1,35}\.Messages\.CONFIGURE.+?message:(?<message>[A-Za-z_$][\w$]*).+?children:\[/
None
ReverseImageSearch (had no effect):
ID: 386239
Match: /(?<props>.).onHeightUpdate.{0,200}(.)=(.)=.\.url;.+?\(null!=\3\?\3:\2[^)]+/
MessagePopoverAPI (had no effect):
ID: 415342
Match: /\?(?<makeButton>[A-Za-z_$][\w$]*)\(.{1,35}\.Messages\.CONFIGURE.+?message:(?<message>[A-Za-z_$][\w$]*).+?children:\[/
None
bad
ven tries not to go insane challenge (impossible)
uh
mm
u will fix
why didn't it cut off hours and minutes
epic regex fail
Also wtf is 1 week 7 days lmao
it's all broken 
502'd
github needs to stop doing this man
github needs to 502 internally so that *** turns into real token
this pr is BAssed as fucK
4/5
seems to work pretty well but the top banners are a really bad way to notify for this imo since they lack pfp capabilities and it's just ugly. I've been planning to implement neat in-app notifications for a while now
i agree it would be nice to have an in-app notification system but the main reason i chose top banners was because people often miss in-app notifications if they have discord open on one screen while doing something else. top banners will stay on the screen until dismissed o...
please speedrun merge 🙏
could just use permament notification then
see pr i just opened for what it will look like approximately
well its not done yet
when its done then
i wonder why a notification API if discord has a toast api
considering even more that it accepts custom components
it sucks
None
None
None
None
green
WDYM IT STILL FAILED
same
4172d7c Make hovering the notification pause timer - Vendicated
777a661 make plain text less crammed - Vendicated
soon: "changed font to best font - Vendicated"
best font being https://github.com/MeguminSama/megufont
177136c make notification color real - Vendicated
f95520c Add notification settings (TODO: implement & se... - Vendicated
7366e6b Add native notif setting (also TODO) - Vendicated
margin: 0.5rem 0 0;
px evil
70be583 feat: tweak notification appearance (#468) - xafn
097f6f2 Update src/api/Notifications/styles.css - Vendicated
whats up with these unnecessarily verbose selectors, just .spotimbed-dismissed::after shoul be enough
Your mom
i think i was anticipating other things to be dismissable but
not neede
i can prob remove this
if i merge
cus ven sent that rule to oblivion
lerp
None
None
None
None
Would love to see this be done
None
None
None
None
not even kidding i literally don't know......
okay I have no idea what you're asking, please read the README and if you can't figure it out join our support server
i should've clarified which "release" but alright
ig he meant which installed version of discord he should install Vencord to
Problem? 
users when they forget this is venchOrd server first and Vencord second
me omw to star and fork all your repos
None
None
None
None
- playing an embed should pause other embeds
- it would be useful to have a setting to launch spotify:// uris instead of https urls to open in app
- clicking a specific song in an album should play that song
seems like the "this song won't be playable" doesn't work for albums

it is also not very intuitive right now, so a tooltip might also help
also idk what happened here but

why in the world did u add milliseconds who cares about that
- it would be useful to have a setting to launch spotify:// uris instead of https urls to open in app
did u look at the settings xd
everything else so trueee
did u look at the settings xd
guh i didnt scroll so i didnt see other settings. Why is market a thing, isn't there a way to do that by ip
because u have to specify a market in the requests for song relinking to work, basically if you send an old spotify link from your saves theres a somewhat noticeable change that the label has reuploaded it and it has a different ID now, it wont redirect u to the new one unless u give it a market, i guess i could make a request to some ip for the default value but that sounds weird
whats the danger of running the installer as Admin?
It messes with the permissions of the files. There is no reason to need to run it as admin.
Giving admin rights to a program that is not designed to work with admin rights could lead to the loss of important files.
For example when running cmd as admin the current directory is usually C:/Windows/System32 (for whatever fucked up reason microsoft decided to do that), running programs with that as the current directory is dangerous and reckless.
In this case that isn't an issue, but you should never mess with system files.
Also, the installer downloads some files off github,...
but why can you run linux installer with root..? :thinking:
Checkmate liberals
argh. i was about to answer it and then it was closed
anyways, heres my planned answer: its not "why you can run with sudo", it is "why you HAVE to run with sudo". discord and other programs (and flatpaks installed without the --user flag) are stored in a folder on the root of the directory, that needs sudo to access, meaning that no apps can be installed, edited or removed without sudo. on windows it is stored in AppData _(mostly)_, a place inside the user's directory.
None
None
None
None
wouldn't this always use the singular? should use plural here if applicable imo. Why not just use the single letter form, i doubt there will ever be a case where it only says month or mins
None
None
None
None
TRUEE
why does that webhook (i assume)
sends daily reports
instead of just doing their reports in github or smth
and doing when a commit is sent
so it doesn't spam this channel
so that it catches discord updates
no it does that every so often to see if there are any updates needed
ah
wait what?
wdym by updates?
like if it does an check at a specific time to see if the patches are still working on the latest changes to discord
changes to discord code that broke our plugins
or if there is some internal client that needs to be updated every so often
idk if its a specific time but its every so often
**reportBrokenPlugins.yml: **Lines 1-6
name: Test Patches
on:
workflow_dispatch:
schedule:
# Every day at midnight
- cron: 0 0 * * *
ah
This plugin addition adds additional capabilities to our music app Cider by allowing it to use the "Listening" activity type, more will likely be added down the road as Discord matures or we deem more RPC features suitable.
This does not interfere with other plugins/apps outside of potentially Cider Rich Presence when combined with other global modifiers.
It was fun collaborating with you all in the Discord server...
what if we make richerCider depend on timebarallcomponents
so it applies that patch too
maybe turn that into an api 
maybe explain more thoroughly what cider even is because I assume most people don't know
Yeah fair, ill update the description.
None
None
None
None
Show when a user has an activity and which kind it is
~https://github.com/Neodymium7/BetterDiscordStuff/tree/main/ActivityIcons
Show when a user has an activity and which kind it is on statuses
~https://github.com/Neodymium7/BetterDiscordStuff/tree/main/ActivityIcons
None
None
None
None
@austere talon what if I supersede that PR by a plugin that lets u change activity types or names of any activity
cuz I literally use the latter already
Should be nice and tidy now, thanks for the pointers!
We're primarily making this to expand on later with Cider 2.x as we wanna add a few more things to it once we're ready to implement
We have animated artwork being worked on for RPC so that'll make the cut in there for example, we also want to add our own similar “Spotify Embed” and playback controls down the road.
Will there be the ability in the future for the message logger to be able to permanently log messages? Like if I restart the app, all the logged messages disappear but it would be very beneficial if they still stayed.
I believe what your looking for is called a Screenshot, you can screenshot a deleted message using the following keybinds Win+Shift+S on Windows and CMD + Shift + 4 on macOS.











