diff options
Diffstat (limited to 'src/lib/extensions/discord.js/BushClientUser.ts')
-rw-r--r-- | src/lib/extensions/discord.js/BushClientUser.ts | 98 |
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>; +} |