aboutsummaryrefslogtreecommitdiff
path: root/bot/src/commands/settings.js
blob: 00f7caf635f6584fbcd0cea8a225fed10806f5dc (plain) (blame)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import { EmbedBuilder, MessageFlags, PermissionFlagsBits, SlashCommandBuilder, ButtonBuilder, ButtonStyle, ActionRowBuilder, ComponentType } from 'discord.js';
import { abEmbedColour } from '../storage/consts.js';

export default {
    data: new SlashCommandBuilder()
        .setName('settings')
        .setDescription('User settings for AleeBot.')
        .addSubcommand(subcommand =>
            subcommand
                .setName('guild')
                .setDescription('Change settings for the guild.'))
        .addSubcommand(subcommand =>
            subcommand
                .setName('user')
                .setDescription('Change settings for the user.')),
    async execute(interaction) {
        if (interaction.options.getSubcommand() === 'guild') {
            //if (!interaction.member.permissions.has(PermissionFlagsBits.ManageGuild)) return await interaction.reply({ content: 'You do not have the permission to manage this guild.', flags: MessageFlags.Ephemeral });

            const logging = new ButtonBuilder()
                .setCustomId('logging')
                .setLabel('Logging')
                .setStyle(ButtonStyle.Primary);

            const suggestions = new ButtonBuilder()
                .setCustomId('suggestions')
                .setLabel('Suggestions')
                .setStyle(ButtonStyle.Primary);

            const row = new ActionRowBuilder()
                .addComponents(logging, suggestions);

            const guildEmbed = new EmbedBuilder()
                .setAuthor({ name: 'AleeBot Guild Settings', iconURL: interaction.client.user.avatarURL() })
                .setDescription('Select the options')
                .addFields(
                    { name: 'Logging', value: 'logchannel', inline: true },
                    { name: 'Suggestions', value: 'channel', inline: true },
                    { name: 'LLM Chatbot', value: 'Enabled', inline: true },
                    { name: 'Quote of the Day', value: 'logchannel', inline: true },
                    { name: 'QOTD Channel', value: 'logchannel', inline: true }
                )
                .setColor(abEmbedColour);

            const guildSetup = await interaction.reply({ embeds: [guildEmbed], components: [row] });

            const filter = (i) => i.user.id === interaction.user.id;

            const guildCollector = guildSetup.createMessageComponentCollector({
                componentType: ComponentType.Button,
                filter,
                time: 1000 * 120
            });

            guildCollector.on('collect', async (interaction) => {
                if (interaction.customId === 'logging') {
                    await interaction.reply({ content: 'Clicked on logging' });
                }

                if (interaction.customId === 'suggestions') {
                    await interaction.reply({ content: 'Clicked on suggestions' });
                }
            });
        }

        if (interaction.options.getSubcommand() === 'user') {
            const userEmbed = new EmbedBuilder()
                .setAuthor({ name: 'AleeBot User Settings', iconURL: interaction.client.user.avatarURL() })
                .setDescription('Select the options')
                .addFields(
                    { name: 'Language', value: 'logchannel', inline: true },
                    { name: 'Location', value: 'channel', inline: true }
                )
                .setColor(abEmbedColour);

            return await interaction.reply({ embeds: [userEmbed] });
        }
    }
};