#javascript #discord #discord.js
Вопрос:
Я пытаюсь создать скрипт, который может давать псевдонимы всем людям на сервере discord, я бы хотел, чтобы он переименовывал всех участников, а не только активных, на данный момент у меня есть это
module.exports.run = async (client, msg, args, config) => {
msg.delete();
const guild = client.guilds.get("888868333498290176");
if(!msg.guild.me.hasPermission("MANAGE_NICKNAMES")) return console.log('Cette commande a besoin de permissions')
await msg.guild.members.cache;
let members = msg.guild.id
if (args.join(" ").length > 32) return msg.reply('Le nom ne peut pas dépasser 32 caractères.')
console.log('Modifier le surnom de ' members.length ' member(s), attendez un moment.')
for(let i = 0; i < members.length; i ) {
await members[i].setNickname(args.join(" "))
}
console.log(' [ ] Le surnom de tout le monde sur le serveur a été changé !'.green)
}
и эта ошибка
C:UsersPCDesktopdiscord1140commandsnickall.js:12
await members[i].setNickname(args.join(" "))
^
TypeError: members[i].setNickname is not a function
Комментарии:
1.
members
это идентификатор гильдии. Это не массив участников. Это даже не массив вообще, это строка.2. Также
msg.guild.members.cache
не возвращает обещание и не имеет никаких побочных эффектов, почему вы этого ждете?
Ответ №1:
- Вы можете использовать
forEach()
и изменять псевдонимы для всех членов гильдии. Пример:
try {
message.guild.members.forEach((member) => {
member.setNickname("nickname")
})
} catch (error) {
console.error(error)
return message.channel.send(`Error changing nicknames: `${error}``)
}
Комментарии:
1. спасибо, это сработало, но это не переименовывает всех людей