Бот Discord показывает номер участника в названии канала

#node.js #discord #discord.js #bots

Вопрос:

это код, который у меня есть до сих пор:

     setInterval(function () {
    let myGuild = client.guilds.cache.get("0000000000000");
    let memberNumber = myGuild.members.cache.filter(member => !member.user.bot).size;

    }, 1000);
 

И, как вы, вероятно, можете сказать здесь, мне успешно удалось создать бота Discord для подсчета количества участников на моем сервере, боты не включены, и это проверяется каждую секунду в Discord.JS.
Что я не знаю, что делать, так это показывать этот номер в названии канала и постоянно обновлять его, как это делает бот Discord «ServerStats». (например, укажите название канала Участники: 1, и обновите номер, когда количество участников увеличится или уменьшится, у меня будет фотография примера). Не могли бы вы показать мне, как это сделать, и подробно объяснить, что вы сделали, но на уровне нуба, так как я очень новичок в кодировании?

Категория - quot;Статистика сервераquot;, а название канала: quot;Участники: 118quot;, и он постоянно обновляется

Ответ №1:

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

Это, вероятно, больше то, что вы хотите:

 client.on("guildMemberAdd", function(member){
    let myGuild = member.guild
    let myChannel = myGuild.channels.cache.get("CHANNEL ID HERE");
    let memberNumber = myGuild.members.cache.filter(member => !member.user.bot).size;
    myChannel.name = `Members: ${memberNumber}`
})
 

Комментарии:

1. Как часто это будет обновляться, если вы можете немного объяснить код, это просто каждый раз, когда добавляется новый участник?

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

3. Я продолжаю получать эту ошибку: events.js:131 выдает новый тип ERR_INVALID_ARG_TYPE («прослушиватель», «Функция», прослушиватель); в этой строке: пусть MemberNumber = myGuild.members.cache. фильтр(участник => !участник.пользователь.бот).размер;

4. > события.js:131 Вы храните все свои события здесь? Почему бы им не разделиться?