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 |
} |