diff options
author | Nico <nico@d3sox.me> | 2022-10-25 10:53:06 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-25 10:53:06 +0200 |
commit | 559edbfffe4f694a0e89b9e41b72dd6a74b22f93 (patch) | |
tree | f5bccebc62afa5e9002d0b48e39e8843ad9fdf5b /src | |
parent | 6c3836240176eb6d174ed01281ff1dcfe5b8def3 (diff) | |
download | Vencord-559edbfffe4f694a0e89b9e41b72dd6a74b22f93.tar.gz Vencord-559edbfffe4f694a0e89b9e41b72dd6a74b22f93.tar.bz2 Vencord-559edbfffe4f694a0e89b9e41b72dd6a74b22f93.zip |
Fix vcDoubleClick, add support for stage channels (#158)
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/showHiddenChannels.tsx | 6 | ||||
-rw-r--r-- | src/plugins/vcDoubleClick.ts | 32 | ||||
-rw-r--r-- | src/utils/constants.ts | 4 |
3 files changed, 28 insertions, 14 deletions
diff --git a/src/plugins/showHiddenChannels.tsx b/src/plugins/showHiddenChannels.tsx index 25a2b54..0650cc4 100644 --- a/src/plugins/showHiddenChannels.tsx +++ b/src/plugins/showHiddenChannels.tsx @@ -17,6 +17,7 @@ */ import { Flex } from "../components/Flex"; +import { Devs } from "../utils/constants"; import { ModalContent, ModalFooter, ModalHeader, ModalRoot, ModalSize, openModal } from "../utils/modal"; import definePlugin, { OptionType } from "../utils/types"; import { Settings } from "../Vencord"; @@ -41,10 +42,7 @@ export default definePlugin({ name: "Average React Enjoyer", id: 1004904120056029256n }, - { - name: "D3SOX", - id: 201052085641281538n - }, + Devs.D3SOX, ], options: { hideUnreads: { diff --git a/src/plugins/vcDoubleClick.ts b/src/plugins/vcDoubleClick.ts index f2a33a4..3600ac1 100644 --- a/src/plugins/vcDoubleClick.ts +++ b/src/plugins/vcDoubleClick.ts @@ -27,18 +27,29 @@ const timers = {} as Record<string, { export default definePlugin({ name: "vcDoubleClick", description: "Join VCs via DoubleClick instead of single click", - authors: [Devs.Ven], + authors: [ + Devs.Ven, + Devs.D3SOX, + ], patches: [ { find: "VoiceChannel.renderPopout", - replacement: { - match: /onClick:function\(\)\{(e\.handleClick.+?)}/g, - // hack: this is not a react onClick, it is a custom prop handled by Discord - // thus, replacin this with onDoubleClick won't work and you also cannot check - // e.detail since instead of the event they pass the channel. - // do this timer workaround instead - replace: "onClick:function(){Vencord.Plugins.plugins.vcDoubleClick.schedule(()=>{$1}, e)}", - }, + // hack: these are not React onClick, it is a custom prop handled by Discord + // thus, replacing this with onDoubleClick won't work, and you also cannot check + // e.detail since instead of the event they pass the channel. + // do this timer workaround instead + replacement: [ + // voice channels + { + match: /onClick:(.*)function\(\)\{(e\.handleClick.+?)}/g, + replace: "onClick:$1function(){Vencord.Plugins.plugins.vcDoubleClick.schedule(()=>{$2}, e)}", + }, + // stage channels + { + match: /onClick:(\w+)\?void 0:this\.handleClick,/g, + replace: "onClick:$1?void 0:(...args)=>Vencord.Plugins.plugins.vcDoubleClick.schedule(()=>{this.handleClick(...args);}, args[0]),", + } + ], }, { find: 'className:"channelMention",iconType:(', @@ -50,7 +61,8 @@ export default definePlugin({ ], schedule(cb: () => void, e: any) { - const id = e.props.channel.id as string; + // support from stage and voice channels patch + const id = e?.id ?? e.props.channel.id as string; // use a different counter for each channel const data = (timers[id] ??= { timeout: void 0, i: 0 }); // clear any existing timer diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 30c07ba..30cf4dc 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -84,5 +84,9 @@ export const Devs = Object.freeze({ Nuckyz: { name: "Nuckyz", id: 235834946571337729n + }, + D3SOX: { + name: "D3SOX", + id: 201052085641281538n } }); |