Vencord/src/plugins/noReplyMention.tsx

59 lines
1.9 KiB
TypeScript

/*
* Vencord, a modification for Discord's desktop app
* Copyright (c) 2022 Vendicated and contributors
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import { Settings } from "@api/settings";
import { Devs } from "@utils/constants";
import definePlugin, { OptionType } from "@utils/types";
interface Reply {
message: {
author: {
id: string;
};
};
}
export default definePlugin({
name: "NoReplyMention",
description: "Disables reply pings by default",
authors: [Devs.DustyAngel47, Devs.axyie],
options: {
exemptList: {
description:
"List of users to exempt from this plugin (separated by commas)",
type: OptionType.STRING,
default: "1234567890123445,1234567890123445",
},
},
shouldMention(reply: Reply) {
return Settings.plugins.NoReplyMention.exemptList.includes(
reply.message.author.id
);
},
patches: [
{
find: "CREATE_PENDING_REPLY:function",
replacement: {
match: /CREATE_PENDING_REPLY:function\((.{1,2})\){/,
replace:
"CREATE_PENDING_REPLY:function($1){$1.shouldMention=Vencord.Plugins.plugins.NoReplyMention.shouldMention($1);",
},
},
],
});