/[sudobot]/trunk/src/commands/settings/SetStatusCommand.ts
ViewVC logotype

Contents of /trunk/src/commands/settings/SetStatusCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 344 - (show annotations)
Mon Jul 29 17:29:40 2024 UTC (8 months, 1 week ago) by rakin
File MIME type: application/typescript
File size: 1840 byte(s)
chore: eslint autofix
1 import { ClientPresenceStatus, CommandInteraction, ExcludeEnum, Message } from 'discord.js';
2 import BaseCommand from '../../utils/structures/BaseCommand';
3 import DiscordClient from '../../client/Client';
4 import CommandOptions from '../../types/CommandOptions';
5 import InteractionOptions from '../../types/InteractionOptions';
6 import { ActivityTypes } from 'discord.js/typings/enums';
7 import { fetchEmoji } from '../../utils/Emoji';
8
9 export default class SetStatusCommand extends BaseCommand {
10 supportsInteractions: boolean = true;
11 ownerOnly = true;
12
13 constructor() {
14 super('setstatus', 'settings', []);
15 }
16
17 async run(client: DiscordClient, message: Message | CommandInteraction, options: CommandOptions | InteractionOptions) {
18 if (!options.isInteraction && options.args[0] === undefined) {
19 await message.reply({
20 content: 'This command requires at least one argument'
21 });
22
23 return;
24 }
25
26 let status: ClientPresenceStatus | undefined;
27 let activity: string;
28 let type: ExcludeEnum<typeof ActivityTypes, 'CUSTOM'> = 'WATCHING';
29
30 if (options.isInteraction) {
31 activity = <string> options.options.getString('activity');
32
33 if (options.options.getString('status'))
34 status = <ClientPresenceStatus> options.options.getString('status');
35
36 if (options.options.getString('type'))
37 type = <typeof type> options.options.getString('type');
38 }
39 else {
40 activity = options.args.join(' ');
41 }
42
43 await client.randomStatus.config(activity, type);
44 await client.randomStatus.update(status);
45
46 await message.reply({
47 content: (await fetchEmoji('check'))?.toString() + ' Status updated.'
48 });
49 }
50 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26