aboutsummaryrefslogtreecommitdiff
path: root/bot/src/commands/serverinfo.js
blob: 3f7bd721a292c36166b41c37e4f19d739aeb7a38 (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
import { SlashCommandBuilder, EmbedBuilder } from 'discord.js';
import { abEmbedColour } from '../storage/consts.js';

export default {
    data: new SlashCommandBuilder()
        .setName('serverinfo')
        .setDescription('Information about this server.')
        .setContexts(0),
    async execute(interaction) {
        // let listedChannels = [];
        let guildOwner = await interaction.guild.fetchOwner();
        let memberCountNoBots = await interaction.guild.members.fetch().then((members) => members.filter(member => !member.user.bot).size);

        // interaction.guild.channels.cache.each(channel => {
        //     listedChannels.push(channel);
        // });

        const serverEmbed = new EmbedBuilder()
            .setAuthor({ name: `${interaction.guild.name}`, iconURL: interaction.guild.iconURL() })
            .setDescription('Server Information')
            .setThumbnail(interaction.guild.iconURL())
            .addFields(
                { name: 'Main Information', value: `**Server Name:** ${interaction.guild.name}\n**Server ID:** ${interaction.guild.id}\n**Server Owner:** ${guildOwner.user.username}`},
                { name: 'Join Dates', value: `**Created At:** ${interaction.guild.createdAt.toUTCString()}\n**AleeBot Joined:** ${interaction.guild.joinedAt.toUTCString()}`},
                { name: 'Total Channels (without threads)', value: `${interaction.guild.channels.channelCountWithoutThreads}` },
                // { name: 'Channels', value: listedChannels.join(' ') },
                { name: 'Total Members (with bots)', value: `${interaction.guild.memberCount}` },
                { name: 'Total Members (without bots)', value: `${memberCountNoBots}` }
            )
            .setColor(abEmbedColour);
        return await interaction.reply({ embeds: [serverEmbed] });
    }
};