#discord #discord.js
#Discord #discord.js
Вопрос:
Я уже использую это "guildMemberAdd"
для участников, недавно добавленных для присоединения к роли «Посетители».
client.on("guildMemberAdd", member =>{
member.roles.add(member.guild.roles.cache.find(role => role.name == "Visitors"), "auto added.");
})
Мой бот не может быть онлайн 24 часа. Итак, когда я подключаю его, есть несколько пользователей, которые присоединились, в то время как бот был отключен, очевидно, без роли (я предполагаю, что они в роли @everyone).
Я намерен переместить пользователей discord без роли в существующую роль, когда я подключу бота.
Ответ №1:
В вашем готовом событии просто выберите каждого члена гильдии с GuildMemberManager#fetch()
помощью , а затем отфильтруйте участников только с одной ролью (@everyone).
client.on('ready', async () => {
const members = await client.guilds.cache.get('Guild ID').members.fetch(); // fetch every member
members
.filter((m) => m.roles.cache.size === 1) // iterate through every member with only one role
.each((m) => m.roles.add('Role ID')); // add the Visitors role
});
Комментарии:
1. Очень полезно для продолжения, но, похоже, это ошибка при повторении; «members.each не является функцией на клиенте» и «members.filter не является функцией на клиенте». Есть ли какие-либо обновления в документации, которые могут вызвать это?
2. Это моя ошибка, пожалуйста, проверьте мой отредактированный ответ
3. Вот и все. Теперь я добавлю message.send на том же client.on, чтобы пользователи знали, куда и почему были перемещены.