Количество участников сервера DiscordJS V13

Мне нужна помощь с моим кодом. Мой план состоит в том, чтобы сделать команду, которая показывает, сколько членов у меня есть на моем сервере. Кто-нибудь может мне помочь? Я просто собираюсь добавить больше деталей, так как я не могу загрузить свой вопрос, если мои данные короткие. Если кто-то хочет помочь мне с моим дискорд-ботом или, может быть, научить меня, как это сделать, потому что я всего лишь новичок, пытающийся изучить discord.js. Добавьте меня в Twitter (TwT): KiseeIsHere

const Discord = require("discord.js");
const {MessageEmbed} = require("discord.js");

module.exports.run = async (client, message, args) => {
    try {
      await message.guild.members.fetch().catch(() => {});
      
        message.reply({embeds: [new Discord.MessageEmbed()
        .setAuthor("Kisee")
        .setColor("2F3136")
        .addField(message.guild.memberCount + "\`", true)
        .addField(message.guild.members.cache.filter(member => !member.user.bot).size + "\`", true)
        .addField(message.guild.members.cache.filter(member => member.user.bot).size + "\`", true)
        
        .addField(message.guild.members.cache.filter(member => member.presence && member.presence && member.presence.status != "offline").size + "\`", true)
        .addField(message.guild.members.cache.filter(member => !member.user.bot && member.presence && member.presence && member.presence.status != "offline").size + "\`", true)
        .addField(message.guild.members.cache.filter(member => member.user.bot && member.presence && member.presence && member.presence.status != "offline").size + "\`", true)
        
        .addField(message.guild.members.cache.filter(member => member.presence && member.presence && member.presence.status == "idle").size + "\`", true)
        .addField(message.guild.members.cache.filter(member => !member.user.bot && member.presence && member.presence && member.presence.status == "idle").size + "\`", true)
        .addField(message.guild.members.cache.filter(member => member.user.bot && member.presence && member.presence && member.presence.status == "idle").size + "\`", true)
        
        .addField(message.guild.members.cache.filter(member => member.presence && member.presence && member.presence.status == "dnd").size + "\`", true)
        .addField(message.guild.members.cache.filter(member => !member.user.bot && member.presence && member.presence && member.presence.status == "dnd").size + "\`", true)
        .addField(message.guild.members.cache.filter(member => member.user.bot && member.presence && member.presence && member.presence.status == "dnd").size + "\`", true)
        
        .addField(message.guild.members.cache.filter(member => !member.presence || member.presence && member.presence.status == "offline").size + "\`", true)
        .addField(message.guild.members.cache.filter(member => !member.user.bot && (!member.presence || member.presence && member.presence.status == "offline")).size + "\`", true)
        .addField(message.guild.members.cache.filter(member => member.user.bot && (!member.presence || member.presence && member.presence.status == "offline")).size + "\`", true)
        .setTimestamp()
      ]});
    } catch (e) {
      console.log("error")
      return message.reply({embeds: [new MessageEmbed()
        .setColor("2F3136")
        .setFooter("error")
        .setTitle("error")
        .setDescription("error")
      ]});
    }
}

module.exports.config = {
    name: "membercount",
    aliases: ["mc"]
}

Какую ошибку вы получаете?

Neenhila 16.05.2022 20:38

Какие намерения вы установили?

gavin 16.05.2022 22:35
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
2
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Небольшой совет: если вы обнаружите, что набираете одно и то же снова и снова (обычно более 2 раз), сделайте это константой.

Например

.addField(message.guild.members.cache...
.addField(message.guild.members.cache...
.addField(message.guild.members.cache...
.addField(message.guild.members.cache...
.addField(message.guild.members.cache...

// more efficient usage
const allMembers = message.guild.members.cache

.addField(allMembers...
.addField(allMembers...
.addField(allMembers...
.addField(allMembers...
.addField(allMembers...

Кроме того, ниже приведен рабочий пример, не стесняйтесь настраивать его при необходимости. Кстати, .setAuthor и .setFooter должны передаваться как объект, а не как строка, что показано ниже в ответе.

const {
    MessageEmbed,
} = require("discord.js");

module.exports.run = async (client, message, args) => {
    const allUsers = client.users.cache;
    const allMembers = message.guild.members.cache;
    const embed = new MessageEmbed()
        .setAuthor({
            name: "Kisee",
        })
        .setColor("2F3136")
        .addFields({
            name: `Total Members`,
            value: `${allUsers.size}`,
            inline: true,
        }, {
            name: `Users`,
            value: `${allUsers.filter(user => !user.bot).size}`,
            inline: true,
        }, {
            name: `Bots`,
            value: `${allUsers.filter(user => user.bot).size}`,
            inline: true,
        }, {
            name: `Online`,
            value: `${allMembers.filter(member => !member.user.bot && member.presence && member.presence.status === 'online').size}`,
            inline: true,
        }, {
            name: `Offline`,
            value: `${allMembers.filter(member => !member.user.bot && !member.presence || member.presence.status === 'offline').size}`,
            inline: true,
        }, {
            name: `Idle`,
            value: `${allMembers.filter(member => !member.user.bot && member.presence && member.presence.status === 'idle').size}`,
            inline: true,
        }, {
            name: `DND`,
            value: `${allMembers.filter(member => !member.user.bot && member.presence && member.presence.status === 'dnd').size}`,
            inline: true,
        })
        .setTimestamp();
    message.reply({
        embeds: [embed],
    });
};

module.exports.config = {
    name: "membercount",
    aliases: ["mc"],
};

proof

игнорировать первую строку ghost = client в моем коде

Запрос

const client = new Client({
    intents: // whatever you have here,
    partials: // not necessary but may also be present,
})

Privileged Intents

значение: ${allMembers.filter(member => !member.user.bot && !member.presence || member.presence.status === 'offline').size}, TypeError: Не удается прочитать свойства null (чтение «статус»). Эта вещь всплывает. Как я могу это исправить?

Zargo 17.05.2022 04:58

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

Gh0st 17.05.2022 06:28

Это сработало. Я удалил что-то из вашего кода, это || member.presence.status === 'offline', так как это то же самое, что и !member.presence

Zargo 17.05.2022 21:42

Если я могу спросить, вы можете помочь мне сделать музыкального бота?

Zargo 17.05.2022 21:43

Другие вопросы по теме