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

Annotation of /trunk/src/commands/settings/WelcomeMsgCommand.ts

Parent Directory Parent Directory | Revision Log Revision Log


Revision 344 - (hide annotations)
Mon Jul 29 17:29:40 2024 UTC (8 months, 2 weeks ago) by rakin
File MIME type: application/typescript
File size: 3670 byte(s)
chore: eslint autofix
1 rakin 344 import { Message } from 'discord.js';
2 rakin 247 import BaseCommand from '../../utils/structures/BaseCommand';
3     import DiscordClient from '../../client/Client';
4     import CommandOptions from '../../types/CommandOptions';
5     import { emoji } from '../../utils/Emoji';
6    
7     export default class WelcomeMsgCommand extends BaseCommand {
8     constructor() {
9     super('welcomemsg', 'settings', ['welcomer']);
10     }
11    
12     async run(client: DiscordClient, message: Message, options: CommandOptions) {
13     if (options.args[0] === undefined) {
14     await message.reply(`${emoji('error')} This command requires at least one argument or option.`);
15     return;
16     }
17    
18     if (options.options.includes('--enable')) {
19     client.config.props[message.guild!.id].welcomer.enabled = true;
20     await message.reply(`${emoji('check')} Welcomer has been enabled.`);
21     }
22     else if (options.options.includes('--disable')) {
23     client.config.props[message.guild!.id].welcomer.enabled = false;
24     await message.reply(`${emoji('check')} Welcomer has been disabled.`);
25     }
26     else if (options.options.includes('--toggle')) {
27     client.config.props[message.guild!.id].welcomer.enabled = !client.config.props[message.guild!.id].welcomer.enabled;
28     await message.reply(`${emoji('check')} Welcomer has been ${client.config.props[message.guild!.id].welcomer.enabled ? 'enabled' : 'disabled'}.`);
29     }
30     else if (options.options.includes('--msg') || options.options.includes('--message') || options.options.includes('--custom')) {
31     let msg = options.args.filter(a => a !== '--msg' && a !== '--message' && a !== '--custom').join(' ');
32    
33     if (msg.trim() === '') {
34     client.config.props[message.guild!.id].welcomer.message = null;
35     await message.reply(`${emoji('check')} Welcome message was successfully removed.`);
36     }
37     else {
38     client.config.props[message.guild!.id].welcomer.message = msg;
39     await message.reply(`${emoji('check')} Welcome message was successfully set.`);
40     }
41     }
42     else if (options.options.includes('--rm-msg') || options.options.includes('--remove-message')) {
43     client.config.props[message.guild!.id].welcomer.message = null;
44     await message.reply(`${emoji('check')} Welcome message was successfully removed.`);
45     }
46     else if (options.options.includes('--randomize') || options.options.includes('--rand')) {
47     client.config.props[message.guild!.id].welcomer.randomize = !client.config.props[message.guild!.id].welcomer.randomize;
48     await message.reply(`${emoji('check')} Welcomer random messages are ${client.config.props[message.guild!.id].welcomer.randomize ? 'enabled' : 'disabled'}.${client.config.props[message.guild!.id].welcomer.message && client.config.props[message.guild!.id].welcomer.randomize ? '\nNote: A custom welcome message is already set. Both random and custom messages will be shown.' : ''}`);
49     }
50     else if (options.options.includes('--preview')) {
51     const options = client.welcomer.generateEmbed(message.member!);
52    
53     if (!options) {
54     await message.reply(`${emoji('error')} No welcome message set and randomization is disabled. Please configure one of those first!`);
55     return;
56     }
57    
58     await message.channel.send(options);
59     }
60     else {
61     await message.reply(`${emoji('error')} Invalid argument(s) or option(s) supplied.`);
62     return;
63     }
64 rakin 298
65     client.config.write();
66 rakin 247 }
67 rakin 298 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26