aboutsummaryrefslogtreecommitdiff
path: root/src/lib/extensions/discord.js/BushClientUser.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/extensions/discord.js/BushClientUser.ts')
-rw-r--r--src/lib/extensions/discord.js/BushClientUser.ts98
1 files changed, 98 insertions, 0 deletions
diff --git a/src/lib/extensions/discord.js/BushClientUser.ts b/src/lib/extensions/discord.js/BushClientUser.ts
new file mode 100644
index 0000000..a9a47f9
--- /dev/null
+++ b/src/lib/extensions/discord.js/BushClientUser.ts
@@ -0,0 +1,98 @@
+import type {
+ ActivityOptions,
+ Base64Resolvable,
+ BufferResolvable,
+ ClientPresence,
+ ClientUser,
+ ClientUserEditData,
+ PresenceData,
+ PresenceStatusData
+} from 'discord.js';
+import { BushUser } from './BushUser';
+
+/**
+ * Represents the logged in client's Discord user.
+ */
+export declare class BushClientUser extends BushUser implements ClientUser {
+ /**
+ * If the bot's {@link ClientApplication.owner Owner} has MFA enabled on their account
+ */
+ public mfaEnabled: boolean;
+
+ /**
+ * Represents the client user's presence
+ */
+ public readonly presence: ClientPresence;
+
+ /**
+ * Whether or not this account has been verified
+ */
+ public verified: boolean;
+
+ /**
+ * Edits the logged in client.
+ * @param data The new data
+ */
+ public edit(data: ClientUserEditData): Promise<this>;
+
+ /**
+ * Sets the activity the client user is playing.
+ * @param name Activity being played, or options for setting the activity
+ * @param options Options for setting the activity
+ * @example
+ * // Set the client user's activity
+ * client.user.setActivity('discord.js', { type: 'WATCHING' });
+ */
+ public setActivity(options?: ActivityOptions): ClientPresence;
+ public setActivity(name: string, options?: ActivityOptions): ClientPresence;
+
+ /**
+ * Sets/removes the AFK flag for the client user.
+ * @param afk Whether or not the user is AFK
+ * @param shardId Shard Id(s) to have the AFK flag set on
+ */
+ public setAFK(afk: boolean, shardId?: number | number[]): ClientPresence;
+
+ /**
+ * Sets the avatar of the logged in client.
+ * @param avatar The new avatar
+ * @example
+ * // Set avatar
+ * client.user.setAvatar('./avatar.png')
+ * .then(user => console.log(`New avatar set!`))
+ * .catch(console.error);
+ */
+ public setAvatar(avatar: BufferResolvable | Base64Resolvable | null): Promise<this>;
+
+ /**
+ * Sets the full presence of the client user.
+ * @param data Data for the presence
+ * @example
+ * // Set the client user's presence
+ * client.user.setPresence({ activities: [{ name: 'with discord.js' }], status: 'idle' });
+ */
+ public setPresence(data: PresenceData): ClientPresence;
+
+ /**
+ * Sets the status of the client user.
+ * @param status Status to change to
+ * @param shardId Shard id(s) to have the activity set on
+ * @example
+ * // Set the client user's status
+ * client.user.setStatus('idle');
+ */
+ public setStatus(status: PresenceStatusData, shardId?: number | number[]): ClientPresence;
+
+ /**
+ * Sets the username of the logged in client.
+ * <info>Changing usernames in Discord is heavily rate limited, with only 2 requests
+ * every hour. Use this sparingly!</info>
+ * @param username The new username
+ * @example
+ * // Set username
+ * client.user.setUsername('discordjs')
+ * .then(user => console.log(`My new username is ${user.username}`))
+ * .catch(console.error);
+ */
+ public setUsername(username: string): Promise<this>;
+}