Количество ролей и смайликов. Раздор. js - PullRequest
1 голос
/ 13 января 2020

Я хочу сделать команду serverinfo для моего диска-разногласия, и я хочу создать поле, отображающее количество ролей, а другое - для смайликов. Может кто-нибудь сказать мне, как это сделать?

Это мой код:

async runCommand(args: string[], msgObject: Discord.Message, client: Discord.Client): Promise<void> {

        let embed = new Discord.RichEmbed()
            .setColor("RANDOM")
            .setTitle("Server Info")
            .setImage(msgObject.guild.iconURL)
            .setDescription(`${msgObject.guild}'s information`)
            .addField("Owner", `The owner of this server is ${msgObject.guild.owner}`)
            .addField("Member Count", `This server has ${msgObject.guild.memberCount} members`)
            .addField("Emoji Count", `This server has ${msgObject.guild.emojis} emojis`)
            .addField("Roles Count", `This server has ${msgObject.guild.roles} roles`)

        msgObject.channel.send(embed)
            .catch(console.error);
}

Код дает мне это:

Информация о сервере

Тест Информация о сервере

Владелец

Владельцем этого сервера является @ ItamarD

Количество участников. Этот сервер имеет 3 участника

Количество эмодзи

Этот сервер имеет [объектную карту] emojis

Количество ролей

Этот сервер имеет [объектную карту] роли

1 Ответ

2 голосов
/ 13 января 2020

Если вы посмотрите на Discord. js Документация API для объектов гильдии , вы заметите, что Guild.emojis и Guild.roles возвращают коллекцию.

Collection является расширением Map , которое имеет удобное свойство размера, которое вы можете использовать.

Полученный код из двух строк будет выглядеть следующим образом:

.addField("Emoji Count", `This server has ${msgObject.guild.emojis.size} emojis`)
.addField("Roles Count", `This server has ${msgObject.guild.roles.size} roles`)
...