aboutsummaryrefslogtreecommitdiff
path: root/src/lib/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/utils')
-rw-r--r--src/lib/utils/AllowedMentions.ts82
1 files changed, 62 insertions, 20 deletions
diff --git a/src/lib/utils/AllowedMentions.ts b/src/lib/utils/AllowedMentions.ts
index 7a377be..400da76 100644
--- a/src/lib/utils/AllowedMentions.ts
+++ b/src/lib/utils/AllowedMentions.ts
@@ -1,51 +1,93 @@
import { type MessageMentionOptions, type MessageMentionTypes } from 'discord.js';
+/**
+ * A utility class for creating allowed mentions.
+ */
export class AllowedMentions {
+ /**
+ * Whether @everyone and @here should be mentioned.
+ */
public everyone: boolean;
+
+ /**
+ * Whether users should be mentioned.
+ */
public users: boolean;
+
+ /**
+ * Whether roles should be mentioned.
+ */
public roles: boolean;
- public constructor(users = true, roles = false, everyone = false) {
+ /**
+ * Whether the author of the Message being replied to should be mentioned.
+ */
+ public repliedUser: boolean;
+
+ /**
+ * @param users Whether users should be mentioned.
+ * @param roles Whether roles should be mentioned.
+ * @param everyone Whether @everyone and @here should be mentioned.
+ * @param repliedUser Whether the author of the Message being replied to should be mentioned.
+ */
+ public constructor(users = true, roles = false, everyone = false, repliedUser = true) {
this.everyone = everyone;
this.roles = roles;
this.users = users;
+ this.repliedUser = repliedUser;
}
- public static none(): MessageMentionOptions {
- return { parse: [] };
+ /**
+ * Don't mention anyone.
+ * @param repliedUser Whether the author of the Message being replied to should be mentioned.
+ */
+ public static none(repliedUser = true): MessageMentionOptions {
+ return { parse: [], repliedUser };
}
- public static all(): MessageMentionOptions {
- return {
- parse: ['everyone', 'roles', 'users']
- };
+ /**
+ * Mention @everyone and @here, roles, and users.
+ * @param repliedUser Whether the author of the Message being replied to should be mentioned.
+ */
+ public static all(repliedUser = true): MessageMentionOptions {
+ return { parse: ['everyone', 'roles', 'users'], repliedUser };
}
- public static users(): MessageMentionOptions {
- return {
- parse: ['users']
- };
+ /**
+ * Mention users.
+ * @param repliedUser Whether the author of the Message being replied to should be mentioned.
+ */
+ public static users(repliedUser = true): MessageMentionOptions {
+ return { parse: ['users'], repliedUser };
}
- public static everyone(): MessageMentionOptions {
- return {
- parse: ['everyone']
- };
+ /**
+ * Mention @everyone and @here.
+ * @param repliedUser Whether the author of the Message being replied to should be mentioned.
+ */
+ public static everyone(repliedUser = true): MessageMentionOptions {
+ return { parse: ['everyone'], repliedUser };
}
- public static roles(): MessageMentionOptions {
- return {
- parse: ['roles']
- };
+ /**
+ * Mention roles.
+ * @param repliedUser Whether the author of the Message being replied to should be mentioned.
+ */
+ public static roles(repliedUser = true): MessageMentionOptions {
+ return { parse: ['roles'], repliedUser };
}
+ /**
+ * Converts this into a MessageMentionOptions object.
+ */
public toObject(): MessageMentionOptions {
return {
parse: [
...(this.users ? ['users'] : []),
...(this.roles ? ['roles'] : []),
...(this.everyone ? ['everyone'] : [])
- ] as MessageMentionTypes[]
+ ] as MessageMentionTypes[],
+ repliedUser: this.repliedUser
};
}
}