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

Contents of /trunk/src/commands/settings/WelcomeMsgCommand.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: 3670 byte(s)
chore: eslint autofix
1 import { 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 { 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
65 client.config.write();
66 }
67 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26