aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-06-01 17:22:51 -0400
committerIRONM00N <64110067+IRONM00N@users.noreply.github.com>2022-06-01 17:22:51 -0400
commitd7099571b90c4211f90089bb41e90b0a08b86112 (patch)
treeaa9cda0908fa37d96c036a6384d35f4b627bd5be /src/lib
parentcb6368c78c2c3cdc0ff63be600750e81f815ce8c (diff)
downloadtanzanite-d7099571b90c4211f90089bb41e90b0a08b86112.tar.gz
tanzanite-d7099571b90c4211f90089bb41e90b0a08b86112.tar.bz2
tanzanite-d7099571b90c4211f90089bb41e90b0a08b86112.zip
fix: remove user allowed mentions
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/extensions/discord-akairo/BushClient.ts2
-rw-r--r--src/lib/utils/AllowedMentions.ts82
2 files changed, 63 insertions, 21 deletions
diff --git a/src/lib/extensions/discord-akairo/BushClient.ts b/src/lib/extensions/discord-akairo/BushClient.ts
index ac4de5f..db0ad91 100644
--- a/src/lib/extensions/discord-akairo/BushClient.ts
+++ b/src/lib/extensions/discord-akairo/BushClient.ts
@@ -217,7 +217,7 @@ export class BushClient<Ready extends boolean = boolean> extends AkairoClient<Re
activities: [{ name: 'Beep Boop', type: ActivityType.Watching }],
status: 'online'
},
- allowedMentions: AllowedMentions.users(), // No everyone or role mentions by default
+ allowedMentions: AllowedMentions.none(), // no mentions by default
makeCache: Options.cacheWithLimits({}),
failIfNotExists: false,
rest: { api: 'https://canary.discord.com/api' }
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
};
}
}