aboutsummaryrefslogtreecommitdiff
path: root/src/commands/fun/eightBall.ts
blob: 4e79bebfd94db4c609a8169911081a9b30a06756 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import { BushCommand, BushMessage, BushSlashMessage } from '@lib';

export default class EightBallCommand extends BushCommand {
	public constructor() {
		super('eightBall', {
			aliases: ['8ball', 'eightball'],
			category: 'fun',
			description: {
				content: 'Ask questions for a randomly generated response.',
				usage: '8Ball <question>',
				examples: ['8Ball does anyone love me?']
			},
			args: [
				{
					id: 'question',
					type: 'string',
					match: 'rest',
					prompt: {
						start: 'What question would you like answered?',
						retry: '{error} Invalid question.'
					}
				}
			],
			slash: true,
			slashOptions: [
				{
					name: 'question',
					description: 'What question would you like answered?',
					type: 'STRING',
					required: true
				}
			],
			clientPermissions: (m) => util.clientSendAndPermCheck(m),
			userPermissions: []
		});
	}

	public override async exec(message: BushMessage | BushSlashMessage): Promise<void> {
		const responses = [
			'It is certain',
			'Without a doubt',
			'You may rely on it',
			'Yes definitely',
			'It is decidedly so',
			'As I see it, yes',
			'Most likely',
			'Yes',
			'Outlook good',
			'Signs point to yes',
			'Reply hazy try again',
			'Better not tell you now',
			'Ask again later',
			'Cannot predict now',
			'Concentrate and ask again',
			"Don't count on it",
			'Outlook not so good',
			'My sources say no',
			'Very doubtful',
			'My reply is no'
		];
		const answer = responses[Math.floor(Math.random() * responses.length)];
		await message.util.reply(answer);
	}
}