aboutsummaryrefslogtreecommitdiff
path: root/src/lib/extensions/discord.js/ExtendedUser.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/extensions/discord.js/ExtendedUser.ts')
-rw-r--r--src/lib/extensions/discord.js/ExtendedUser.ts35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/lib/extensions/discord.js/ExtendedUser.ts b/src/lib/extensions/discord.js/ExtendedUser.ts
new file mode 100644
index 0000000..556ab85
--- /dev/null
+++ b/src/lib/extensions/discord.js/ExtendedUser.ts
@@ -0,0 +1,35 @@
+import { User, type Partialize } from 'discord.js';
+
+declare module 'discord.js' {
+ export interface User {
+ /**
+ * Indicates whether the user is an owner of the bot.
+ */
+ isOwner(): boolean;
+ /**
+ * Indicates whether the user is a superuser of the bot.
+ */
+ isSuperUser(): boolean;
+ }
+}
+
+export type PartialBushUser = Partialize<ExtendedUser, 'username' | 'tag' | 'discriminator' | 'isOwner' | 'isSuperUser'>;
+
+/**
+ * Represents a user on Discord.
+ */
+export class ExtendedUser extends User {
+ /**
+ * Indicates whether the user is an owner of the bot.
+ */
+ public override isOwner(): boolean {
+ return client.isOwner(this);
+ }
+
+ /**
+ * Indicates whether the user is a superuser of the bot.
+ */
+ public override isSuperUser(): boolean {
+ return client.isSuperUser(this);
+ }
+}