From 08d6d36ba125b0a3f8504cbb1e85c316fe996c81 Mon Sep 17 00:00:00 2001 From: thororen1234 <78185467+thororen1234@users.noreply.github.com> Date: Tue, 30 Jul 2024 18:21:43 -0400 Subject: [PATCH] @Someone --- src/equicordplugins/atSomeone/index.ts | 53 ++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/equicordplugins/atSomeone/index.ts diff --git a/src/equicordplugins/atSomeone/index.ts b/src/equicordplugins/atSomeone/index.ts new file mode 100644 index 00000000..193c3888 --- /dev/null +++ b/src/equicordplugins/atSomeone/index.ts @@ -0,0 +1,53 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2024 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import { addPreSendListener, removePreSendListener } from "@api/MessageEvents"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { ChannelStore, GuildMemberStore, SelectedChannelStore, SelectedGuildStore } from "@webpack/common"; + +export default definePlugin({ + name: "atSomeone", + authors: [Devs.Joona], + description: "Mention someone randomly", + patches: [ + { + find: ".LAUNCHABLE_APPLICATIONS;", + replacement: [ + { + match: /&(\i)\(\)\((\i),\i\(\)\.test\)&&(\i)\.push\(\i\(\)\)/g, + replace: "$&,$1()($2,/someone/.test)&&$3.push({text:'@someone',description:'Mention someone randomly'})" + }, + ], + }, + { + find: "inQuote:", + replacement: { + match: /\|Clyde/, + replace: "$&|someone" + } + } + ], + start() { + this.preSend = addPreSendListener((_, msg) => { + msg.content = msg.content.replace(/@someone/g, () => `<@${randomUser()}>`); + }); + }, + + stop() { + removePreSendListener(this.preSend); + } +}); + +const randomUser = () => { + const guildId = SelectedGuildStore.getGuildId(); + if (guildId === null) { + const dmUsers = ChannelStore.getChannel(SelectedChannelStore.getChannelId()).recipients; + return dmUsers[~~(dmUsers.length * Math.random())]; + } + const members = GuildMemberStore.getMembers(guildId); + return members[~~(members.length * Math.random())].userId; +};