aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNico <nico@d3sox.me>2022-10-25 10:53:06 +0200
committerGitHub <noreply@github.com>2022-10-25 10:53:06 +0200
commit559edbfffe4f694a0e89b9e41b72dd6a74b22f93 (patch)
treef5bccebc62afa5e9002d0b48e39e8843ad9fdf5b /src
parent6c3836240176eb6d174ed01281ff1dcfe5b8def3 (diff)
downloadVencord-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.tsx6
-rw-r--r--src/plugins/vcDoubleClick.ts32
-rw-r--r--src/utils/constants.ts4
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
}
});